OSDN Git Service

* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
4         only useless conversions around renamed objects.
5
6 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7
8         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
9         the _Tag field before any discriminants in the field list.
10         (components_to_record): Remove obsolete comment.
11
12 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
13
14         PR ada/38450
15         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
16         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
17         Likewise.
18
19 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
20
21         PR bootstrap/38262
22         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
23
24 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
25
26         PR ada/30827
27         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
28
29 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
30
31         * gcc-interface/decl.c: Fix various nits.
32
33 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
34
35         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
36
37 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
38
39         PR ada/38127
40         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
41         special-case boolean types.  Propagate  the name.
42         * gcc-interface/targtyps.c: Tweak comment.
43
44 2008-11-15  Geert Bosch  <bosch@adacore.com>
45
46         * gcc-interface/trans.c (emit_check): Put back a final save_expr
47         to prevent exponential expansion during gimplification.
48
49 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
50
51         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
52
53 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
54
55         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
56         initialized to a static constant to be statically allocated even if
57         they are of a padding type, provided the original type also has
58         constant size.
59
60 2008-11-15  Laurent Guerby  <laurent@guerby.net>
61
62         PR ada/37993
63         * gcc-interface/Makefile.in: Add multilib handling for x86_64
64         on darwin.
65         * system-darwin-x86_64.ads: New file.
66
67 2008-11-13  Olivier Hainque  <hainque@adacore.com>
68
69         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
70         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
71         are explicit to the middle-end.  Tidy.
72
73 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
74
75         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
76         (MINUS_NOMOD_EXPR): Likewise.
77         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
78         unreachable.
79         <PLUS_NOMOD_EXPR>: New case.
80         <MINUS_NOMOD_EXPR>: Likewise.
81         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
82         assignment statement instead of using an increment operator.
83
84 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
85
86         * system-irix-n64.ads: New file.
87         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
88         multilibs.
89
90 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
91
92         PR ada/37681
93         * system-solaris-x86_64.ads: New file.
94         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
95
96 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
97             Eric Botcazou  <ebotcazou@adacore.com>
98
99         PR ada/34289
100         * lib.ads: (Enable_Switch_Storing): Declare.
101         * lib.adb: (Enable_Switch_Storing): New procedure.
102         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
103         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
104         (Display): Never display -gnatea
105         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
106
107 2008-11-07  Thomas Quinot  <quinot@adacore.com>
108
109         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
110         for empty range in original base type, not converted result type.
111
112 2008-11-07  Geert Bosch  <bosch@adacore.com>
113
114         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
115         and result for call to __gnat_mulv64.
116
117 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
118
119         * gcc-interface/trans.c: Fix formatting nits.
120
121 2008-11-07  Geert Bosch  <bosch@adacore.com>
122
123         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
124         overflow check for constant result.
125
126 2008-11-07  Geert Bosch  <bosch@adacore.com>
127
128         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
129         overflow check for addition/subtraction if neither operand is constant.
130
131 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
132
133         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
134         files for the target-dependent part of the runtime.
135         (SPARC/Linux): Likewise.
136
137 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
138
139         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
140         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
141         purposes.
142
143 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
144
145         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
146         in GC memory.
147
148 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
149
150         PR ada/19419
151         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
152         Generate a call to memmove for an assignment between overlapping
153         array slices.
154
155 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
156
157         PR target/37977
158         * gcc-interface/Makefile.in: Add multilib handling for
159         s390-linux and s390x-linux.
160
161 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
162
163         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
164         check-acats-subtargets and check-gnat-subtargets.
165         (check_acats_targets): New variable.
166         (check-acats-subtargets, check-acats%): New targets.
167         (check-acats): If -j is used and CHAPTERS is empty, run the testing
168         in multiple make goals, possibly parallel, and afterwards run
169         dg-extract-results.sh to merge the sum and log files.
170
171 2008-10-17  Geert Bosch  <bosch@adacore.com>
172
173         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
174         to use only a single check instead of three, and avoid unnecessary
175         COMPOUND_EXPR.
176         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
177         creating more opportunities for optimizations.
178
179 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
180
181         PR middle-end/37601
182         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
183         NULL TYPE_DOMAIN.
184
185 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
186
187         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
188         dealing with volatileness to after code dealing with renaming.
189
190 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
191
192         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
193         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
194
195 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
196
197         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
198         (unchecked_convert): Use it to disable problematic folding with
199         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
200         special VIEW_CONVERT_EXPR built for integral types and cope with
201         its addressability issues by preserving the first conversion.
202
203 2008-10-01  Andreas Schwab  <schwab@suse.de>
204
205         * system-linux-ppc64.ads: New file.
206         * gcc-interface/Makefile.in: Add multilib handling for
207         powerpc-linux.
208
209 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
210
211         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
212         to that of ptr_mode instead of word_mode.
213
214 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
215
216         PR ada/5911
217         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
218
219 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
220
221         PR ada/37641
222         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
223         instead of deprecated FILE_WRITE_PROPERTIES.
224
225 2008-09-22  Olivier Hainque  <hainque@adacore.com>
226
227         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
228         are never assigned, volatile entities are not constant for code
229         generation purposes.
230
231 2008-09-21  Laurent Guerby  <laurent@guerby.net>
232
233         PR ada/5911
234         * gcc-interface/Makefile.in: Add multilib handling for x86_64
235         and sparc.
236         * system-linux-sparcv9.ads: New file.
237
238 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
239
240         * exp_dbug.ads: Document new convention for the XVZ variable.
241         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
242         debug info if necessary for the type padding the component type.
243         <E_Array_Subtype>: Likewise.
244         (maybe_pad_type): Emit the XVZ variable in units.
245         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
246         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
247         on statements generated to initialize the parameter attributes cache.
248         Set the source line of the end label of the body on the special return
249         statement built for a procedure with copy-in copy-out parameters.
250
251 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
252
253         PR ada/37585
254         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
255         inlined external functions if they contain a nested function not
256         declared inline.
257
258 2008-09-18  Jan Hubicka  <jh@suse.cz>
259
260         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
261         (end_subprog_body): Do not set DECL_INLINE.
262
263 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
264
265         PR ada/21327
266         * gnat_ugn.texi: Use proper format in direntry.
267
268 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
269
270         * gcc-interface/trans.c (gigi): Declare the name of the compilation
271         unit as the first global name.
272
273 2008-09-14  Jan Hubicka  <jh@suse.cz>
274
275         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
276
277 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
278
279         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
280         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
281         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
282         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
283         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
284         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
285         gcc-interface/gigi.h, gcc-interface/trans.c,
286         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
287         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
288         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
289         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
290         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
291         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
292         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
293         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
294         comments.
295         * gnathtml.pl: Fix typos.
296
297 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
298
299         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
300         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
301         layer. RTEMS binds to OS provided adapter routines so there are
302         no modifications to s-osinte-rtems.adb.
303
304 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
305             Joel Sherrill  <joel.sherrill@oarcorp.com>
306
307        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
308
309        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
310
311        * s-interr-hwint.adb: New file.
312
313         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
314         needed by s-interr-hwint.adb.
315
316         * s-osinte-vxworks-kernel.adb: New file.
317
318 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
319
320         * s-stchop-rtems.adb: Add file missed in early commit.  Already
321         referenced in gcc-interface/Makefile.in.
322
323 2008-08-30  Thomas Quinot  <quinot@adacore.com>
324
325         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
326         be built even without a separate libada directory.
327
328 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
329
330         * lib-xref.ads: Fix typo in subprogram reference definition.
331
332 2008-08-22  Robert Dewar  <dewar@adacore.com>
333
334         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
335         to avoid warning.
336
337         * g-trasym.adb: Ditto
338
339         * s-utf_32.adb (Get_Category): Fix obvious typo
340
341         * s-wwdcha.adb: Minor code reorganization
342         Remove dead code
343
344 2008-08-22  Robert Dewar  <dewar@adacore.com>
345
346         * checks.adb (Determine_Range): Deal with values that might be invalid
347
348         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
349         configuration switches.
350
351         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
352
353         * sem_prag.adb: Implement pragma Assume_No_Default_Values
354
355         * snames.adb, snames.ads, snames.h:
356         Add entries for pragma Assume_No_Invalid_Values
357
358         * switch-c.adb: Add processing for -gnatB switch
359
360         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
361
362 2008-08-22  Javier Miranda  <miranda@adacore.com>
363
364         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
365         init procedure all the expanded code associated with the spec of
366         task types and protected types.
367
368 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
369
370         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
371         component expression copies rather than directly setting Etype and
372         Is_Static_Expression.
373
374 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
375
376         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
377         private types to allow for types derived from a private type with
378         preelaborable initialization, but return False for a private extension
379         (unless it has the pragma).
380
381 2008-08-22  Robert Dewar  <dewar@adacore.com>
382
383         * opt.ads: Minor code reorganization (put entries in alpha order)
384
385 2008-08-22  Pascal Obry  <obry@adacore.com>
386
387         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
388         spawn.
389
390 2008-08-22  Geert Bosch  <bosch@adacore.com>
391
392         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
393         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
394
395 2008-08-22  Doug Rupp  <rupp@adacore.com>
396
397         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
398         __gnat_set_features.
399
400         * init.c
401         (__gnat_set_features): New function.
402         (__gnat_features_set): New tracking variable.
403         (__gl_no_malloc_64): New feature global variable
404
405 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
406
407         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
408         use_type_clause in an instance.
409
410 2008-08-22  Bob Duff  <duff@adacore.com>
411
412         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
413
414 2008-08-22  Robert Dewar  <dewar@adacore.com>
415
416         * exp_ch6.adb: Minor reformatting
417
418         * exp_ch7.adb: Minor reformatting
419
420         * exp_ch7.ads: Put routines in proper alpha order
421
422         * exp_dist.adb: Minor reformatting
423
424 2008-08-22  Vincent Celier  <celier@adacore.com>
425
426         * prj.ads: Minor comment update
427
428 2008-08-22  Robert Dewar  <dewar@adacore.com>
429
430         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
431
432 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
433
434         * exp_tss.adb:
435         (Base_Init_Proc): For a protected subtype, use the base type of the
436         corresponding record to locate the propoer initialization procedure.
437
438 2008-08-22  Robert Dewar  <dewar@adacore.com>
439
440         * checks.adb:
441         (In_Subrange_Of): New calling sequence
442         (Determine_Range): Prepare for new processing using base type
443
444         * exp_ch4.adb:
445         (Compile_Time_Compare): Use new calling sequence
446
447         * exp_ch5.adb:
448         (Compile_Time_Compare): Use new calling sequence
449
450         * sem_eval.adb:
451         (Compile_Time_Compare): New calling sequence allows dealing with
452         invalid values.
453         (In_Subrange_Of): Ditto
454
455         * sem_eval.ads:
456         (Compile_Time_Compare): New calling sequence allows dealing with
457         invalid values.
458         (In_Subrange_Of): Ditto
459
460 2008-08-22  Pascal Obry  <obry@adacore.com>
461
462         * adaint.c: Fix possible race condition on win32_wait().
463
464 2008-08-22  Bob Duff  <duff@adacore.com>
465
466         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
467         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
468         exp_intr.adb, exp_ch3.adb: Rename:
469         Exp_Ch7.Controlled_Type => Needs_Finalization
470         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
471         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
472          Has_Controlled_Parts
473         (Has_Some_Controlled_Component): Fix bug in array case.
474
475 2008-08-22  Robert Dewar  <dewar@adacore.com>
476
477         * sem_ch8.adb: Minor reformatting
478
479 2008-08-22  Kevin Pouget  <pouget@adacore.com>
480
481         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
482         Shared_Var_Close procedure specifications from package spec to package body.
483
484         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
485         RE_Shared_Var_WOpen entries.
486
487         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
488         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
489
490 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
491
492         * init.c: adjust EH support code on Alpha/Tru64 as well.
493
494         * raise-gcc.c: Add back a couple of comments.
495
496 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
497
498         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
499         involved and the return type is class-wide, use the type of the expression
500         for the generated access type. Suppress useless discriminant checks on the
501         allocator.
502
503 2008-08-22  Bob Duff  <duff@adacore.com>
504
505         * exp_ch7.adb: Minor comment fix
506
507         * exp_ch6.ads: Minor comment fix
508
509 2008-08-22  Thomas Quinot  <quinot@adacore.com>
510
511         * sem_ch8.adb: Minor reformatting
512         Minor code reorganization (introduce subprogram to factor duplicated
513         code).
514
515 2008-08-22  Sergey Rybin  <rybin@adacore.com>
516
517         * gnat_ugn.texi: Change the description of gnatcheck default rule
518         settings.
519
520 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
521
522         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
523         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
524         do not adjust the PC anymore.
525         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
526         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
527
528         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
529         instead of _Unwind_GetIP.
530
531 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
532
533         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
534         with a range is transformed into a positional aggregate, any copied
535         component literals should be marked Is_Static_Expression.
536
537         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
538         not being known at at compile time when Configurable_Run_Time_Mode is
539         true.
540
541 2008-08-22  Robert Dewar  <dewar@adacore.com>
542
543         * exp_attr.adb:
544         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
545         Read or Input attribute.
546
547 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
548
549         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
550         clauses in related units is redundant, if one of the units is a package
551         instantiation, use its instance_spec to determine which unit is the
552         ancestor of the other.
553
554 2008-08-22  Javier Miranda  <miranda@adacore.com>
555
556         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
557         attributes add missing support to handle designated types that come
558         from the limited view.
559
560         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
561
562 2008-08-22  Sergey Rybin  <rybin@adacore.com>
563
564         * vms_data.ads: Add entry for new gnatcheck -mNNN option
565
566         * gnat_ugn.texi: Add description for gnatcheck option '-m'
567
568 2008-08-22  Sergey Rybin  <rybin@adacore.com>
569
570         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
571         acoording to the latest changes in the metric rule interface
572
573 2008-08-22  Vincent Celier  <celier@adacore.com>
574
575         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
576         (Check): Check if the file names registered in the ALI file for the
577         spec, the body and each of the subunits are the ones expected.
578
579 2008-08-22  Robert Dewar  <dewar@adacore.com>
580
581         * g-catiio.adb: Code cleanup.
582
583 2008-08-20  Vincent Celier  <celier@adacore.com>
584
585         * make.adb (Gnatmake): Remove extra space in version line
586
587         * ali.adb:
588         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
589         as the name may already have been entered in the table by the Project
590         Manager.
591
592 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
593
594         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
595         weak symbols so we use the version provided by MaRTE when available.
596
597 2008-08-20  Emmanuel Briot  <briot@adacore.com>
598
599         * g-catiio.ads, g-catiio.adb:
600         (Value): Avoid an unnecessary system call to Clock in most cases.
601         This call is only needed when only the time is provided in the string,
602         and ignored in all other cases. This is more efficient.
603
604 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
605
606         * raise-gcc.c: Fix formatting nits.
607
608 2008-08-20  Robert Dewar  <dewar@adacore.com>
609
610         * sem_ch13.adb:
611         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
612         non-existing component clause.
613
614         * exp_ch5.adb: Minor reformatting
615
616         * g-comlin.adb: Minor reformatting
617
618         * make.adb: Minor reformatting
619
620         * prj-proc.adb: Minor reformatting
621
622         * stylesw.ads: Minor reformatting
623
624 2008-08-20  Vincent Celier  <celier@adacore.com>
625
626         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
627         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
628         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
629          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
630         and a switch is not recognized by gnatmake.
631         (Gnatmake): Implement new scheme for gnatmake switches and global
632         compilation switches.
633         (Switches_Of): Try successively Switches (<file name>),
634         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
635
636 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
637
638         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
639         implement style check that overriding operations are explicitly marked
640         at such.
641
642         * style.ads (Missing_Overriding): new procedure that provides interface
643         to previous one.
644
645         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
646         that the declaration or body of overriding operations carries an
647         explicit overriding indicator.
648
649         * sem_ch8.adb
650         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
651         explicit indicator should be present.
652
653         * sem_ch6.adb (Verify_Overriding_Indicator,
654         Check_Overriding_Indicator): If operation is overriding, check whether
655         declaration and/or body of subprogram should be present
656
657 2008-08-20  Vincent Celier  <celier@adacore.com>
658
659         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
660         gprbuild when casing is MixedCase, whatever the casing of the letters
661         in the file name.
662
663 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
664
665         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
666         creating dummy init proc.
667         (Requires_Init_Proc): Return False in the case No_Default_Initialization
668         is in force and the type does not have associated default
669         initialization. Move test of Is_Public (with tests of restrictions
670         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
671         for default initialization.
672
673 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
674
675         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
676         of any alias or prefix but having attached parameters (as \"-O2\").
677
678 2008-08-20  Robert Dewar  <dewar@adacore.com>
679
680         * s-fileio.adb: Minor reformatting
681
682 2008-08-20  Thomas Quinot  <quinot@adacore.com>
683
684         * exp_strm.adb (Build_Elementary_Input_Call,
685         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
686         selects the stream attribute routines for long float types.
687
688 2008-08-20  Vincent Celier  <celier@adacore.com>
689
690         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
691
692         * prj.ads (Array_Data): Add a component Location
693
694 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
695
696         * sem_prag.adb:
697         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
698         argument for ASIS and navigation use.
699
700 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
701
702         * einfo.ads: Add comment.
703
704 2008-08-20  Bob Duff  <duff@adacore.com>
705
706         * sem_eval.ads: Minor comment fix.
707
708 2008-08-20  Bob Duff  <duff@adacore.com>
709
710         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
711         folding. We were folding things like "False and then ...", but not
712         "X and then ..." where X is a constant whose value is known at compile
713         time.
714
715 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
716
717         * exp_ch5.adb (Controlled_Type): New routine.
718         (Expand_N_Extended_Return_Statement): When generating a move of the
719         final list in extended return statements, check the type of the
720         function and in the case of double expanded return statements, the type
721         of the returned object.
722         (Expand_Simple_Function_Return): Perform an interface conversion when
723         the type of the returned object is an interface and the context is an
724         extended return statement.
725
726 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
727
728         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
729         and the full view is visible, set flag on full view as well.
730
731 2008-08-20  Thomas Quinot  <quinot@adacore.com>
732
733         * g-comlin.adb: Minor reformatting
734         Minor code reorganization.
735
736         * freeze.adb: Minor reformatting
737
738 2008-08-20  Vincent Celier  <celier@adacore.com>
739
740         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
741         source of another project.
742
743 2008-08-20  Pascal Obry  <obry@adacore.com>
744
745         * s-os_lib.ads: Minor reformatting.
746
747 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
748
749         * gnatvsn.ads: Minor reformatting.
750
751 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
752
753         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
754         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
755         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
756         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
757         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
758         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
759         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
760         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
761         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
762         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
763         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
764         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
765         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
766         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
767         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
768         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
769         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
770         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
771         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
772         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
773         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
774         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
775         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
776         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
777         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
778         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
779         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
780         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
781         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
782         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
783         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
784         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
785         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
786         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
787         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
788         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
789         s-poosiz.adb, link.c: Fix copyright notice.
790
791 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
792
793         * g-comlin.ads: Update comments.
794
795 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
796
797         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
798
799 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
800
801         * exp_ch11.adb:
802         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
803         Make_Implicit_Exception_Handler when rewriting an exception handler with
804         a choice parameter, and pass the handler's Sloc instead of that of the
805         handled sequence of statements. Make_Implicit_Exception_Handler sets the
806         Sloc to No_Location (unless debugging generated code), which we don't
807         want for the case of a user handler.
808
809 2008-08-20  Robert Dewar  <dewar@adacore.com>
810
811         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
812
813         * sem_ch13.adb:
814         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
815         now labeled as info msgs, not warnings.
816
817         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
818
819         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
820
821         * a-textio.adb: Remove redundant test.
822
823         * a-witeio.adb: Minor code reorganization
824         Remove redundant test found working on another issue
825
826         * a-ztexio.adb: Minor code reorganization
827         Remove redundant test found working on another issue
828
829 2008-08-20  Thomas Quinot  <quinot@adacore.com>
830
831         * s-fileio.adb (Open) Use C helper function to determine whether a
832         given errno value corresponds to a "file not found" error.
833
834         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
835
836 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
837
838         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
839         to get access to the per-task errno variable.
840         (__set_errno for MaRTE): Do not redefine this function here since it is
841         already defined in MaRTE.
842
843 2008-08-20  Tristan Gingold  <gingold@adacore.com>
844
845         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
846
847 2008-08-20  Robert Dewar  <dewar@adacore.com>
848
849         * freeze.adb: Minor reformatting
850
851         * g-comlin.adb: Minor reformatting
852
853         * g-socket.adb: Minor reformatting
854
855         * g-socthi-mingw.adb: Minor reformatting
856
857         * g-stheme.adb: Minor reformatting
858
859 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
860
861         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
862         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
863         confusion between partial and full views of an ancestor of the context
864         type when the parent is a private extension declared in a parent unit,
865         and full views are available for the context type.
866
867 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
868             Robert Dewar  <dewar@adacore.com>
869
870         PR ada/30827
871         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
872         version string.
873         Move comment in the right place.
874         * g-comver.adb (Version): Look for a zero-termination in
875         addition to a closing parenthesis.
876
877 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
878
879         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
880         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
881         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
882         Is_Package_Or_Generic_Package instead of hand-crafted tests.
883
884 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
885
886         PR ada/15808
887         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
888         as well.
889
890 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
891
892         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
893
894 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
895
896         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
897         for back-copy statements in lieu of that of the actual.
898
899 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
900
901         PR ada/20548
902         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
903         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
904         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
905         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
906
907 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
908
909         PR ada/36777
910         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
911         * sem_attr.adb (Check_Type): The current instance of a protected
912         object is not a type name.
913         (Analyze_Access_Attribute): Accept instances of protected objects.
914         (Analyze_Attribute, Attribute_Address clause): Ditto.
915         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
916         the prefix as being the current instance if needed.
917
918 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
919
920         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
921         Remove duplicate s-win32.o. Add s-winext.o.
922
923 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
924
925         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
926         with SOSC.SOCK__STREAM.
927         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
928         SOSC.MSG_OOB.
929
930 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
931
932         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
933         * gsocket.h, socket.c: Update to support RTEMS.
934         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
935
936 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
937             Robert Dewar <dewar@adacore.com>
938
939         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
940         left argument even when right argument is 0.
941         (Expand_N_Op_Mod): Ditto when right argument is 1.
942         (Expand_N_Op_Multiply): Ditto when any argument is 0.
943         (Expand_N_Op_Rem): Ditto when right argument is 1.
944
945 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
946
947         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
948         by warn_unused.
949
950 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
951
952         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
953         from Freeze_Entity. Used to generate cross-reference information for
954         types declared in generic packages.
955
956 2008-08-08  Thomas Quinot  <quinot@adacore.com>
957
958         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
959         compatibility shim.
960
961 2008-08-08  Thomas Quinot  <quinot@adacore.com>
962
963         * gsocket.h:
964         On Windows, include <errno.h> and redefine only selected errno values
965         from their <winsock2.h> definitions.
966
967         * s-osinte-freebsd.ads: Minor reformatting
968
969         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
970
971         * g-soccon.ads: New file.
972
973         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
974         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
975         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
976         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
977         unit, to allow building software that depends on this internal unit
978         with both older and newer compilers.
979
980 2008-08-08  Robert Dewar  <dewar@adacore.com>
981
982         * s-strxdr.adb: Minor reformatting
983
984 2008-08-08  Bob Duff  <duff@adacore.com>
985
986         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
987         checking for integer operations (including division by zero)", which
988         is wrong -- divide by zero is not part of overflow checking.
989         Also added misc clarification about what check-suppression means.
990
991         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
992
993 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
994
995         * g-comlin.adb (Add_Switch): Handle addition of switches at the
996         begining of the command line.
997         (Append, Add): Renaming of Append to Add as this now allows addition
998         at the begining of the list.
999
1000         * g-comlin.ads (Add_Switch): Handle addition of switches at the
1001         begining of the command line.
1002
1003 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1004
1005         * g-sercom.ads:
1006         (Name): Document application scope (only legacy PC serial ports on
1007         Linux and Windows).
1008
1009 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1010
1011         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1012         previous change, not needed after all.
1013
1014 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1015
1016         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1017         exclusion indicator is present
1018
1019 2008-08-08  Robert Dewar  <dewar@adacore.com>
1020
1021         * g-comlin.adb: Minor code reorganization
1022         Minor reformatting
1023
1024         * g-comlin.ads: Minor reformatting
1025
1026         * s-fileio.adb: Minor reformatting
1027
1028         * sem_attr.adb: Minor code reorganization (use Nkind_In)
1029         Minor reformatting
1030
1031 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1032
1033         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1034         with s-oscons-tmplt.i.
1035
1036 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1037
1038         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1039
1040 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1041
1042         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1043         of incomplete type.
1044
1045         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1046         of a formal parameter of an incomplete type. Improve error message for
1047         other improper uses of incomplete types.
1048
1049 2008-08-06  Robert Dewar  <dewar@adacore.com>
1050
1051         * gnat_ugn.texi: Clarify -gnato documentation
1052
1053 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1054
1055         * gcc-interface/Makefile.in,
1056         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1057         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1058         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1059         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1060         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1061         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1062         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1063         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1064         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1065         Remove GNAT.Sockets.Constants. This internal package is replaced by
1066         System.OS_Constants.
1067
1068 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1069
1070         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1071         Remove obsolete targets referencing gen-soccon
1072         When generating s-oscons.ads, use a file name that includes the
1073         THREAD_KIND, to ensure that the (potentially different) version from a
1074         previous build with a different threads flavour does not get reused.
1075
1076 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1077
1078         * sem_res.adb: Minor reformatting
1079
1080         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1081         only when the operating system reports a non-existing file or directory
1082         (ENOENT), otherwise raise Name_Error.
1083
1084         * exp_ch11.adb: Minor reformatting
1085
1086 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1087
1088         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1089         incomplete, add the access_to_subprogram type to the list of private
1090         dependents only if the incomplete type will be completed in the current
1091         scope.
1092         (Build_Discriminant_Constraints): If the type of the discriminant is
1093         access_to_variable, reject a constraint that is access_to_constant.
1094
1095 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1096
1097         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1098         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1099         g-sttsne-dummy.ads: New files.
1100
1101         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1102         with pragma Unimplemented_Unit for sockets packages on Nucleus.
1103
1104 2008-08-06  Pascal Obry  <obry@adacore.com>
1105
1106         * adaint.c: Another fix for ACL support on Windows.
1107
1108 2008-08-06  Javier Miranda  <miranda@adacore.com>
1109
1110         * exp_disp (Expand_Interface_Actuals): Adds missing support for
1111         expansion of calls to subprograms using selected components.
1112
1113 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1114
1115         * sem_res.adb (Resolve_Call): Use base type to determine whether a
1116         dereference is needed because a subtype of an access_to_subprogram is
1117         simply an access-subtype
1118
1119 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1120
1121         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1122         parameters, always specify the expected separator.
1123
1124 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1125
1126         * xnmake.adb: Use new XUtil package for platform independent text
1127         output.
1128
1129 2008-08-06  Vincent Celier  <celier@adacore.com>
1130
1131         * gnat_ugn.texi: Document compiler switch -gnateG
1132
1133 2008-08-06  Quentin Ochem  <ochem@adacore.com>
1134
1135         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1136         in the case of an empty pattern size.
1137         (Compute_Result): Do not do any computation in the case of an empty
1138         pattern size.
1139         (Report_Result): Fixed computation of the overflow guard.
1140
1141 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1142
1143         * g-awk.adb (Finalize): Do not use directly objects of the type in the
1144         finalization routine to prevent elaboration order anomalies in new
1145         finalization scheme.
1146
1147 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1148
1149         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1150         declaration for the same type.
1151
1152 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1153
1154         * sem.adb: Minor rewording (comment)
1155
1156 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1157
1158         * g-comlin.adb (Define_Switch, Get_Switches): New.
1159         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1160         ungrouping switches.
1161         (For_Each_Simple_Switch): Allow more control over parameters handling.
1162         This generic method now allows ungrouping of switches with parameters
1163         and switches with more than one letter after the prefix.
1164         (Set_Command_Line): Take care of switches that are prefixed with a
1165         switch handling parameters without delimiter (-gnatya and -gnaty3 for
1166         example).
1167         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1168         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1169         the operation.
1170         (Start, Alias_Switches, Group_Switches): Take care of parameters
1171         possibly present inside a group.
1172
1173         * g-comlin.ads (Define_Switch): New method used to define a list of
1174         expected switches, that are necessary for correctly ungrouping switches
1175         with more that one character after the prefix.
1176         (Get_Switches): Method that builds a getopt string from the list of
1177         switches as set previously by Define_Switch.
1178         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1179         status of the operation. Also allow the removal of switches with
1180         parameters only.
1181         (Command_Line_Configuration_Record): Maintain a list of expected
1182         switches.
1183
1184 2008-08-06  Doug Rupp  <rupp@adacore.com>
1185
1186         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1187         TARGET_MALLOC64 clear.
1188
1189         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1190         if TARGET_MALLOC64 clear.
1191
1192         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1193         (TARGET_MALLC64): New macro. Default to clear.
1194
1195 2008-08-06  Doug Rupp  <rupp@adacore.com>
1196
1197         * gcc-interface/utils2.c (snames.h) Include
1198         (TARGET_ABI_OPEN_VMS): Initialize.
1199         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1200         for Convention C.
1201
1202 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1203
1204         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1205         null exclusion in a discriminant declaration
1206
1207         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1208         indicators when type is not an access type.
1209
1210         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1211         indicators when type is not an access type.
1212
1213 2008-08-06  Javier Miranda  <miranda@adacore.com>
1214
1215         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1216         with the target interface before expanding the code of the interface
1217         conversion.
1218
1219 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1220
1221         * freeze.adb:
1222         (Freeze_Entity): A deferred constant does not violate the restriction
1223         No_Default_Initialization,
1224
1225         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1226         can carry a null exclusion indicator, and on which an error may be
1227         posted if the indicator is redundant.
1228
1229         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1230         does not apply to a subtype mark that already excludes null.
1231
1232         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1233         exclusion does not apply to a subtype mark that already excludes null.
1234
1235 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1236
1237         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1238
1239 2008-08-05  Doug Rupp  <rupp@adacore.com>
1240
1241         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1242
1243 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1244
1245         * gsocket.h: Make this file includable in a Nucleus environment, which
1246         does not support sockets.
1247
1248         * socket.c: Remove Nucleus-specific hack.
1249
1250 2008-08-05  Pascal Obry  <obry@adacore.com>
1251
1252         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1253
1254 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1255
1256         * sem_attr.adb:
1257         (Analyze_Attribute, case 'Result): handle properly the case where some
1258         operand of the expression in a post-condition generates a transient
1259         block.
1260
1261         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1262         right-hand side when it is an anonymous access_to_subprogram, to force
1263         static accessibility check when needed.
1264
1265 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1266
1267         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1268         rule according to the change in the rule option.
1269         Add documentation for -gnatw.b/-gnatw.B
1270
1271 2008-08-05  Robert Dewar  <dewar@adacore.com>
1272
1273         * ug_words: Add entries for -gnatw.b/-gnatw.B
1274
1275         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1276
1277 2008-08-05  Vincent Celier  <celier@adacore.com>
1278
1279         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1280         (File).
1281
1282         * a-ztdeio.adb: Ditto.
1283
1284 2008-08-05  Pascal Obry  <obry@adacore.com>
1285
1286         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1287         readable attribute.
1288
1289 2008-08-05  Vincent Celier  <celier@adacore.com>
1290
1291         * s-wchwts.adb:
1292         (Wide_String_To_String): Returns a String with the same 'First as its
1293         parameter S.
1294         (Wide_Wide_String_To_String): Ditto
1295
1296         * s-wchwts.ads:
1297         (Wide_String_To_String): Document that the lowest index of the returned
1298         String is equal to S'First.
1299
1300 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1301
1302         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1303
1304         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1305         s-oscons.ads
1306
1307 2008-08-05  Robert Dewar  <dewar@adacore.com>
1308
1309         * opt.ads (Warn_On_Biased_Representation): New flag
1310
1311         * sem_ch13.adb:
1312         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1313         representation is required.
1314         (Minimum_Size): Don't allow biasing if enum rep clause case
1315
1316         * sem_warn.adb:
1317         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1318         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1319
1320         * usage.adb: Add lines for -gnatw.b/B switches
1321
1322 2008-08-05  Pascal Obry  <obry@adacore.com>
1323
1324         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1325
1326         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1327
1328 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1329
1330         * socket.c: Minor reformatting.
1331
1332 2008-08-05  Robert Dewar  <dewar@adacore.com>
1333
1334         * sem_ch3.adb: Minor reformatting
1335
1336         * prj-nmsc.adb: Minor reformatting
1337
1338 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1339
1340         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1341         visibility check on the component type if the simple test fails.
1342
1343 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
1344
1345         * init.c (__gnat_install_handler for linux): If we are building the
1346         Xenomai run time then we need to do two additional things: avoid
1347         memory swapping and transform the Linux environment task into a native
1348         Xenomai task.
1349
1350         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1351         time): Use interface to Xenomai native skin and avoid linux-specific
1352         way of setting CPU affinity.
1353         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1354
1355 2008-08-05  Bob Duff  <duff@adacore.com>
1356
1357         * checks.ads: Minor comment fix
1358
1359 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1360
1361         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1362         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1363         CS8.
1364
1365 2008-08-05  Robert Dewar  <dewar@adacore.com>
1366
1367         * mlib.adb: Minor code reorganization
1368         Minor reformatting
1369
1370         * make.adb: Minor reformatting
1371
1372         * prj-attr.ads: Minor reformatting
1373
1374         * s-os_lib.adb: Minor reformatting
1375
1376         * s-fileio.adb: Minor code reorganization
1377         Minor reformatting
1378
1379         * prj.ads: Minor reformatting
1380
1381 2008-08-05  Bob Duff  <duff@adacore.com>
1382
1383         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1384         unresolved initial value of "null", because it causes implicitly
1385         generated "=" operators to be ambiguous, and because this type should
1386         not be passed to gigi.
1387
1388 2008-08-05  Vincent Celier  <celier@adacore.com>
1389
1390         * mlib.adb: Update comments.
1391
1392         * make.adb (Switches_Of): Check for Switches (others), before checking
1393         for Default_Switches ("Ada").
1394         (Gnatmake): Use Builder'Switches (others) in preference to
1395         Builder'Default_Switches ("Ada") if there are several mains.
1396
1397         * prj-attr-pm.adb:
1398         (Add_Attribute): Add component Others_Allowed in Attribute_Record
1399         aggregate.
1400
1401         * prj-attr.adb:
1402         Add markers to indicates that attributes Switches allow others as index
1403         (Others_Allowed_For): New Boolean function, returning True for
1404         attributes with the mark.
1405         (Initialize): Recognize optional letter 'O' as the marker for
1406         associative array attributes where others is allowed as the index.
1407
1408         * prj-attr.ads:
1409         (Others_Allowed_For): New Boolean function
1410         (Attribute_Record): New Boolean component Others_Allowed
1411
1412         * prj-dect.adb:
1413         (Parse_Attribute_Declaration): For associative array attribute where
1414         others is allowed as the index, allow others as an index.
1415
1416         * prj-nmsc.adb:
1417         (Process_Binder): Skip associative array attributes with index others
1418         (Process_Compiler): Ditto
1419
1420         * prj-util.adb:
1421         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1422         index is All_Other_Names.
1423
1424         * prj.ads:
1425         (All_Other_Names): New constant
1426
1427         * prj-proc.adb:
1428         (Process_Declarative_Items): Skip associative array attribute when index
1429         is reserved word "others".
1430
1431 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
1432
1433         * gen-oscons.c: Adapt for VMS where termios.h is not available.
1434
1435 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1436
1437         * a-rttiev.adb: Minor reformatting (comments)
1438
1439         * gen-soccon.c: Rename to gen-oscons.c
1440
1441         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1442         GNAT.Sockets.Constants.
1443         Add new constants for GNAT.Serial_Communications and System.File_IO.
1444
1445 2008-08-05  Javier Miranda  <miranda@adacore.com>
1446
1447         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1448         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1449         implementation of this routine has been simplified.
1450
1451 2008-08-05  Pascal Obry  <obry@adacore.com>
1452
1453         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1454         Set_Read_Only Win32 implementation.
1455
1456 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1457
1458         * exp_strm.adb: Minor reformatting (comments)
1459
1460         * sem_ch12.adb: Minor reformatting.
1461
1462 2008-08-05  Robert Dewar  <dewar@adacore.com>
1463
1464         * sem_ch3.adb: Minor reformatting
1465
1466         * checks.adb: Minor reformatting
1467
1468 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1469
1470         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1471         restriction on Prefix.
1472
1473 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
1474
1475         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1476         methods needed to handle switch sections when building a command line.
1477         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1478         Current_Section): New public methods or methods modified to handle
1479         building command lines with sections.
1480         (Set_Command_Line): Take into account sections when analysing a switch
1481         string.
1482         (Start): Sort the switches by sections before iterating the command line
1483         elements.
1484
1485         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1486         Is_New_Section, Current_Section): New methods or methods modified to
1487         handle building command lines with sections.
1488
1489 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1490
1491         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1492         discriminants, indicate that the corresponding object declaration has
1493         no initialization, to prevent spurious warnings when the access type is
1494         null-excluding.
1495
1496 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1497
1498         * sem_res.adb (Resolve_Call): If this is a call to the predefined
1499         Abort_Task, warn if the call appears within a protected operation.
1500
1501 2008-08-04  Robert Dewar  <dewar@adacore.com>
1502
1503         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1504
1505 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1506
1507         * sem_ch3.adb:
1508         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1509         anonymous access to protected subprogram that is the return type of the
1510         specification of a subprogram body.
1511
1512         * sem_ch6.adb:
1513         (Analyze_Subprogram_Body): if the return type is an anonymous access to
1514         subprogram, freeze it now to prevent access anomalies in the back-end.
1515
1516         * exp_ch9.adb: Minor code cleanup.
1517         Make sure that new declarations are inserted into the tree before
1518         analysis (from code reading).
1519
1520 2008-08-04  Robert Dewar  <dewar@adacore.com>
1521
1522         * exp_ch5.adb:
1523         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1524         at point of return.
1525
1526 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1527
1528         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1529
1530 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1531
1532         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1533
1534 2008-08-04  Javier Miranda  <miranda@adacore.com>
1535
1536         * sem_prag.adb (Process_Convention): Add missing support for
1537          N_Private_Extension_Declaration nodes.
1538
1539 2008-08-04  Robert Dewar  <dewar@adacore.com>
1540
1541         * exp_ch4.adb: Minor reformatting
1542
1543 2008-08-04  Pascal Obry  <obry@adacore.com>
1544
1545         * adaint.h: Add missing prototype.
1546
1547         * adaint.c: Refine support for Windows file attributes.
1548
1549 2008-08-04  Robert Dewar  <dewar@adacore.com>
1550
1551         * sem_res.adb:
1552         (Valid_Conversion): Catch case of designated types having different
1553         sizes, even though they statically match.
1554
1555 2008-08-04  Javier Miranda  <miranda@adacore.com>
1556
1557         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1558         added in previous patch to handle access to subprograms.
1559
1560 2008-08-04  Robert Dewar  <dewar@adacore.com>
1561
1562         * freeze.adb:
1563         (Freeze_Entity): Only check No_Default_Initialization restriction for
1564         constructs that come from source
1565
1566 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1567
1568         * exp_ch6.adb: Minor comment fix.
1569
1570         * sem_ch4.adb: Minor reformatting.
1571
1572 2008-08-04  Robert Dewar  <dewar@adacore.com>
1573
1574         * sem_res.adb: (Large_Storage_Type): Improve previous change.
1575
1576 2008-08-04  Pascal Obry  <obry@adacore.com>
1577
1578         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1579         file attributes.
1580
1581 2008-08-04  Javier Miranda  <miranda@adacore.com>
1582
1583         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1584         for N_Formal_Object_Declaration nodes. Adding kludge required by
1585         First_Formal to provide its functionality with access to functions.
1586         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1587         for anonymous access types returned by functions.
1588
1589         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1590         conversion of null-excluding access types (required only once to force
1591         the generation of the required runtime check).
1592
1593         * sem_type.adb (Covers): minor reformating
1594
1595         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1596         with internally generated nodes. Avoid generating the error inside init
1597         procs.
1598
1599         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1600         (Resolve_Null): Generate the null-excluding check in case of assignment
1601         to a null-excluding object.
1602         (Valid_Conversion): Add missing support for anonymous access to
1603         subprograms.
1604
1605         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1606         anonymous access types whose designated type is an itype. This case
1607         occurs with anonymous access to protected subprograms types.
1608         (Analyze_Return_Type):  Add missing support for anonymous access to
1609         protected subprogram.
1610
1611         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1612         subprograms addition of missing check on matching convention. Required
1613         to properly handle access to protected subprogram types.
1614
1615         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1616         null excluding access types.
1617
1618 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1619
1620         * sem_ch12.adb: Add comments
1621
1622         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1623         access type and the allocator is not initialized, warn rather than
1624         reporting an error.
1625
1626 2008-08-04  Robert Dewar  <dewar@adacore.com>
1627
1628         * exp_ch4.adb: Minor reformatting
1629
1630         * exp_dist.adb: Minor reformatting
1631
1632         * g-comlin.adb: Minor reformatting
1633
1634 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
1635
1636         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1637         target to the type of the aggregate in the case where the target object
1638         is class-wide.
1639
1640         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1641         result type is class-wide and inherently limited, and the expression
1642         has a specific type, create a return object of the specific type, for
1643         more efficient handling of returns of build-in-place aggregates (avoids
1644         conversions of the class-wide return object to the specific type on
1645         component assignments).
1646
1647         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1648         about a type mismatch for a class-wide function with a return object
1649         having a specific type when the object declaration doesn't come from
1650         source. Such an object can result from the expansion of a simple return.
1651
1652 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
1653
1654         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1655
1656         * gcc-interface/Makefile.in: Use 64bit-specific system files when
1657         compiling for 64bit windows.
1658
1659 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
1660
1661         * g-comlin.adb (Group_Switches): Preserve the switch order when
1662         grouping and allow switch grouping of switches with more than one
1663         character extension (e.g. gnatw.x).
1664         (Args_From_Expanded): Remove this now obsolete method.
1665
1666 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1667
1668         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1669         chain at once, to ensure that type is properly decorated for back-end,
1670         when allocator appears within a loop.
1671
1672 2008-08-04  Kevin Pouget  <pouget@adacore.com>
1673
1674         * snames.h, snames.adb, snames.ads:
1675         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1676
1677         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1678         Build_To_Any_Call and Build_TypeCode_Call procedures.
1679
1680         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1681
1682         * rtsfind.ads: Add corresponding names.
1683
1684         * tbuild.adb: Update prefix restrictions to allow '_' character.
1685
1686 2008-08-04  Doug Rupp  <rupp@adacore.com>
1687
1688         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1689         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1690         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1691         use it.  Calculate pointer range overflow using 64bit types.
1692
1693 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1694
1695         * sem_ch3.adb (Access_Definition): A formal object declaration is a
1696         legal context for an anonymous access to subprogram.
1697
1698         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1699         indirect call, report success to the caller to include possible
1700         interpretation.
1701
1702         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1703         check when the type
1704         of the extended return is an anonymous access_to_subprogram type.
1705
1706         * sem_res.adb:
1707         (Resolve_Call): Insert a dereference if the type of the subprogram is an
1708         access_to_subprogram and the context requires its return type, and a
1709         dereference has not been introduced previously.
1710
1711 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1712
1713         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1714         gnatcheck support in GPS.
1715
1716 2008-08-04  Vincent Celier  <celier@adacore.com>
1717
1718         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1719         requested
1720
1721 2008-08-04  Vincent Celier  <celier@adacore.com>
1722
1723         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1724         variable, but don't check the resulting value as it has no impact on
1725         the processing.
1726
1727         * opt.ads:
1728         (Generate_Processed_File): New Boolean flag, set to True in the compiler
1729         when switch -gnateG is used.
1730
1731         * prep.adb:
1732         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1733         when the source is modified by the preprocessor and there is no
1734         preprocessing errors.
1735
1736         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1737
1738         * sinput-l.adb:
1739         (Load_File): Output the result of preprocessing if the source text was
1740         modified.
1741
1742         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1743
1744         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1745
1746         * ug_words: Add VMS equivalent for -gnateG
1747
1748         * vms_data.ads:
1749         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1750
1751 2008-08-04  Doug Rupp  <rupp@adacore.com>
1752
1753         * gcc-interface/utils2.c:
1754         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1755         in 32bit descriptor.
1756
1757 2008-08-04  Robert Dewar  <dewar@adacore.com>
1758
1759         * par-ch10.adb: Minor reformatting
1760
1761         * i-cobol.adb: Minor reformatting.
1762
1763 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1764
1765         * sem_ch3.adb (Access_Definition): Create an itype reference for an
1766         anonymous access return type of a regular function that is not a
1767         compilation unit.
1768
1769 2008-08-04  Vincent Celier  <celier@adacore.com>
1770
1771         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1772
1773         * snames.adb: New standard name Global_Compilation_Switches
1774
1775         * snames.ads: New standard name Global_Compilation_Switches
1776
1777         * make.adb: Correct spelling error in comment
1778
1779 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
1780
1781         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1782         target.
1783
1784 2008-08-04  Thomas Quinot  <quinot@adacore.com>
1785
1786         * sem_ch10.adb: Minor comment fix.
1787
1788 2008-08-04  Robert Dewar  <dewar@adacore.com>
1789
1790         * restrict.adb: Improved messages for restriction warnings
1791
1792         * restrict.ads: Improved messages for restriction messages
1793
1794         * s-rident.ads (Profile_Name): Add No_Profile
1795
1796 2008-08-04  Robert Dewar  <dewar@adacore.com>
1797
1798         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1799
1800 2008-08-04  Robert Dewar  <dewar@adacore.com>
1801
1802         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1803
1804 2008-08-04  Vincent Celier  <celier@adacore.com>
1805
1806         * prj-proc.adb:
1807         (Copy_Package_Declarations): When inheriting package Naming from a
1808         project being extended, do not inherit source exception names.
1809
1810 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
1811
1812         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1813         list of declaration to find previous subprogram, do not go to the
1814         original node of a generic unit.
1815
1816 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1819         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
1820
1821 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1822
1823         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1824         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1825         and adjust for above renaming.
1826         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1827         gnu_expr_alt_type parameter.  Convert the expression to it instead
1828         of changing its type in place.
1829         (build_function_stub): Adjust call to above function.
1830
1831 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
1832
1833         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1834         code.  Do not get full definition of deferred constants with address
1835         clause for a use.  Do not ignore deferred constant definitions with
1836         address clause.  Ignore constant definitions already marked with the
1837         error node.
1838         <object>: Remove obsolete comment.  For a deferred constant with
1839         address clause, get the initializer from the full view.
1840         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1841         Rework and remove obsolete comment.
1842         <N_Object_Declaration>: For a deferred constant with address clause,
1843         mark the full view with the error node.
1844         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1845         formatting nits.
1846
1847 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
1848
1849         * rtsfind.ads: Add block IO versions of stream routines for Strings.
1850
1851         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1852         sem_prag.adb, snames.adb, snames.ads, snames.h,
1853         par-prag.adb: Undo previous stream related changes.
1854
1855         * s-rident.ads: Add new restriction No_Stream_Optimizations.
1856
1857         * s-ststop.ads, s-ststop.adb: Comment reformatting.
1858         Define enumeration type to designate different IO mechanisms.
1859         Enchance generic package Stream_Ops_Internal to include an
1860         implementation of Input and Output.
1861
1862         * exp_attr.adb (Find_Stream_Subprogram): If restriction
1863         No_Stream_Optimization is active, choose the default byte IO
1864         implementations of stream attributes for Strings.
1865         Otherwise use the corresponding block IO version.
1866
1867 2008-08-01  Olivier Hainque  <hainque@adacore.com>
1868
1869         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1870         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1871
1872 2008-08-01  Robert Dewar  <dewar@adacore.com>
1873
1874         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1875         convert plain identifier into defining identifier.
1876
1877 2008-08-01  Robert Dewar  <dewar@adacore.com>
1878
1879         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1880         warnings
1881
1882         * lib-xref.adb: Add error defense.
1883
1884 2008-08-01  Bob Duff  <duff@adacore.com>
1885
1886         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1887
1888 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1889
1890         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1891         correct accessibility levels. In the "when others" case, retrieve the
1892         access level of the Etype of Prev rather than Prev_Orig, because the
1893         original exression has not always been analyzed.
1894
1895 2008-08-01  Robert Dewar  <dewar@adacore.com>
1896
1897         * prj-nmsc.adb: Minor reformatting
1898
1899         * sem_ch4.adb: Minor reformatting
1900         Minor code reorganization
1901
1902         * prj.ads: Minor reformatting
1903
1904         * s-os_lib.adb: Minor reformatting
1905
1906         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1907         half encodings
1908
1909         * scans.ads: Minor reformatting.
1910
1911         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1912         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1913
1914         * sem_res.adb:
1915         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1916
1917         * sem_ch12.adb: Minor comment reformatting
1918
1919         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1920         keyword
1921
1922 2008-08-01  Robert Dewar  <dewar@adacore.com>
1923
1924         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1925         generating code
1926
1927 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1928
1929         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1930         converted is a real literal and the target type has static bounds,
1931         perform the conversion exactly to prevent floating-point anomalies on
1932         some targets.
1933
1934 2008-08-01  Vincent Celier  <celier@adacore.com>
1935
1936         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
1937
1938         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
1939
1940         * prj.adb (Object_Exist_For): Use Object_Generated, not
1941         Objects_Generated that is removed and was never modified anyway.
1942
1943         * prj.ads:
1944         (Path_Syntax_Kind): New enumeration type
1945         (Language_Config): New component Path_Syntax, defaulted to Host.
1946         Components PIC_Option and Objects_Generated removed, as they are not
1947         used.
1948
1949         * snames.adb: New standard name Path_Syntax
1950
1951         * snames.ads: New standard name Path_Syntax
1952
1953 2008-08-01  Vincent Celier  <celier@adacore.com>
1954
1955         * mlib-utl.adb:
1956         (Adalib_Path): New variable to store the path of the adalib directory
1957         when procedure Specify_Adalib_Dir is called.
1958         (Lib_Directory): If Adalib_Path is not null, return its value
1959         (Specify_Adalib_Dir): New procedure
1960
1961         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1962
1963 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1964
1965         * sem_prag.adb:
1966         (Check_Precondition_Postcondition): If not generating code, analyze the
1967         expression in a postcondition that appears in a subprogram body, so that
1968         it is properly decorated for ASIS use.
1969
1970 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
1971
1972         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1973         Orig_Prev to Prev in the case where the actual is N_Function_Call or
1974         N_Identifier. This was interfering with other cases that are rewritten
1975         as N_Identifier, such as allocators, resulting in passing of the wrong
1976         accessibility level, and based on testing this code is apparently no
1977         longer needed at all.
1978
1979 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
1980
1981         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1982         procedure call whose prefix
1983         is a parameterless function call that returns an access_to_procedure.
1984
1985 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
1986
1987         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1988         for RTX. Adding a suffix that is incremented at each iteration.
1989
1990 2008-08-01  Robert Dewar  <dewar@adacore.com>
1991
1992         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1993         Raise_Exception
1994
1995 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
1996
1997         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1998         paths, which are authorized by Windows but can lead to errors when used
1999         elsewhere.
2000
2001 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2002
2003         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2004         a pending instantiation for the body of a subprogram that is to be
2005         inlined.
2006
2007         * sem_ch12.adb:
2008         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2009
2010         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2011         create a pending instance for its body, so that calls to the subprogram
2012         can be inlined by the back-end.
2013
2014 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2015
2016         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2017         rts-rtx-w32).
2018
2019 2008-08-01  Robert Dewar  <dewar@adacore.com>
2020
2021         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2022
2023 2008-08-01  Doug Rupp  <rupp@adacore.com>
2024
2025         * gnat_rm.texi: Document new mechanism Short_Descriptor.
2026
2027         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2028         mechanism values.
2029
2030         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2031         mechanism and Short_Descriptor mechanism values.
2032
2033         * snames.adb (preset_names): Add short_descriptor entry.
2034
2035         * snames.ads: Add Name_Short_Descriptor.
2036
2037         * types.h: Add new By_Short_Descriptor mechanism values.
2038
2039         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2040         mechanism and Short_Descriptor mechanism values.
2041
2042         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2043         values.
2044         (Descriptor_Codes): Modify range for new mechanism values.
2045
2046         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2047         mechanism values.
2048
2049         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2050         (gnat_to_gnu_param): Handle By_Short_Descriptor.
2051
2052         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2053         (build_vms_descriptor32): New prototype.
2054         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2055
2056         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2057         argument in call fill_vms_descriptor.
2058
2059         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2060         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2061         (build_vms_descriptor): Renamed from build_vms_descriptor64.
2062         (convert_vms_descriptor32): New function.
2063         (convert_vms_descriptor64): New function.
2064         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2065         descriptors.
2066
2067         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2068         no longer needed.
2069
2070 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2071
2072         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2073         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2074         name.
2075
2076 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2077
2078         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2079         current directory so only fully qualified names are allowed.
2080
2081 2008-08-01  Robert Dewar  <dewar@adacore.com>
2082
2083         * gnat_ugn.texi:
2084         Minor editing, remove uncomfortable use of semicolon
2085
2086         * s-ststop.adb: Add some ??? comments
2087
2088         * sem_ch10.adb: Minor reformatting
2089
2090         * snames.ads:
2091         Minor comment fixes, some pragmas were not properly
2092         categorized in the comments, documentation change only
2093
2094         * xref_lib.adb: Minor reformatting
2095
2096         * sinput.adb: Minor reformatting
2097
2098         * gnatchop.adb: Minor reformatting
2099
2100         * sem_util.ads: Minor reformatting.
2101
2102         * opt.ads: Minor documentation fix
2103
2104         * scng.adb: Minor reformatting
2105
2106         * prj-part.adb: Update comments
2107
2108 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2109
2110         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2111         tagged synchronized type, use corresponding record type.
2112
2113 2008-08-01  Doug Rupp  <rupp@adacore.com>
2114
2115         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2116         dummy transfer address for debugging.
2117
2118         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2119
2120         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2121
2122 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
2123
2124         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2125         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2126
2127 2008-07-31  Pascal Obry  <obry@adacore.com>
2128
2129         * prj-nmsc.adb: Keep Object and Exec directory casing.
2130
2131 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
2132
2133         * system-rtx-rtss.ads
2134         Change the default stack size. It is important to set the commit part.
2135
2136         * s-taprop-rtx.adb
2137         (Initialize): Get the clock resolution.
2138         (RT_Resolution): Return the clock resolution that is indicated by the
2139         system.
2140
2141         * s-parame-vxworks.adb
2142         Document that this body is used for RTX in RTSS (kernel) mode.
2143
2144         * gcc-interface/Makefile.in
2145         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2146         s-parame-vxworks.adb body in order to have reasonable stack sizes in
2147         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2148         cannot ask for too big values.
2149
2150 2008-07-31  Robert Dewar  <dewar@adacore.com>
2151
2152         * exp_aggr.adb: Minor reformatting
2153
2154         * makeutl.adb: Minor reformatting
2155
2156         * prj-env.adb: Minor reformatting
2157
2158 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2159
2160         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2161         tagged type is completed by a concurrent type.
2162
2163 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2164
2165         * sem_aggr.adb:
2166         (Resolve_Record_Aggregate): Bypass error that a type without
2167         components must have a "null record" aggregate when compiling for Ada
2168         2005, since it's legal to give an aggregate of form (others => <>)
2169         for such a type.
2170
2171 2008-07-31  Javier Miranda  <miranda@adacore.com>
2172
2173         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2174         handle synchronized types. Required to handle well the object.operation
2175         notation applied to synchronized types.
2176
2177 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2178
2179         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2180         anymore - just used internally.
2181         Added handling of very small tasks - when the theoretical size is
2182         already full at the point of the call.
2183         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2184         not need to be added to the result.
2185
2186 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2187
2188         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2189         corresponding spec is a primitive wrapper. Update comment.
2190
2191 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2192
2193         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2194         (Gen_Adainit_Ada): Add the declaration, import and value set for
2195         configuration flag Canonical_Streams.
2196         (Gen_Adainit_C): Add the declaration and initial value of external
2197         symbol __gl_canonical_streams.
2198
2199         * init.c: Update the list of global values computed by the binder.
2200
2201         * opt.ads: Add flag Canonical_Streams.
2202
2203         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2204         semantically handled pragmas.
2205
2206         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2207         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2208
2209         * snames.adb: Add character value for name Canonical_Streams.
2210
2211         * snames.ads:
2212         Add Name_Canonical_Streams to the list of configuration pragmas.
2213         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2214
2215         * snames.h: Add a definition for Pragma_Canonical_Streams.
2216
2217         * s-ststop.adb:
2218         Add a flag and import to seize the value of external symbol
2219         __gl_canonical_streams. Update comment and initial value of constant
2220         Use_Block_IO.
2221
2222         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2223
2224         * gnat_ugn.texi:
2225         Add pragma Canonical_Streams to the list of configuration pragmas.
2226
2227 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2228
2229         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2230         has the form A.B.C and B is a unit renaming, analyze its compilation
2231         unit and add a with_clause on A.b to the context.
2232
2233 2008-07-31  Vincent Celier  <celier@adacore.com>
2234
2235         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2236         return the empty string, instead of raising Constraint_Error.
2237
2238 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2239
2240         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2241
2242         * checks.adb (Apply_Accessibility_Check): Insert the check on
2243         Insert_Node.
2244
2245         * exp_attr.adb:
2246         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2247         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2248         Necessary to distinguish the insertion node because the dereferenced
2249         formal may come from a rename, but the check must be inserted in
2250         front of the attribute.
2251
2252         * exp_ch4.adb:
2253         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2254         call to Apply_Accessibility_Check.
2255         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2256         on call to Apply_Accessibility_Check.
2257         Minor reformatting
2258
2259 2008-07-31  Javier Miranda  <miranda@adacore.com>
2260
2261         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2262         types when the candidate type is a synchronized type.
2263
2264         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2265         types, and complete management of synchronized types adding missing
2266         code to handle formal that is a synchronized type.
2267
2268         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2269         are not available and cause the compiler to blowup. Found compiling
2270         test with switch -gnatc
2271
2272         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2273         Has_Correct_Formal_Mode plus code cleanup.
2274
2275 2008-07-31  Bob Duff  <duff@adacore.com>
2276
2277         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2278         recognized as two end-of-lines, but it should be just one.
2279
2280 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2281
2282         * exp_ch9.adb: Minor reformatting
2283
2284         * tbuild.ads: Fix several occurrences of incorrectly referring to
2285         Name_Find as Find_Name.
2286
2287 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2288
2289         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2290         and the context is an object declaration with non-static bounds, treat
2291         the aggregate as non-static.
2292
2293 2008-07-31  Vincent Celier  <celier@adacore.com>
2294
2295         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2296         Move back spec of Parse_Single_Project to body, as it is not called
2297         outside of package Prj.Part.
2298         (Project_Data): Remove components Linker_Name, Linker_Path and
2299         Minimum_Linker_Options as they are no longer set.
2300         Remove function There_Are_Ada_Sources from package Prj and move code
2301         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2302
2303 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2304
2305         * mlib-utl.ads: Fix typo.
2306
2307 2008-07-31  Robert Dewar  <dewar@adacore.com>
2308
2309         * sem_ch12.adb: Minor reformatting
2310
2311 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2312
2313         * gnat_ugn.texi: Change the description of the
2314         Overly_Nested_Control_Structures: now the rule always requires a
2315         positive parameter for '+R' option
2316
2317 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2318
2319         * g-pehage.adb: Minor reformatting
2320
2321 2008-07-31  Pascal Obry  <obry@adacore.com>
2322
2323         * s-finimp.ads: Minor reformatting.
2324
2325 2008-07-31  Vincent Celier  <celier@adacore.com>
2326
2327         * s-regexp.ads: Minor comment fix
2328
2329 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2330
2331         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2332         so that we can compile this file successfully with -gnatc.
2333
2334 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2335
2336         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2337         of the type when looking for stream subprograms for type String,
2338         Wide_String and Wide_Wide_String.
2339
2340         * s-ststop.adb: Change the initialization expression of constant
2341         Use_Block_IO.
2342
2343 2008-07-31  Geert Bosch  <bosch@adacore.com>
2344
2345         * arit64.c:
2346         New file implementing __gnat_mulv64 signed integer multiplication with
2347         overflow checking
2348
2349         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2350
2351         * gcc-interface/gigi.h:
2352         (standard_types): Add ADT_mulv64_decl
2353         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2354
2355         * gcc-interface/utils.c:
2356         (init_gigi_decls): Add initialization of mulv64_decl
2357
2358         * gcc-interface/trans.c:
2359         (build_unary_op_trapv): New function
2360         (build_binary_op_trapv): New function
2361         (gnat_to_gnu): Use the above functions instead of
2362         build_{unary,binary}_op
2363
2364         * gcc-interface/Makefile.in
2365         (LIBGNAT_SRCS): Add arit64.c
2366         (LIBGNAT_OBJS): Add arit64.o
2367
2368 2008-07-31  Vincent Celier  <celier@adacore.com>
2369
2370         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2371         Linker'Default_Switches are declared. Warn if they are declared.
2372
2373 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2374
2375         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2376         Insert_Actions to place the pointer declaration in the code, rather
2377         than Insert_Before_And_Analyze, so that insertions of temporaries are
2378         kept in the proper order when transient scopes are present.
2379
2380
2381 2008-07-31  Robert Dewar  <dewar@adacore.com>
2382
2383         * einfo.adb (Spec_PPC): Now defined for generic subprograms
2384
2385         * einfo.ads (Spec_PPC): Now defined for generic subprograms
2386
2387         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2388         subprogram case
2389
2390 2008-07-31  Vincent Celier  <celier@adacore.com>
2391
2392         * s-os_lib.adb: Minor comment fix
2393
2394 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2395
2396         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2397         transfer pre/postconditions from generic copy to original tree, so that
2398         they will appear in each instance.
2399         (Process_PPCs): Do not transform postconditions into a procedure in a
2400         generic context, to prevent double expansion of check pragmas.
2401
2402         * sem_attr.adb: In an instance, the prefix of the 'result attribute
2403         can be the renaming of the
2404         current instance, so check validity of the name accordingly.
2405
2406 2008-07-31  Robert Dewar  <dewar@adacore.com>
2407
2408         * mlib-utl.ads: Minor reformatting
2409
2410 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2411
2412         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2413         from context. This attribute must be usable in Ada95 mode.
2414         The attribute can appear in the body of a function marked
2415         Inline_Always, but in this case the postocondition is not enforced.
2416
2417         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2418         of an inlined call pre- and postconditions are legal
2419
2420 2008-07-31  Vincent Celier  <celier@adacore.com>
2421
2422         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2423         were for gprmake only
2424
2425 2008-07-31  Robert Dewar  <dewar@adacore.com>
2426
2427         * gnat_ugn.texi: Update -gnatN documentation.
2428
2429         * gnat_rm.texi: Add note about pre/postcondition
2430         pragmas not checked in conjunction with front-end inlining.
2431
2432 2008-07-31  Robert Dewar  <dewar@adacore.com>
2433
2434         * g-pehage.adb, g-pehage.ads: Minor reformatting
2435
2436 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2437
2438         * mlib-utl.ads, prj-makr.ads: Add comments.
2439
2440 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2441
2442         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2443         [WINDOWS]: Add s-winext.o.
2444
2445 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2446
2447         PR ada/36554
2448         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2449         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2450         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2451         Set precision to 1 for subtype of BOOLEAN_TYPE.
2452         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2453         (make_type_from_size): Deal with BOOLEAN_TYPE.
2454         * gcc-interface/misc.c (gnat_print_type): Likewise.
2455         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2456         Set boolean_type_node as its translation in the table, as well
2457         as boolean_false_node for False and boolean_true_node for True.
2458         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2459         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2460         (create_param_decl): Deal with BOOLEAN_TYPE.
2461         (build_vms_descriptor): Likewise.
2462         (build_vms_descriptor64): Likewise.
2463         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2464
2465 2008-07-30  Robert Dewar  <dewar@adacore.com>
2466
2467         * exp_ch9.adb: Minor reformatting
2468
2469         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2470         if no primitive operation is found.
2471
2472         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2473
2474         * sem_ch8.adb: Minor reformatting
2475
2476 2008-07-30  Laurent Pautet  <pautet@adacore.com>
2477
2478         * g-pehage.adb:
2479         Remove a limitation on the length of the words handled by the minimal
2480         perfect hash function generator.
2481
2482         * g-pehage.ads:
2483         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2484         Fix some typos.
2485
2486 2008-07-30  Robert Dewar  <dewar@adacore.com>
2487
2488         * gnatlink.adb: Minor reformatting
2489
2490 2008-07-30  Thomas Quinot  <quinot@adacore.com>
2491
2492         * rtsfind.adb (Check_RPC): Check version consistency even when not
2493         generating RCI stubs. Provide more detailed error message in case of
2494         mismatch.
2495
2496 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
2497
2498         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2499         as a actual in an instance, check for a missing attribute to prevent
2500         program_error on an illegal program.
2501
2502         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2503         error if primitive is not found, so that exception can be handled
2504         elsewhere on illegal programs.
2505
2506 2008-07-30  Robert Dewar  <dewar@adacore.com>
2507
2508         * uintp.adb (UI_GCD): Fix potential overflow
2509
2510 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
2511
2512         * einfo.adb: Flag245 is now used.
2513         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2514         check to include functions.
2515         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2516         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2517         include functions.
2518         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2519         to the list of displayed flags.
2520
2521         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2522         Wrapped_Entity. These two flags are now present in functions.
2523         New flag Is_Private_Primitive.
2524         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2525
2526         * exp_ch9.adb:
2527         (Build_Wrapper_Bodies): New subprogram.
2528         (Build_Wrapper_Body): The spec and body have been moved to in
2529         Build_Wrapper_ Bodies. Code cleanup.
2530         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2531         Wrappers are now generated for primitives declared between the private
2532         and full view of a concurrent type that implements an interface.
2533         (Build_Wrapper_Specs): New subprogram.
2534         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2535         creation mechanism with a call to Build_Wrapper_Bodies.
2536         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2537         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2538         (Expand_N_Task_Body): Replace the wrapper body creation
2539         mechanism with a call to Build_Wrapper_Bodies.
2540         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2541         creation mechanism with a call to Build_Wrapper_Specs.
2542         (Is_Private_Primitive_Subprogram): New subprogram.
2543         (Overriding_Possible): Code cleanup.
2544         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2545
2546         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2547
2548         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2549         (Process_Full_View): Build wrapper specs for all primitives
2550         that belong to a private view completed by a concurrent type
2551         implementing an interface.
2552
2553         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2554         is a primitive of a
2555         concurrent type with a private view that implements an interface, try to
2556         find the proper spec.
2557         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2558         primitive if the type of its first parameter is a non-generic tagged
2559         private type.
2560         (Analyze_Subprogram_Specification): Code reformatting.
2561         (Disambiguate_Spec): New routine.
2562         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2563         (Is_Private_Concurrent_Primitive): New routine.
2564
2565         * sem_ch6.ads:
2566         (Find_Corresponding_Spec): Add a formal to control the output of errors.
2567
2568 2008-07-30  Doug Rupp  <rupp@adacore.com>
2569
2570         * gigi.h (build_vms_descriptor64): New function prototype.
2571         (fill_vms_descriptor): Modified function prototype.
2572
2573         * utils.c (build_vms_descriptor64): New function.
2574
2575         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2576
2577         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2578         argument.
2579
2580         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2581         64bit and 32bit descriptor and save the 64bit version as an alternate
2582         TREE_TYPE in the parameter.
2583         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2584         thin pointer.
2585
2586         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2587
2588 2008-07-30  Robert Dewar  <dewar@adacore.com>
2589
2590         * make.adb: Minor reformatting
2591
2592         * mlib-utl.adb: Minor reformatting
2593
2594         * osint.ads: Minor reformatting
2595
2596 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
2597
2598         * adaint.c
2599         (__gnat_file_exists): Do not use __gnat_stat for RTX.
2600         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2601         avoid the use of this symbol from libgcc.a in RTX kernel mode.
2602
2603         * cio.c
2604         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2605         the function RtPrintf for console output.
2606
2607         * argv.c Do not use the environ variable for RTX.
2608
2609         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2610         been moved before the call to Osint.Add_Default_Search_Dirs in order
2611         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2612         from the appropriate run time.
2613
2614         * targparm.ads
2615         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2616         target is a RTSS module for RTX.
2617
2618         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2619         RTX_RTSS_Kernel_Module
2620         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2621
2622         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2623         exception handling mechanism for Windows and RTX in Win32 mode, but
2624         not for RTX in kernel mode (RTSS).
2625         (LIBGNAT_SRCS): Remove ada.h
2626
2627 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2628
2629         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2630         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2631         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2632         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2633         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2634         ALL_ADA_CFLAGS): Remove.
2635         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2636         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2637         (GCC_CFLAGS): Remove X_CFLAGS.
2638         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2639         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2640         (ADA_CFLAGS): Substitute.
2641
2642 2008-07-30  Laurent Guerby  <laurent@guerby.net>
2643
2644         PR ada/5911
2645         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2646         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2647         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2648         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2649         by stamp-gnatlib2-rts.
2650
2651 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2652
2653         PR documentation/15479
2654         * gnat-style.texi: Remove AdaCore copyright statement and GPL
2655         statement for GNAT.  Add @copying stanza, use it.  Update to
2656         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
2657         title as Front-Cover Text.
2658         * gnat_rm.texi: Likewise.
2659         * gnat_ugn.texi: Likewise.
2660
2661 2008-07-29  Jan Hubicka  <jh@suse.cz>
2662
2663         * trans.c (process_inlined_subprograms): Remove tree_really_inline
2664         check.
2665
2666 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
2667
2668         * gcc-interface: New directory.
2669
2670         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2671         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2672         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2673         to gcc-interface subdirectory.
2674
2675 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2676
2677         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2678
2679 2008-07-28  Jan Hubicka  <jh@suse.cz>
2680
2681         * misc.c (gnat_post_options): Do not set flag_no_inline.
2682
2683 2008-07-28  Richard Guenther  <rguenther@suse.de>
2684
2685         Merge from gimple-tuples-branch.
2686
2687         2008-07-22  Olivier Hainque  <hainque@adacore.com>
2688
2689         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2690         this is called for an elab proc to be discarded if empty.
2691         * utils.c (end_subprog_body): Honor ELAB_P.
2692         (build_function_stub): Adjust call to end_subprog_body.
2693         * trans.c (Subprogram_Body_to_gnu): Likewise.
2694         (gigi): Reorganize processing of elab procs to prevent
2695         gimplifying twice, using the new end_subprog_body argument.
2696
2697         2008-07-19  Richard Guenther  <rguenther@suse.de>
2698
2699         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2700         (utils.o): Likewise.
2701         * trans.c: Include tree-iterator.h.
2702         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
2703         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2704         (set_expr_location_from_node): Likewise.
2705         (gigi): Tuplify.
2706         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2707         of GENERIC_NEXT.
2708         * utils.c: Include tree-iterator.h.
2709         * gigi.h (gnat_gimplify_expr): Adjust prototype.
2710
2711         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
2712
2713         * trans.c: Include gimple.h instead of tree-gimple.h.
2714         * utils.c: Same.
2715
2716         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
2717
2718         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2719
2720 2008-07-25  Jan Hubicka  <jh@suse.cz>
2721
2722         * utils.c (end_subprog_body): Remove inline trees check.
2723         * misc.c (gnat_post_options): Do not set flag_inline_trees.
2724
2725 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2726
2727         * raise-gcc.c: Move tsystem.h before tm.h.
2728
2729 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
2730
2731         * gnathtml.pl: New file.
2732
2733 2008-07-19  Olivier Hainque  <hainque@adacore.com>
2734
2735         * targtyps.c (get_target_default_allocator_alignment): Use
2736         MALLOC_ABI_ALIGNMENT.
2737
2738 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2739
2740         * adaint.c (__MINGW32__ section): Include ctype.h and define
2741         a fallback ISALPHA if IN_RTS.
2742         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2743
2744 2008-07-17  Olivier Hainque  <hainque@adacore.com>
2745
2746         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2747         argument, to apply to references in addition to definitions.  Prevent
2748         setting TREE_STATIC on externals.
2749         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2750
2751 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2752
2753         PR documentation/15479
2754         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2755         Replace backets around optional parameters with @ovar
2756         where possible, use @r{[}, @r{]} otherwise.
2757         Replace some @r, @i, and @emph with @var where appropriate.
2758
2759 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2760
2761         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2762
2763 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2764
2765         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2766         -Wc++-compat warnings.
2767         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2768         __gnat_locate_exec_on_path): Likewise.
2769         * decl.c (annotate_value): Likewise.
2770         * misc.c (gnat_handle_option): Likewise.
2771         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2772         post_error_ne_tree): Likewise.
2773
2774 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
2775
2776         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2777         version of its type, attempt to first convert its elements.
2778
2779 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
2780
2781         * Makefile.in: Fix *86 kfreebsd target specific pairs.
2782
2783 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
2784
2785         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2786
2787 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
2788
2789         * utils2.c (known_alignment): Derive the alignment from pointed-to
2790         types only if it is otherwise unknown.
2791         <INTEGER_CST>: Tidy.
2792         <MULT_EXPR>: Likewise.
2793         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2794         that of the base.
2795
2796 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2797
2798         PR ada/36573
2799         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2800
2801 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2802
2803         * gnat_rm.texi (Implementation Defined Characteristics)
2804         (Standard Library Routines): Use @smallexample for indented
2805         text.  Drop Indentation outside examples.
2806         * gnat_ugn.texi: Likewise.
2807
2808 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2809
2810         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2811         if undefined.
2812         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2813         realignment with force_align_arg_pointer attribute on foreign
2814         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2815
2816 2008-06-13  Olivier Hainque  <hainque@adacore.com>
2817
2818         * utils.c (rest_of_record_type_compilation): When computing
2819         encodings for the components of a variable size type, early
2820         strip conversions on the current position expression to make
2821         sure it's shape is visible.  Use remove_conversions for this
2822         purpose.
2823
2824 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2825
2826         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2827         constrained subtype of a discriminated type, discard the fields that
2828         are beyond its limits according to its size.
2829
2830 2008-06-10  Olivier Hainque  <hainque@adacore.com>
2831
2832         * utils.c (create_subprog_decl): If this is for the 'main' entry
2833         point according to the asm name, redirect main_identifier_node.
2834
2835 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2836
2837         * decl.c (components_to_record): Adjust the packedness for the
2838         qualified union as well.
2839
2840 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
2841
2842         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2843         checks non fatal.
2844
2845 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
2846
2847         * sem_res.adb (Large_Storage_Type): A type is large if it
2848         requires as many bits as Positive to store its values and its
2849         bounds are known at compile time.
2850         * sem_ch13.adb (Minimum_Size): Note that this function returns
2851         0 if the size is not known at compile time.
2852
2853 2008-06-06  Nicolas Setton  <setton@adacore.com>
2854             Olivier Hainque  <hainque@adacore.com>
2855
2856         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2857         attribute, parallel descriptive type attached to another
2858         type for debug info generation purposes.
2859         * utils.c (add_parallel_type): New function, register
2860         parallel type to be attached to a type.
2861         (get_parallel_type): New function, fetch a registered
2862         parallel type, if any.
2863         (rest_of_record_type_compilation): Register the parallel
2864         type we make for variable size records.
2865         * gigi.h (add_parallel_type, get_parallel_type): Declare.
2866         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2867         parallel debug types we make.
2868         * trans.c (extract_encoding, decode_name): New functions.
2869         (gigi): If the DWARF attribute extensions are available, setup
2870         to use them.
2871         * lang.opt: Register language specific processing request
2872         for -gdwarf+.
2873         * misc.c (gnat_dwarf_extensions): New global variable. How much
2874         do we want of our DWARF extensions. 0 by default.
2875         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2876         (gnat_post_options): Map gnat_dwarf_extensions to the
2877         commonuse_gnu_debug_info_extensions for later processing.
2878
2879 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
2880
2881         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2882
2883 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2884
2885         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2886         * gnat_ugn.texi (Style Checking)
2887         (Adding the Results of Compiler Checks to gnatcheck Output)
2888         (Example of Binder Output File): Fix typos.
2889         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2890         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2891         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2892         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2893         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2894         sinfo.ads, utils.c: Fix typos in comments.
2895         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2896
2897 2008-05-29  Thomas Quinot  <quinot@adacore.com>
2898
2899         * sem_eval.adb: Minor reformatting
2900
2901 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
2902
2903         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2904         is abstract, do not apply abstractness check on subprogram if this is
2905         a renaming declaration.
2906
2907 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
2908
2909         PR ada/864
2910         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2911         allow recognition of program suffix in addition to prefix.
2912
2913         * gnatchop.adb (Locate_Executable): Add support for prefix.
2914
2915         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2916         mlib-utl.adb: Adjust calls to Program_Name.
2917
2918 2008-05-29  Robert Dewar  <dewar@adacore.com>
2919
2920         * sem_ch3.adb: Minor reformatting
2921         * sem_prag.adb: Minor reformatting
2922         * sem_res.adb: Minor reformatting
2923         * sinput-p.ads: Minor reformatting
2924
2925 2008-05-29  Javier Miranda  <miranda@adacore.com>
2926
2927         * sem_util.adb:
2928         (Abstract_Interface_List): Add missing support for full type-declaration
2929         associated with synchronized types.
2930
2931 2008-05-29  Robert Dewar  <dewar@adacore.com>
2932
2933         * sem_eval.adb (Is_Same_Value): Take care of several more cases
2934
2935 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2936
2937         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2938         access type, wrap the expression in a conversion to force an
2939         accessibility check.
2940
2941         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2942         accessibility checks even when expansion is disabled in order to
2943         generate messages in the presence of previous errors or in
2944         semantics-only mode.
2945
2946 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
2947
2948         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2949         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2950
2951 2008-05-28  Vincent Celier  <celier@adacore.com>
2952
2953         PR ada/34446
2954         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2955         preprocessing expressions
2956
2957 2008-05-28  Vincent Celier  <celier@adacore.com>
2958
2959         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2960         for preprocessing
2961
2962         * sinput-p.ads: Minor comment update and reformatting
2963
2964 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
2965
2966         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2967         type has a deeper level than any master only when it is the type of an
2968         access parameter.
2969
2970 2008-05-28  Javier Miranda  <miranda@adacore.com>
2971
2972         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2973
2974 2008-05-28  Javier Miranda  <miranda@adacore.com>
2975
2976         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2977         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2978         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2979         Add code that was previously located in
2980         Find_Overridden_Synchronized_Primitive because it is only used here.
2981
2982 2008-05-28  Sergey Rybin  <rybin@adacore.com>
2983
2984         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2985         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2986
2987 2008-05-28  Robert Dewar  <dewar@adacore.com>
2988
2989         * restrict.ads:
2990         Add missing restrictions, and properly label all GNAT defined ones
2991
2992         * rtsfind.ads:
2993         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2994         Add entry for Ada.Task_Termination.Set_Specific_Handler
2995         Add entry for Ada.Task_Termination.Specific_Handler
2996
2997         * s-rident.ads:
2998         Add missing restrictions and properly mark all gnat defined ones
2999
3000         * sem_ch3.adb:
3001         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3002
3003         * sem_res.adb:
3004         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3005
3006         * gnat_rm.texi: Add missing restrictions, and properly label all
3007         GNAT defined ones
3008
3009 2008-05-28  Robert Dewar  <dewar@adacore.com>
3010
3011         * restrict.adb:
3012         (Check_Restriction): violation of restriction No_Finalization is
3013         treated as a serious error to stop expansion
3014
3015 2008-05-28  Robert Dewar  <dewar@adacore.com>
3016
3017         * exp_util.adb: Minor reformatting
3018         * exp_util.ads: Minor reformatting.
3019
3020 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
3021
3022         * Make-lang.in: Remove gprmake.
3023
3024         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3025
3026 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3027
3028         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3029         improper progenitor names, and avoid cascaded errors.
3030
3031 2008-05-28  Robert Dewar  <dewar@adacore.com>
3032
3033         * gnat_rm.texi: Add note on Old giving warning when applied to constant
3034
3035         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3036         a constant
3037
3038 2008-05-28  Robert Dewar  <dewar@adacore.com>
3039
3040         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3041         size
3042
3043 2008-05-28  Robert Dewar  <dewar@adacore.com>
3044
3045         * exp_ch5.adb:
3046         (Expand_Simple_Function_Return): Copy unaligned result into temporary
3047
3048 2008-05-28  Javier Miranda  <miranda@adacore.com>
3049
3050         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3051         for user-defined predefined primitives.
3052
3053         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3054         (Find_Overridden_Synchronized_Primitive): Ditto.
3055
3056         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3057
3058 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3059
3060         * a-ststio.adb, s-direio.adb:
3061         Further code clean up of previous change.
3062         Update comments.
3063
3064 2008-05-27  Vincent Celier  <celier@adacore.com>
3065
3066         * prj-nmsc.adb: Minor reformatting
3067
3068 2008-05-27  Bob Duff  <duff@adacore.com>
3069
3070         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3071         untagged private type with a tagged full type, where the full type has
3072         a self reference, create the corresponding class-wide type early, in
3073         case the self reference is "access T'Class".
3074
3075 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3076
3077         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3078         tasks and context is an object declaration. create master entity before
3079         expansion.
3080
3081 2008-05-27  Robert Dewar  <dewar@adacore.com>
3082
3083         * mlib-prj.adb: Minor reformatting
3084
3085         * prj-part.adb: Minor reformatting
3086
3087         * prj.ads: Minor reformatting
3088
3089         * exp_ch3.adb: Minor reformatting.
3090
3091         * sem_ch3.ads: Minor reformatting
3092
3093         * sem_eval.adb: Minor reformatting
3094
3095 2008-05-27  Vincent Celier  <celier@adacore.com>
3096
3097         * gnatcmd.adb:
3098         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3099
3100 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3101
3102         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3103         tasks, create an activation chain now, before the expansion into
3104         assignments and build-in-place calls that require the presence of an
3105         activation chain.
3106         (Backend_Processing_Possible): If the component type is inherently
3107         limited, the aggregate must be expanded into individual built-in-place
3108         assignments.
3109
3110         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3111         determine whether an allocation extra parameter must be built, to
3112         handle case of a private type whose full type is a discriminated type
3113         with defaults.
3114
3115 2008-05-27  Bob Duff  <duff@adacore.com>
3116
3117         * gnat_rm.texi:
3118         Document the new behavior regarding trampolines.
3119
3120 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3121
3122         * a-direio.adb, a-sequio.adb: Replace address clause by
3123         unrestricted_access, simpler and compatible with .NET.
3124
3125 2008-05-27  Vincent Celier  <celier@adacore.com>
3126
3127         * prj-part.adb:
3128         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3129         a project file, so that symbolic links are not resolved.
3130
3131 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3132
3133         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3134         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3135         portable across GNAT targets, since this kind of address clause is not
3136         supported by VM back-ends (.NET/JGNAT).
3137
3138 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3139
3140         * bindgen.adb: Update comments.
3141
3142         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3143
3144 2008-05-27  Vincent Celier  <celier@adacore.com>
3145
3146         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3147         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3148         mlib-tgt.adb, prj-env.adb, prj-env.ads:
3149         (Path_Information): New record type
3150         Use component of type Path_Information when there are two paths, one in
3151         canonical format and one in display format.
3152         Update the project manager to these new components.
3153
3154 2008-05-27  Robert Dewar  <dewar@adacore.com>
3155
3156         * makeutl.adb: Minor reformatting
3157         * prj-nmsc.adb: Minor reformatting
3158         * s-stausa.adb: Minor reformatting
3159         * s-stausa.ads: Minor reformatting
3160         * sem_ch6.adb: Minor reformatting
3161
3162 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3163
3164         * sem_res.adb: Minor comment fixes
3165
3166 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3167
3168         * makeutl.adb: Minor code reorganization
3169
3170         * exp_aggr.adb: Add ??? comment
3171         Fix typo
3172
3173         * exp_ch6.adb: Minor reformatting
3174
3175 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3176
3177         * s-stausa.adb (Initialize): Updated result initialization, and
3178         initialization of environment stack.
3179         (Fill_Stack): Improved computation of the pattern zone, taking into
3180         account already filled at the calling point.
3181         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3182         Measure and Overflow_Guard.
3183         (Report_Result): Fixed computation of the result using new fields of
3184         Stack_Analyzer.
3185
3186         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3187         params by more explicit Stack_Size / Max_Pattern_Size params.
3188         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3189         Added Stack_Used_When_Filling field.
3190         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3191         Min_Measure and Max_Measure fields.
3192
3193         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3194
3195 2008-05-27  Vincent Celier  <celier@adacore.com>
3196
3197         * prj-nmsc.adb:
3198         (Check_File): Make sure that a unit that replaces the same unit in a
3199          project being extended is properly processed.
3200
3201 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3202
3203         * sem_ch3.adb:
3204         (Get_Discr_Value): Remove obsolete code that failed to find the value
3205         of a discriminant for an inherited task component appearing in a type
3206         extension.
3207
3208 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3209
3210         (System.File_IO.{Close, Delete, Reset}):
3211         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3212
3213         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3214         Pass File parameter by reference.
3215
3216 2008-05-27  Vincent Celier  <celier@adacore.com>
3217
3218         * prj-nmsc.adb:
3219         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3220         sources of the same project that have the same object file name.
3221         (Find_Explicit_Sources): Always remove a source exception that was not
3222         found.
3223
3224 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3225
3226         * sem_ch3.adb: Minor reformatting
3227
3228 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3229
3230         * sem_ch6.adb:
3231         (Is_Interface_Conformant): Handle properly a primitive operation that
3232         overrides an interface function with a controlling access result.
3233         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3234         inherited and overriding operations, omit as well the conformance check
3235         on result types, to prevent spurious errors.
3236
3237 2008-05-27  Vincent Celier  <celier@adacore.com>
3238
3239         * makeutl.ads, makeutl.adb:
3240         (Set_Location): New procedure
3241         (Get_Location): New function
3242         (Update_Main): New procedure
3243
3244 2008-05-27  Vincent Celier  <celier@adacore.com>
3245
3246         * prj-nmsc.adb:
3247         (Check_Library): Allow standard project to be extended as a static
3248         library project.
3249         (Get_Mains): Do not inherit attribute Main in an extending library
3250         project.
3251
3252 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3253
3254         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3255         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3256         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3257         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3258         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3259         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3260         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3261         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3262         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3263         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3264
3265 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3266
3267         * sem_attr.adb: add guard to previous patch.
3268
3269 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3270
3271         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3272         a synchronized tagged type, do not attempt to build dispatch table for
3273         full view. The table is built for the corresponding record type, which
3274         has its own declaration.
3275
3276 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3277
3278         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3279         to the known type entity E, rather than setting it to Any_Type. Fixes
3280         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3281         for objects whose type had an illegal constraint.
3282
3283 2008-05-27  Vincent Celier  <celier@adacore.com>
3284
3285         * gnat_ugn.texi:
3286         Add succinct documentation for attribute Excluded_Source_List_File
3287
3288 2008-05-27  Vincent Celier  <celier@adacore.com>
3289
3290         * prj-attr.adb: Add new project level attribute Map_File_Option
3291
3292         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3293
3294         * prj.ads: Minor reformatting and comment update
3295         (Project_Configuration): New component Map_File_Option
3296
3297         * snames.adb: New standard name Map_File_Option
3298
3299         * snames.ads: New standard name Map_File_Option
3300
3301 2008-05-27  Vincent Celier  <celier@adacore.com>
3302
3303         * xsnames.adb: Remove unused variable Oname
3304
3305 2008-05-27  Doug Rupp  <rupp@adacore.com>
3306
3307         * exp_ch6.adb:
3308         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3309
3310         * exp_vfpt.ads:
3311         (Expand_Vax_Foreign_Return): Fix comments.
3312
3313 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3314
3315         * exp_dist.adb: Minor reformating
3316
3317 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3318
3319         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3320         No_Default_Initialization, which is now delayed until the freeze point
3321         of the object. Add a comment about deferral of the check.
3322
3323         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3324         on objects is moved here.
3325
3326 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3327
3328         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3329         (Compare_Array_S16): Adjust for above change.
3330         * s-casi32.adb (Uword): Likewise.
3331         (Compare_Array_S32): Likewise.
3332         * s-casi64.adb (Uword): Likewise.
3333         (Compare_Array_S64): Likewise.
3334         * s-caun16.adb (Uhalf): Likewise.
3335         (Compare_Array_U16): Likewise.
3336         * s-caun32.adb (Uword): Likewise.
3337         (Compare_Array_U32): Likewise.
3338         * s-caun64.adb (Uword): Likewise.
3339         (Compare_Array_U64): Likewise.
3340
3341 2008-05-26  Robert Dewar  <dewar@adacore.com>
3342
3343         * exp_ch6.adb: Add ??? comment for previous change
3344
3345         * exp_vfpt.adb: Minor reformatting
3346
3347         * exp_vfpt.ads: Add ??? comment for last change
3348
3349         * sem_attr.adb: Add some ??? comments for previous change
3350
3351         * s-vaflop.ads: Add comments for previous change
3352
3353 2008-05-26  Doug Rupp  <rupp@adacore.com>
3354
3355         * s-vaflop-vms-alpha.adb:
3356         Remove System.IO use clause, to prevent spurious ambiguities when
3357         package is access through rtsfind.
3358
3359 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3360
3361         * tree_io.ads (ASIS_Version_Number): Update because of the changes
3362         made in front-end
3363
3364 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3365
3366         * sem_attr.adb:
3367         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
3368         converted to S (A)'address only if A .. B is known to be a non-null
3369         range.
3370
3371 2008-05-26  Doug Rupp  <rupp@adacore.com>
3372
3373         * s-vaflop.adb:
3374         (Return_D, Return_F, Return_G): New functions.
3375
3376         * s-vaflop.ads:
3377         (Return_D, Return_F, Return_G): New functions.
3378
3379         * exp_vfpt.adb:
3380         (Expand_Vax_Foreign_Return): New procedure
3381
3382         * exp_vfpt.ads:
3383         (Expand_Vax_Foreign_Return): New procedure
3384
3385         * rtsfind.ads:
3386         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3387         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3388
3389         * exp_ch6.adb:
3390         Import Exp_Vfpt
3391         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3392
3393         * s-vaflop-vms-alpha.adb:
3394         (Return_D, Return_F, Return_G): New functions.
3395
3396 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3397
3398         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3399         init proc entity when there is actual default initialization associated
3400         with the component type, to avoid spurious errors on objects of scalar
3401         array types that are marked Is_Public when No_Default_Initialization
3402         applies.
3403
3404 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3405
3406         * rtsfind.ads, rtsfind.adb:
3407         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3408         (Check_RPC): Support per-PCS-kind API versioning.
3409
3410         exp_dist.ads, exp_dist.adb:
3411         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3412         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3413          library function Get_RACW.
3414         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3415         library function Get_Reference.
3416         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3417         through an intermediate Any.
3418         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3419         going through an intermediate Any.
3420
3421         * sem_dist.adb: Minor reformatting.
3422
3423 2008-05-26  Javier Miranda  <miranda@adacore.com>
3424
3425         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3426         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3427         (Is_Internal): Adding documentation on internal entities that have
3428         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3429
3430         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3431         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3432         Added assertion to force entities with this attribute to have
3433         attribute Is_Internal set to True.
3434         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3435
3436         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3437         renamed as Derive_Progenitor_Subprograms. In addition, its code is
3438         a new implementation.
3439         (Add_Interface_Tag_Components): Remove special management of
3440         synchronized interfaces.
3441         (Analyze_Interface_Declaration): Minor reformating
3442         (Build_Derived_Record_Type): Minor reformating
3443         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3444         predefined primitive inherited from interface type because the body of
3445         internally generated predefined primitives of tagged types are generated
3446         later by Freeze_Type
3447         (Derive_Subprogram): Avoid generating an internal name if the parent
3448         subprogram overrides an interface primitive.
3449         (Derive_Subprograms): New implementation that keeps separate the
3450         management of tagged types not implementing interfaces, from tagged
3451         types that implement interfaces.
3452         (Is_Progenitor): New implementation.
3453         (Process_Full_View): Add documentation
3454         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3455         by call to Derive_Progenitor_Subprograms.
3456
3457         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3458         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3459         Skip_Controlling_Formals.
3460
3461         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3462         (Check_Conventions): New implementation. Remove local subprogram
3463         Skip_Check. Remove formal Search_From of routine Check_Convention.
3464         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3465         Skip_Controlling_Formals.
3466         (New_Overloaded_Entity): Enable addition of predefined dispatching
3467         operations.
3468
3469         * sem_disp.ads
3470         (Find_Primitive_Covering_Interface): New subprogram.
3471
3472         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3473         the task body procedure as a primitive of the corresponding tagged
3474         type.
3475         (Check_Operation_From_Private_Type): Avoid adding twice an entity
3476         to the list of primitives.
3477         (Find_Primitive_Covering_Interface): New subprogram.
3478         (Override_Dispatching_Operation): Add documentation.
3479
3480         * sem_type.adb (Covers): Minor reformatings
3481
3482         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3483         Collect_Interfaces.
3484         Rename formal.
3485         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3486         (Implements_Interface): New subprogram.
3487         (Is_Parent): Removed.
3488         (Primitive_Names_Match): New subprogram.
3489         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3490         (Ultimate_Alias): New subprogram.
3491
3492         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3493         Collect_Interfaces.
3494         Remove special management for synchronized types. Rename formal. Remove
3495         internal subprograms Interface_Present_In_Parent and Add_Interface.
3496         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3497         on non-record types by code to return false in such case.
3498         (Implements_Interface): New subprogram.
3499         (Is_Parent): Removed. No special management is now required for
3500         synchronized types covering interfaces.
3501         (Primitive_Names_Match): New subprogram.
3502         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3503         (Ultimate_Alias): New subprogram.
3504
3505         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3506         Add internal entities associated with secondary dispatch tables to
3507         the list of tagged type primitives that are not interfaces.
3508         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3509         (Make_Predefined_Primitive_Specs): Code reorganization to improve
3510         the management of predefined equality operator. In addition, if
3511         the type has an equality function corresponding with a primitive
3512         defined in an interface type, the inherited equality is abstract
3513         as well, and no body can be created for it.
3514
3515         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3516         exp_util to exp_disp.
3517         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3518         an entity corresponds with one of the predefined primitives required
3519         to implement interfaces.
3520         Update copyright notice.
3521
3522         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3523         final check on abstract subprograms all the primitives associated with
3524         interface primitives because they must be visible in the public and
3525         private part.
3526         (Write_DT): Use Find_Dispatching_Type to locate the name of the
3527         interface type. This allows the use of this routine, for debugging
3528         purposes, when the tagged type is not fully decorated.
3529         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3530         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3531         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3532         entity corresponds with one of the predefined primitives required to
3533         implement interfaces.
3534
3535         * exp_util.adb (Find_Interface_ADT): New implementation
3536         (Find_Interface): Removed.
3537
3538         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3539         list of interfaces associated with nodes
3540         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3541
3542 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3543
3544         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3545         condition for assignment to temporary.
3546
3547 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3548
3549         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3550         checks on the upper bound if the index type is a modular type, to
3551         prevent wrap-around computations when size is close to upper bound of
3552         type.
3553
3554 2008-05-26  Robert Dewar  <dewar@adacore.com>
3555
3556         * sem_ch3.adb: Minor reformatting
3557
3558 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3559
3560         * sem_ch12.adb (Remove_Parent): Use specification of instance
3561         to retrieve generic parent,
3562         to handle properly the case where the instance is a child unit.
3563         Add guard to handle properly wrapper packages.
3564         Minor reformatting
3565
3566 2008-05-26  Thomas Quinot  <quinot@adacore.com>
3567
3568         * sinfo.ads: Minor reformatting
3569
3570 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3571
3572         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3573         Generate a tag check when the result subtype of a function, defined by
3574         an access definition, designates a specific tagged type.
3575         (Make_Tag_Check): New routine.
3576
3577 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
3578
3579         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3580
3581 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3582
3583         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3584         (builtin_decl_for): Likewise.
3585         * trans.c (gigi): Likewise.
3586         * utils.c (def_builtin_1): Fix formatting.
3587
3588 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
3589
3590         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3591         Create the statements which map a string name to protected or task
3592         entry indix.
3593
3594         * exp_ch9.adb: Add with and use clause for Stringt.
3595         Minor code reformatting.
3596         (Build_Entry_Names): New routine.
3597         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3598         for flag Build_Entry_Names which controls the allocation of the data
3599         structure for the string names of entries.
3600
3601         * exp_ch9.ads (Build_Entry_Names): New subprogram.
3602
3603         * exp_util.adb (Entry_Names_OK): New function.
3604
3605         * exp_util.ads (Entry_Names_OK): New function.
3606
3607         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3608         enumerations RE_Id and RE_Unit_Table.
3609
3610         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3611         (Free_Entry_Names_Array): New routine.
3612
3613         * s-taskin.ads: Comment reformatting.
3614         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3615         Add component Entry_Names to record Ada_Task_Control_Block.
3616         (Free_Entry_Names_Array): New routine.
3617
3618         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3619         dynamically allocate an array
3620         of string pointers. This structure holds string entry names.
3621         (Free_Entry_Names): New routine.
3622         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3623         (Set_Entry_Names): New routine.
3624
3625         * s-tassta.ads:
3626         (Create_Task): Add formal Build_Entry_Names. The flag is used to
3627         control the allocation of the data structure which stores entry names.
3628         (Set_Entry_Name): New routine.
3629
3630         * s-tpoben.adb:
3631         Add with and use clause for Ada.Unchecked_Conversion.
3632         (Finalize): Deallocate the entry names array.
3633         (Free_Entry_Names): New routine.
3634         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3635         create an array of string pointers to hold the entry names.
3636         (Set_Entry_Name): New routine.
3637
3638         * s-tpoben.ads:
3639         Add field Entry_Names to record Protection_Entries.
3640         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3641         (Set_Entry_Name): New routine.
3642
3643 2008-05-26  Vincent Celier  <celier@adacore.com>
3644
3645         * prj-nmsc.adb:
3646         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3647
3648         * prj.ads:
3649         (Project_Configuration): New component Shared_Lib_Driver
3650
3651 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3652
3653         * inline.adb:
3654         (Cleanup_Scopes): For a protected operation, transfer finalization list
3655         to protected body subprogram, to force cleanup actions when needed.
3656
3657 2008-05-26  Robert Dewar  <dewar@adacore.com>
3658
3659         * sem_cat.adb: Minor reformatting
3660
3661         * gnatname.adb: Minor reformatting
3662
3663         * osint.ads: Minor reformatting
3664
3665         * s-carun8.ads: Minor reformatting
3666
3667         * g-heasor.ads: Minor comment fix (unit is now pure)
3668
3669 2008-05-26  Robert Dewar  <dewar@adacore.com>
3670
3671         * exp_ch2.adb:
3672         (Expand_Current_Value): Properly type generated integer literal
3673
3674 2008-05-26  Sergey Rybin  <rybin@adacore.com>
3675
3676         * gnat_ugn.texi: Add description for the new gnatcheck rule -
3677         Separate_Numeric_Error_Handlers.
3678
3679 2008-05-26  Pascal Obry  <obry@adacore.com>
3680
3681         * sem_aggr.adb: Minor reformatting.
3682
3683 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
3684
3685         * s-osinte-aix.adb:
3686         (To_Target_Priority): Setting the time slice value to 0 or greater sets
3687         the scheduling policy to FIFO within priorities or round-robin
3688         respectively.
3689         Hence, the priority must be set in this case to the one selected by the
3690         user.
3691
3692 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
3693
3694         * sem_ch12.adb:
3695         (Remove_Parent): If the enclosing scope is an instance whose generic
3696         parent is declared within some parent scope of the just completed
3697         instance, make full views of the entities in that parent visible, when
3698         applicable.
3699
3700 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
3701
3702         * mingw32.h (STD_MINGW): Set to true for target w64.
3703
3704 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3705
3706         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3707         instead of TREE_STATIC on the ADDR_EXPR.
3708
3709 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3712         (Sloc_to_locus): Do not overwrite known GCC locations when translating
3713         GNAT standard locations.
3714
3715 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3716
3717         * gigi.h (mark_visited): Declare.
3718         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3719         only the topmost node of expressions.
3720         (elaborate_expression_1): Look deeper for read-only variables.
3721         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3722         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
3723         (mark_visited_r): New function.
3724
3725 2008-05-23  Vincent Celier  <celier@adacore.com>
3726
3727         * snames.adb: New standard name Excluded_Source_List_File.
3728
3729         * snames.ads: New standard name Excluded_Source_List_File.
3730
3731         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3732
3733         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3734         Get excluded sources from
3735         file indicated by attribute Excluded_Source_List_File, when present and
3736         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3737
3738 2008-05-23  Robert Dewar  <dewar@adacore.com>
3739
3740         * exp_dist.adb: Minor reformatting
3741
3742 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
3743
3744         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3745         slice, convert it to an indexed component, which is equivalent, more
3746         efficient, and usable even if the slice itself is not addressable.
3747
3748 2008-05-23  Olivier Hainque  <hainque@adacore.com>
3749
3750         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3751         convention also allows access to named compiler built-in subprograms
3752         such as the GCC __builtin family.
3753
3754 2008-05-23  Vincent Celier  <celier@adacore.com>
3755
3756         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3757         sep. If there are several possibilities, choose the one with the
3758         longer prefix.
3759
3760 2008-05-23  Vincent Celier  <celier@adacore.com>
3761
3762         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3763         back end switches when executable specified with --GCC= is same as
3764         default, even if there are additional options.
3765
3766         * gnat_ugn.texi:
3767         Document when the back end switches from the ALI file are taken into
3768         account when gnatlink is invoked with --GCC=
3769
3770 2008-05-23  Thomas Quinot  <quinot@adacore.com>
3771
3772         * s-os_lib.adb:
3773         (copy_File): Do not open destination file if source file is unreadable.
3774
3775 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3776
3777         * utils.c (handle_type_generic_attribute): Adjust to accept
3778         fixed arguments before an elipsis.
3779
3780 2008-05-21  Thomas Quinot  <quinot@adacore.com>
3781
3782         * g-sothco.ads, g-sothco.adb: New files.
3783
3784 2008-05-20  Thomas Quinot  <quinot@adacore.com>
3785
3786         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3787
3788         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3789         Add missing "with" of Ada.Unchecked_Conversion
3790
3791         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3792         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3793         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3794         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3795         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3796         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3797         Move common code out of GNAT.Sockets.Thin implementations and into
3798         Thin_Common.
3799         New constant SIZEOF_fd_set
3800         New flag Has_Sockaddr_Len
3801         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3802
3803         * g-stsifd-sockets.adb
3804         (Create): Remove call to Set_Length; use Set_Family to set the family
3805         and (on appropriate platforms) length fields in struct sockaddr.
3806
3807         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3808         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3809         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3810         Move common code out of GNAT.Sockets.Thin implementations and into
3811         Thin_Common.
3812
3813         * g-socket.ads, g-socket.adb:
3814         Move common code out of GNAT.Sockets.Thin implementations and into
3815         Thin_Common.
3816         (Connect_Socket, Accept_Socket): Provide new versions of these two
3817         routines that operate with a user specified timeout.
3818         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3819         this is now handled automatically by Set_Family on platforms that
3820         require it.
3821
3822         * gen-soccon.c:
3823         Move common code out of GNAT.Sockets.Thin implementations and into
3824         Thin_Common.
3825         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3826         this constant to 0 (not -1) because we use it to initialize an
3827         unsigned_char value.
3828         Align values for numeric constants only.
3829         Handle the case of systems that do not support AF_INET6.
3830         New constant SIZEOF_fd_set
3831         New flag Has_Sockaddr_Len
3832         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3833
3834         * gsocket.h: New flag Has_Sockaddr_Len
3835         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3836
3837 2008-05-20  Santiago Uruena  <uruena@adacore.com>
3838
3839         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3840
3841 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
3842
3843         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3844         the underlying issue with malloc/free has been fixed. Remove associated
3845         comments.
3846         Minor reformatting.
3847         Related to PR ada/24533
3848
3849 2008-05-20  Robert Dewar  <dewar@adacore.com>
3850
3851         * ali.adb: Correct casing of ASCII.NUL
3852
3853         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3854         properly.
3855
3856 2008-05-20  Robert Dewar  <dewar@adacore.com>
3857             Gary Dismukes  <dismukes@adacore.com>
3858
3859         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3860         overflow if result converted to wider integer type.
3861         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3862         discriminated types when discriminant checks are suppressed.
3863
3864 2008-05-20  Vincent Celier  <celier@adacore.com>
3865
3866         * cstand.adb (Print_Standard): Issue the correct Size clause for type
3867         Wide_Wide_Character.
3868
3869 2008-05-20  Tristan Gingold  <gingold@adacore.com>
3870
3871         * decl.c: Do not emit a variable for a object that has an address
3872         representation clause whose value is known at compile time.
3873         When a variable has an address clause whose value is known at compile
3874         time, refer to this variable by using directly the address instead of
3875         dereferencing a pointer.
3876
3877 2008-05-20  Robert Dewar  <dewar@adacore.com>
3878
3879         PR ada/30740
3880         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3881         subtypes, always False for non-modular types.
3882         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3883         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3884         for Shared_Storage package.
3885         (Is_RACW_Stub_Type): New entity flag.
3886
3887         * exp_ch4.adb
3888         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3889         case where we have a modular type with a non-binary modules.
3890         Comments reformattings.
3891
3892         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3893         all types.
3894
3895 2008-05-20  Javier Miranda  <miranda@adacore.com>
3896
3897         * exp_aggr.adb
3898         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3899         tests did not covered the case in which the type of the aggregate has
3900         no progenitors but some its parents has progenitors.
3901
3902 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
3903             Hristian Kirtchev  <kirtchev@adacore.com>
3904
3905         * exp_ch3.adb
3906         (Expand_N_Object_Declaration): Correct the condition which triggers the
3907         generation of a call to Displace when initializing a class-wide object.
3908         (Build_Dcheck_Functions): Build discriminant-checking for null variants
3909         when Frontend_Layout_On_Target is true to ensure that they're available
3910         for calling when a record variant size function is built in Layout.
3911
3912 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
3913
3914         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3915         procedure for a derived type retrieve the discriminant values from the
3916         parent using the corresponding discriminant.
3917         (Expand_N_Assignment_Statement): Skip generation of implicit
3918         if-statement associated with controlled types if we are
3919         compiling with restriction No_Finalization.
3920
3921 2008-05-20  Vincent Celier  <celier@adacore.com>
3922
3923         * prj.adb (Hash (Project_Id)): New function
3924         (Project_Empty): Add new component Interfaces_Defined
3925
3926         * prj.ads (Source_Data): New component Object_Linked
3927         (Language_Config): New components Object_Generated and Objects_Linked
3928         (Hash (Project_Id)): New function
3929         (Source_Data): New Boolean components In_Interfaces and
3930         Declared_In_Interfaces.
3931         (Project_Data): New Boolean component Interfaces_Defined
3932
3933         * prj-attr.adb:
3934         New project level attribute Object_Generated and Objects_Linked
3935         Add new project level attribute Interfaces
3936
3937         * prj-dect.adb: Use functions Present and No throughout
3938         (Parse_Variable_Declaration): If a string type is specified as a simple
3939         name and is not found in the current project, look for it also in the
3940         ancestors of the project.
3941
3942         * prj-makr.adb:
3943         Replace procedure Make with procedures Initialize, Process and Finalize
3944         to implement H414-023: process different directories with different
3945         patterns.
3946         Use functions Present and No throughout
3947
3948         * prj-makr.ads:
3949         Replace procedure Make with procedures Initialize, Process and Finalize
3950
3951         * prj-nmsc.adb
3952         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3953         the language configuration.
3954         (Process_Project_Level_Array_Attributes): Process new attributes
3955         Object_Generated and Object_Linked.
3956         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3957         False, to indicate that the erreor/warning is a continuation.
3958         (Check): Call Report_No_Sources with Contnuation = True after the first
3959         call.
3960         (Error_Msg): Process successively contnuation character and warning
3961         character.
3962         (Find_Explicit_Sources): Check that all declared sources have been found
3963         (Check_File): Indicate in hash table Source_Names when a declared source
3964         is found.
3965         (Check_File): Set Other_Part when found
3966         (Find_Explicit_Sources): In multi language mode, check if all exceptions
3967         to the naming scheme have been found. For Ada, report an error if an
3968         exception has not been found. Otherwise, disregard the exception.
3969         (Check_Interfaces): New procedure
3970         (Add_Source): When Other_Part is defined, set mutual pointers in spec
3971         and body.
3972         (Check): In multi-language mode, call Check_Interfaces
3973         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3974         for an excluded source.
3975         (Remove_Source): A source replacing a source in the interfaces is also
3976         in the interfaces.
3977
3978         * prj-pars.adb: Use function Present
3979
3980         * prj-part.adb: Use functions Present and No throughout
3981         (Parse_Single_Project): Set the parent project for child projects
3982         (Create_Virtual_Extending_Project): Register project with no qualifier
3983         (Parse_Single_Project): Allow an abstract project to be extend several
3984         times. Do not allow an abstract project to extend a non abstract
3985         project.
3986
3987         * prj-pp.adb: Use functions Present and No throughout
3988         (Print): Take into account the full associative array attribute
3989         declarations.
3990
3991         * prj-proc.adb: Use functions Present and No throughout
3992         (Expression): Call itself with the same From_Project_Node for the
3993         default value of an external reference.
3994
3995         * prj-strt.adb: Use functions Present and No throughout
3996         (Parse_Variable_Reference): If a variable is specified as a simple name
3997         and is not found in the current project, look for it also in the
3998         ancestors of the project.
3999
4000         * prj-tree.ads, prj-tree.adb (Present): New function
4001         (No): New function
4002         Use functions Present and No throughout
4003         (Parent_Project_Of): New function
4004         (Set_Parent_Project_Of): New procedure
4005
4006         * snames.ads, snames.adb:
4007         Add new standard names Object_Generated and Objects_Linked
4008
4009 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4010
4011         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4012         and the derived type are of the same kind.
4013         (Expand_Call): Generate type conversions for actuals of
4014         record or array types when the parent and the derived types differ in
4015         size and/or packed status.
4016
4017 2008-05-20  Javier Miranda  <miranda@adacore.com>
4018             Ed Schonberg  <schonberg@adacore.com>
4019
4020         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4021         generating dispatch tables of locally defined tagged types statically.
4022         Remove implicit if-statement that is no longer required.
4023         (Expand_Dispatching_Call): If this is a call to an instance of the
4024         generic dispatching constructor, the type of the first argument may be
4025         a subtype of Tag, so always use the base type to recognize this case.
4026
4027 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4028
4029         * exp_dist.adb
4030         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4031         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4032         assigning NULL into the result, to avoid a spurious warning.
4033         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4034         is not frozen.
4035         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4036         type.
4037         (Build_From_Any_Function, Build_To_Any_Function,
4038         Build_TypeCode_Function): For a type that has user-specified stream
4039         attributes, use an opaque sequence of octets as the representation.
4040
4041 2008-05-20  Kevin Pouget  <pouget@adacore.com>
4042
4043         * exp_smem.ads, exp_smem.adb: Construction of access and assign
4044         routines has been replaced by an instantiation of
4045         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4046         shared variable declaration.
4047         Calls to access and assign routines have been replaced by calls to
4048         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4049         instantiated package.
4050
4051         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4052         It identifies the new generic package added in s-shasto.
4053
4054         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4055         is instantiated for each shared passive variable. It provides
4056         supporting procedures called upon each read or write access by the
4057         expanded code.
4058
4059         * sem_attr.adb:
4060         For this runtime unit (always compiled in GNAT mode), we allow
4061         stream attributes references for limited types for the case where
4062         shared passive objects are implemented using stream attributes,
4063         which is the default in GNAT's persistent storage implementation.
4064
4065 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4066
4067         * freeze.adb
4068         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4069         convention from its base type, do not set the type to that of integer,
4070         because it may inherit a size clause.
4071         Warn on a size clause with a size different
4072         from that of Integer, if the type has convention C.
4073
4074 2008-05-20  Vincent Celier  <celier@adacore.com>
4075
4076         * gnatname.adb
4077         (Scan_Args): Rewrite to take into account new switch --and to separate
4078         arguments into sections.
4079         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4080         section, then Finalize.
4081
4082 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4083
4084         * init.c: Enable stack probing on ppc-linux.
4085
4086         * tracebak.c: Add symbolic traceback for ppc-linux.
4087
4088         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4089
4090 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4091
4092         * Makefile.in
4093         (common-tools): New rule, to avoid parallel build failure on gnat tools.
4094         Reenable parallel builds on this Makefile.
4095
4096         * Make-lang.in: Update dependencies.
4097
4098 2008-05-20  Robert Dewar  <dewar@adacore.com>
4099
4100         * opt.ads (Treat_Restrictions_As_Warnings): New switch
4101
4102         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4103         Treat_Restrictions_As_Warnings.
4104
4105         * switch-c.adb: Recognize new switch -gnatr
4106
4107         * usage.adb: Add line for -gnatr
4108
4109 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4110
4111         * par-ch3.adb
4112         (P_Access_Definition): Change the error message when parsing "access
4113         all" in Ada 95 mode. The message no longer forces the user to recompile
4114         in 05 mode only to discover that anonymous access types are not allowed
4115         to have "all".
4116
4117 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4118
4119         * par-ch9.adb
4120         (P_Protected): Update the error message on missing "-gnat05" switch when
4121         using interfaces in conjunction with protected types. Remove the
4122         incorrect error message associated with the presence of "private" after
4123         a "with".
4124
4125 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4126
4127         * sem_aggr.adb: Update comments.
4128         Improve previous change for PR ada/17985
4129
4130 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4131
4132         * sem_cat.adb
4133         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4134         the visible part of the spec of a remote types unit.
4135         (Validate_Remote_Access_Object_Type_Declaration):
4136         New local subprogram Is_Valid_Remote_Object_Type, replaces
4137         Is_Recursively_Limited_Private.
4138         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4139         non-controlling formals (and the return type, even though this is not
4140         explicit in the standard) must support external streaming.
4141         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4142         as above for of RAS types and RCI subprograms. (The return type is not
4143         checked yet).
4144         Update comments related to RACWs designating limited interfaces per
4145         ARG ruling on AI05-060.
4146
4147         * sem_util.ads, sem_util.adb
4148         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4149         Is_Remote_Call_Interface to identify RACW types in a stable and
4150         consistent way. We used to rely in this predicate on the privateness of
4151         the designated type and its ancestors, but depending on the currently
4152         visible private parts, this caused false negatives. We now uniformly
4153         rely on checks made at the point where the RACW type is declared.
4154         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4155
4156 2008-05-20  Javier Miranda  <miranda@adacore.com>
4157             Ed Schonberg  <schonberg@adacore.com>
4158             Hristian Kirtchev  <kirtchev@adacore.com>
4159
4160         * sem_ch3.adb
4161         (Analyze_Object_Declaration): Fix over-conservative condition
4162         restricting use of predefined assignment with tagged types that have
4163         convention CPP.
4164         (Analyze_Object_Declaration): Relax the check regarding deferred
4165         constants declared in scopes other than packages since they can be
4166         completed with pragma Import.
4167         Add missing escaping of all-caps word 'CPP' in error messages.
4168         (Build_Discriminated_Subtype): Do not inherit representation clauses
4169         from parent type if subtype already carries them, because they are
4170         inherited earlier during derivation and already include those that may
4171         come from a partial view.
4172
4173         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4174         Check the declarations of a subprogram body for proper deferred
4175         constant completion.
4176
4177         * sem_ch7.ads, sem_ch7.adb
4178         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4179
4180 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4181             Thomas Quinot  <quinot@adacore.com>
4182
4183         * sem_ch4.adb
4184         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4185         F is a parameterless function that returns an array, and S is a subtype
4186         mark.
4187         (Analyze_Call): Insert dereference when the prefix is a parameterless
4188         function that returns an access to subprogram and the call has
4189         parameters.
4190         Reject a non-overloaded call whose name resolves to denote
4191         a primitive operation of the stub type generated to support a remote
4192         access-to-class-wide type.
4193
4194 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4195
4196         * sem_ch8.adb
4197         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4198         when there is a use clause for the same entity in the context.
4199         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4200         created for a stream attribute of an abstract type or interface type.
4201
4202 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4203
4204         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4205         subprogram.
4206
4207         * sem_type.adb
4208         (Add_One_Interp): Ignore any interpretation that is a primitive
4209         operation of an RACW stub type (these primitives are only executed
4210         through dispatching, never through static calls).
4211         (Collect_Interps): When only one interpretation has been found, set N's
4212         Entity and Etype to that interpretation, otherwise Entity and Etype may
4213         still refer to an interpretation that was ignored by Add_One_Interp,
4214         in which case would end up with being marked as not overloaded but with
4215         an Entity attribute not pointing to its (unique) correct interpretation.
4216
4217 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4218
4219         * sem_eval.adb
4220         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4221         denotes the whole array of its prefix.
4222
4223 2008-05-20  Robert Dewar  <dewar@adacore.com>
4224
4225         * sem_res.adb (Resolve_Op_Not): Warn on double negation
4226
4227 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4228
4229         * sprint.adb
4230         (Print_Itype): Do not modify the sloc of the component type of a
4231         (packed) array itype, because it is an unrelated type whose source
4232         location is independent of the point of creation of the itype itself.
4233
4234 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4235
4236         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4237         Append.
4238
4239 2008-05-20  Robert Dewar  <dewar@adacore.com>
4240             Vincent Celier  <celier@adacore.com>
4241
4242         * vms_data.ads: Add entry for -gnatr
4243         Put GNAT SYNC section in proper alpha order
4244         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4245
4246         * gnat_ugn.texi: Add documentation for new gnatname switch --and
4247         Update the style checks section
4248         Add documentation of -gnatr
4249         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4250         subsection the explanation how compiler checks should be disabled for
4251         gnatcheck.
4252         Update the list of Ada 95 reserved words used by in the project language
4253         Add documentation for project qualifiers.
4254         Document that abstract projects may be extended by different projects in
4255         the same project tree.
4256         Add documentation for gnatmake switch -d
4257
4258         * ug_words: Add -gnatyy VMS equivalence string.
4259         Add entry for -gnatr
4260
4261 2008-05-20  Bob Duff  <duff@adacore.com>
4262
4263         * a-rttiev.adb
4264         (Set_Handler): Remove code from both of these that implements
4265         RM-D.15(15/2), because it causes a race condition and potential
4266         deadlock.
4267         (Process_Queued_Events): Add comment explaining "exception when others
4268         => null". Add clarifying ".all", even though implicit .all is legal
4269         here.
4270
4271 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4272
4273         * s-winext.ads: Replace representation clause by pragma Pack. Gives
4274         equivalent representation, but has the advantage of allowing
4275         compilation of this file under 64 bits platforms.
4276
4277         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4278
4279         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4280
4281         * adaint.c:
4282         Don't define dummy implementation of convert_addresses on ppc-linux.
4283
4284 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4285
4286         * exp_ch7.adb
4287         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4288         if expression is aggregate component.
4289
4290 2008-05-20  Robert Dewar  <dewar@adacore.com>
4291
4292         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4293         sem_ch12.adb: Update comments. Minor reformatting.
4294
4295         * exp_ch2.adb: Typo
4296
4297         * s-unstyp.ads: Fixed some typos in comments.
4298
4299 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4300
4301         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4302         type/constant.
4303
4304         * g-socthi-vxworks.ads: Update to latest socket changes.
4305
4306         * a-caldel-vms.adb: Resync with a-caldel spec.
4307
4308         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4309         Update comments.
4310
4311 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4312
4313         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4314         for dummy types pointed to by the converted pointer types.
4315
4316 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4317
4318         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4319         of records and unions.
4320         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4321
4322 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
4323             Robert Dewar <dewar@adacore.com>
4324
4325         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4326         restrictions to the prefix of 'Old.
4327         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4328         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4329         variables.
4330
4331 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4332
4333         PR ada/24880
4334         PR ada/26635
4335         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4336         expression to an integral type with lower precision, use NOP_EXPR
4337         directly in a couple of special cases.
4338
4339 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
4340             Ed Schonberg <schonberg@adacore.com>
4341
4342         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4343         constraint expressions.
4344
4345 2008-05-12  Tomas Bily  <tbily@suse.cz>
4346
4347         * utils2.c (known_alignment, contains_save_expr_p)
4348         (gnat_mark_addressable): Use CASE_CONVERT.
4349         * decl.c (annotate_value): Likewise.
4350         * trans.c (maybe_stabilize_reference): Likewise.
4351         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4352         * utils.c (rest_of_record_type_compilation): Likewise.
4353         * trans.c (protect_multiple_eval, Attribute_to_gnu)
4354         (protect_multiple_eval): Likewise.
4355
4356 2008-05-08  Andreas Schwab  <schwab@suse.de>
4357
4358         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4359         DECL_IS_PURE to DECL_PURE_P.
4360
4361 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
4362
4363         * decl.c (maybe_pad_type): Add ??? comment.
4364
4365 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4366
4367         * decl.c (components_to_record): Zero the alignment of the qualified
4368         union built for the variant part upon creating it.
4369
4370 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
4371
4372         * decl.c (maybe_pad_type): Try to get a form of the type with integral
4373         mode even if the alignment is not a factor of the original size.  But
4374         make sure to create the inner field with the original size.  Reorder.
4375         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4376         record as always addressable.
4377         * utils.c (convert): Deal specially with conversions between original
4378         and packable versions of a record type.
4379         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4380         recognizing an assignment between padded objects.
4381
4382 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         * decl.c (make_packable_type): Resize the last component to its RM size
4385         only if it is of an aggregate type.
4386         * trans.c (call_to_gnu): Fix nit in comment.
4387         (gnat_to_gnu): Likewise.
4388
4389 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
4390
4391         * Makefile.in: Adapt sh4-linux target.
4392
4393 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
4394
4395         PR ada/35792
4396         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4397         tagged type by an untagged protected or task type.
4398
4399 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4400             Tristan Gingold  <gingold@adacore.com>
4401
4402         PR ada/36007
4403         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4404         of aliased objects with an unconstrained nominal subtype.
4405         Cap the promotion to the effective alignment of the word mode.
4406
4407 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4408
4409         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4410         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4411         Use '&&' instead of ';'.
4412
4413 2008-04-24  Olivier Hainque  <hainque@adacore.com>
4414
4415         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4416         doesn't require signed arithmetic anymore.
4417
4418 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4419
4420         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4421         (call_to_gnu): Don't set TREE_INVARIANT.
4422         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4423
4424 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
4425
4426         * s-osinte-rtems.adb: Add sigalstack function.
4427         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4428         function. Add Alternate_Stack and Alternate_Stack_Size.
4429         Add missing process_shared field to pthread_condattr_t
4430         and change ss_low_priority to int from timespec.
4431
4432 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
4433
4434         * i-forbla.adb: Link against -llapack and -lblas by default
4435         instead of the private -lgnalasup.
4436
4437 2008-04-21  Olivier Hainque  <hainque@adacore.com>
4438
4439         Access to most C builtins from Ada
4440         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4441         (handle_pure_attribute, handle_novops_attribute,
4442         handle_nonnull_attribute, handle_sentinel_attribute,
4443         handle_noreturn_attribute, handle_malloc_attribute,
4444         handle_type_generic_attribute): New attribute handlers, from C fe.
4445         (gnat_internal_attribute_table): Map the new handlers.
4446         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4447         (init_gigi_decls): ... here.
4448         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4449         Move to a section dedicated to builtins processing.
4450         (build_void_list_node, builtin_type_for_size): New functions.
4451         (def_fn_type, get_nonnull_operand): Likewise.
4452         (install_builtin_elementary_type, install_builtin_function_types,
4453         install_builtin_attributes): Likewise.
4454         (fake_attribute_handler): Fake handler for attributes we don't
4455         support in Ada.
4456         (def_builtin_1): New function, worker for DEF_BUILTIN.
4457         (install_builtin_functions): New function.
4458         (gnat_install_builtins): Move to the builtins processing section.
4459         Now calling the newly introduced installers.
4460
4461 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4462
4463         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4464         constant objects, but not exceptions.
4465         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4466         compatibility test.
4467         * utils.c (create_var_decl_1): Likewise.
4468         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4469         the type when copying to padded object and the source is a constructor.
4470
4471 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4472
4473         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4474         alignment, reset it to zero if it would end up not being greater
4475         than that of the type.
4476
4477 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4478
4479         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4480         the padded type has a variable size.
4481
4482 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4483
4484         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4485         target pointer mechanism as soon as the size is not constant.
4486
4487 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4488
4489         * gigi.h (create_var_decl_1): Declare.
4490         (create_var_decl): Turn into a macro invoking create_var_decl_1.
4491         (create_true_var_decl): Likewise.
4492         * utils.c (create_var_decl_1): Make global and reorder parameters.
4493         (create_var_decl): Delete.
4494         (create_true_var_decl): Likewise.
4495
4496 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4497
4498         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4499         objects by default.
4500         * fe.h (Debug_Flag_Dot_A): Delete.
4501         * debug.adb (-gnatd.a): Update documentation.
4502
4503 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4504
4505         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4506         "not null" parameter.
4507
4508 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
4509
4510         * g-socket.adb: Add a message "IPv6 not supported" to the
4511         Socket_Error exception.
4512
4513 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
4514
4515         PR ada/29015
4516         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4517         the type is known instead of the underlying type.
4518
4519 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4520
4521         PR ada/22387
4522         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4523         procedure for a derived type retrieve the discriminant values from
4524         the parent using the corresponding discriminant.
4525
4526 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
4527             Gary Dismukes  <dismukes@adacore.com>
4528
4529         PR ada/28733
4530         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4531         which is not an entity (and hence not a package).
4532         (End_Use_Package): Ditto.
4533
4534 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
4535
4536         PR ada/16086
4537         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4538         protected operation that matches the signature, not only an entry, a
4539         regular subprogram or a literal.
4540
4541 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4542
4543         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4544         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4545         if a size or alignment is specified.  Do not take into account
4546         alignment promotions for the computation of the object's size.
4547         <type>: Call maybe_pad_type only if a size or alignment is specified.
4548         (maybe_pad_type): Really reuse the RM_Size of the original type if
4549         requested.
4550         * trans.c (Attribute_to_gnu): Fix a couple of nits.
4551         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4552         statements.  Use the padded view of the type when copying between
4553         padded objects of the same underlying type.
4554
4555 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4556
4557         * vms_data.ads: Fix typo in constant.
4558         * gen-soccon.c: Fix typo in error string.
4559         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4560         Fix typos.
4561         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4562         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4563         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4564         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4565         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4566         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4567         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4568         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4569         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4570         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4571         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4572         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4573         sinfo.ads: Fix typos in comments.
4574
4575 2008-04-14  Robert Dewar  <dewar@adacore.com>
4576
4577         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4578         to every non-object and change error message.
4579
4580 2008-04-14  Robert Dewar  <dewar@adacore.com>
4581
4582         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4583         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4584         directly.
4585
4586 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4587
4588         PR ada/18680
4589         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4590         apply pragma Linker_Section on type.
4591
4592 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4593
4594         PR ada/16098
4595         * sem_prag.adb (Error_Pragma_Ref): New.
4596         (Process_Convention): Specialized message for non-local
4597         subprogram renaming. Detect the problem in homonyms as well.
4598
4599 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4600
4601         PR ada/15915
4602         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4603         * sem_ch12.adb (Instantiate_Object): Use it.
4604         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4605         storage pool denotes a variable as per RM 13.11(15).
4606
4607 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4608
4609         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4610         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4611
4612 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
4613
4614         PR ada/20822
4615         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4616         line endings even on non-Unix platforms.
4617
4618 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
4619
4620         PR ada/35050
4621         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4622         renaming information.
4623
4624 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
4625
4626         PR ada/17985
4627         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4628         itself.
4629
4630 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4631
4632         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4633         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4634         snames.ads, sprint.adb, stand.ads, stringt.ads,
4635         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4636         switch.ads, sysdep.c, table.adb, table.ads,
4637         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4638         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4639         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4640         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4641         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4642         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4643         Fix comment typos.
4644
4645         * sem_ch10.adb, sem_ch10.ads,
4646         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4647         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4648         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4649         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4650         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4651         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4652         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4653         sem_warn.ads: Fix comment typos.
4654
4655         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4656         s-soflin.ads, s-stalib.ads, s-stausa.adb,
4657         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4658         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4659         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4660         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4661         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4662         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4663         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4664         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4665         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4666         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4667         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4668         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4669         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4670         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4671         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4672         sem_cat.adb, sem_cat.ads: Fix comment typos.
4673
4674 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
4675
4676         PR ada/35825
4677         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4678
4679 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
4680
4681         * s-linux-hppa.ads: Fix syntax errors.
4682
4683 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4684
4685         * gnat_ugn.texi: Fix typos.
4686         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4687         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4688         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4689         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4690         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4691         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4692         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4693         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4694         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4695         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4696         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4697         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4698         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4699         s-osinte-darwin.ads, s-osinte-freebsd.ads,
4700         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4701         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4702         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4703         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4704         s-parame-hpux.ads, s-parame-vms-alpha.ads,
4705         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4706         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4707         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4708         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4709         s-rident.ads: Fix comment typos.
4710
4711 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
4712
4713         PR ada/28305
4714         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4715         environment if generic instance is a top-level one.
4716
4717 2008-04-09  Doug Rupp  <rupp@adacore.com>
4718
4719         * decl.c (validate_size): Set minimum size for fat pointers same as
4720         access types. Code clean ups.
4721
4722         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4723         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4724
4725         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4726
4727         * s-crtl.ads (malloc32) New function, alias for malloc
4728         (realloc32) New function, alias for realloc
4729
4730         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4731
4732         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4733         allocator size is 32 and default pointer size is 64.
4734         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4735         lhs type if smaller, whatever the modes.
4736
4737         * gigi.h (malloc32_decl): New macro definition
4738
4739         * utils.c (init_gigi_decls): New malloc32_decl
4740         Various code clean ups.
4741
4742         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4743         Task_Address vice System.Address.
4744
4745         * s-taspri-vms.ads: Import System.Aux_DEC
4746         (Task_Address): New subtype of System.Aux_DEC.Short_Address
4747         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4748
4749         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4750         Task_Address vice System.Address.
4751
4752         * s-inmaop-vms.adb: Import System.Task_Primitives
4753         (To_Address): Unchecked convert to Task_Address vice System.Address
4754
4755         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4756         expires now.
4757         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4758         (To_Address) Unchecked convert to Task_Address vice System.Address
4759
4760         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4761
4762         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4763
4764 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4765
4766         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4767         (fdesc_type_node): Define.
4768         (null_fdesc_node): Likewise.
4769         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4770         uses descriptors for vtables and the type comes from a dispatch table,
4771         return the descriptor type.
4772         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4773         uses descriptors for vtables and the type comes from a dispatch table,
4774         build a descriptor in the static case and copy the existing one in the
4775         non-static case.
4776         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4777         the type is a pointer-to-subprogram coming from a dispatch table,
4778         return the null descriptor.
4779         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4780         vtables, the source type is the descriptor type and the target type
4781         is a pointer type, first build the pointer.
4782         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4783         build the descriptor type and the null descriptor.
4784
4785 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4786
4787         * decl.c (prepend_attributes): Fix typo.
4788         * trans.c (Pragma_to_gnu): Likewise.
4789         * utils.c (gnat_genericize): Likewise.
4790
4791 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4792             Richard Kenner  <kenner@adacore.com>
4793
4794         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4795         * decl.c (gnat_to_gnu_entity): Adjust for above change.
4796         <E_Record_Type>: Try to get a better form of the component for
4797         packing, even if it has an integral mode.
4798         <E_Record_Subtype>: Likewise.
4799         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4800         exception suppressing the final conversion between record types.
4801
4802 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4803
4804         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
4805         alignment for space, promote the alignment of non-scalar variables with
4806         no size and alignment.
4807         * gigi.h (gnat_types_compatible_p): Declare.
4808         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4809         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
4810         * utils.c (gnat_types_compatible_p) : New predicate.
4811         (convert): Use it throughout to test for cases where a mere view
4812         conversion is sufficient.
4813         * utils2.c (build_binary_op): Minor tweaks.
4814         (build_unary_op): Likewise.
4815
4816 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4817
4818         * decl.c (adjust_packed): Expand comment.
4819
4820 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4821
4822         * s-tasuti.ads: Use Task_Address instead of System.Address.
4823
4824         * makeutl.adb (Path_Or_File_Name): New function
4825
4826         * nlists.ads, itypes.ads: Update comments.
4827
4828         * s-crtl.ads (malloc32, realloc32): New functions.
4829
4830         * s-auxdec.ads (Short_Address_Size): New constant.
4831
4832         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4833
4834         * s-ststop.ads, s-ststop.adb: New file.
4835
4836         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4837         Minor reformatting.
4838
4839 2008-04-08  Pascal Obry  <obry@adacore.com>
4840
4841         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4842         (Stop_Bits_Number): New type.
4843         (Parity_Check): Likewise.
4844         (Set): Add parameter to set the number of stop bits and
4845         the parity. Parameter timeout is now a duration instead
4846         of a plain integer.
4847
4848         * g-sercom-linux.adb:
4849         Implement the stop bits and parity support for GNU/Linux.
4850         Fix handling of timeout, it must be given in tenth of seconds.
4851
4852         * g-sercom-mingw.adb:
4853         Implement the stop bits and parity support for Windows.
4854         Use new s-win32.ads unit instead of declaring Win32 services
4855         directly into this body.
4856         Update handling of timeout as now a duration.
4857
4858         * s-win32.ads, s-winext.ads: New files.
4859
4860 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4861             Arnaud Charlet  <charlet@adacore.com>
4862
4863         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4864
4865         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4866         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4867
4868         * s-osinte-lynxos-3.ads,
4869         (Alternate_Stack): Remove when not needed. Simplify declaration
4870         otherwise.
4871         (Alternate_Stack_Size): New constant.
4872
4873         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4874         'Unrestricted_Access.
4875
4876         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4877         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4878         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4879         s-osinte-solaris.ads, s-osinte-vms.ads
4880         (SA_ONSTACK): New constant.
4881         (stack_t): New record type.
4882         (sigaltstack): New imported function.
4883         (Alternate_Stack): New imported variable.
4884         (Alternate_Stack_Size): New constant.
4885
4886         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4887
4888         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
4889         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4890         s-taspri-vms.ads (Task_Address): New subtype of System.Address
4891         (Task_Address_Size): New constant size of System.Address
4892         (Alternate_Stack_Size): New constant.
4893
4894         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4895         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4896         Establish the alternate stack if the platform makes use of n alternate
4897         signal stack for stack overflows.
4898         (Create_Task): Take into account the alternate stack in the stack size.
4899         (Initialize): Save the address of the alternate stack into the ATCB for
4900         the environment task.
4901         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4902
4903         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
4904
4905         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4906
4907         * s-intman-posix.adb:
4908         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4909         alternate signal stack for stack overflows.
4910
4911         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4912         x86-64, adjust the saved value of the stack pointer if the signal was
4913         raised by a stack checking probe.
4914         (HP-UX section): Use global __gnat_alternate_stack as signal handler
4915         stack and only for SIGSEGV.
4916         (Linux section): Likewise on x86 and x86-64.
4917         [VxWorks section]
4918         (__gnat_map_signal): Now static.
4919         (__gnat_error_handler): Not static any more.
4920         (__gnat_adjust_context_for_raise): New function. Signal context
4921         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
4922         propagation circuitry.
4923         (__gnat_error_handler): Second argument of a sigaction handler is a
4924         pointer, not an int, and is unused.
4925         Adjust signal context before mapping to exception.
4926         Install signal handlers for LynxOS case.
4927
4928         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
4929         (Task_Id): Set size to Task_Address_Size
4930         (To_Task_id): Unchecked convert from Task_Address vice System.Address
4931         (To_Address): Unchecked convert to Task_Address vice System.Address
4932
4933         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
4934         address into the ATCB if the platform makes use of an alternate signal
4935         stack for stack overflows.
4936         (Free_Task): Add call to Finalize_Attributes_Link.
4937         Add argument Relative_Deadline to pass the value specified for
4938         the task. This is not yet used for any target.
4939
4940         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
4941         the value specified for the task.
4942
4943 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
4944
4945         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
4946         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
4947         s-vxwext-rtp.adb): New files.
4948
4949         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
4950         Minor updates to accomodate changes above.
4951
4952 2008-04-08  Pascal Obry  <obry@adacore.com>
4953
4954         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
4955         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
4956         Use new s-win32.ads unit instead of declaration
4957         from s-osinte-mingw.ads.
4958
4959         * s-osinte-mingw.ads:
4960         Move all non tasking based interface to s-win32.ads.
4961
4962         * s-osprim-mingw.adb:
4963         Remove duplicated declarations and use s-win32.ads
4964         unit instead.
4965
4966 2008-04-08  Vincent Celier  <celier@adacore.com>
4967             Arnaud Charlet  <charlet@adacore.com>
4968
4969         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
4970         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
4971         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
4972         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4973         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
4974
4975         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
4976         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
4977         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
4978         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
4979         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
4980         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
4981         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
4982         mlib-tgt-specific-mingw.adb: New names.
4983
4984         * Makefile.in:
4985         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
4986         Get rid of gnatbl.
4987         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
4988         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
4989         Minor updates for VMS
4990
4991         * gnatbl.c: Removed.
4992
4993 2008-04-08  Thomas Quinot  <quinot@adacore.com>
4994
4995         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
4996         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
4997         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
4998         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
4999         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5000         ASCII.NUL throughout.
5001
5002 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5003             Matthew Heaney  <heaney@adacore.com>
5004
5005         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5006         renaming.
5007
5008         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5009         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5010         to convention for non-RM specs.
5011         Add descriptive header, and documented each operation
5012         document each operation
5013
5014 2008-04-08  Robert Dewar  <dewar@adacore.com>
5015             Bob Duff  <duff@adacore.com>
5016             Gary Dismukes  <dismukes@adacore.com>
5017             Ed Schonberg  <schonberg@adacore.com>
5018
5019         * alloc.ads: Add entries for Obsolescent_Warnings table
5020
5021         * einfo.ads, einfo.adb: Minor reformatting.
5022         (Is_Discriminal): New subprogram.
5023         (Is_Prival): New subprogram.
5024         (Is_Protected_Component): New subprogram.
5025         (Is_Protected_Private): Removed.
5026         (Object_Ref, Set_Object_Ref): Removed.
5027         (Prival, Set_Prival): Change assertion.
5028         (Privals_Chain, Set_Privals_Chain): Removed.
5029         (Prival_Link, Set_Prival_Link): New subprogram.
5030         (Protected_Operation, Set_Protected_Operation): Removed.
5031         (Protection_Object, Set_Protection_Object): New subprogram.
5032         (Write_Field17_Name): Remove case for Object_Ref.
5033         (Write_Field20_Name): Add case for Prival_Link.
5034         (Write_Field22_Name): Remove case for Protected_Operation,
5035         Privals_Chain.
5036         Add case for Protection_Object.
5037         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5038         so clients
5039         (Overlays_Constant): New flag
5040         (Is_Constant_Object): New predicate
5041         (Is_Standard_Character_Type): New predicate
5042         (Optimize_Alignment_Space): New flag
5043         (Optimize_Alignment_Time): New flag
5044         (Has_Postconditions): New flag
5045         (Obsolescent_Warrning): Field removed
5046         (Spec_PPC_List): New field
5047         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5048         subprograms to get and set the relative deadline associated to a task.
5049
5050         * exp_attr.adb (May_Be_External_Call): Account for the case where the
5051         Access attribute is part of a named parameter association.
5052         (Expand_Access_To_Protected_Op): Test for the attribute occurring
5053         within an init proc and use that directly as the scope rather than
5054         traversing up to the protected operation's enclosing scope. Only apply
5055         assertion on Is_Open_Scopes in the case the scope traversal is done.
5056         For the init proc case use the address of the first formal (_init) as
5057         the protected object reference.
5058         Implement Invalid_Value attribute
5059         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5060         contents of the dispatch table there is no need to duplicate the
5061         itypes associated with record types (i.e. the implicit full view
5062         of private types).
5063         Implement Enum_Val attribute
5064         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5065         within _Postconditions procedure
5066         (Expand_N_Attribute_Reference, case Result): Implement new attribute
5067
5068         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5069         a return statement calls a function that is not available in
5070         configurable runtime.
5071         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5072         (Expand_Non_Function_Return): Generate call to _Postconditions proc
5073         (Expand_Simple_Function_Return): Ditto
5074
5075         * frontend.adb: Add call to Sem_Aux.Initialize
5076
5077         * sem_aux.ads, sem_aux.adb: New file.
5078
5079         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5080         Add new Pragma_Relative_Deadline.
5081         Add support for pragmas Check and Check_Policy
5082
5083         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5084         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5085         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5086         missing check because they are not allowed in CPP tagged types.
5087         Add Sure parameter to Note_Possible_Modification calls
5088         Add implementation of Invalid_Value attribute
5089         Implement new attribute Has_Tagged_Values
5090         Implement Enum_Val attribute
5091         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5092         generated attributes.
5093         (Analyze_Attribute, case Result): If prefix of the attribute is
5094         overloaded, it always resolves to the enclosing function.
5095         (Analyze_Attribute, case Result): Properly deal with analysis when
5096         Postconditions are not active.
5097         (Resolve_Attribute, case Result): Properly deal with appearence during
5098         preanalysis in spec.
5099         Add processing for attribute Result
5100
5101         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5102         for operators.
5103         (Analyze_Subprogram_Body): Install private_with_clauses when the body
5104         acts as a spec.
5105         (Check_Inline_Pragma): recognize an inline pragma that appears within
5106         the subprogram body to which it applies.
5107         (Analyze_Function_Return): Check that type of the expression of a return
5108         statement in a function with a class-wide result is not declared at a
5109         deeper level than the function.
5110         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5111         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5112         user- defined operators.
5113         (Install_Formals): Moved to spec to allow use from Sem_Prag for
5114         analysis of precondition/postcondition pragmas.
5115         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5116         Last_Formal, along with lots of comments on what this is about
5117         (Analyze_Subprogram_Body): Fix case where we move entities from the
5118         spec to the body when there are no body entities (now possible with
5119         precondition and postcondition pragmas).
5120         (Process_PPCs): New procedure
5121         (Analyze_Subprogram_Body): Add call to Process_PPCs
5122
5123         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5124         clause.
5125         (Pop_Scope): Restore Check_Policy_List on scope exit
5126         (Push_Scope): Save Check_Policy_List on scope entry
5127         Change name In_Default_Expression      => In_Spec_Expression
5128         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5129         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5130         (Analyze_Object_Renaming): Allow 'Reference as object
5131         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5132         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5133         of restriction identifier.
5134         Add Sure parameter to Note_Possible_Modication calls
5135
5136         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5137         Don't check for primitive operations when calling Rep_Item_Too_Late.
5138         (Process_Import_Or_Interface): Do not place flag on formal
5139         subprograms.
5140         (Analyze_Pragma, case Export): If the entity is a deferred constant,
5141         propagate information to full view, which is the one elaborated by the
5142         back-end.
5143         (Make_Inline): the pragma is effective if it applies to an internally
5144         generated subprogram declaration for a body that carries the pragma.
5145         (Analyze_Pragma, case Optimize_Alignment): Set new flag
5146         Optimize_Alignment_Local.
5147         (Analyze_PPC_In_Decl_Part): New procedure
5148         (Get_Pragma_Arg): Moved to outer level
5149         (Check_Precondition_Postcondition): Change to allow new visibility
5150         rules for package spec
5151         (Analyze_Pragma, case Check_Policy): Change placement rules to be
5152         same as pragma Suppress/Unsuppress.
5153         Change name In_Default_Expression      => In_Spec_Expression
5154         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5155         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5156         (Check_Precondition_Postcondition): Do proper visibility preanalysis
5157         for the case of these pragmas appearing in the spec.
5158         (Check_Enabled): New function
5159         (Initialize): New procedure
5160         (Tree_Read): New procedure
5161         (Tree_Write): New procedure
5162         (Check_Precondition_Postcondition): New procedure
5163         Implement pragmas Check and Check_Policy
5164         Merge Assert processing with Check
5165
5166         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5167         New warning flag -gnatw.e
5168
5169         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5170         returning whether a task (or main procedure) has a pragma
5171         Relative_Deadline.
5172         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5173         (or main procedure) has a pragma Relative_Deadline.
5174         Add Next_Pragma field to N_Pragma node
5175         (PPC_Enabled): New flag
5176         (Next_Pragma): Now used for Pre/Postcondition processing
5177
5178         * snames.h, snames.ads, snames.adb: New standard name
5179         Inherit_Source_Path
5180         Add entry for 'Invalid_Value attribute
5181         Add entry for new attribute Has_Tagged_Values
5182         Add entry for Enum_Val attribute
5183         Add new standard names Aggregate, Configuration and Library.
5184         Add _Postconditions
5185         Add _Result
5186         Add Pragma_Precondition
5187         Add Pragma_Postcondition
5188         Add Attribute_Result
5189         New standard name Archive_Builder_Append_Option
5190         (Preset_Names): Add _relative_deadline and relative_deadline definitions
5191         There was also a missing non_preemptive_within_priorities.
5192         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5193         Relative_Deadline.
5194         Add support for pragmas Check and Check_Policy
5195
5196         * tree_gen.adb: Call Sem_Aux.Tree_Write
5197
5198         * tree_in.adb: Call Sem_Aux.Tree_Read
5199
5200         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5201         sequence
5202
5203         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5204         sequence
5205
5206         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5207         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5208         Relative_Deadline.
5209         (Expand_Pragma_Check): New procedure
5210
5211         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5212         buffer.
5213
5214         * sinfo.adb (PPC_Enabled): New flag
5215
5216 2008-04-08  Robert Dewar  <dewar@adacore.com>
5217             Gary Dismukes  <dismukes@adacore.com>
5218             Javier Miranda  <miranda@adacore.com>
5219             Ed Schonberg  <schonberg@adacore.com>
5220
5221         * fe.h: Remove global Optimize_Alignment flag, no longer used
5222
5223         * layout.adb: Test Optimize_Alignment flags rather than global switch
5224
5225         * lib.ads, lib.adb: New OA_Setting field in library record
5226
5227         * lib-load.adb: New OA_Setting field in library record
5228
5229         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5230         units mentioned in limited_with_ clauses in the ali file, with an
5231         'Y' marker.
5232         New Ox fields in U line
5233
5234         * opt.adb: New flag Optimize_Alignment_Local
5235         (Check_Policy_List[_Config]): New flags
5236
5237         * opt.ads (Invalid_Value_Used): New flag
5238         New switch Optimize_Alignment_Local
5239         (Warn_On_Parameter_Order): New flag
5240         (Check_Policy_List[_Config]): New flags
5241
5242         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5243         limited_with clauses.
5244         New data structures for Optimize_Alignment
5245
5246         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5247         New procedure
5248         (Check_Consistent_Optimize_Alignment): Rework for new structure
5249         (Check_Consistent_Restrictions): Fix incorrect error message
5250
5251         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5252         created class-wide type (to the Parent field of the specific type).
5253         (Install_Siblings): Handle properly private_with_clauses on subprogram
5254         bodies and on generic units.
5255         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5256         illegal limited_with_clause that names a non-existent package.
5257         (Check_Body_Required): Determine whether a unit named a limited_with
5258         clause needs a body.
5259         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5260         Capture Optimize_Alignment settings to set new OA_Setting field in
5261         library record.
5262         (Build_Limited_Views): Include task and protected type declarations.
5263
5264         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5265         case of a possible constant redeclaration where the current object is
5266         an entry index constant.
5267         (Analyze_Object_Declaration): Generate an error in case of CPP
5268         class-wide object initialization.
5269         (Analyze_Object_Declaration): Add extra information on warnings for
5270         declaration of unconstrained objects.
5271         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5272         conflicts with the setting of Stored_Constraint in the case where the
5273         access type entity has already been created as an E_Incomplete_Type due
5274         to a limited with clause.
5275         Use new Is_Standard_Character_Type predicate
5276         (Analyze_Object_Declaration): Apply access_constant check only after
5277         expression has been resolved, given that it may be overloaded with
5278         several access types.
5279         (Constant_Redeclaration): Additional legality checks for deferred
5280         constant declarations tha involve anonymous access types and/or null
5281         exclusion indicators.
5282         (Analyze_Type_Declaration): Set Optimize_Alignment flags
5283         (Analyze_Subtype_Declaration): Ditto
5284         (Analyze_Object_Declaration): Ditto
5285         (Analyze_Object_Declaration): Don't count tasks in generics
5286         Change name In_Default_Expression      => In_Spec_Expression
5287         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5288         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5289         (Process_Discriminants): Additional check for illegal use of default
5290         expressions in access discriminant specifications in a type that is not
5291         explicitly limited.
5292         (Check_Abstract_Overriding): If an inherited function dispaches on an
5293         access result, it must be overridden, even if the type is a null
5294         extension.
5295         (Derive_Subprogram): The formals of the derived subprogram have the
5296         names and defaults of the parent subprogram, even if the type is
5297         obtained from the actual subprogram.
5298         (Derive_Subprogram): In the presence of interfaces, a formal of an
5299         inherited operation has the derived type not only if it descends from
5300         the type of the formal of the parent operation, but also if it
5301         implements it. This is relevant for the renamings created for the
5302         primitive operations of the actual for a formal derived type.
5303         (Is_Progenitor): New predicate, to determine whether the type of a
5304         formal in the parent operation must be replaced by the derived type.
5305
5306         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5307         predicate recursive to handle components that have a user-defined
5308         Initialize procedure. Handle controlled derived types whose ancestor
5309         has a user-defined Initialize procedured.
5310         (Note_Possible_Modification): Add Sure parameter, generate warning if
5311         sure modification of constant
5312         Use new Is_Standard_Character_Type predicate
5313         (Find_Parameter_Type): when determining whether a protected operation
5314         implements an interface operation, retrieve the type of the formal from
5315         the entity when the formal is an access parameter or an
5316         anonymous-access-to-subprogram.
5317         Move Copy_Parameter_List to sem_util, for use when building stubbed
5318         subprogram bodies.
5319         (Has_Access_Values): Tagged types now return False
5320         (Within_HSS_Or_If): New procedure
5321         (Set_Optimize_Alignment_Flags): New procedure
5322         Change name In_Default_Expression      => In_Spec_Expression
5323         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5324         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5325
5326 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5327
5328         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5329
5330 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5331
5332 PR ada/10768
5333
5334         * cuintp.c: Fix 16 bits issue for AVR.
5335         On AVR, integer is 16 bits, so it can't be used to do math with
5336         Base (=32768).
5337         So use long_integer instead.
5338
5339 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5340
5341         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5342         System.OS_Primitives.
5343         Change type of various constants, parameters and local variables from
5344         Time to representation type OS_Time.
5345         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5346         Remove the declaration of constant Mili_F from several routines. New
5347         body for internal package Conversions_Operations.
5348         (Time_Of): Add default parameters for several formals.
5349
5350         * a-caldel.adb: Minor reformatting
5351
5352         * a-calend.ads, a-calend.adb: New body for internal package
5353         Conversions_Operations.
5354         (Time_Of): Add default parameters for several formals.
5355
5356         * Makefile.rtl: Add a-ststop
5357         Add Ada.Calendar.Conversions to the list of runtime files.
5358         Add g-timsta
5359
5360         * a-calcon.adb, a-calcon.ads: New files.
5361
5362 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
5363             Tristan Gingold  <gingold@adacore.com>
5364
5365         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5366         (Install_Restricted_Handlers): New procedure
5367         which is a simplified version of Install_Handlers that does not store
5368         previously installed.
5369
5370         * s-interr-vxworks.adb: Fix ACATS cxc3001
5371         On VxWorks interrupts can't be detached.
5372         (Install_Restricted_Handlers): New procedure.
5373
5374         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5375         procedure.
5376
5377 2008-04-08  Olivier Hainque  <hainque@adacore.com>
5378
5379         * s-intman-vxworks.ads, s-intman-vxworks.adb
5380         (Map_And_Raise_Exception): Remove. Was an import of only part of the
5381         required services already implemented elsewhere.
5382         (Notify_Exception): Delete body, import __gnat_error_handler instead.
5383         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5384         argument passed to the handler, which we need for ZCX propagation
5385         purposes.
5386
5387 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5388
5389         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5390
5391         * g-timsta.adb, g-timsta.ads: New files.
5392
5393 2008-04-08  Robert Dewar  <dewar@adacore.com>
5394
5395         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5396         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5397         (Raise_Exception_Always): Fix documentation accordingly
5398
5399 2008-04-08  Robert Dewar  <dewar@adacore.com>
5400
5401         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5402         Stream_Convert)
5403
5404         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5405         FOnly
5406
5407 2008-04-08  Javier Miranda  <miranda@adacore.com>
5408             Robert Dewar  <dewar@adacore.com>
5409             Ed Schonberg  <schonberg@adacore.com>
5410
5411         * a-tags.adb (Register_Interface_Offset): New subprogram.
5412         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5413         (To_Predef_Prims_Table_Ptr): Removed.
5414         (Acc_Size): Removed.
5415         (To_Acc_Size): Removed.
5416         (Parent_Size): Modified to the call the subprogram returning the size of
5417         the parent by means of the new TSD component Size_Func.
5418
5419         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5420         (DT_Offset_To_Top_Offset): New constant value that is used to generate
5421         code referencing the Offset_To_Top component of the dispatch table's
5422         prologue.
5423         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5424         use of 'address to initialize dispatch table slots.
5425         (Size_Func): New component of the TSD. Used by the run-time to call the
5426         size primitive of the tagged type.
5427
5428         * checks.adb (Apply_Access_Check): Avoid check when accessing the
5429         Offset_To_Top component of a dispatch table.
5430         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5431         deferred constant declaration. do not add a null expression, to prevent
5432         spurious errors when full declaration is analyzed.
5433         (Apply_Discriminant_Check): If both discriminant constraints share a
5434         node which is not static but has no side effects, do not generate a
5435         check for that discriminant.
5436         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5437         subexpr, since the prefix of an attribute is a name.
5438
5439         * checks.ads: Fix nit in comment.
5440
5441         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5442         and body of predefined primitives in case of CPP tagged type
5443         derivations.
5444         (Freeze_Type): Deal properly with no storage pool case
5445         (Make_Predefined_Primitive_Specs): Generate specification of abstract
5446         primitive Deep_Adjust if a nonlimited interface is derived from a
5447         limited interface.
5448         (Build_Dcheck_Functions): Create discriminant-checking functions only
5449         for variants that have some component(s).
5450         (Build_Slice_Assignment): In expanded code for slice assignment, handle
5451         properly the case where the slice bounds extend to the last value of the
5452         underlying representation.
5453         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5454         (Is_Variable_Size_Record): An array component has a static size if
5455         index bounds are enumeration literals.
5456
5457         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5458         an external tag has been specified for the type.
5459         (Building_Static_DT): Add missing support for private types.
5460         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5461         to the entity associated with the parent of Typ. This is done to
5462         avoid wrong access when the parent is a private type.
5463         (Expand_Interface_Conversion): Improve error message when the
5464         configurable runtime has no support for dynamic interface conversion.
5465         (Expand_Interface_Thunk): Add missing support to interface types in
5466         configurable runtime.
5467         (Expand_Dispatching_Call): remove obsolete code.
5468         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5469         ensure that all subtypes and aggregates associated with dispatch
5470         tables have the attribute Is_Dispatch_Table_Entity set to true.
5471         (Register_Primitive): Rename one variable to improve code reading.
5472         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5473         of the pointer to the 'size primitive in the TSD.
5474
5475         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5476         (RE_Offset_To_Top_Ptr): New entity.
5477         (RE_Register_Interface_Offset): New entity.
5478         (RE_Set_Dynamic_Offset_To_Top): New entity.
5479         (RE_Set_Offset_To_Top): Removed entity.
5480         (RE_Prim_Ptr): New entity
5481         (RE_Size_Func): New entity
5482         (RE_Size_Ptr): New entity
5483         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5484         (Ada_Dispatching_Child): Define this new subrange.
5485         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5486          RE_Time_Span, and RE_Time_Span_Zero).
5487         (RE_Unit_Table): Add new required run-time calls
5488
5489         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5490         children.
5491
5492         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5493         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5494          initializes the Offset_To_Top component of a dispatch table.
5495         (Build_Predef_Prims): Removed.
5496         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5497          its actual code.
5498         (Build_Set_Size_Function): New subprogram.
5499
5500         * exp_ch13.adb: Do not generate storage variable for storage_size zero
5501         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5502
5503 2008-04-08  Robert Dewar  <dewar@adacore.com>
5504
5505         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5506         computing Fore when Exp > 0
5507
5508 2008-04-08  Robert Dewar  <dewar@adacore.com>
5509
5510         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5511
5512         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5513         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5514
5515         * fmap.adb: Remove Big_String declarations (now in Types)
5516         (No_Mapping_File): New Boolean global variable
5517         (Initialize): When mapping file cannot be read, set No_Mapping_File to
5518         False.
5519         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5520         tables were empty before adding entries, open the mapping file
5521         with Truncate = True, instead of delete/re-create.
5522
5523         * fname-sf.adb: Remove Big_String declarations (now in Types)
5524
5525         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5526         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5527         big pointer types
5528
5529         * table.ads: Add for Table_Ptr'Storage_Size use 0
5530
5531         * types.ads: Add Big_String declarations
5532         Add Size_Clause of zero for big pointer types
5533
5534 2008-04-08  Vincent Celier  <celier@adacore.com>
5535
5536         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5537         (Usage): Add line for switch --subdirs=
5538         Add new switch -eL, to follow symbolic links when processing project
5539         files.
5540
5541         * gnatcmd.adb: Process switches -eL and --subdirs=
5542         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5543         Program_Name to get proper tool names when AAMP_On_Target is set.
5544         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5545         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5546         Osint.Program_Name).
5547
5548         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5549         (Usage): Add lines for switches -eL and --subdirs=
5550
5551         * makeusg.adb: Add line for switch --subdirs=
5552
5553         * prj.ads:
5554         (Source_Data): New Boolean component Compiled, defaulted to True
5555         (Empty_File_Name: New global variable in private part, initialized in
5556         procedure Initialize.
5557         (Subdirs_Option): New constant string
5558         (Subdirs): New String_Ptr global variable
5559         (Language_Config): New component Include_Compatible_Languages
5560         (Project_Qualifier): New type for project qualifiers
5561         (Project_Data): New component Qualifier
5562         (Project_Configuration): New component Archive_Builder_Append_Option
5563
5564         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5565         another imported project indicate the name of this imported project.
5566         (Check_File): When a unit is in two project files, indicate the project
5567         names and the paths of the source files for each project.
5568         (Add_Source): Set Compiled to False if compiler driver is empty. Only
5569         set object, dependency and switches file names if Compiled is True.
5570         (Process_Compiler): Allow the empty string for value of attribute Driver
5571         (Get_Directories): When Subdirs is not null and Object_Dir is not
5572          specified, locate and create if necessary the actual object dir.
5573         (Locate_Directory): When Subdirs is not empty and Create is not the
5574         empty string, locate and create if necessary the actual directory
5575         as a subdirectory of directory Name.
5576         (Check_Library_Attributes.Check_Library): Allow a project where the only
5577         "sources" are header files of file based languages to be imported by
5578         library projects, in multi-language mode (gprbuild).
5579         (Check_Library_Attributes.Check_Library): In multi-language mode
5580         (gprbuild), allow a library project to import a project with no
5581         sources, even when this is not declared explicitly.
5582         (Check_If_Externally_Built): A virtual project extending an externally
5583         built project is also externally built.
5584         (Check_Library_Attributes): For a virtual project extending a library
5585         project, inherit the library directory.
5586         (Process_Project_Level_Array_Attributes): Process new attribute
5587         Inherit_Source_Path.
5588         For projects with specified qualifiers "standard", "library" or
5589         "abstract", check that the project conforms to the qualifier.
5590         (Process_Project_Level_Simple_Attributes): Process new attribute
5591          Archive_Builder_Append_Option.
5592
5593         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5594         (Normalize_Compiler_Switches): Only keep compiler switches that are
5595         passed to gnat1 by the gcc driver and that are stored in the ALI file
5596         by gnat1.
5597         Do not take into account switc -save-temps
5598
5599         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5600         gprmake is called with -eL.
5601         (Scan_Arg): Recognize switch -eL
5602         (Usage): Add line for switch -eL
5603
5604         * prj.adb (Initialize): Initialize Empty_File_Name
5605         (Project_Empty): New component Qualifier
5606
5607         * prj-attr.ads, prj-attr.adb: New project level attribute
5608         Inherit_Source_Path.
5609         New project level attribute Archive_Builder_Append_Option
5610
5611         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5612
5613         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5614         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5615         upward compatibility.
5616
5617         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5618         each Trying ..." on different lines.
5619         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5620         is "configuration" when not in configuration. Fail when in configuration
5621         when a specified qualifier is other than "configuration".
5622
5623         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5624         full associative array together.
5625         (Recursive_Process): Put the project qualifier in the project data
5626
5627         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5628         (Set_Project_Qualifier_Of): New procedure
5629
5630 2008-04-08  Robert Dewar  <dewar@adacore.com>
5631
5632         * errout.ads: Update comments for new handling of info: messages
5633
5634         * erroutc.adb (Matches): New procedure
5635         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5636         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5637          info messages as well as style messages.
5638
5639         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5640
5641         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5642         subprograms.
5643         (Check_A_Call): Special "info: " warnings now have ? in the text
5644         (Elab_Warning): Use info message in static case
5645
5646 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5647
5648         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5649         whether an array aggregate with static bounds and scalar components
5650         should be expanded into a static constant.
5651
5652 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5653             Ed Schonberg  <schonberg@adacore.com>
5654             Robert Dewar  <dewar@adacore.com>
5655
5656         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5657         Has_Stream_Attribute_ Definition when checking for available stream
5658         attributes on parameters of a limited type in Ada 2005. Necessary for
5659         proper recognition of visible stream attribute clauses.
5660         (Has_Stream_Attribute_Definition): If the type is derived from a
5661         private type, then use the derived type's underlying type for checking
5662         whether it has stream attributes.
5663         (Validate_Object_Declaration): The check for a user-defined Initialize
5664         procedure applies also to types with controlled components or a
5665         controlled ancestor.
5666         Reject an object declaration in a preelaborated unit if the type is a
5667         controlled type with an overriding Initialize procedure.
5668         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5669         checking when the parent of a dereference is a selected component and
5670         the name has not been analyzed.
5671
5672         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5673         prefixes that are invalid explicit dereferences of remote
5674         access-to-class-wide values, first checking whether the selected
5675         component is a prefixed form of call to a tagged operation.
5676         (Analyze_Call): Remove code that issues an error for limited function
5677         calls in illegal contexts, as we now support all of the contexts that
5678         were forbidden here.
5679         Allow a function call that returns a task.and appears as the
5680         prefix of a selected component.
5681         (Analyze_Reference): Give error message if we try to make a 'Reference
5682         for an object that is atomic/aliased without its type having the
5683         corresponding attribute.
5684         (Analyze_Call): Remove condition checking for attributes to allow
5685         calls to functions with inherently limited results as prefixes of
5686         attributes. Remove related comment about Class attributes.
5687         (Analyze_Selected_Component): If the prefix is a remote type, check
5688         whether this is a prefixed call before reporting an error.
5689         (Complete_Object_Operation): If the controlling formal is an access to
5690         variable reject an actual that is a constant or an access to one.
5691         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5692         primitive operations from base type.
5693
5694         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5695         build-in-place
5696         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5697         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5698         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5699         (Expand_N_Slice): Test for prefix that is a build-in-place function call
5700         and call Make_Build_In_Place_Call_In_Anonymous_Context.
5701         (Analyze_Call): Remove code that issues an error for limited function
5702         calls in illegal contexts, as we now support all of the contexts that
5703         were forbidden here.
5704         New calling sequence for Get_Simple_Init_Val
5705         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5706         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5707
5708 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5709             Ed Schonberg  <schonberg@adacore.com>
5710             Robert Dewar  <dewar@adacore.com>
5711
5712         * exp_ch2.adb: Minor reformatting.
5713         (Expand_Entry_Index_Parameter): Set the type of the identifier.
5714         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5715         (Expand_Protected_Component): New routine.
5716         (Expand_Protected_Private): Removed.
5717         Add Sure parameter to Note_Possible_Modification calls
5718
5719         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5720         generated subprogram declaration must inherit the overriding indicator
5721         from the instantiation node.
5722         (Validate_Access_Type_Instance): If the designated type of the actual is
5723         a limited view, use the available view in all cases, not only if the
5724         type is an incomplete type.
5725         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
5726         and the actual subtype does not exclude null.
5727         (Process_Default): Handle properly abstract formal subprograms.
5728         (Check_Formal_Package_Instance): Handle properly defaulted formal
5729         subprograms in a partially parameterized formal package.
5730         Add Sure parameter to Note_Possible_Modification calls
5731         (Validate_Derived_Type_Instance): if the formal is non-limited, the
5732         actual cannot be limited.
5733         (Collect_Previous_Instances): Generate instance bodies for subprograms
5734         as well.
5735
5736         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5737         try to set RM_Size.
5738         Add Sure parameter to Note_Possible_Modification calls
5739         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5740         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5741         constant overlaid by variable and issue warning.
5742         Use new Is_Standard_Character_Type predicate
5743         (Analyze_Record_Representation_Clause): Check that the specified
5744         Last_Bit is not less than First_Bit - 1.
5745         (Analyze_Attribute_Definition_Clause, case Address): Check for
5746         self-referential address clause
5747
5748         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5749         detection mechanism when the lhs is a prival.
5750         (Analyze_Assignment): Call Check_Unprotected_Access to detect
5751         assignment of a pointer to protected data, to an object declared
5752         outside of the protected object.
5753         (Analyze_Loop_Statement): Check for unreachable code after loop
5754         Add Sure parameter to Note_Possible_Modication calls
5755         Protect analysis from previous syntax error such as a scope mismatch
5756         or a missing begin.
5757         (Analyze_Assignment_Statement): The assignment is illegal if the
5758         left-hand is an interface.
5759
5760         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5761         violation of restriction No_Implicit_Conditionals
5762         Add Sure parameter to Note_Possible_Modication calls
5763         Use new Is_Standard_Character_Type predicate
5764         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5765         call as operator. Fixes problems (e.g. validity checking) which
5766         come from the result looking as though it does not come from source).
5767         (Resolve_Call): Check case of name in named parameter if style checks
5768         are enabled.
5769         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5770         from the checking that such calls should not occur from an entry body.
5771         (Resolve_Call): If the return type of an Inline_Always function
5772         requires the secondary stack, create a transient scope for the call
5773         if the body of the function is not available for inlining.
5774         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5775         that are actuals for in-out formals.
5776         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5777         primitive operations from base type.
5778         (Analyze_Selected_Component): If the context is a call to a protected
5779         operation the parent may be an indexed component prior to expansion.
5780         (Resolve_Actuals): If an actual is of a protected subtype, use its
5781         base type to determine whether a conversion to the corresponding record
5782         is needed.
5783         (Resolve_Short_Circuit): Handle pragma Check
5784
5785         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5786         Use new Is_Standard_Character_Type predicate
5787         (Eval_Relational_Op): Catch more cases of string comparison
5788
5789 2008-04-08  Robert Dewar  <dewar@adacore.com>
5790             Gary Dismukes  <dismukes@adacore.com>
5791
5792         * s-rident.ads: Add No_Default_Initialization restriction
5793
5794         * exp_tss.adb:
5795         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5796         (Set_TSS): Handle No_Default_Initialization case
5797
5798         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5799         No_Default_Initialization
5800         (Expand_N_Subprogram_Body): Remove redundant initialization of out
5801         parameters when Normalize_Scalars is active.
5802         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5803         Fix casing error in formal parameter name in call
5804         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5805         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5806         dispatching call on VM targets.
5807
5808 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
5809             Thomas Quinot  <quinot@adacore.com>
5810
5811         * exp_ch7.adb (Find_Final_List): Change the test for generating a
5812         selected component from an access type's Associated_Final_Chain to
5813         check for the presence of that field, rather than assuming it exists
5814         for all named access types.
5815         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5816         procedure to call at the end of the generated cleanup procedure.
5817         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5818         and an At_End_Proc already exists in the handled sequence of statements
5819         for which cleanup actions are being expanded, the original cleanup
5820         action must be preserved.
5821
5822 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
5823             Ed Schonberg  <schonberg@adacore.com>
5824             Robert Dewar  <dewar@adacore.com>
5825             Gary Dismukes  <dismukes@adacore.com>
5826
5827         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5828         Build_Unprotected_Subprogram_Body): Generate debug info for
5829         declarations related to the handling of private data in task and
5830         protected types.
5831         (Debug_Private_Data_Declarations): New subprogram.
5832         (Install_Private_Data_Declarations): Remove all debug info flagging.
5833         This is now done by Debug_Private_Data_Declarations at the correct
5834         stage of expansion.
5835         (Build_Simple_Entry_Call): If the task name is a function call, expand
5836         the prefix into an object declaration, and make the surrounding block a
5837         task master.
5838         (Build_Master_Entity): An internal block is a master if it wraps a call.
5839         Code reformatting, update comments. Code clean up.
5840         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5841         (Replicate_Entry_Formals): If the formal is an access parameter or
5842         anonymous access to subprogram, copy the original tree to create new
5843         entities for the formals of the subprogram.
5844         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5845         for tasks to store the value passed using pragma Relative_Deadline.
5846         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5847         run-time call to create a task.
5848         (Build_Wrapper_Spec): If the controlling argument of the interface
5849         operation is an access parameter with a non-null indicator, use the
5850         non-null indicator on the wrapper.
5851
5852         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5853         present, which it may not be in the case where the type entity is an
5854         incomplete view brought in by a limited with.
5855         (Analyze_Task_Type): Only retrieve the full view when present, which it
5856         may not be in the case where the type entity is an incomplete view brought
5857         in by a limited with.
5858         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5859         private components of a protected type, to prevent the generation of freeze
5860         nodes for which there is no proper scope of elaboration.
5861
5862         * exp_util.ads, exp_util.adb
5863         (Remove_Side_Effects): If the expression is a function call that returns a
5864         task, expand into a declaration to invoke the build_in_place machinery.
5865         (Find_Protection_Object): New routine.
5866         (Remove_Side_Effects): Also make a copy of the value
5867         for attributes whose result is of an elementary type.
5868         (Silly_Boolean_Array_Not_Test): New procedure
5869         (Silly_Boolean_Array_Xor_Test): New procedure
5870         (Is_Volatile_Reference): New function
5871         (Remove_Side_Effects): Use Is_Volatile_Reference
5872         (Possible_Bit_Aligned_Component): Handle slice case properly
5873
5874         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5875         case test to Exp_Util
5876         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5877
5878 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5879
5880         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5881         in call
5882         (Add_RACW_Features): When processing an RACW in another unit than the
5883         main unit, set Body_Decls to No_List to indicate that the bodies of
5884         the type's TSS must not be generated.
5885         (GARLIC_Support.Add_RACW_Read_Attribute,
5886         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5887         Body_Decls is No_List.
5888         (PolyORB_Support.Add_RACW_Read_Attribute,
5889         PolyORB_Support.Add_RACW_Write_Attribute,
5890         PolyORB_Support.Add_RACW_From_Any,
5891         PolyORB_Support.Add_RACW_To_Any,
5892         PolyORB_Support.Add_RACW_TypeCode): Same.
5893         (Transmit_As_Unconstrained): New function.
5894         (Build_Ordered_Parameters_List): Use the above to order parameters.
5895         (GARLIC_Support.Build_General_Calling_Stubs):
5896         Use the above to determine which parameters to unmarshall using 'Input
5897         at the point where their temporary is declared (as opposed to later on
5898         with a 'Read call).
5899         (PolyORB_Support.Build_General_Calling_Stubs):
5900         Use the above to determine which parameters to unmarshall using From_Any
5901         at the point where their temporary is declared (as opposed to later on
5902         with an assignment).
5903
5904 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5905
5906         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5907         an Input function for an access type, do not perform default
5908         initialization on the local variable that receives the value, to
5909         prevent spurious warnings when the type is null-excluding.
5910
5911 2008-04-08  Robert Dewar  <dewar@adacore.com>
5912             Ed Schonberg  <schonberg@adacore.com>
5913
5914         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
5915         units.
5916         (Size_Known): Generic formal scalar types have known at compile
5917         time size, so remove check.
5918         Fix casing error in formal parameter name in call
5919         (Freeze_Subprogram): If the subprogram is a user-defined operator,
5920         recheck its overriding indication.
5921
5922 2008-04-08  Vincent Celier  <celier@adacore.com>
5923
5924         * gnat1drv.adb: Send all messages indicating an error to standard error
5925
5926 2008-04-08  Robert Dewar  <dewar@adacore.com>
5927
5928         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
5929         (List_Applicable_Restrictions): Do not list existing restrictions
5930
5931 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5932
5933         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
5934         add a pointer to generic sockets literature
5935         do not mention that the given example is "typical" usage.
5936         Remove obsolete comment about multicast not being supported on Windows.
5937         (Connect_Socket): Make Server mode IN rather than IN OUT
5938         since this formal is never modified.
5939
5940 2008-04-08  Robert Dewar  <dewar@adacore.com>
5941
5942         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
5943         the declaration for some different entity.
5944         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
5945         list is precent (following the parent subtype indication), display
5946         appropriate "and" keyword.
5947
5948         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
5949         Remove unnecessary calls to Init_Size_Align and Init_Esize.
5950         Add notes on use of Parent field of an Itype
5951
5952 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
5953             Robert Dewar  <dewar@adacore.com>
5954             Gary Dismukes  <dismukes@adacore.com>
5955
5956         * lib-xref.adb (Is_On_LHS): Remove dead code
5957         (Output_Overriden_Op): If the overridden operation is itself inherited,
5958         list the ancestor operation, which is the one whose body or absstract
5959         specification is actually being overridden. For source navigation
5960         purposes.
5961
5962         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
5963         operation is primitive for the type.
5964         (Declare_Inherited_Private_Subprograms): If the new operation overrides
5965         an inherited private subprogram, set properly the Overridden_Operation
5966         attribute, for better cross-reference information.
5967         (Analyze_Package_Specification): Do late analysis of spec PPCs
5968         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
5969         properly the full view and underlying full views of a private type in a
5970         child unit, whose full view is derived from a private type in a parent
5971         unit, and whose own full view becomes visible in the child body.
5972
5973         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
5974         primitive operation after the type has been frozen, add an explicit
5975         reference to the type and the operation, because other primitive
5976         references have been emitted already.
5977         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5978         dispatching call on VM targets.
5979
5980 2008-04-08  Vincent Celier  <celier@adacore.com>
5981             Thomas Quinot  <quinot@adacore.com>
5982
5983         * make.adb: (Gnatmake_Called): Remove, no longer necessary
5984         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
5985         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
5986         (Insert_Project_Sources): Take into account index in multi-unit source
5987         files.
5988         After building a library project, delete all temporary files.
5989         (Initialize): Reset current output after parsing project file.
5990         (Collect_Arguments_And_Compile): Never insert in the queue the sources
5991         of library projects that are externally built.
5992         Put file name in error and inform messages if -df is used
5993         (Display): If invoked with -d7, do not display path names, but only
5994         file names.
5995
5996         * makeutl.ads (Path_Or_File_Name): New function
5997         (Path_Or_File_Name): New function
5998
5999 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
6000
6001         * Make-lang.in: Disable warnings during first stage of bootstrap
6002         Get rid of gnatbl.
6003         Update dependencies.
6004
6005 2008-04-08  Vincent Celier  <celier@adacore.com>
6006
6007         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6008         case to decide if ALI object file is included in library.
6009         (Build_Library): Never attempt to build a library if the project is
6010         externally built.
6011
6012 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6013
6014         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6015         (No_List) is defined to return Empty.
6016
6017 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6018
6019         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6020         documentation.
6021         Update comments.
6022         (Read_Default_Search_Dirs): Do not consider spaces as path separators
6023         because spaces may be part of legal paths.
6024
6025 2008-04-08  Robert Dewar  <dewar@adacore.com>
6026
6027         * par-ch11.adb (P_Exception_Handler): Check indentation level for
6028         handler
6029
6030 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6031
6032         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6033         in a type declaration, if this is not an interface declaration or
6034         private type extension.
6035
6036 2008-04-08  Vincent Celier  <celier@adacore.com>
6037
6038         * prj-util.adb (Executable_Of): New String parameter Language. When
6039         Ada_Main is False and Language is not empty, attempt to remove the body
6040         suffix or the spec suffix of the language to get the base of the
6041         executable file name.
6042         (Put): New Boolean parameter Lower_Case, defauilted to False. When
6043         Lower_Case is True, put the value in lower case in the name list.
6044         (Executable_Of): If there is no executable suffix in the configuration,
6045         then do not modify Executable_Extension_On_Target.
6046
6047         * prj-util.ads (Executable_Of): New String parameter Language,
6048         defaulted to the empty string.
6049         (Put): New Boolean parameter Lower_Case, defauilted to False
6050
6051 2008-04-08  Robert Dewar  <dewar@adacore.com>
6052
6053         * scng.adb (Scan_Identifier): Handle case of identifier starting with
6054         wide character using UTF-8 encoding.
6055
6056 2008-04-08  Javier Miranda  <miranda@adacore.com>
6057
6058         * sem.adb (Analyze): Consider case in which we analyze an empty node
6059         that was generated by a call to a runtime function that is not
6060         available under the configurable runtime.
6061
6062         * sem.ads (Inside_Freezing_Actions): New flag.
6063         (Save_Check_Policy_List): New field in scope stack entry
6064
6065 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6066             Robert Dewar  <dewar@adacore.com>
6067
6068         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6069         the ancestor part of an extension aggregate for a limited type.
6070         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6071         enumeration index bounds.
6072         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6073         when array is too short.
6074         (Check_Expr_OK_In_Limited_Aggregate): Move function
6075         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6076         change name).
6077         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6078         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6079         component associations.
6080         (Check_Non_Limited_Type): Moved to outer level and renamed.
6081         (Resolve_Record_Aggregate): In an extension aggregate, an association
6082         with a box initialization can only designate a component of the
6083         extension, not a component inherited from the given ancestor
6084
6085         * sem_case.adb: Use new Is_Standard_Character_Type predicate
6086
6087 2008-04-08  Robert Dewar  <dewar@adacore.com>
6088
6089         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6090         negative scale
6091         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6092         Properly handle case where Aft > Scale and input number is less than
6093         one.
6094
6095 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6096
6097         * s-stoele.ads, s-soflin.ads: Move the location of
6098         Dummy_Communication_Block from System.Storage_Elements to
6099         System.Soft_Links.
6100
6101         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6102         emulate Communication_Block in certain scenarios.
6103
6104 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6105
6106         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6107         subprogram.
6108         Add new subtype S_WWC, unchecked conversion routines From_WWC and
6109         To_WWC.
6110         (I_WWC, O_WWC): New routines for input and output of
6111         Wide_Wide_Character.
6112
6113 2008-04-08  Robert Dewar  <dewar@adacore.com>
6114
6115         * stringt.adb (Write_String_Table_Entry): Handle wide characters
6116         properly
6117
6118 2008-04-08  Robert Dewar  <dewar@adacore.com>
6119
6120         * styleg.adb (Check_Comment): Allow special char after -- in
6121         non-end-of-line case
6122
6123 2008-04-08  Robert Dewar  <dewar@adacore.com>
6124
6125         * stylesw.adb: Implement -gnaty + - y options
6126         (Set_GNAT_Style_Check_Options): Includ I in style check string
6127
6128         * stylesw.ads: Add comments for new style switch options
6129
6130 2008-04-08  Sergey Rybin  <rybin@adacore.com>
6131
6132         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6133         to the set of the GNAT components needed by ASIS.
6134
6135 2008-04-08  Bob Duff  <duff@adacore.com>
6136
6137         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6138
6139 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6140
6141         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6142         Improve error message generation.
6143
6144 2008-04-08  Vincent Celier  <celier@adacore.com>
6145
6146         * a-direct.adb (Start_Search): Check for Name_Error before checking for
6147         Use_Error, as specified in the RM. Check if directory is open and raise
6148         Use_Error if it is not.
6149
6150 2008-04-08  Vincent Celier  <celier@adacore.com>
6151             Robert Dewar  <dewar@adacore.com>
6152
6153         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6154         AAMP_On_Target is set.
6155
6156         * vms_data.ads: Add NOxxx to style check switch list
6157         Add entry COMPONENTS for -gnatVe
6158         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6159         (/SUBDIRS=).
6160         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6161         Add qualifiers for gnatmetric coupling options
6162         Add note that -gnata enables all checks
6163         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6164         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6165         New warning flag -gnatw.e
6166
6167         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6168         Add entry for -gnatyN (forgotten before)
6169         Line for new warning switch -gnatw.p
6170         New warning flag -gnatw.e
6171
6172         * gnat_ugn.texi: Add documentation fpr project file switch -aP
6173         Document -gnaty - + y
6174         Replace occurences of "package specification" with "package spec"
6175         Define preprocessing symbols in documentation of gnatprep
6176         Clarify reason for distinguishing overflow checking
6177         Add documentation for project-aware tool switches -eL and --subdirs=
6178         Complete list of configuration pragmas
6179         Specify that, even when gnatmake switch -x is used, mains on the command
6180         line need to be sources of project files.
6181         Editing of gnatcheck/gnatmetric doc.
6182         Add documentation for -gnatw.p/-gnatw.P
6183         Add missing documentation for -fno-inline-functions.
6184         Add documentation for -gnatw.e
6185
6186         * gnat_rm.texi: Add documentation for No_Default_Initialization
6187         Replace occurences of "package specification" with "package spec"
6188         Document use of * in Warnings Off string
6189         Update documentation of alignment/component clauses.
6190         Add documentation for Invalid_Value
6191         Document new consistency rule for Optimize_Alignment
6192         Add documentation for Precondition and Postcondition pragmas
6193         Add documentation for Check and Check_Policy pragmas
6194         Document new Enum_Val attribute
6195         Remove requirement for static string in pragma Assert
6196         Add documentation on GNAT.Time_Stamp
6197
6198         * ug_words: add entry for -gnatVe
6199         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6200         Add entry for -gnatw.e
6201
6202         * debug.adb: Add missing documentation for d.a flag
6203         Document new -gnatd.a switch.
6204         Add documentation for new gnatmake debug switch -df
6205
6206 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6207
6208         * gen-soccon.c: Bump year in copyright notices.
6209
6210         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6211
6212 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6213
6214         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6215         Minor reformatting.
6216
6217 2008-04-08  Robert Dewar  <dewar@adacore.com>
6218             Bob Duff  <duff@adacore.com>
6219
6220         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6221         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6222
6223         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6224
6225         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6226
6227         * g-trasym.ads: Minor comment improvements
6228
6229         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6230
6231         * a-sequio.ads, a-direio.ads: improve message for tagged type
6232
6233         * a-strunb.ads: Minor reformatting
6234
6235         * a-tifiio.adb: Minor reformatting
6236
6237         * atree.adb (Fix_Parents): Use clearer names for formals
6238         Cleanup and simplify code
6239         Use named notation in calls
6240
6241         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6242         confusing calls
6243
6244         * uintp.adb: Used named notation for some confusing calls
6245
6246         * bindusg.adb: Minor change in one line of output
6247
6248         * cstand.adb: Minor reformatting of src representation of Standard
6249
6250         * a-assert.ads: Add comment.
6251
6252         * g-decstr.adb: Fix bad indentation
6253
6254         * expander.ads, expander.adb: Code clean up.
6255
6256         * sem_dist.ads: Minor comment improvement
6257
6258         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6259         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6260
6261         * i-cstrin.adb: Fix casing error in formal parameter name in call
6262
6263 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6264
6265         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6266         mentioned in limited_with_clauses to do create semantic dependencies
6267         even though they appear in the ali file.
6268
6269 2008-04-08  Emmanuel Briot  <briot@adacore.com>
6270
6271         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6272         statement.
6273         (Get_Configuration): New subprogram.
6274
6275         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6276         These optional parameters help preserve the casing of the project's name
6277         when pretty-printing.
6278
6279 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
6280             Arnaud Charlet  <charlet@adacore.com>
6281
6282         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6283         then use __gnat_set_exit_status to report the returned status code.
6284
6285         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6286         messages on .NET, since some constructs of the language are not
6287         properly supported.
6288
6289         * gnatlink.adb (Gnatlink): In case the command line is too long for the
6290         .NET linker, gnatlink now concatenate all .il files and pass this to
6291         ilasm.
6292
6293 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6294             Xavier Grave  <grave@ipno.in2p3.fr>
6295
6296         * Makefile.in: Add make ifeq define for mips/mipsel support.
6297         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6298         system-linux-mips.ads: New files.
6299
6300 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6301
6302         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6303         detect systems using GNU libc.
6304         * gsocket.h: ditto.
6305         * socket.c: ditto.
6306         * adaint.c: ditto.
6307         * link.c: ditto.
6308
6309 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6310
6311         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6312         constant constant for sysconf call.
6313         (bit_field): New packed boolean type used by cpu_set_t.
6314         (cpu_set_t): New type corresponding to the C type with
6315         the same name. Note that on the Ada side we use a bit
6316         field array for the affinity mask. There is not need
6317         for the C macro for setting individual bit.
6318         (pthread_setaffinity_np): New imported routine.
6319         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6320         on GNU/kFreeBSD.
6321
6322 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6323
6324         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6325
6326 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6327
6328         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6329         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6330         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6331         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6332         Return by Depressed Stack Pointer.
6333
6334 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6335
6336         * decl.c (is_variable_size): Do not unconditionally return false
6337         on non-strict alignment platforms.
6338
6339 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6340
6341         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6342         used to process all the variants of the specified type.
6343         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6344         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
6345         (rest_of_type_decl_compilation): Likewise.
6346         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6347
6348 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6349
6350         * gigi.h (insert_block): Kill.
6351         * utils.c (insert_block): Kill.
6352
6353 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
6354
6355         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6356         type has self-referential size, get the size from the initializing
6357         expression directly if it is also a constant whose nominal type
6358         has self-referential size.
6359
6360 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6361
6362         PR ada/33688
6363         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6364
6365         PR ada/33857
6366         * env.c: Always include crt_externs.h if __APPLE__ is defined.
6367         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6368
6369 2008-04-01  Andreas Jaeger  <aj@suse.de>
6370
6371         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6372         IP_PKTINFO.
6373
6374 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6375
6376         * g-table.adb, g-tasloc.adb, g-traceb.ads,
6377         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6378         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6379         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6380         gnatlink.adb, gnatmem.adb, gprep.adb,
6381         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6382         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6383         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6384         lib-xref.ads, lib.adb, link.c, live.ads,
6385         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6386         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6387         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6388         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6389         namet.adb, namet.h, nlists.adb, nlists.ads,
6390         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6391         osint-c.ads, osint.adb, osint.ads, output.ads,
6392         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6393         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6394         par-endh.adb, par-labl.adb, par-prag.adb,
6395         par-sync.adb, par-tchk.adb, par-util.adb,
6396         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6397         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6398         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6399         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6400
6401 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6402
6403         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6404         size if it has overflowed.
6405
6406 2008-03-31  Olivier Hainque  <hainque@adacore.com>
6407             Eric Botcazou  <ebotcazou@adacore.com>
6408
6409         * utils2.c (find_common_type): Document assumption on t1/t2 vs
6410         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6411
6412 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6413
6414         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6415         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6416         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6417         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6418         exp_tss.ads, exp_util.adb, exp_util.ads,
6419         exp_vfpt.adb, freeze.adb, freeze.ads,
6420         frontend.adb, g-alleve.adb, g-altcon.adb,
6421         g-altive.ads, g-alveop.ads, g-alvevi.ads,
6422         g-arrspl.adb, g-busorg.ads, g-calend.adb,
6423         g-calend.ads, g-casuti.ads, g-cgideb.adb,
6424         g-comlin.adb, g-comlin.ads, g-curexc.ads,
6425         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6426         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6427         g-dyntab.adb, g-encstr.ads, g-excact.ads,
6428         g-except.ads, g-expect.ads, g-heasor.adb,
6429         g-hesora.adb, g-hesorg.adb, g-htable.ads,
6430         g-locfil.ads, g-md5.adb, g-md5.ads,
6431         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6432         g-pehage.adb, g-pehage.ads, g-regexp.adb,
6433         g-regexp.ads, g-regpat.adb, g-regpat.ads,
6434         g-soccon-aix.ads, g-soccon-darwin.ads,
6435         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6436         g-soccon-hpux.ads, g-soccon-irix.ads,
6437         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6438         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6439         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6440         g-soccon-solaris.ads, g-soccon-tru64.ads,
6441         g-soccon-vms.ads, g-soccon-vxworks.ads,
6442         g-soccon.ads, g-socket.adb, g-socket.ads,
6443         g-socthi-mingw.adb, g-socthi-vms.adb,
6444         g-socthi-vxworks.adb, g-soliop-mingw.ads,
6445         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6446         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6447         typos.
6448
6449 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
6450
6451         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6452         if the procedure is imported.
6453
6454 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6455
6456         * adaint.c: Fix warnings.
6457
6458 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6459
6460         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6461
6462 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6463
6464         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6465         Fix problem of status check for null file
6466
6467 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6468
6469         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6470         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6471         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6472         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6473         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6474         comments.
6475
6476 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6477
6478         PR ada/33688
6479         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6480         Get_Socket_Option): Add support for Receive_Packet_Info.
6481
6482         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6483         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6484         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6485         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6486         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6487         new constants SO_REUSEPORT and IP_PKTINFO
6488
6489 2008-03-26  Robert Dewar  <dewar@adacore.com>
6490
6491         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6492         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6493         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6494         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6495         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6496         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6497         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6498         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6499         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6500         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6501         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6502         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6503         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6504         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6505         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6506         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6507         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6508         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6509         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6510         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6511         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6512         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6513         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6514         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6515         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6516         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6517         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6518         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6519         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6520         s-tasloc.adb: Minor reformatting.
6521         Update comments.
6522         Remove "used for" sections from comments.
6523
6524 2008-03-26  Robert Dewar  <dewar@adacore.com>
6525
6526         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6527         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6528         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6529         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6530         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6531         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6532         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6533         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6534         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6535         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6536         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6537         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6538         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6539         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6540         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6541         double spaced if it fits on one line and otherwise single spaced.
6542
6543 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6544
6545         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6546         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6547         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6548         or task info if the thread could not be created.
6549
6550 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
6551
6552         * gnatvsn.ads (Library_Version): Bump to 4.4.
6553         (Current_Year): Bump to 2008.
6554
6555 2008-03-26  Robert Dewar  <dewar@adacore.com>
6556
6557         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6558
6559         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6560
6561         * debug.adb: Add debug flags d.r and d.v
6562         Add debug flag .T (Optimize_Alignment (Time))
6563         Add debug flag .S (Optimize_Alignment (Space))
6564
6565         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6566         depending on setting of relevant debug flags.
6567         Replace use of Warnings_Off by Has_Warnings_Off
6568         (Freeze_Entity): In circuit for warning on suspicious convention
6569         actuals, do not give warning if subprogram has same entity as formal
6570         type, or if subprogram does not come from source.
6571         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6572         if Optimize_Alignment set to Space.
6573
6574         * frontend.adb: Add call to Sem_Warn.Initialize
6575         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6576         Reset Optimize_Alignment mode from debug switches .S and .T
6577
6578         * layout.adb (Layout_Composite_Object): Rewritten for
6579         Optimize_Aligment pragma.
6580
6581         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6582         mode.
6583
6584         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6585
6586         * par-prag.adb (N_Pragma): Chars field removed, use Chars
6587         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6588         this change. Add entry for pragma Optimize_Alignment
6589
6590         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6591         (Pragma_Identifier (..
6592         instead, adjustments throughout to accomodate this change.
6593         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6594         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6595         Add implementation of pragma Optimize_Alignment
6596
6597 2008-03-26  Vincent Celier  <celier@adacore.com>
6598
6599         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6600         Improve memory usage to avoid use of stack.
6601
6602 2008-03-26  Robert Dewar  <dewar@adacore.com>
6603
6604         * a-teioed.ads: Correct value of Default_Fill
6605
6606         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6607
6608 2008-03-26  Robert Dewar  <dewar@adacore.com>
6609
6610         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6611         with Current_Output (introduce Self).
6612
6613 2008-03-26  Robert Dewar  <dewar@adacore.com>
6614
6615         * checks.adb (Ensure_Valid): Capture valid status if possible
6616         (eliminate checks)
6617
6618 2008-03-26  Robert Dewar  <dewar@adacore.com>
6619
6620         * stand.ads: Deal with reordering of package standard declarations
6621
6622         * cstand.adb: Put package Standard declarations in proper order
6623
6624 2008-03-26  Robert Dewar  <dewar@adacore.com>
6625
6626         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6627         (Pragma_Identifier (.. instead.
6628         (OK_To_Reorder_Components): New flag
6629         (Has_Entries): Code cleanup.
6630         (Warnings_Off_Used): New flag
6631         (Warnings_Off_Used_Unmodified): New flag
6632         (Warnings_Off_Used_Unreferenced): New flag
6633         (Has_Warnings_Off): New function
6634         (Has_Unmodified): New function
6635         (Has_Unreferenced): New function
6636         (Is_Trivial_Subprogram): New flag
6637         (Is_Static_Dispatch_Table_Entity): New attribute.
6638         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6639         (more consistent with other similar names)
6640         (Access_Subprogram_Type): New classification function
6641
6642 2008-03-26  Robert Dewar  <dewar@adacore.com>
6643
6644         * errout.ads: Document new !! insertion sequence
6645
6646         * errout.adb (N_Pragma): Chars field removed, use Chars
6647         (Pragma_Identifier (..  instead.
6648         Replace use of Warnings_Off by Has_Warnings_Off
6649         (Error_Msg_Internal): Don't delete warning ending in !!
6650
6651 2008-03-26  Robert Dewar  <dewar@adacore.com>
6652
6653         * par.adb (Check_No_Right_Paren): Removed no longer used
6654
6655         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6656         (Pragma_Identifier (..  instead.
6657
6658         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6659
6660         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6661         par-ch4.adb: Minor improvements in error recovery and messages.
6662
6663         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6664         non-serious
6665
6666         * par-ch9.adb: Minor improvements in error recovery and messages
6667         (P_Protected): Better error recovery for "protected type x;"
6668
6669         * par-util.adb: Minor improvements in error recovery and messages
6670         (Check_No_Right_Paren): Removed no longer used
6671
6672 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6673
6674         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6675         that the prefix of an attribute is the type of the aggregate being
6676         expanded.
6677
6678 2008-03-26  Javier Miranda  <miranda@adacore.com>
6679             Robert Dewar  <dewar@adacore.com>
6680
6681         * exp_attr.adb (N_Pragma): Chars field removed.
6682         (Expand_N_Attribute_Reference): If the designated type associated with
6683         attribute 'Unrestricted_Access is a subprogram entity then replace it
6684         by an E_Subprogram_Type itype.
6685         Implement attribute Old
6686
6687         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6688
6689         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6690         Replace call to
6691         New_Internal_Entity by call to Create_Itype to centralize calls
6692         building itypes, ad propagate the convention of the designated
6693         subprogram. In addition, disable the machinery cleaning constant
6694         indications from all entities in current scope when 'Unrestricted_Access
6695         corresponds with a node initializing a dispatch table slot.
6696         (Analyze_Attribute): Parameterless attributes returning a string or a
6697         type will not be called with improper arguments, so we can remove junk
6698         code that was dealing with this case.
6699         Implement attribute Old
6700
6701         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6702         Add entry for pragma Optimize_Alignment
6703         New standard names Sync and Synchronize
6704
6705 2008-03-26  Robert Dewar  <dewar@adacore.com>
6706             Arnaud Charlet  <charlet@adacore.com>
6707
6708         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6709         stmt.
6710         (No_Exception_Propagation_Active): New function.
6711         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6712         Update comments, and review all uses of No_Exception_Propagation, which
6713         are now correct and in sync with what gigi expects.
6714
6715         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6716         function.
6717         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6718         Update comments, and review all uses of No_Exception_Propagation, which
6719         are now correct and in sync with what gigi expects.
6720
6721 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6722
6723         * sem_ch3.adb (Access_Definition): If the access type is the return
6724         result of a protected function, create an itype reference for it
6725         because usage will be in an inner scope from the point of declaration.
6726         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6727         OK_To_Reorder_Components.
6728         (Make_Index): If an overloaded range includes a universal integer
6729         interpretation, resolve to Standard.Integer.
6730         (Analyze_Subtype_Indication): Copy Convention to subtype
6731         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6732         limited an synchronized progenitors in type declaration and private
6733         extension declarations.
6734
6735         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6736         protected subprogram body, determine proper scope from subprogram
6737         declaration.
6738
6739 2008-03-26  Robert Dewar  <dewar@adacore.com>
6740
6741         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6742         No_Run_Time_Mode
6743
6744 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
6745
6746         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6747         of a heap allocator for a limited unconstrained function return when
6748         resstriction No_Allocators is active.
6749         (Analyze_Allocator): The restriction No_Allocators is now only checked
6750         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6751
6752         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6753         of a heap allocator for a limited unconstrained function return when
6754         resstriction No_Allocators is active.
6755         (Analyze_Allocator): The restriction No_Allocators is now only checked
6756         on allocators that have Comes_From_Source set, as per RM-H.4(7).
6757         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
6758         operands are fixed-point types, the universal_fixed predefined operation
6759         is used, regardless of whether the operand type (s) have a primitive
6760         operation of the same name.
6761
6762 2008-03-26  Javier Miranda  <miranda@adacore.com>
6763
6764         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6765         Is_Static_Dispatch_Table
6766         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6767         to Exchange_Declarations to exchange the private and full-view. Bug
6768         found working in this issue.
6769         (Expand_Dispatching_Call): Propagate the convention of the subprogram
6770         to the subprogram pointer type.
6771         (Make_Secondary_DT): Replace generation of Prim'Address by
6772         Address (Prim'Unrestricted_Access)
6773         (Make_DT): Replace generation of Prim'Address by
6774         Address (Prim'Unrestricted_Access)
6775         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6776         simple call form for single entry.
6777         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6778         tables of predefined primitives).
6779         (Make_Secondary_DT): Add support to handle access to dispatch tables of
6780         predefined primitives.
6781         (Make_Tags): Add entities to Access_Dispatch_Table associated with
6782         access to dispatch tables containing predefined primitives.
6783
6784         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6785         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
6786         this change.
6787         (Register_Predefined_DT_Entry): Updated to handle the new contents
6788         of attribute Access_Disp_Table (pointers to dispatch tables containing
6789         predefined primitives).
6790
6791         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6792         subprogram.
6793         (Find_Interface_ADT): Updated to skip the new contents of attribute
6794         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6795         primitives).
6796
6797         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6798         concurrent types.
6799         (Set_Convention): Use new function Is_Access_Subprogram_Type
6800         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6801         Access_Dispatch_Table (pointers to dispatch tables containing predefined
6802         primitives).
6803
6804         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6805         expanded code avoiding calls to Build_Predef_Prims.
6806         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6807         call to Build_Get_Predefined_Prim_Op_Address.
6808
6809 2008-03-26  Javier Miranda  <miranda@adacore.com>
6810
6811         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6812         subprogram Corresponding_Runtime_Package to know the runtime package
6813         that will provide support to a given protected type.
6814
6815         * exp_ch9.adb (Add_Private_Declarations,
6816         Build_Protected_Subprogram_Call,
6817         Build_Protected_Entry, Build_Simple_Entry_Call,
6818         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6819         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6820         cleanup using the new centralized subprogram Corresponding_Runtime
6821         Package to know the runtime package that provides support to
6822         a given protected type.
6823
6824 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6825
6826         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6827         assignment is within the initialization procedure for a packed array,
6828         and Initialize_Scalars is enabled, compile right-hand side with checks
6829         off, because the value is purposely out of range.
6830
6831 2008-03-26  Vincent Celier  <celier@adacore.com>
6832
6833         * gnatcmd.adb: Add processing for GNAT SYNC
6834
6835         * vms_conv.ads: (Command_Type): Add command Sync
6836
6837         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6838
6839         * vms_data.ads: Add entries for -gnatw.w
6840         Add qualifier for gnatstub --header-file option
6841         Add switches for GNAT SYNC
6842
6843         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6844         (Add_Package_Name): New procedure
6845         (Package_Name_List): New function
6846         (Initialize): Add known package names to the list
6847         (Register_New_Package): Add the new package name to the list
6848
6849 2008-03-26  Robert Dewar  <dewar@adacore.com>
6850
6851         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6852         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6853         Raise_Exception by "raise with" construct.
6854
6855 2008-03-26  Pascal Obry  <obry@adacore.com>
6856
6857         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6858         supported platforms.
6859
6860         * Makefile.rtl: Add g-sercom.o.
6861
6862         * impunit.adb: Add g-sercom.adb.
6863
6864         * s-crtl.ads (open): New routine.
6865         (close): Likewise.
6866         (write): Likewise.
6867
6868         * s-osinte-mingw.ads (BYTE): New type.
6869         (CHAR): Likewise.
6870         (OVERLAPPED): Likewise.
6871         (GENERIC_READ): New constant.
6872         (GENERIC_WRITE): Likewise.
6873         (OPEN_EXISTING): Likewise.
6874         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6875         type instead.
6876         (CreateFile): New routine.
6877         (WriteFile): Likewise.
6878         (ReadFile): Likewise.
6879         (CloseHandle): Move next to the other file oriented routines.
6880
6881         * g-sercom.ads: New unit.
6882
6883         * g-sercom.adb: Default implementation, calls to this unit will raise
6884         a program error exception.
6885
6886         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6887         GNU/Linux implementations.
6888
6889 2008-03-26  Robert Dewar  <dewar@adacore.com>
6890
6891         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6892
6893         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6894         unchecked conversion for different conventions only for subprogram
6895         pointers or on VMS.
6896
6897 2008-03-26  Vincent Celier  <celier@adacore.com>
6898
6899         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6900         to check if the specified object file is correct.
6901
6902 2008-03-26  Thomas Quinot  <quinot@adacore.com>
6903
6904         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6905         Comes_From_Source to exclude primitives from being checked. We want to
6906         exclude predefined primitives only, so use the appropriate specific
6907         predicate. Also, flag a formal parameter of an anonymous
6908         access-to-subprogram type as illegal for a primitive operation of a
6909         remote access to class-wide type.
6910
6911 2008-03-26  Vincent Celier  <celier@adacore.com>
6912
6913         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
6914         known, check if it may be a missspelling of a known package name. In
6915         not verbose, not mode, issue warnings only if the package name is a
6916         possible misspelling.
6917         In verbose mode, always issue a warning for a not known package name,
6918         plus a warning if the name is a misspelling of a known package name.
6919
6920         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
6921         limited withs or limited withs are parse during one call.
6922         (Parse_Single_Project): Post parse context clause in two passes: non
6923         limited withs before current project and limited withs after current
6924         project.
6925
6926         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
6927         project with the name With_Name, even if it is only extended indirectly.
6928         (Recursive_Process): Process projects in order: first single withs, then
6929         current project, then limited withs.
6930
6931         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
6932         project with the name With_Name, even if it is only extended indirectly.
6933
6934 2008-03-26  Robert Dewar  <dewar@adacore.com>
6935
6936         * scn.adb (Initialize_Scanner): Format messages belong on standard error
6937
6938 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6939
6940         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
6941         a generic subprogram that is imported, do not attempt to compile
6942         non-existent body.
6943
6944         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
6945         imported, do not generate a raise_program_error for the non-existent
6946         body.
6947         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
6948         perform minimal name resolution on the generic to avoid spurious
6949         warnings.
6950         (Find_Actual_Type): the designated type of the actual in a child unit
6951         may be declared in a parent unit without being an actual.
6952
6953 2008-03-26  Robert Dewar  <dewar@adacore.com>
6954
6955         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
6956         * sinfo.ads, sinfo.adb (From_At_End): New flag
6957
6958 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6959
6960         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
6961         operations that have an interface parameter.
6962         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
6963         Don't treat No_Return call as raise.
6964
6965         * sem_disp.adb (Check_Dispatching_Operations): apply check for
6966         non-primitive interface primitives to access parameters, not to all
6967         parameters of an access type.
6968
6969 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
6970
6971         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
6972         declarations of a parent unit are made visible when compiling a child
6973         instance, the parent is not a hidden open scope, even though it may
6974         contain other pending instance.
6975
6976         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
6977         hidden open scope for some child instance, it does affect the
6978         visibility status of other stach entries.
6979         (Analyze_Object_Renaming): Check that a class-wide object cannot be
6980         renamed as an object of a specific type.
6981
6982 2008-03-26  Robert Dewar  <dewar@adacore.com>
6983
6984         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
6985         recursion and raise SE directly.
6986         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
6987         set for formal type for IN mode parameter.
6988
6989 2008-03-26  Robert Dewar  <dewar@adacore.com>
6990
6991         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
6992         (Initialize): New procedure
6993         (Output_Warnings_Off_Warnings): New procedure
6994         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
6995         (Output_Non_Modifed_In_Out_Warnings): Ditto
6996         (Warn_On_Unreferenced_Entity): Ditto
6997
6998 2008-03-26  Vincent Celier  <celier@adacore.com>
6999
7000         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7001         readable.
7002
7003 2008-03-26  Matthew Heaney  <heaney@adacore.com>
7004
7005         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7006         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7007         Marked with clauses as private, and controlled operations as overriding
7008
7009 2008-03-26  Robert Dewar  <dewar@adacore.com>
7010
7011         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7012
7013 2008-03-26  Robert Dewar  <dewar@adacore.com>
7014
7015         * back_end.adb, back_end.ads: Minor reformatting
7016
7017         * bindgen.adb: Minor clarification of comments
7018
7019         * fname.ads: Minor comment fixes
7020
7021         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7022         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7023
7024         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7025         xsnames.adb: Remove warnings off pragma no longer needed
7026
7027         * a-catizo.ads, a-calari.ads, a-calfor.adb,
7028         a-calfor.ads: Fix header.
7029
7030 2008-03-26  Tristan Gingold  <gingold@adacore.com>
7031
7032         * init.c: Do not adjust pc for HPARITH on alpha/vms.
7033
7034 2008-03-26  Robert Dewar  <dewar@adacore.com>
7035
7036         * lib-xref.adb: (OK_To_Set_Reference): New function
7037         (Generate_Reference): Don't set referenced from occurrence in Warnings,
7038         Unmodified, or Unreferenced pragma
7039
7040 2008-03-26  Robert Dewar  <dewar@adacore.com>
7041
7042         * alloc.ads: Add entries for Warnings_Off_Pragmas table
7043
7044 2008-03-26  GNAT Script  <nobody@adacore.com>
7045
7046         * Make-lang.in: Makefile automatically updated
7047
7048 2008-03-26  Robert Dewar  <dewar@adacore.com>
7049
7050         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7051         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7052         removed, use Chars (Pragma_Identifier (..  instead, adjustments
7053         throughout to accomodate this change.
7054
7055         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7056
7057         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7058         Einfo.Set_Needs_Debug_Info)
7059
7060 2008-03-26  Robert Dewar  <dewar@adacore.com>
7061
7062         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7063         Add description for the new gnatstub option '--header-file'
7064         clarification of -gnatwz/-gnatwZ
7065         Add a "Irix-Specific Considerations" section to document the need to
7066         set LD_LIBRARY_PATH when using the default shared runtime library.
7067         Added documentation for both gcov and gprof.
7068
7069         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7070         messages that are not suppressed when clients are compiled.
7071         Add documentation of s-pooglo s-pooloc
7072         Document the new GNAT.Serial_Communications API.
7073         Add documentation for 'Old attribute
7074         Add description of pragma Optimize_Alignment
7075
7076         * ug_words: Add entries for -gnatw.w -gnatw.W
7077
7078         * usage.adb: Add line for -gnatw.w (warn on warnings off)
7079
7080 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
7081
7082         Revert
7083         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7084         PR ada/35186
7085         * decl.c (maybe_pad_type): Avoid padding an integral type when
7086         bumping its alignment is sufficient.
7087
7088 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
7089
7090         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7091         Fix wrong formatting (lines too long)
7092
7093 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7094
7095         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7096         a-calend-vms.adb, a-calend.adb, a-calend.ads,
7097         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7098         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7099         a-cohama.ads, a-comlin.ads, a-coorse.adb,
7100         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7101         a-except-2005.ads, a-except.adb, a-except.ads,
7102         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7103         a-exextr.adb, a-filico.ads, a-finali.ads,
7104         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7105         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7106         a-sequio.ads, a-strbou.ads, a-strfix.adb,
7107         checks.adb, exp_ch3.adb, exp_ch4.adb,
7108         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7109         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7110         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7111         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7112         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7113
7114 2008-03-24  Robert Dewar  <dewar@adacore.com>
7115
7116         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7117         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7118         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7119         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7120         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7121         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7122         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7123         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7124         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7125         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7126         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7127         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7128         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7129         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7130         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7131         double spaced if it fits on one line and otherwise single spaced.
7132
7133 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7134
7135         PR documentation/15479
7136         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7137         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7138         (doc/gnat_ugn.info): Renamed from ...
7139         (doc/gnat_ugn_unw.info): ... this.
7140         (doc/gnat_ugn.dvi): Renamed from ...
7141         (doc/gnat_ugn_unw.dvi): ... this.
7142         (doc/gnat_ugn.pdf): Renamed from ...
7143         (doc/gnat_ugn_unw.pdf): ... this.
7144         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7145         Adjusted.
7146         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7147         unconditionally to gnat_ugn.info.  Fix cross references to the
7148         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7149         and GNU make manuals to be proper texinfo links.
7150         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7151
7152 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7153
7154         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7155         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7156
7157 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7158
7159         * trans.c (addressable_p): Add notes on addressability issues.
7160
7161 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7162             Ed Schonberg  <schonberg@adacore.com>
7163
7164         * trans.c (addressable_p): Accept COND_EXPR when both arms
7165         are addressable.
7166         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7167         (call_to_gnu): Do not use name reference in the error message
7168         for a misaligned by_reference_parameter. The actual may be a
7169         general expression.
7170
7171 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7172
7173         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7174
7175 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7176
7177         * gnat_rm.texi (Implementation Defined Characteristics)
7178         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7179         appropriate.
7180         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7181         (Switches for gnatchop, Installing a library): Likewise.
7182
7183 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7184
7185         * trans.c (emit_range_check): Do not emit the check if the base type
7186         of the expression is the type against which its range must be checked.
7187
7188 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7189
7190         * decl.c (maybe_pad_type): Use value_factor_p.
7191
7192 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7193
7194         * lang.opt (nostdlib): Move around.
7195         * misc.c (gnat_handle_option): Fix formatting.
7196         (gnat_dwarf_name): Move around.
7197         * trans.c (Case_Statement_to_gnu): Fix formatting.
7198         (gnat_to_gnu): Likewise.
7199         * utils.c (aggregate_type_contains_array_p): Likewise.
7200         (create_subprog_decl): Likewise.
7201
7202 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7203
7204         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7205         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7206
7207 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7208
7209         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7210         BIGGEST_ALIGNMENT when capping the alignment of records with
7211         strict alignment and size clause.
7212
7213 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7214
7215         * lang-specs.h: Pass -gnatwa if -Wall is passed.
7216         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7217         and -Wuninitialized.
7218         (gnat_post_options): Clear warn_unused_parameter.
7219
7220 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7221
7222         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7223         aligned bit-fields, bumping the alignment of the record type if deemed
7224         profitable.
7225         (value_factor_p): Return false instead of 0.
7226
7227 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7228
7229         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7230         for scalar types with small alignment.
7231
7232 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7233
7234         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7235         from that of the front-end's end label.
7236         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7237         from that of the loop label.
7238
7239 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7240
7241         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7242         comment for the packed array type case.
7243         * utils.c (build_template): Use a loop to strip padding or
7244         containing records for justified modular types.
7245
7246 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7247
7248         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7249         large alignments specified for types.
7250         (validate_alignment): Minor cleanup.
7251
7252 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7253
7254         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7255         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7256         the component for packing, if possible, as well as if a component
7257         size clause is specified.
7258         <E_Record_Subtype>: For an array type used to implement a packed
7259         array, get the component type from the original array type.
7260         Try to get a smaller form of the component for packing, if possible,
7261         as well as if a component size clause is specified.
7262         (round_up_to_align): New function.
7263         (make_packable_type): Add in_record parameter.
7264         For a padding record, preserve the size.  If not in_record and the
7265         size is too large for an integral mode, attempt to shrink the size
7266         by lowering the alignment.
7267         Ditch the padding bits of the last component.
7268         Compute sizes and mode manually, and propagate the RM size.
7269         Return a BLKmode record type if its size has shrunk.
7270         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7271         Use Original_Array_Type to retrieve the type in case of an error.
7272         Adjust call to make_packable_type.
7273         (gnat_to_gnu_field): Likewise.
7274         (concat_id_with_name): Minor tweak.
7275         * trans.c (larger_record_type_p): New predicate.
7276         (call_to_gnu): Compute the nominal type of the object only if the
7277         parameter is by-reference.  Do the conversion actual type -> nominal
7278         type if the nominal type is a larger record.
7279         (gnat_to_gnu): Do not require integral modes on the source type to
7280         avoid the conversion for types with identical names.
7281         (addressable_p): Add gnu_type parameter.  If it is specified, do not
7282         return true if the expression is not addressable in gnu_type.
7283         Adjust recursive calls.
7284         * utils.c (finish_record_type): Remove dead code.
7285
7286 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7287
7288         PR ada/35186
7289         * decl.c (maybe_pad_type): Avoid padding an integral type when
7290         bumping its alignment is sufficient.
7291
7292 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7293
7294         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7295         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7296         statement.
7297         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7298         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7299         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7300         code output strings.
7301         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7302         system-vms_64.ads: Fix typos in ada source code comments.
7303         * sinfo-cn.adb: Remove incomplete sentence.
7304
7305         PR documentation/15479
7306         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7307
7308 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7309
7310         PR ada/22255
7311         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7312
7313 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7314
7315         PR ada/34799
7316         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7317         that underlying type is present.
7318
7319 2008-02-26  Tom Tromey  <tromey@redhat.com>
7320
7321         * misc.c (internal_error_function): Remove test of
7322         USE_MAPPED_LOCATION.
7323         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7324         (Sloc_to_locus): Remove old location code.
7325
7326 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7327
7328         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7329         `i.e.' by adding comma or `@:' as appropriate.
7330         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7331         plain characters `C', use `@samp{C}'.
7332         * gnat_ugn.texi (File Naming Rules, About gnatkr)
7333         (Krunching Method): Likewise.
7334
7335         * gnat_ugn.texi (Conventions): List environment variables and
7336         metasyntactic variables.
7337         (Compiling Programs): Fix notation of metasyntactic variables.
7338         Add @file where appropriate.  Use @file for file extensions,
7339         @samp for strings.
7340         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7341         instead of @file, @env instead of @code.
7342
7343 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7344
7345         PR documentation/15479
7346         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7347         and `...' with `@dots{}' or `@enddots{}'.
7348
7349         PR documentation/15479
7350         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7351         use @command instead of @code, @option instead of @samp or @code,
7352         @code instead of @var, @samp instead of @file.
7353
7354         PR documentation/15479
7355         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7356         in Makefile rules, by using `&&' rather than `;'.
7357
7358 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7359
7360         PR documentation/15479
7361         * gnat_ugn.texi: In non-code, avoid space before colon.
7362         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7363         (Examples of gnatxref Usage): Use @command{vi} instead of
7364         @file{vi}.
7365         (Character Set Control): Do not use @code for UTF-8.
7366         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
7367         use @code for IEEE.
7368         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7369         sample.
7370         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
7371
7372 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
7373
7374         PR ada/35143
7375         * env.c: Add __rtems__ to if defined.
7376         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
7377         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7378         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
7379         pragma Convention as required.
7380         * gsocket.h: Make compile in and out of RTS.
7381         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
7382         Use g-soccon-rtems.ads.
7383         * g-soccon-rtems.ads, system-rtems.ads: New files.
7384
7385 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7386
7387         PR other/35107
7388         * Make-lang.in (gnat1): Add $(GMPLIBS).
7389
7390 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7391
7392         * decl.c (components_to_record): Improve comment.
7393
7394 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7395
7396         * decl.c (components_to_record): Do not reuse the empty union type
7397         if there is a representation clause on the record.
7398         * trans.c (addressable_p): Return true for INTEGER_CST.
7399
7400 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
7401
7402         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7403         in pointer arithmetics.
7404         * utils2.c (build_allocator): Likewise.
7405
7406 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7407
7408         * utils.c (build_function_stub): Properly build the call expression.
7409
7410 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7411
7412         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7413         before converting the expression to the type of the object.
7414         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7415         Stabilize constructors for special wrapping types.
7416
7417 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
7418
7419         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7420         when necessary.  Merge some conditional statements.  Update comments.
7421         Rename unchecked_convert_p local variable to suppress_type_conversion.
7422         Do not suppress conversions in the In case.
7423         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7424         into account on non strict-alignment platforms.
7425
7426 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7427
7428         * utils.c (aggregate_type_contains_array_p): New predicate.
7429         (create_field_decl): In a packed record, force byte alignment
7430         for fields without specified position that contain an array.
7431
7432 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7433
7434         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7435
7436 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
7437
7438         PR ada/34466
7439         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7440         sysconf call.
7441         (bit_field): New packed boolean type used by cpu_set_t.
7442         (cpu_set_t): New type corresponding to the C type with
7443         the same name. Note that on the Ada side we use a bit
7444         field array for the affinity mask. There is not need
7445         for the C macro for setting individual bit.
7446         (pthread_setaffinity_np): New imported routine.
7447
7448 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
7449
7450         PR ada/34647
7451         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7452         on OpenBSD as is done on other BSD systems.
7453
7454         PR ada/34645
7455         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7456         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7457         I/O.
7458
7459         PR ada/34644
7460         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7461         clearenv().
7462
7463         PR ada/34646
7464         * init.c (__gnat_error_handler, __gnat_install_handler,
7465         __gnat_init_float): Define for OpenBSD.
7466
7467         * initialize.c (__gnat_initialize): Define for OpenBSD.
7468
7469 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
7470
7471         PR ada/34553
7472         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7473         instead of mktemp() or tmpnam() on NetBSD.
7474
7475 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
7476
7477         * trans.c (call_to_gnu): Make the temporary for non-addressable
7478         In parameters passed by reference.
7479         (addressable_p): Return true for STRING_CST and CALL_EXPR.
7480
7481 2007-12-19  Robert Dewar  <dewar@adacore.com>
7482
7483         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7484         Add pragma Warnings (Off) for unassigned IN OUT arguments
7485
7486         * sem_warn.adb (Output_Reference): Suppress messages for internal names
7487         (Check_References): Extensive changes to tune up warnings
7488         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7489         (Has_Pragma_Unmodifed_Check_Spec): New function
7490         (Check_References): Implement pragma Unmodified
7491         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7492
7493         * par-prag.adb: Dummy entry for pragma Unmodified
7494
7495         * sem_prag.adb: Implement pragma Unmodified
7496
7497         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7498         (Proc_Next_Component_Or_Discriminant): Fix typo.
7499         Update comments.
7500
7501         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7502         Unmodified.
7503         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7504         because the former already takes care of discarding the result.
7505         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7506         Add comment.
7507
7508         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7509
7510 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
7511
7512         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7513         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7514         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7515         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7516         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7517         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7518         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7519         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7520         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7521         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7522         (Dynamic_Trampolines_Used): Delete.
7523
7524         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7525         Turn on stack probing mechanism on LynxOS.
7526
7527 2007-12-19  Bob Duff  <duff@adacore.com>
7528
7529         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7530         the resulting tail recursion by hand. This prevents running out of
7531         memory on deeply nested concatenations, since Field2 is where the left
7532         operand of concatenations is stored.
7533         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7534         clarify that it can only return OK or Abandon.
7535
7536         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7537         operand by iteration, in order to avoid running out of memory on
7538         deeply-nested concatenations. Use the Parent pointer to get back up the
7539         tree.
7540         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7541          Resolve_Op_Concat_Rest): New procedures split out of
7542         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7543         clearer.
7544
7545         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7546         Traverse_Func, because the former already takes care of discarding the
7547         result.
7548
7549         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7550         because the former already takes care of discarding the result.
7551         (Remove_Warning_Messages): Use appropriate subtype for Status and
7552         Discard
7553
7554 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7555
7556         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7557         discriminants forces expansion of the aggregate into assignments.
7558         (Init_Record_Controller):  If the type of the aggregate is untagged and
7559         is not inherently limited, the record controller is not limited either.
7560
7561 2007-12-19  Robert Dewar  <dewar@adacore.com>
7562
7563         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7564         handling compile time known size of record or array (case of front end
7565         layout active, e.g. in GNAAMP).
7566
7567 2007-12-19  Javier Miranda  <miranda@adacore.com>
7568
7569         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7570         that forces the construction of static dispatch tables in case of
7571         record subtypes.
7572
7573 2007-12-19  Robert Dewar  <dewar@adacore.com>
7574
7575         * exp_ch9.adb (Null_Statements): Moved to library level
7576         (Trivial_Accept_OK): New function
7577         (Expand_Accept_Declaration): Use Trivial_Accept_OK
7578         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7579
7580 2007-12-19  Robert Dewar  <dewar@adacore.com>
7581
7582         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7583         in complex case where array is Volatile.
7584
7585 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7586
7587         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7588         properly the Ada2005 rules concerning when the current instance of a
7589         record type is aliased.
7590
7591 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7592
7593         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7594         mangled declaration
7595         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7596         declarations.
7597         (P_Variant_Part): Cleaner patch for parenthesized discriminant
7598
7599 2007-12-19  Vincent Celier  <celier@adacore.com>
7600
7601         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7602         package is not known
7603
7604         * prj-attr.ads (Unknown_Package): New constant
7605         Do not crash when an unknown package is in several projects
7606
7607         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7608         ignored
7609
7610         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7611         existing package Language_Processing.
7612
7613 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7614             Gary Dismukes  <dismukes@adacore.com>
7615             Samuel Tardieu  <sam@rfc1149.net>
7616
7617         PR ada/15803, ada/15805
7618         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7619         illegal access subtypes when there is a constrained partial view.
7620         (Check_For_Premature_Usage): New procedure inside
7621         Access_Subprogram_Declaration for checking that an access-to-subprogram
7622         type doesn't reference its own name within any formal parameters or
7623         result type (including within nested anonymous access types).
7624         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7625         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7626         context is an access_to_variable, the expression cannot be an
7627         access_to_constant.
7628
7629 2007-12-19  Bob Duff  <duff@adacore.com>
7630
7631         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7632         (Analyze_Concatenation): Use iteration instead of recursion in order
7633         to avoid running out of stack space for deeply nested concatenations.
7634
7635 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
7636             Gary Dismukes  <dismukes@adacore.com>
7637
7638         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7639         whose renamed entity is a subprogram that requires overriding.
7640         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7641         issuing an error for premature usage and issue a message that says
7642         'type' rather than 'object'.
7643
7644 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
7645
7646         PR ada/34149
7647         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7648         presence of a statically tagged operand (Present (Static_Tag)) with
7649         test for Indeterm_Ancestor_Call when determining whether to propagate
7650         the static tag to tag-indeterminate operands (which forces dispatching
7651         on such calls).
7652         (Check_Controlling_Formals): Ada2005, access parameters can have
7653         defaults.
7654         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7655         not insert subprogram in list of primitive operations if already there.
7656
7657 2007-12-19  Tristan Gingold  <gingold@adacore.com>
7658
7659         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7660         global variable.
7661
7662 2007-12-19  Thomas Quinot  <quinot@adacore.com>
7663
7664         Part of PR ada/33688
7665         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7666         datagram info on Linux.
7667
7668 2007-12-19  Vincent Celier  <celier@adacore.com>
7669
7670         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7671         that the source path name is always found in the dependencies.
7672
7673 2007-12-19  Robert Dewar  <dewar@adacore.com>
7674
7675         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7676         Fix name of Wide_Wide_Latin_1/9 file names
7677         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7678         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7679         Add missing documentation for Ada.Command_Line.Response_File
7680         Update list of warning letters for Warnings pragma
7681         Add documentation for pragma Unmodified
7682
7683 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
7684
7685         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7686
7687 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
7688
7689         * s-vxwork-alpha.ads: Removed, no longer used.
7690
7691 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
7692
7693         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7694
7695 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
7696
7697         PR ada/34360
7698         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
7699         mlib-tgt-specific.adb.
7700
7701 2007-12-13  Bob Duff  <duff@adacore.com>
7702
7703         * trans.c (Attribute_to_gnu): Check for violations of the
7704         No_Implicit_Dynamic_Code restriction. This checking used to be done in
7705         the front end, but is moved here so we can make it more accurate.
7706
7707 2007-12-13  Pascal Obry  <obry@adacore.com>
7708
7709         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
7710          version is provided for older GNU/Linux distribution not
7711          supporting thread affinity sets.
7712
7713         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
7714         call.
7715         (bit_field): New packed boolean type used by cpu_set_t.
7716         (cpu_set_t): New type corresponding to the C type with
7717         the same name. Note that on the Ada side we use a bit
7718         field array for the affinity mask. There is not need
7719         for the C macro for setting individual bit.
7720         (pthread_setaffinity_np): New imported routine.
7721
7722         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
7723         no null.
7724         (Create_Task): Set the processor affinity mask if information
7725         is present.
7726
7727         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
7728
7729 2007-12-13  Robert Dewar  <dewar@adacore.com>
7730
7731         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7732         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
7733         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
7734         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
7735         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
7736         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
7737         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
7738         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
7739         for subprogram pointers.
7740
7741         * g-ctrl_c.adb: New file.
7742
7743         * g-ctrl_c.ads (Install_Handler): New body.
7744
7745         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
7746         instead of obsolete function Is_Always_Inlined.
7747         (Freeze_Entity): check for tagged type in imported C subprogram
7748         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
7749         (Freeze_Entity): check for convention Ada subprogram pointer in
7750         imported C subprogram.
7751         (Freeze_Fixed_Point_Type): In the case of a base type where the low
7752         bound would be chopped off and go from negative to zero, force
7753         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
7754         bound) so that the size computation for the base type will take
7755         negative values into account.
7756
7757 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
7758             Bob Duff  <duff@adacore.com>
7759             Tristan Gingold  <gingold@adacore.com>
7760
7761         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7762         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7763         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7764         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7765         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7766         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7767         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7768         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
7769         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7770         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
7771         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
7772         (Always_Compatible_Rep): New flag to control trampolines globally.
7773         (Dynamic_Trampolines_Used): New flag for implementing the
7774         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
7775         and not yet set correctly for some targets).
7776
7777         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
7778         Simply indirectly call s-stchop when a task is created.
7779
7780         * ali.ads:
7781         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
7782         appears as an argument (entries A) in an ALI file.
7783
7784         * fe.h (Stack_Check_Limits): Declare new target parameter.
7785         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
7786
7787         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
7788         This variable is declared in C to be sure not subject to elaboration
7789         code.
7790         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
7791         Storage_Error.
7792
7793         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
7794         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
7795
7796         * s-stchop.ads: Add comments.
7797
7798         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
7799         limit method of stack checking.
7800
7801         * s-stchop-limit.ads: New file.
7802
7803 2007-12-13  Robert Dewar  <dewar@adacore.com>
7804
7805         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
7806         a-cihama.adb, g-awk.adb,
7807         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
7808         warnings
7809
7810         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
7811
7812         * sem.adb: Update handling of assigned value/unreferenced warnings
7813
7814         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
7815
7816         * lib-xref.ads: Improve documentation for k xref type
7817
7818         * lib-xref.adb:
7819         Update handling of assigned value/unreferenced warnings
7820         (Generate_Reference): Warning for reference to entity for which a
7821         pragma Unreferenced has been given should be unconditional.
7822         If the entity is a discriminal, mark the original
7823         discriminant as referenced.
7824
7825         * sem_warn.ads, sem_warn.adb
7826         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
7827         no entities referenced in package
7828         (Check_One_Unit): Don't give message about no entities referenced in
7829         a package if a pragma Unreferenced has appeared.
7830         Handle new warning flag -gnatw.a/-gnatw.A
7831         Update handling of assigned value/unreferenced warnings
7832
7833         * atree.h: Add flags up to Flag247
7834         (Flag231): New macro.
7835
7836 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
7837
7838         * adaint.h: (__gnat_plist_init): Not defined for RTX.
7839
7840         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
7841         RTX systems.
7842
7843         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
7844         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
7845         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
7846         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
7847
7848         * mingw32.h:
7849         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
7850
7851         * sysdep.c (winflush_function for RTX): Procedure that does nothing
7852         since we only have problems with Windows 95/98, which are not
7853         supported by RTX.
7854         (__gnat_ttyname): Return the empty string on Nucleus, just as
7855         done on vxworks.
7856
7857 2007-12-13  Robert Dewar  <dewar@adacore.com>
7858
7859         * a-textio.adb, a-textio.ads:
7860         Extensive changes to private part for wide character encoding
7861
7862         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
7863         (Look_Ahead): Fix mishandling of encoded sequences
7864         Move declaration of Wch_Con to private part (should not be visible)
7865
7866         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
7867         UTF-8. Probably this is never used, but if it is, brackets is
7868         clearly correct.
7869
7870         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
7871         setting wide character encoding for no main program case and when
7872         encoding is specified using -W?
7873         Initialize stack limit of environment task if stack limit method of
7874         stack checking is enabled.
7875         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
7876         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
7877         (Get_Main_Unit_Name): New function.
7878         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
7879         (Gen_Output_File): Set Bind_Main_Program to True for .NET
7880
7881         * bindusg.adb: Add line for -Wx switch
7882
7883         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
7884         Add comments
7885         Add new useful constant WC_Longest_Sequences
7886
7887         * switch-b.adb: Clean up handling of -Wx switch
7888         For -gnatWx, set Wide_Character_Encoding_Method_Specified
7889
7890         * switch-c.adb: -gnatg activates warning on assertion errors
7891         For -gnatWx, set Wide_Character_Encoding_Method_Specified
7892
7893         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
7894
7895 2007-12-13  Robert Dewar  <dewar@adacore.com>
7896             Ed Schonberg  <schonberg@adacore.com>
7897
7898         * a-ngcoty.adb: New pragma Fast_Math
7899
7900         * opt.adb: New pragma Fast_Math
7901
7902         * par-prag.adb:
7903         Add Implemented_By_Entry to the list of pragmas which do not require any
7904         special processing.
7905         (Favor_Top_Level): New pragma.
7906         New pragma Fast_Math
7907
7908         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
7909         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
7910         Expand_Allocator_Expression): Take into account VM_Target
7911         (Expand_Attribute, case 'Identity):  Handle properly the case where
7912         the prefix is a task interface.
7913         New pragma Fast_Math
7914
7915         * par.adb (Next_Token_Is): New function
7916         (P_Pragma): Add Skipping parameter
7917         (U_Left_Paren): New procedure
7918         (U_Right_Paren): New procedure
7919         New pragma Fast_Math
7920
7921         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
7922         subunit
7923         New pragma Fast_Math
7924
7925         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
7926         Implemented_By_Entry.
7927         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
7928         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
7929         items, since it can apply to more than one overloadable entity. Set
7930         new flag Has_Pragma_Inline_Always for Inline_Always case.
7931         (Analyze_Pragma, case Complex_Representation): Improve error message.
7932         (Analyze_Pragma, case Assert): When assertions are disabled build the
7933         rewritten code with Sloc of expression rather than pragma, so new
7934         warning about failing is not deleted.
7935         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
7936         protected types and update error message to reflect that. Test whether
7937         the protected type is allowed for the pragma (an error is issued if the
7938         type has any entries, or components that do not have preelaborable
7939         initialization).
7940         New pragma Fast_Math
7941         (Analyze_Pragma, case No_Return): Handle generic instance
7942
7943         * snames.h, snames.ads, snames.adb:
7944         Add new predefined name for interface primitive _Disp_Requeue.
7945         New pragma Fast_Math
7946
7947         * a-tags.ads, a-tags.adb: New calling sequence for
7948         String_To_Wide_[Wide_]String
7949         (Secondary_Tag): New subprogram.
7950
7951         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
7952         from Exp_Attr
7953         New calling sequence for String_To_Wide_[Wide_]String
7954         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
7955         the use of the secondary stack for image routines.
7956
7957         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
7958         calling sequence for String_To_Wide_[Wide_]String
7959
7960         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
7961         Ada 95 mode
7962         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
7963         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7964
7965         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
7966         (P_Formal_Part): Use Skipping parameter in P_Pragma call
7967         to improve error recovery
7968
7969         * par-util.adb (Next_Token_Is): New function
7970         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
7971
7972         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
7973         semicolon if missing
7974         (P_Pragma): Implement new Skipping parameter
7975         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7976         Fix location of flag for unrecognized pragma message
7977
7978         * par-tchk.adb (U_Left_Paren): New procedure
7979         (U_Right_Paren): New procedure
7980
7981 2007-12-13  Geert Bosch  <bosch@adacore.com>
7982
7983         * a-tifiio.adb:
7984         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
7985         the second or later Scaled_Divide would omit leading zeroes,
7986         resulting in too few digits produced and a Layout_Error as result.
7987         (Put): Initialize Pos.
7988
7989 2007-12-13  Robert Dewar  <dewar@adacore.com>
7990
7991         atree.ads, atree.adb (Flag231..Flag247): New functions
7992         (Set_Flag231..Set_Flag247): New procedures
7993         (Basic_Set_Convention): Rename Set_Convention to be
7994         Basic_Set_Convention
7995         (Nkind_In): New functions
7996         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7997
7998         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
7999         instead
8000          of obsolete function Is_Always_Inlined
8001         (Register_Predefined_DT_Entry): Initialize slots of the second
8002         secondary dispatch table.
8003         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8004         (Expand_N_Function_Call): Remove special provision for stack checking.
8005
8006         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8007         Include _Disp_Requeue in the list of predefined operations.
8008         (Find_Interface_ADT): Modified to fulfill the new specification.
8009         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8010
8011         * par-ch4.adb, nlists.ads, nlists.adb:
8012         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8013
8014         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8015         Fix location of flag for unrecognized pragma message
8016
8017         * sem_ch7.adb: Use Nkind_In
8018
8019 2007-12-13  Vincent Celier  <celier@adacore.com>
8020
8021         * opt.ads:
8022         Indicate what flags are used by the Project Manager, gprbuild and
8023         gprclean.
8024         (Opt.Follow_Links_For_Dirs): New flag
8025         (Warn_On_Assertion_Failure): New flag
8026         (Wide_Character_Encoding_Method_Specified): New flag
8027         (Suppress_All_Inlining): New switch set by -fno-inline
8028         (Real_VMS_Target): New flag
8029         New pragma Fast_Math
8030
8031 2007-12-13  Robert Dewar  <dewar@adacore.com>
8032
8033         * back_end.adb: Recognize -fno-inline
8034
8035 2007-12-13  Robert Dewar  <dewar@adacore.com>
8036
8037         * checks.adb: Fix optimization problem with short-circuited form
8038
8039 2007-12-13  Bob Duff  <duff@adacore.com>
8040
8041         * clean.adb (Usage): Add line for -aP
8042         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8043         with a parameter "procedure Usage", instead of passing a pointer to a
8044         procedure. This is to eliminate trampolines (since the Usage procedure
8045         is often nested in a main procedure, and it would be inconvenient to
8046         unnest it).
8047
8048         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8049         to be generic, with a parameter "procedure Callback (...)", instead of
8050         passing a pointer to a procedure. This is to eliminate trampolines
8051         (since the Callback procedure is usually nested).
8052
8053         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8054         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8055         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8056
8057         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8058         Use the generic Heap_Sort_G instead of Heap_Sort_A.
8059
8060 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8061
8062         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8063         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8064         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8065         (Renamed_In_Spec): New flag
8066         (Has_Pragma_Inline_Always): New flag
8067         Add missing doc for pragma Obsolescent_Warning
8068         Add missing doc for 17 additional unused flags (230-247)
8069         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8070         Alphabetize with clauses.
8071         Separate Is_Thunk and Has_Thunks flags
8072         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8073         (Related_Interface): Renamed to Related_Type.
8074         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8075         (Set_Is_Flag): Restrict the assertion.
8076
8077 2007-12-13  Vincent Celier  <celier@adacore.com>
8078
8079         * errout.adb (Output_Source_Line): Do not keep a trailing space after
8080         the source line number if the source line is empty.
8081
8082 2007-12-13  Geert Bosch  <bosch@adacore.com>
8083
8084         * eval_fat.adb (Decompose_Int): Handle argument of zero.
8085         (Compose): Remove special casing of zero.
8086         (Exponent): Likewise.
8087         (Fraction): Likewise.
8088         (Machine): Likewise.
8089         (Decompose): Update comment.
8090
8091 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8092
8093         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8094         limited ancestor part, initialize controllers of enclosing record
8095         before expanding ancestor aggregate.
8096         (Gen_Assign): If a component of the aggregate is box-initialized, add
8097         code to call Initialize if the component is controlled, and explicit
8098         assignment of null if the component is an access type.
8099
8100         Handle properly aggregates for limited types that appear in object
8101         declarations when the aggregate contains controlled values such as
8102         protected types.
8103         When expanding limited aggregates into individual components, do not
8104         call Adjust on controlled components that are limited.
8105
8106 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8107
8108         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8109
8110 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8111
8112         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8113         predefined primitive _Disp_Requeue.
8114         (Make_Predefined_Primitive_Specs): Create the spec for predefined
8115         primitive _Disp_Requeue.
8116         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8117         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8118         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8119         an interface type. In case of limited interfaces we now declare all the
8120         predefined primitives associated with synchronized interfaces as
8121         abstract.
8122         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8123         declarations.
8124         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8125         tagged type is an interface type and there is no user-defined equality
8126         function.
8127         Add also bodies of predefined primitives associated with synchronized
8128         interfaces.
8129         (Freeze_Record_Type): Do not build bodies of predefined primitives of
8130         interface types because they are now defined abstract.
8131         Add missing documentation.
8132         (Expand_Record_Controller): Update occurrence of Related_Interface
8133         to Related_Type.
8134         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8135         (Expand_N_Object_Declaration): Take into account VM_Target when handling
8136         class wide interface object declaration.
8137         (Expand_Previous_Access_Type): Do not create a duplicate master entity
8138         if the access type already has one.
8139         (Expand_N_Object_Declaration): Defend against attempt to validity check
8140         generic types. Noticed for -gnatVcf specified with previous errors.
8141
8142 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8143
8144         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8145         Expand_Allocator_Expression): Take into account VM_Target
8146
8147         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8148         secondary stack when VM_Target /= No_VM
8149
8150 2007-12-13  Javier Miranda  <miranda@adacore.com>
8151             Ed Schonberg  <schonberg@adacore.com>
8152
8153         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8154         Is_Complation_Unit by Is_Library_Level_Entity in the code
8155         that decides if the static dispatch tables need to be built.
8156         (Wrap_Transient_Declaration): Do not generate a finalization call if
8157         this is a renaming declaration and the renamed object is a component
8158         of a controlled type.
8159
8160 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8161
8162         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8163         In the case where the renamed subprogram is a dereference, call
8164         Force_Evaluation on the prefix.
8165
8166 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8167             Ed Schonberg  <schonberg@adacore.com>
8168
8169         * exp_ch9.adb (Expand_N_Asynchronous_Select,
8170         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8171         comment reformatting.
8172         (Set_Privals): Inherit aliased flag from formal. From code reading.
8173         (Build_Simple_Entry_Call): Out parameters of an access type are passed
8174         by copy and initialized from the actual. This includes entry parameters.
8175         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8176         and Ada 2005 models of requeue.
8177         (Null_Statements): Still connsider do-end block null if it contains
8178         Unreferenced and Warnings pragmas.
8179         (Expand_N_Accept_Statement): Do not optimize away null do end if
8180         dispatching policy is other than defaulted.
8181         (Expand_N_Timed_Entry_Call): When the triggering statement is a
8182         dispatching call, manually analyze the delay statement.
8183         (Find_Parameter_Type): Move subprogram to Sem_Util.
8184
8185 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8186             Javier Miranda  <miranda@adacore.com>
8187
8188         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8189         _Disp_Requeue occupies dispatch table slot number 15. Move
8190         _Disp_Timed_Select to slot 16.
8191         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8192         generate the spec and body of _Disp_Reqeueue.
8193         (Make_DT): Build and initialize the second dispatch table.
8194         Handle initialization of RC_Offset when the parent
8195         is a private type with variable size components.
8196         (Make_Secondary_DT): Complete documentation. Add support to
8197         initialize the second dispatch table.
8198         (Make_Tags): Generate the tag of the second dispatch table.
8199         (Register_Primitive): Add support to register primitives in the
8200         second dispatch table.
8201
8202 2007-12-13  Pascal Obry  <obry@adacore.com>
8203
8204         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8205         Windows. This signal is used by gnatmake to kill child processes for
8206         example.
8207
8208 2007-12-13  Javier Miranda  <miranda@adacore.com>
8209
8210         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8211         support for generic dispatching constructor calls in which we need to
8212         locate the tag of a secondary dispatch table associated with an
8213         interface type to properly dispatch the call.
8214         (Expand_N_Attribute_Reference [case Address],
8215         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8216         handling of VM targets.
8217
8218 2007-12-13  Robert Dewar  <dewar@adacore.com>
8219             Ed Schonberg  <schonberg@adacore.com>
8220
8221         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8222         assert fail
8223
8224         * ug_words: Add entries for -gnatw.a -gnatw.A
8225
8226         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8227         literal is a subtype with non-static constraints, use the base type of
8228         the context as the base of the string subtype, to prevent type
8229         mismatches in gigi.
8230         (Resolve_Actuals): If the actual is an entity name, generate a
8231         reference before the actual is resolved and expanded, to prevent
8232         spurious warnings on formals of enclosing protected operations.
8233         (Analyze_Overloaded_Selected_Component): If type of prefix if
8234         class-wide, use visible components of base type.
8235         (Resolve_Selected_Component): Ditto.
8236         (Resolve_Short_Circuit): Detect case of pragma Assert argument
8237         evaluating to False, and issue warning message.
8238
8239         * usage.adb: Add lines for -gnatw.a and -gnatw.A
8240
8241 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8242
8243         * g-calend.ads (No_Time): New constant, to represent an uninitialized
8244         time value
8245
8246         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8247         formats.
8248         (Month_Name_To_Number): New subprogram
8249
8250         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8251         letter to upper-case.
8252
8253 2007-12-13  Robert Dewar  <dewar@adacore.com>
8254             Ed Schonberg  <schonberg@adacore.com>
8255
8256         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8257
8258         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8259         context is a limited view, use non-limited view when available. If the
8260         non-limited view is an unconstrained array, this enforces consistency
8261         requirements in 3.10.2 (27).
8262         (Layout_Type): For an access type whose designated type is a limited
8263         view, examine its declaration to determine if it is an unconstrained
8264         array, and size the access type accordingly.
8265         (Layout_Type): Do not force 32-bits for convention c subprogram
8266         pointers in -gnatdm mode, only if real vms target.
8267
8268         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8269         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8270         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8271         violations of the No_Implicit_Dynamic_Code restriction.
8272         (Resolve_Attribute, case 'Access): If designated type of context is a
8273         limited view, use non-limited view when available. If the non-limited
8274         view is an unconstrained array, this enforces consistency requirements
8275         in 3.10.2 (27).
8276         (Layout_Type): For an access type whose designated type is a limited
8277         view, examine its declaration to determine if it is an unconstrained
8278         array, and size the access type accordingly.
8279
8280 2007-12-13  Vincent Celier  <celier@adacore.com>
8281
8282         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8283         object directory of main project does not exist.
8284         On VMS, correctly set then environment variable for the source
8285         directories.
8286
8287 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8288
8289         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8290         set to True this procedure will create the value of type REG_EXPAND_SZ.
8291         It was only possible to create REG_SZ values before.
8292
8293 2007-12-13  Robert Dewar  <dewar@adacore.com>
8294
8295         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8296         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8297         namet-sp.adb, namet-sp.ads: New files.
8298
8299         * g-speche.adb: Use generic routine in g-spchge
8300
8301         * s-wchcnv.ads, s-wchcnv.adb:
8302         Minor code cleanup (make formal type consistent with spec)
8303
8304         * namet.adb: Update comments.
8305
8306         * par-endh.adb (Evaluate_End_Entry): Use new
8307         Namet.Sp.Is_Bad_Spelling_Of function
8308
8309         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8310
8311         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8312         ancestor is an access type initialized with a box, set its type
8313         explicitly, for use in subsequent expansion.
8314         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8315         function
8316
8317 2007-12-13  Robert Dewar  <dewar@adacore.com>
8318
8319         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8320         access Vstring)
8321
8322 2007-12-13  Robert Dewar  <dewar@adacore.com>
8323
8324         * inline.adb (Back_End_Cannot_Inline): Use new flag
8325         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8326
8327         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8328         Has_Pragma_Inline_Always instead.
8329         of obsolete function Is_Always_Inlined
8330         (Build_Body_To_Inline): Same change
8331         (Cannot_Inline): Same change
8332         Do not give warning on exception raise in No_Return function
8333
8334         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8335         component has two inconsistent component clauses in the same record
8336         representation clause, favor the message that complains about
8337         duplication rather than inconsistency.
8338         Update comments.
8339         (Record_Representation_Clause): Do not warn on missing component
8340         clauses for inherited components of a type extension.
8341         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8342         an overloadable item if it is a pragma that can apply to multiple
8343         overloadable entities (e.g. Inline) because a pragma cannot be on
8344         more than one chain at a time.
8345         (Validate_Unchecked_Conversion): Add code to warn on unchecked
8346         conversion where one of the operands is Ada.Calendar.Time.
8347         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8348         For now, ignore Component_Size clause on VM targets, as done for
8349         pragma Pack.
8350
8351 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8352             Vincent Celier  <celier@adacore.com>
8353
8354         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8355         string
8356         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8357         prj.ads
8358         (Hash): Move instantiation of System.HTable.Hash from spec to body
8359         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8360         systems, since we do not need to recompute the Name_Id for the canonical
8361         file name.
8362         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8363         as a parameter. This parameter is in fact always "ada" in all calls, and
8364         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8365         while loading a project with 40000 files
8366
8367         * prj-attr.adb: Fix name of attribute Dependency_Driver
8368         Change the kind of indexing for attribute Root
8369
8370         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8371         variables already declared, in case constructions.
8372
8373         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8374         Current_Object_Path_File to No_Path.
8375
8376         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8377         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8378
8379         * prj-makr.adb: new parameter Current_Dir
8380
8381         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8382         Ada sources when language is not Ada.
8383         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8384         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8385         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8386         (Locate_Directory): Always resolve links when computing Canonical_Path
8387         (Look_For_Sources): Make sure that Name_Buffer contains the file name
8388         in Source_Files before checking for the presence of a directory
8389         separator.
8390         Optimize calls to Name_Find when on case sensitive systems.
8391         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8392         as a parameter.
8393         (Prj.Nmsc.Check): new parameter Current_Dir
8394         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8395         cannot be empty and the spec suffix cannot be the same as the body or
8396         separate suffix.
8397         (Get_Unit): When a file name can be of several unit kinds (spec, body or
8398         subunit), always consider the longest suffix.
8399         (Check_Configuration): Do not issue an error if there is no compiler
8400         for a language. Just issue a warning and ignore the sources for the
8401         language.
8402         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8403         not empty.
8404         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8405         (Unit_Exceptions): New hash table
8406         (Check_Naming_Schemes): Check if a file that could be a unit because of
8407         the naming scheme is not in fact a source because there is an exception
8408         for the unit.
8409         (Look_For_Sources): Put the unit exceptions in hash table
8410         Unit_Exceptions
8411         (Get_Unit_Exceptions): Give initial value No_Source to local variable
8412         Other_Part to avoid exception when code is compiled with validity
8413         checking.
8414         (Get_Sources_From_File): Check that there is no directory information
8415         in the file names.
8416         (Look_For_Sources): Check that there is no directory information in the
8417         list of file names in Source_Files.
8418         (Look_For_Sources): In multi-language mode, do not allow exception file
8419         names that are excluded.
8420         (Excluded_Sources_Htable): New hash table
8421         (Search_Directories.Check_File): New procedure to simplify
8422         Search_Directories.
8423         (Search_Directories): Do not consider excluded sources
8424         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8425         Search_Directories.
8426         (Get_Exceptions): Set component Lang_Kind of Source_Data
8427         (Get_Unit_Exceptions): Ditto
8428         (Search_Directories): Ditto
8429
8430         * prj-pars.adb: new parameter Current_Dir
8431
8432         * prj-part.ads, prj-part.adb:
8433         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8434         (Opt.Follow_Links_For_Dirs): New flag
8435         (Project_Path_Name_Of): Cache information returned by this routine as
8436         Locate_Regular_File is a costly routine. The code to output a log
8437         information and the effective call to Locate_Regular_File is now
8438         factorized into a routine (code clean-up).
8439         (Parse, Parse_Single_Project): new parameter Current_Dir
8440         When main project file cannot be found, indicate in the error
8441         message the project path that was used to do the search.
8442
8443         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8444         (Prj.Proc.Process*): new parameter Current_Dir
8445
8446         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8447
8448 2007-12-13  Bob Duff  <duff@adacore.com>
8449
8450         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8451         procedure to be called from the back end to check the
8452         No_Implicit_Dynamic_Code restriction.
8453
8454 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8455
8456         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8457         Fixes another case where RTE_Available_Call was ignored instead of being
8458         taken into account.
8459         (Load_Fail): Ditto.
8460
8461         * rtsfind.ads: Add new entries.
8462
8463 2007-12-13  Robert Dewar  <dewar@adacore.com>
8464
8465         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8466         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8467
8468         * scn.adb: Implement BOM recognition
8469
8470 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8471             Ed Schonberg  <schonberg@adacore.com>
8472
8473         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8474         subprogram body that acts as its own spec may not have a non-private
8475         WITH clause on a private sibling.
8476         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8477         child unit is a renaming, create an implicit with_clause on that
8478         parent, and not on the unit it renames, to prevent visibility errors
8479         in the current unit.
8480
8481 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8482
8483         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8484         renaming declaration, use the Slocs of the formal parameters from the
8485         declaration of the formal subprogram when creating the formal parameter
8486         entities in the renaming declaration.
8487         (Analyze_Formal_Type_Declaration): Change the placement of the error
8488         message concerning illegal known discriminants. It is now posted on the
8489         type rather than on the first discriminant. This change ensures early
8490         error report.
8491         (Freeze_Subprogram_Body): If the generic subprogram is nested within
8492         the package body that contains the instance, do not generate an
8493         out-of-place freeze node for the enclosing package.
8494         (Collect_Previous_Instantiations): Ignore internal instantiations
8495         generated for formal packages.
8496         (Validate_Derived_Type_Instance): Add a check that when a formal
8497         derived type is Known_To_Have_Preelab_Init then the actual type must
8498         have preelaborable initialization, and issue an error when this
8499         condition is violated.
8500
8501 2007-12-13  Robert Dewar  <dewar@adacore.com>
8502
8503         * s-imenne.adb, s-imenne.ads: New files.
8504
8505         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8506         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8507         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8508         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
8509         s-imgwch.ads: New calling sequence for Image routines to avoid sec
8510         stack usage.
8511
8512 2007-12-13  Javier Miranda  <miranda@adacore.com>
8513             Ed Schonberg  <schonberg@adacore.com>
8514
8515         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8516         generation of spurious error if parent is an interface type; caused
8517         because predefined primitive bodies will be generated later by
8518         Freeze_Record_Type.
8519         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8520         flag.
8521         (Derive_Subprograms): Handle derivations of predefined primitives
8522         after all the user-defined primitives to ensure that they are
8523         found in proper order in instantiations.
8524         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8525         of Related_Interface to Related_Type.
8526         (Record_Type_Declaration): Minor reordering of calls to decorate the
8527         Tag component because the entity must have set its Ekind attribute
8528         before setting its Is_Tag attribute.
8529         (Analyze_Subtype_Declaration): In the case of subtypes with
8530         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8531
8532 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8533             Ed Schonberg  <schonberg@adacore.com>
8534
8535         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8536         statement to the list of contexts where a selected component with a
8537         concurrent tagged type prefix should yield a primitive operation.
8538         (Find_Primitive_Operation): Handle case of class-wide types.
8539         (Analyze_Overloaded_Selected_Component): If type of prefix is
8540         class-wide, use visible components of base type.
8541         (Resolve_Selected_Component): Ditto.
8542         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8543         formal of a generic subprogram. find candidate interpretations by
8544         scanning the list of generic formal declarations.:
8545         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8546         type from a limited_with_clause, and the full view is available, use it
8547         for subsequent semantic checks.
8548         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8549         (Find_Primitive_Operation): New function.
8550         (Analyze_Overloaded_Selected_Component): insert explicit dereference
8551         only once if several interpretations of the prefix yield an access type.
8552         (Try_Object_Operation): Code and comment cleanup.
8553         (Analyze_Selected_Component): Reorder local variables. Minot comment and
8554         code reformatting. When the type of the prefix is tagged concurrent, a
8555         correct interpretation might be available in the primitive and
8556         class-wide operations of the type.
8557
8558 2007-12-13  Robert Dewar  <dewar@adacore.com>
8559             Ed Schonberg  <schonberg@adacore.com>
8560
8561         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8562         renaming entry as subprogram using rename-as-body if subprogram spec
8563         frozen.
8564         (Use_One_Type): The clause is legal on an access type whose designated
8565         type has a limited view.
8566         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8567         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8568         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8569         operation denoted by a selected component.
8570         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8571         it can be an expression, possibly overloaded, that returns a task or
8572         an access to one.
8573
8574 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8575             Gary Dismukes  <dismukes@adacore.com>
8576
8577         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8578         requeue statement is dispatching. Do not emit an error when the name is
8579         not an entry and the context is a dispatching select. Add code to
8580         perform subtype conformance between the formals of the current entry
8581         and those of the target interface primitive.
8582         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8583         Timed_Entry_Call): Analyze the triggering statement as the first step of
8584         the processing. If this is a dispatching select, postpone the analysis
8585         of all select statements until the Expander transforms the select. This
8586         approach avoids generating duplicate identifiers after the Expander has
8587         replicated some of the select statements. In case the Expander is
8588         disabled, perform regular analysis.
8589         (Check_Triggering_Statement): New routine.
8590         (Analyze_Requeue): Exclude any interpretations that are not entries when
8591         checking overloaded names in a requeue. Also test type conformance for
8592         matching interpretations rather than requiring subtype conformance at
8593         that point to conform with the RM's resolution rule for requeues.
8594
8595 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8596
8597         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8598         inherited operation is a defaulted tag-indeterminate call, and there is
8599         a statically tagged actual, use the static tag as a controlling actual
8600         for the defaulted actual.
8601
8602 2007-12-13  Geert Bosch  <bosch@adacore.com>
8603
8604         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8605         context, so do not call Check_Non_Static_Context.
8606
8607 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8608
8609         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8610         whether formal E is an entity which may have parameters.
8611
8612 2007-12-13  Bob Duff  <duff@adacore.com>
8613             Javier Miranda  <miranda@adacore.com>
8614             Robert Dewar  <dewar@adacore.com>
8615
8616         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8617         (Set_Convention): New procedure to set the Convention flag, and in
8618         addition make sure the Favor_Top_Level flag is kept in sync (all
8619         foreign-language conventions require Favor_Top_Level = True).
8620         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8621         to Related_Type.
8622         (Collect_Interfaces_Info): Minor update to handle the two secondary
8623         dispatch tables. Update occurrence of Related_Interface to Related_Type.
8624         (Generate_Parent_Ref): Add parameter to specify entity to check
8625         (Is_Preelaborable_Expression): Allow the name of a discriminant to
8626         initialize a component of a type with preelaborable initialization.
8627         This includes the case of a discriminal used in such a context.
8628         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8629         latest Ada 2005 rules about renaming and 'Access of
8630         discriminant-dependent components.
8631         (Check_Nested_Access): Add handling when there are no enclosing
8632         subprograms (e.g. case of a package body).
8633         (Find_Parameter_Type): Factor routine from several other compiler files.
8634         Remove routine from Find_Overridden_Synchronized_Primitive.
8635
8636 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8637
8638         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8639         an invalid access to an uninitialized slot in the
8640         Source_File_Index_Table.
8641
8642 2007-12-13  Thomas Quinot  <quinot@adacore.com>
8643
8644         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8645
8646 2007-12-13  Bob Duff  <duff@adacore.com>
8647
8648         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8649         access-to-subprogram types in this package.
8650
8651 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8652
8653         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8654         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8655         Stack_Overlay_Address and document that we are using an internal
8656         abstraction.
8657         (Byte_Size, Unsigned_32_Size): Remove, now useless.
8658         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8659         consistently throughout the various implementation pieces.
8660
8661         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8662         overlay we are using to fill the stack area with patterns.
8663         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8664         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8665         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8666
8667 2007-12-13  Robert Dewar  <dewar@adacore.com>
8668
8669         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8670
8671 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8672
8673         * s-tassta.adb:
8674         (Create_Task): Take into account tasks created by foreign threads.
8675         Code clean up: use constants instead of hard coded values.
8676
8677 2007-12-13  Robert Dewar  <dewar@adacore.com>
8678
8679         * styleg.adb (Check_Comment): More liberal rules for comment placement
8680
8681 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8682
8683         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8684         of Procedure Value instead of Frame Pointer as the invocation
8685         identifier associated with the instruction pointer in each traceback
8686         entry.
8687
8688         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8689         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8690         Pointer as the invocation identifier passed to tbk$symbolize.
8691
8692         * s-traent-vms.ads, s-traent-vms.adb
8693         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8694         Procedure Value instead of Frame Pointer as the invocation identifier
8695         passed to tbk$symbolize.
8696
8697 2007-12-13  Robert Dewar  <dewar@adacore.com>
8698
8699         * tbuild.ads, tbuild.adb:
8700         Fix location of flag for unrecognized pragma message
8701
8702 2007-12-13  Robert Dewar  <dewar@adacore.com>
8703
8704         * treepr.ads, treepr.adb: (pl): implement use of positive value
8705         shorthands
8706
8707 2007-12-13  Robert Dewar  <dewar@adacore.com>
8708
8709         * xeinfo.adb: Remove warnings
8710         * xnmake.adb: Remove warnings
8711         * xsinfo.adb: Remove warnings
8712         * xtreeprs.adb: Remove warnings
8713         * xsnames.adb: Remove warnings
8714
8715         * a-ngcoar.adb: Fix typo.
8716         * s-interr.adb: Minor reformatting
8717         * env.c: Minor reformatting.
8718         * g-bytswa.adb: Minor reformatting.
8719         * g-rannum.ads: Minor documentation improvements
8720         * s-tasinf-mingw.adb: Minor header fix
8721         * a-clrefi.adb: Minor reformatting
8722         * g-sttsne.ads: Minor documentation improvement
8723         * g-sttsne-locking.ads: Minor documentation improvement
8724         * g-soliop-solaris.ads: Minor documentation improvement
8725         * g-soliop-mingw.ads: Minor documentation improvement
8726         * g-soliop.ads: Minor documentation improvement
8727         * exp_aggr.ads: Minor reformatting
8728         * debug.adb: Add documentation for the gprbuild debug flags
8729         * exp_ch2.adb: Use Nkind_In to simplify code throughout
8730         * exp_pakd.adb: Minor reformatting
8731
8732         * g-altive.ads, g-alleve.adb: Remove assertions.
8733         Add comment about minor differences between targets regarding
8734         floating-point operations.
8735
8736         * g-thread.adb: Remove pragma unreferenced.
8737         * lib.ads: Minor reformatting
8738         * par-ch9.adb: Minor reformatting of error messages
8739         * sem_case.adb: Minor reformatting
8740         * s-fileio.adb: Minor reformattinng
8741         * s-vmexta.ads: Minor typo
8742         * vxaddr2line.adb:
8743         Take into account 'Success' value as per new GNAT warning.
8744
8745 2007-12-13  Vincent Celier  <celier@adacore.com>
8746
8747         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
8748         even on Windows
8749
8750 2007-12-13  Robert Dewar  <dewar@adacore.com>
8751             Bob Duff  <duff@adacore.com>
8752
8753         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
8754         Document that suffixes may be terminations of each others
8755         Add doc for -gnatw.a and -gnatw.A
8756         Document gnatbind -Wx switch
8757         Document BOM recognition
8758         Document pragma Implemented_By_Entry.
8759         Document new units.
8760
8761         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
8762         Add doc for pragma Unreferenced suppressing no entities referenced msg
8763         Add documentation of GNAT.Directory_Operations.Iteration
8764         Add documentation of GNAT.Random_Numbers
8765         Add documentation for pragma Shared.
8766         Correct documentation for Bit_Order
8767         Add documentation for the Pool_Address attribute.
8768         Fix and improve documentation of pragma machine_attribute.
8769         New pragma Fast_Math
8770         Document BOM recognition
8771
8772         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
8773         Add /Wide_Character_Encoding for binder
8774         Add qualifier for the new gnatpp option --no-separate-loop-then
8775
8776 2007-12-13  Matthew Heaney  <heaney@adacore.com>
8777
8778         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
8779         which generic formal operations are called for each operation.
8780
8781 2007-12-13  Olivier Hainque  <hainque@adacore.com>
8782
8783         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
8784         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
8785
8786 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8787
8788         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
8789         Reference_Dir unless we actually need it.
8790
8791 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8792             Tristan Gingold  <gingold@adacore.com>
8793
8794         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
8795
8796         * s-osprim-vms.adb,
8797         a-calend-vms.adb: Remove pragma warning off and add pragma
8798         unreferenced.
8799
8800 2007-12-13  Robert Dewar  <dewar@adacore.com>
8801
8802         * impunit.adb: Add entries for missing units
8803
8804         * Makefile.rtl: Add new run-time units.
8805
8806         * Make-lang.in:  Update dependencies.
8807
8808 2007-12-13  Bob Duff  <duff@adacore.com>
8809
8810         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
8811         types, set Can_Use_Internal_Rep appropriately, based on
8812         Always_Compatible_Rep_On_Target.
8813
8814 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8815             Arnaud Charlet  <charlet@adacore.com>
8816
8817         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
8818         it to the front end and setting the aamp_target environment variable
8819         to the switch's argument to ensure that gnaampbind and gnaamplink will
8820         take the specified library into account.
8821         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
8822         target, since the CIL compiler supports an "object" file (.il files).
8823
8824 2007-12-13  Vincent Celier  <celier@adacore.com>
8825
8826         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
8827         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
8828
8829 2007-12-13  Geert Bosch  <bosch@adacore.com>
8830
8831         * s-parame-vxworks.adb:
8832         Update comments to reflect usage of this package by Nucleus.
8833
8834 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8835
8836         * i-vxwork.ads: Kill new warning on Convention C, since changing the
8837         spec would break code.
8838
8839         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
8840
8841         * system-vxworks-alpha.ads: Removed.
8842
8843 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
8844
8845         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
8846
8847 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
8848
8849         PR ada/34366
8850         * sem_ch3.adb (Designates_T): New function.
8851         (Mentions_T): Factor reusable part of the logic into Designates_T.
8852         Consider non-access parameters and access and non-access result.
8853         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
8854         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
8855
8856         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
8857
8858 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
8859
8860         PR ada/34361
8861         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
8862         the new implementation of target-specific calls.
8863
8864 2007-12-07  Olivier Hainque  <hainque@adacore.com>
8865
8866         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
8867         the designated full view, only follow a second level Full_View link
8868         for Non_Limited_Views of from_limited_with references.
8869
8870 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
8871
8872         PR ada/15805
8873         * sem_ch6.adb (Process_Formals): Prevent an access type formal
8874         to be initialized with an access to constant object.
8875
8876         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
8877         when an access to constant is used to initialize an access
8878         value.
8879
8880         PR ada/21346
8881         * a-direct.adb (Compose): Containing_Directory can be an empty string.
8882
8883 2007-12-07  Olivier Hainque  <hainque@adacore.com>
8884
8885         PR ada/34173
8886         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
8887         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
8888         this is from an alignment clause on the GNAT entity.
8889         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
8890         to distinguish the case where we set it from the type's alignment.
8891         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
8892         whether this alignment was set from an explicit alignment clause.
8893
8894 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
8895
8896         * decl.c (make_packable_type): Revert last change.
8897         (gnat_to_gnu_field): Avoid setting size and position multiple times.
8898         * utils.c (finish_record_type): Retrieve the real name of the type.
8899
8900 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
8901
8902         * trans.c (lvalue_required_p): Take base node directly instead
8903         of its parent.  Rename second parameter to 'gnu_type'.
8904         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
8905         <N_Slice>: Likewise.
8906         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
8907         Adjust calls to lvalue_required_p.
8908
8909 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
8910
8911         PR ada/21489
8912         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
8913         parameters of an entry call.
8914
8915 2007-12-03  Robert Dewar  <dewar@adacore.com>
8916             Samuel Tardieu  <sam@rfc1149.net>
8917
8918         PR ada/34287
8919         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
8920         of variables declared in a library-level package.
8921
8922 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
8923
8924         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
8925         of Empty_String'Unchecked_Access.
8926
8927         * Makefile.in: Add support for sh4-linux.
8928
8929         * system-linux-sh4.ads: New file.
8930
8931 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
8932
8933         PR ada/33722
8934         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
8935         and its argument must not be free()ed.
8936
8937 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
8938
8939         * decl.c (make_packable_type): Retrieve the real name of the type.
8940         (maybe_pad_type): Simplify similar code.
8941
8942 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
8943
8944         PR ada/15804
8945         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
8946         than an identifier is used after "case" in a variant_part.
8947
8948         PR ada/17318
8949         * par-ch4.adb (Is_Parameterless_Attribute): New map.
8950         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
8951         attribute name or not depending on the new map.
8952
8953         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
8954         returning a string or a type will not be called with improper
8955         arguments.
8956
8957         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
8958
8959         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
8960
8961         PR ada/32792
8962         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
8963         Signal an error when attribute argument is a fixed-point value of
8964         an unknown type.
8965
8966         PR ada/22559
8967         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
8968         a derived ordinary fixed point type.
8969
8970         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
8971         RM_Size when a Small clause is found.
8972
8973 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
8974
8975         PR 34081/C++
8976         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
8977         Pass 'false' for the new allocate_struct_function parameter.
8978         * utils.c (build_function_stub): Likewise.
8979
8980 2007-11-25  Richard Guenther  <rguenther@suse.de>
8981
8982         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
8983         (gnat_poplevel): Likewise.
8984
8985 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
8986
8987         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
8988         strict alignment, no alignment clause and a known static size, cap
8989         the type alignment to the greatest power of 2 factor of the size.
8990         (gnat_to_gnu_field): If the field has a component clause, is aliased
8991         or of a type with strict alignment, require that its size be equal to
8992         that of the type.
8993         (validate_size): Use the type size as the minimum size for a type with
8994         strict alignment.
8995
8996 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
8997
8998         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
8999         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9000         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9001         Use 'Access instead of 'Unchecked_Access in second and third
9002         arguments of pthread_sigmask.
9003
9004 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
9005
9006         * decl.c (ceil_alignment): New function.
9007         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9008         (make_packable_type): Likewise.
9009
9010 2007-11-22  Olivier Hainque  <hainque@adacore.com>
9011
9012         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9013         to fit in 80 columns.
9014
9015 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
9016
9017         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9018         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9019
9020 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
9021
9022         PR ada/34098
9023         * misc.c (gnat_adjust_rli): Delete.
9024         (gnat_init): Do not initialize the translation code here.
9025         Do not call set_lang_adjust_rli.
9026         * trans.c (init_code_table): Make static.
9027         (gnat_init_stmt_group): Delete.
9028         (gigi): Initialize the translation code entirely here.
9029         Emit debug info for the common types here instead of...
9030         * utils.c (gnat_init_decl_processing): ...here.
9031         * gigi.h (init_code_table): Delete.
9032         (gnat_init_stmt_group): Likewise.
9033
9034 2007-11-16  Olivier Hainque  <hainque@adacore.com>
9035
9036         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9037         retrieving an allocator return value from a super-aligned address from
9038         here to ...
9039         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9040         expect a super-aligned address for a fat or thin pointer.
9041
9042 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
9043
9044         * trans.c (call_to_gnu): Always set the source location on the call
9045         expression.  If the function returns-by-target, also set it on the
9046         address expression.
9047
9048 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
9049
9050         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9051         sections of non-supported Interix target.
9052
9053         * s-osinte-interix.ads: Removed.
9054
9055         * i-cstrin.ads (chars_ptr): Make it a C convention type.
9056
9057 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
9058
9059         * a-tasatt.adb: Add a comment at the beginning of the package
9060         explaining why in general 'Unchecked_Access must be used instead
9061         of 'Access.
9062
9063         * sem_prag.adb (Process_Convention): Move the test for the
9064         entity on which the Convention pragma applies down to also
9065         forbid pragma Convention on enumeration literals reached
9066         through renamings.
9067
9068 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
9069
9070         * a-tasatt.adb: Revert previous change for this file as it will
9071         generate an error when this package is instantiated from a
9072         local context.
9073
9074 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
9075
9076         * a-tasatt.adb: Type Wrapper should be declared in comment instead
9077         of already declared type Node_Access.
9078         Use 'Access instead of 'Unchecked_Access when applicable. Local
9079         lifetime is the one of the package.
9080         (Set_Value): W is allocated on the heap.
9081
9082         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9083         applicable.
9084         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9085         access type.
9086         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9087         access type.
9088
9089         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9090         applicable.
9091         (elaboration code): Timer_Queue lifetime is the one of the
9092         package.
9093
9094         * tracebak.c (i386 alternative): Remove useless comparaison
9095         which is always false; LOWEST_ADDRESS is 0 and is never greater
9096         than an unsigned integer.
9097
9098         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9099         embedded check for "Ada_Version >= Ada_05".
9100
9101 2007-11-07  Olivier Hainque  <hainque@adacore.com>
9102
9103         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9104         craft and expand comment.
9105
9106 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
9107
9108         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9109
9110 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
9111
9112         * misc.c (gnat_handle_option): Replace call to abort with
9113         call to gcc_unreachable.
9114         (gnat_init): Likewise.
9115         (gnat_expand_expr): Likewise.
9116         (fp_prec_to_size): Likewise.
9117         (fp_size_to_prec): Likewise.
9118
9119 2007-10-23  Richard Guenther  <rguenther@suse.de>
9120
9121         PR bootstrap/33608
9122         * tracebak.c: #undef abort after including system.h.
9123
9124 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
9125
9126         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9127         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9128         for win32 targets.
9129         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9130
9131 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
9132
9133         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9134         Set the protection status of the guard page based on the value of On.
9135
9136         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9137
9138         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9139         (Exit_Task): Pass False to Hide_Yellow_Zone.
9140
9141 2007-10-15  Robert Dewar  <dewar@adacore.com>
9142
9143         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9144         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9145         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9146         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9147         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9148         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9149         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9150         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9151         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9152         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9153         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9154         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9155         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9156         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9157         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9158         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9159         Minor reformatting.
9160         Add Unreferenced and Warnings (Off) pragmas for cases of
9161         variables modified calls where they are IN OUT or OUT parameters and
9162         the resulting values are not subsequently referenced. In a few cases,
9163         we also remove redundant code found by the new warnings.
9164
9165         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9166         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9167         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9168         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9169         warning controlled by -gnatw.o that warns on cases of out parameter
9170         values being ignored.
9171
9172 2007-10-15  Geert Bosch  <bosch@adacore.com>
9173
9174         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9175
9176         * expect.c: Initial port to arm-mentor-nucleus.
9177         Use kill for __gnat_kill() on VMS.
9178
9179 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9180
9181         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9182         value.
9183         (Xref_Record): Change type for Line, since in the case of a reference to
9184         a predefined entity (as happens for array index types), the line is set
9185         to 0.
9186         Add support for parsing multiple array index types info, or
9187         multiple inherited interfaces info. This information cannot be stored
9188         in Xref_Entity_Record, which only supports a single instance of Tref_*,
9189         and is therefore stored in the list of references instead. It has a
9190         special treatement later on in tools that use this information.
9191
9192 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9193
9194         * debug.adb: Document use of -gnatd.a and -gnatd.I
9195
9196         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9197
9198 2007-10-15  Javier Miranda  <miranda@adacore.com>
9199
9200         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9201         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9202         care of access to class-wide interface types plus removal of bizarre
9203         conversion of tagged object to access type (reported by Gary
9204         Dismukes). After this patch there is no need to perform any
9205         additional management on these nodes in Expand_Interface_Actuals.
9206
9207         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9208         that handles use of 'Access and 'Unchecked_Access applied to
9209         actuals covering interface types. Such code is now
9210         centralized in Expand_N_Attribute_Reference.
9211
9212 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9213
9214         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9215         of tagged types whose ultimate ancestor is a CPP type.
9216         (Freeze_Array_Type): For a packed array type, generate an initialization
9217         procedure if the type is public, to handle properly a client that
9218         specifies Normalize_Scalars.
9219
9220 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9221
9222         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9223         inside a generic body, retrieve the full view of the entry family
9224         discrete subtype if available.
9225
9226 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9227
9228         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9229         attempt to generate stubs for hidden primitive operations.
9230
9231 2007-10-15  Vincent Celier  <celier@adacore.com>
9232
9233         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9234         returning None, used when there is no platform specific body for
9235         MLib.Tgt.Specific.
9236
9237 2007-10-15  Bob Duff  <duff@adacore.com>
9238
9239         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9240         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9241         the generic Heap_Sort_G, in order to avoid trampolines.
9242
9243 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
9244             Jose Ruiz  <ruiz@adacore.com>
9245
9246         * vx_stack_info.c: New file.
9247
9248         * i-forbla-unimplemented.ads: New file.
9249
9250         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9251         for unsupported configurations; use it on VMS targets instead of the
9252         real one.
9253         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9254         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9255         used by VxWorks targets to have access to task-specific data and be
9256         able to extract the stack boundaries for stack checking.
9257         Use system-vms-ia64.ads on ivms.
9258
9259         * Make-lang.in: Update dependencies.
9260
9261         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9262         (vx_stack_info.c).
9263
9264 2007-10-15  Vincent Celier  <celier@adacore.com>
9265
9266         * snames.adb, snames.ads: Add new standard name runtime_library_dir
9267
9268         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9269
9270         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9271
9272         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9273         the source is unknown.
9274
9275         * prj-ext.adb: Spelling error fix
9276
9277         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9278         95 reserved word in its name.
9279         (Process_Project_Level_Array_Attributes): Process new attribute
9280         Runtime_Library_Dir.
9281
9282         * prj-part.adb (Parse_Single_Project): Do not check the name of the
9283         config project against the user project names.
9284
9285         * prj-proc.adb (Expression): In multi-language mode, indexes that do
9286         not include a dot are always case insensitive.
9287         (Process_Declarative_Items): Ditto
9288         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9289         detected.
9290
9291         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9292         True, compare both indexes in lower case.
9293
9294 2007-10-15  Robert Dewar  <dewar@adacore.com>
9295
9296         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9297
9298 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9299
9300         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9301         association for an access component, add an association with null as
9302         the expression. Remove testing for array subtypes and the setting in
9303         that case of Ctyp to the array component type, which prevented proper
9304         inclusion of an association for null-initialized arrays. Collapse
9305         condition that tests for array subtypes into just a test of
9306         Is_Partially_Initialized_Type (which already covers arrays anyway).
9307
9308 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9309
9310         * sem_ch12.adb: Minor code reformatting.
9311         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9312         find the parent package which may have been hidden by local
9313         declarations.
9314
9315 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9316
9317         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9318         flag of derived concurrent types, taking into account the flag setting
9319         on the parent subtype and any new set of discriminants.
9320
9321 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9322
9323         * sem_ch4.adb: Minor code and comment reformatting.
9324         (Analyze_Allocator): When the designated type of an unconstrained
9325         allocator is a record with unknown discriminants or an array with
9326         unknown range bounds, emit a detailed error message depending on the
9327         compilation mode and whether the designated type is limited.
9328
9329 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9330
9331         * system-vms-ia64.ads: New file.
9332
9333         * system-vms_64.ads: Minor comment fix.
9334
9335 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9336
9337         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9338         body generated for a function with a controlling result that is a null
9339         extension, discard the generated body in favor of the current explicit
9340         one.
9341
9342 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9343
9344         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9345         examining its original form, to handle properly operator calls that
9346         have been rewritten.
9347
9348 2007-10-15  Olivier Hainque  <hainque@adacore.com>
9349
9350         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9351         instead of a procedure value in each traceback entry.
9352
9353         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9354         instead of procedure value to TBK$SYMBOLIZE.
9355
9356         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9357         field.
9358         (TB_Entry_For): Account for the PV/FP renaming.
9359
9360         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9361         add comment.
9362         (Null_TB_Entry): Account for change of component name.
9363         (PV_For): Rename as FP_For.
9364
9365 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9366
9367         * trans.c (gnat_to_gnu): Remove the padding structure more often.
9368         This optimize assignment to over-aligned record.
9369
9370 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9371
9372         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9373         interfaces.
9374
9375         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9376         type, for dispatching calls.
9377
9378 2007-10-15  Vincent Celier  <celier@adacore.com>
9379             Robert Dewar  <dewar@adacore.com>
9380
9381         * gnat_ugn.texi: Add documentation for switches --version and --help
9382         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9383         gnatxref, gnatfind, gnatls, and gnatclean.
9384         Document -gnatw.o.
9385         Mention attribute Excluded_Source_Dirs
9386         Replace obsolescent attribute Locally_Removed_Files with attribute
9387         Excluded_Source_Files.
9388         Improve documentation of -u (gnatbind)
9389         Document how to do reliable stack checking for the environmental task
9390         on iVMS.
9391
9392         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9393         Document attribute Excluded_Source_Files and indicate that attribute
9394         Locally_Removed_Files is obsolescent.
9395
9396 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9397
9398         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9399
9400         * gen-soccon.c:
9401         Update documentation to note that OpenVMS 8.3 or later must be used
9402         to generate g-soccon-vms.ads.
9403
9404         * atree.adb: Add ??? comment
9405
9406         * exp_util.adb: Minor reformatting.
9407         Add ??? comment in Kill_Dead_Code.
9408
9409 2007-10-15  Robert Dewar  <dewar@adacore.com>
9410
9411         * errout.ads: Comment clarification
9412
9413         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9414         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9415
9416         * lib.ads: Comment update
9417
9418         * init.c: Minor reformatting.
9419
9420         * sem_attr.adb: Minor formatting
9421
9422         * osint-b.ads: Minor reformatting
9423
9424         * sem_ch9.adb: Implement -gnatd.I switch
9425
9426         * g-comlin.adb: (Start): Fix handling of empty command line.
9427
9428         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9429         even when -rules follows the -cargs section.
9430
9431 2007-10-08  Ollie Wild  <aaw@google.com>
9432
9433         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9434         gnat_return_tree.
9435         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9436         gnat_return_tree.
9437         (gnat_eh_runtime_type): Removed.
9438         (gnat_return_tree): New function.
9439
9440 2007-10-08  Ben Elliston  <bje@au.ibm.com>
9441
9442         PR ada/33454
9443         Revert:
9444         2007-08-31  Ben Elliston  <bje@au.ibm.com>
9445
9446         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9447         when compiling for powerpc64-*-linux.
9448         * system-linux-ppc64.ads: New file.
9449
9450 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
9451
9452         Mapped location support
9453         * back_end.adb (Call_Back_End): Pass information about source
9454         files instead of units to gigi.
9455         * gigi.h (struct File_Info_Type): New.
9456         (gigi): Rename and change type of number_units parameter, change
9457         type of file_info_ptr parameter.
9458         * trans.c (number_files): New global variable.
9459         (gigi): Rename and change type of number_units parameter, change
9460         type of file_info_ptr parameter.
9461         If mapped location support is enabled, create the isomorphic mapping
9462         between source files and line maps.
9463         (Sloc_to_locus): If mapped location support is enabled, translate
9464         source location into mapped location.
9465         (annotate_with_node): Rename into set_expr_location_from_node.
9466         Call set_expr_location instead of annotate_with_locus.
9467         (Pragma_to_gnu): Adjust for above change.
9468         (Loop_Statement_to_gnu): Likewise.
9469         (call_to_gnu): Likewise.
9470         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9471         (gnat_to_gnu): Likewise.
9472         (add_stmt_with_node): Likewise.
9473         (add_cleanup): Likewise.
9474         * utils.c (gnat_init_decl_processing): Do not set input_line.
9475
9476 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9477
9478         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9479         (Applicable_Use): Emit a warning when a package tries to use itself.
9480         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9481         is already in use or the package where it is declared is in use or is
9482         declared in the current package.
9483         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9484
9485         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9486         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9487         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9488
9489 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9490
9491         * a-calend-vms.adb, a-calend.adb:
9492         Add a section on leap seconds control along with two entities used to
9493         enable and disable leap seconds support. The array Leap_Second_Times is
9494         now constant and contains hard time values pre-generated. Remove
9495         all elaboration code used to populate the table of leap seconds.
9496
9497         * bindgen.adb:
9498         Add entity Leap_Seconds_Support to the list of global run-time variables
9499         along with a comment on its usage and values.
9500         (Gen_Adainit_Ada): Add code to generate the declaration and import of
9501         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9502         or one (enabled) depending on the presence of binder switch "-y".
9503         (Gen_Adainit_C): Add code to generate the declaration of external int
9504         __gl_leap_seconds_support. Set is value to zero (disabled) or one
9505         (enabled) depending on the presence of binder switch "-y".
9506
9507         * init.c: Add __gl_leap_seconds_support to the list of global values
9508         computed by the binder.
9509
9510 2007-09-26  Jerome Guitton  <guitton@adacore.com>
9511
9512         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9513         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9514          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9515         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9516
9517         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9518
9519         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9520         function which can be called by the debugger to interrupt the tasks of
9521         an Ada application asynchronously, as needed on VxWorks.
9522         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9523
9524         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9525         renamed from Stop_All_Tasks. Update comments.
9526         (Stop_All_tasks): New function declaration.
9527
9528 2007-09-26  Olivier Hainque  <hainque@adacore.com>
9529
9530         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9531         #include <utime.h> and #define GCC_RESOURCE_H before
9532         #include <sys/wait.h>.
9533         Add more protections in __gnat_translate_vms.
9534
9535         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9536         #include <sys/wait.h>.
9537
9538 2007-09-26  Thomas Quinot  <quinot@adacore.com>
9539             Sergey Rybin  <rybin@adacore.com>
9540
9541         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9542
9543         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9544         where it belongs.
9545
9546         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9547
9548         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9549         where it belongs.
9550
9551         * sem_dist.ads: Minor comment fix
9552
9553         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9554
9555 2007-09-26  Javier Miranda  <miranda@adacore.com>
9556             Eric Botcazou  <ebotcazou@adacore.com>
9557
9558         * a-tags.adb:
9559         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9560          indirection added to the HT_Link component of the TSD. This is required
9561          to statically allocate the TSD.
9562
9563         * a-tags.ads:
9564         Minor reordering of the declarations in the private part. Required to
9565         add a level of indirection to the contents of the TSD component HT_Link.
9566         This is required to statically allocate the TSD.
9567
9568         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9569         Is_Statically_Allocated set from constant objects.
9570         Do not make exported constants created by the compiler volatile.
9571         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9572         as read-only.
9573
9574         * trans.c (Identifier_to_gnu): For constants, unshare initializers
9575         before returning them.
9576
9577         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9578         public part of the package.
9579         (Make_DT): Move HT_Link component out of the TSD record. For this
9580         purpose Make_DT now declares a separate object that stores the
9581         HT_Link value, and initializes the TSD component with the address
9582         of this new object. The addition of this level of indirection is
9583         required to statically allocate the TSD because the TSD cannot
9584         have variable components.
9585         (Expand_Interface_Conversion): Improve the expanded code.
9586         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9587
9588         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9589         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9590         if we are building static dispatch tables then we must not generate
9591         extra code to register the primitive because the dispatch table will
9592         be built at the end of the library package; otherwise we notify that
9593         we cannot build the static dispatch table.
9594
9595 2007-09-26  Robert Dewar  <dewar@adacore.com>
9596
9597         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9598         overlays.
9599
9600         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9601         (Analyze_Record_Representation_Clause): Suppress junk warning for
9602         missing component clause.
9603         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9604         tests for controlled type overlay to composites with controlled
9605         components.
9606         (Analyze_Record_Representation_Clause): Add reference for component name
9607
9608 2007-09-26  Javier Miranda  <miranda@adacore.com>
9609             Gary Dismukes  <dismukes@adacore.com>
9610
9611         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9612         for thunks associated with interface types.
9613
9614         * einfo.ads: Improve documentatation of Is_Internal
9615         (Is_Thunk): New attribute applicable to subprograms. True for thunks
9616         associated with interface types.
9617         Extensive comment fixes regarding flags that appear in all entities. The
9618         documentation is now consistent for all such flags (there were a number
9619         of errors in the documentation in this regard).
9620
9621         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9622
9623         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9624         of these procedures are passed a function call that already has
9625         build-in-place actuals (testing new flag
9626         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9627         the case where processing continues.
9628         (Expand_Call): If the call is generated from a thunk body then we
9629         propagate the extra actuals associated with the accessibility
9630         level of the access type actuals.
9631
9632         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9633         of each extra formal of a protected operation to reference the
9634         corresponding extra formal of the subprogram denoted by the
9635         operation's Protected_Body_Subprogram.
9636
9637         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9638         N_Function_Call nodes.
9639
9640 2007-09-26  Robert Dewar  <dewar@adacore.com>
9641
9642         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9643
9644         * debug.adb: Add d.s flag.
9645
9646 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9647
9648         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9649         debug variable so that it won't be initialized when pragma
9650         Initialize_Scalars is in effect.
9651
9652 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9653
9654         * freeze.adb (Freeze_Entity): Remove check for preelaborable
9655         initialization of a full view. This is moved to
9656         Analyze_Package_Specification.
9657
9658         * sem_ch7.adb (Analyze_Package_Specification): Add check for
9659         preelaborable initialization of a full view in entity loop.
9660         (Uninstall_Declarations): If entity is a use-visible compilation unit,
9661         its child units are use-visible only if they are visible child units.
9662
9663         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9664         whether an expression can be used within a type declaration that
9665         requires preelaborable init.
9666         (Check_Components): Replace inline code that does partial checking for
9667         preelaborable default expressions with call to
9668         Is_Preelaborable_Expression.
9669         (Has_Preelaborable_Initialization): In the case of a generic actual
9670         subtype, (that is, Is_Generic_Actual is True), return the result of
9671         applying Has_Preelaborable_Initialization to the generic actual's base
9672         type.
9673
9674 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
9675
9676         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9677         call to Jan_1_Day _Of_Week to optimize its performance.
9678         (Is_Leap): Move the routine to the scope of Week_In_Year.
9679         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9680         weekday on which January 1 falls of Year - 1 and Year + 1. This function
9681         avoids calling Time_Of and Split, thus making it more efficent.
9682         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9683
9684         * g-calend.ads (Week_In_Year): Change comment to reflect new
9685         implementation.
9686
9687 2007-09-26  Emmanuel Briot  <briot@adacore.com>
9688
9689         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9690         Command_Line): New types
9691         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9692         support for defining how switches can be grouped on a command line (as
9693         is the case for -gnatw... for GNAT), and how simple switches can be
9694         used as aliases for more complex switches (-gnatwa is same as
9695         -gnatwbcef...)
9696         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
9697         (Start, Current_*): New subprograms
9698         Added support for parsing an array of strings in addition to the real
9699         command line.
9700         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
9701          be moved from the body to the private part of the spec.
9702         (*): All subprograms now have an extra parameter with default value to
9703         specify which parser should be used. For backward compatibility, it
9704         defaults to parsing the command line of the application. They were also
9705         modified to properly handle cases where each of the argument does not
9706         start at index 1 (which is always true for Ada.Command_Line, but not
9707         when processing any Argument_List).
9708         (Free): New subprogram
9709         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
9710         Argument): New subprograms
9711         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
9712         special characters like ':', '=',... are now handled in a single place,
9713         which makes the code more extensible eventually.
9714         (Getopt, Full_Switch): When the switch was returned as part of the
9715         special character '*', make sure it is prepended by the switch character
9716         ('-' in general), so that the application knows whether "foo" or "-foo"
9717         was specified on the command line.
9718
9719 2007-09-26  Florian Villoing  <villoing@adacore.com>
9720
9721         * g-dirope.adb (Remove_Dir): In case we are removing directories
9722         recursively, make sure that if an exception is raised during the
9723         processing, the current working directory is reset to its initial
9724         value before propagating the exception.
9725
9726 2007-09-26  Vincent Celier  <celier@adacore.com>
9727
9728         * gnatbind.adb: If there are several ALI files specified and there is
9729         a main program to bind, the first ALI is expected to contain the main
9730         subprogram and the names of the binder generated files will be derived
9731         from the first ALI file name.
9732         (Gnatbind): Fix insertion character in invocation of Error_Msg
9733
9734 2007-09-26  Vincent Celier  <celier@adacore.com>
9735
9736         * gnatcmd.adb (Check_Files): Do not include sources that have been
9737         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
9738
9739 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9740
9741         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
9742         information about each of its index types, following the type
9743         reference for its component type.
9744
9745 2007-09-26  Vincent Celier  <celier@adacore.com>
9746
9747         * make.adb: (Kill): New procedure (__gnat_kill imported)
9748         (Running_Compile, Outstanding_Compiles): Global variables that
9749         were previously local to procedure Compile_Sources.
9750         (Sigint_Intercepted): Send signal SIGINT to all outstanding
9751         compilation processes.
9752
9753         (Gnatmake): If project files are used, create the mapping of all the
9754         sources, so that the correct paths will be found.
9755
9756         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
9757
9758 2007-09-26  Vincent Celier  <celier@adacore.com>
9759
9760         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
9761
9762         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
9763         Replace components Compiler_Min_Options and Binder_Min_Options with
9764         Compiler_Required_Switches and Binder_Required_Switches in record
9765         Language_Config.
9766         Remove components Default_Language and Config in Project_Tree_Data,
9767         no longer used.
9768
9769         * prj-attr.adb: New attributes Required_Switches (<language>) in
9770         packages Compiler and Binder.
9771
9772         * prj-nmsc.adb: Major rewrite of the processing of configuration
9773         attributes for gprbuild. No impact on GNAT tools.
9774
9775         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
9776         process configuration attributes: this is done in Prj.Nmsc.Check.
9777         (Recursive_Process): Make a full copy of packages inherited from project
9778         being extended, instead of a shallow copy.
9779         (Process_Project_Tree_Phase_1): New procedure
9780         (Process_Project_Tree_Phase_1): New procedure
9781         (Process): Implementation now uses the two new procedures
9782
9783         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
9784         from the project config, not the tree config that no longer exists.
9785
9786 2007-09-26  Vincent Celier  <celier@adacore.com>
9787
9788         * Make-lang.in: Update dependencies..
9789
9790 2007-09-26  Vincent Celier  <celier@adacore.com>
9791
9792         * osint.adb, osint.ads: Minor reformatting
9793
9794         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
9795
9796 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
9797
9798         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
9799         message to cite use of <> in aggregate component associations rather
9800         than wrongly indicating use of limited aggregates.
9801
9802 2007-09-26  Robert Dewar  <dewar@adacore.com>
9803
9804         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
9805         Address_Taken.
9806
9807 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9808
9809         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
9810         ancestor of the derived type, the operations are inherited from the
9811         primary dispatch table of the parent.
9812         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
9813         when the context is an explicit type conversion.
9814
9815 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9816
9817         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
9818         rule for qualified expressions properly, to detect improper conversions
9819         and resolve some cases of overloading.
9820
9821 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
9822
9823         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
9824         proper kind of reference to the primitive operation, for better source
9825         navigation.
9826         (Valid_Conversion): A tagged conversion is legal if both operands are
9827         tagged.
9828
9829 2007-09-26  Robert Dewar  <dewar@adacore.com>
9830
9831         * sem_warn.adb (Check_References): Catch more cases of unreferenced
9832         packages.
9833
9834 2007-09-26  Vincent Celier  <celier@adacore.com>
9835
9836         * snames.adb, snames.ads: Change Include_Option to Include_Switches
9837
9838 2007-09-26  Robert Dewar  <dewar@adacore.com>
9839
9840         * s-wchstw.adb: provide messages for run time unit exceptions
9841
9842         * a-witeio.adb: Minor reformatting
9843
9844         * exp_ch13.adb: Minor reformatting
9845
9846 2007-09-26  Sergey Rybin  <rybin@adacore.com>
9847
9848         * vms_data.ads: Revise gnatmetric qualifiers.
9849         Add qualified for the new gnatbind option '-y'
9850
9851         * gnat_ugn.texi: Revise the gnatmetric section.
9852         Add entry for new gnatbind option '-y'.
9853
9854         * gnat_rm.texi: Minor spelling correction.
9855         Document restriction on overlaying controlled types
9856
9857 2007-09-26  Vincent Celier  <celier@adacore.com>
9858
9859         * makegpr.adb (Link_Executables): Do not fail when the root project has
9860         no sources, but is an extending project.
9861
9862 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9863
9864         * trans.c: Fix misplaced #define.
9865
9866 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
9867
9868         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
9869         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
9870
9871 2007-09-21  Olivier Hainque  <hainque@adacore.com>
9872
9873         * utils.c (type_for_nonaliased_component_p): Return false for
9874         all AGGREGATE_TYPEs.
9875
9876 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
9877
9878         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
9879         object covered by 13.3(19) volatile.
9880
9881 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
9882
9883         PR ada/26797
9884         PR ada/32407
9885         * utils.c (unchecked_convert): Use a subtype as the intermediate type
9886         in the special VIEW_CONVERT_EXPR case.
9887
9888 2007-09-12  Robert Dewar  <dewar@adacore.com>
9889
9890         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
9891
9892         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
9893         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
9894         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
9895         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
9896         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
9897         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
9898         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
9899         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9900         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
9901         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
9902         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
9903         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
9904         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
9905         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
9906         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
9907         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
9908         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
9909         pragma Compiler_Unit and adds it to relevant library units.
9910
9911 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
9912
9913         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
9914         a box need not correspond to any component.
9915
9916 2007-09-12  Robert Dewar  <dewar@adacore.com>
9917
9918         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
9919         the tasking version of the Ada run time when foreign threads are
9920         present and there are no explicit Ada tasks or tasking constructs.
9921
9922         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
9923
9924 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
9925
9926         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
9927         the usage of switch -y.
9928
9929         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
9930         when switch -y is present.
9931
9932         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
9933         leap seconds in Ada.Calendar and its children.
9934
9935 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
9936
9937         * a-extiti.ads (Timer): The discriminant is a "not null access
9938         constant" in the Reference Manual.
9939         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
9940
9941 2007-09-12  Robert Dewar  <dewar@adacore.com>
9942
9943         * a-swuwha.adb: Remove junk RM header
9944
9945 2007-09-12  Vincent Celier  <celier@adacore.com>
9946
9947         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
9948         indicator
9949
9950         * g-bytswa.ads: Minor reformatting
9951
9952 2007-09-12  Thomas Quinot  <quinot@adacore.com>
9953
9954         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
9955         Add new constant Thread_Blocking_IO, always True by default, set False
9956         on a per-runtime basis.
9957         (Need_Netdb_Buffer): New constant.
9958
9959 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
9960
9961         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
9962         Added renames for corresponding functions in System.Partition_Interface.
9963
9964 2007-09-12  Doug Rupp  <rupp@adacore.com>
9965
9966         * Makefile.in: Remove VMS specific System.CRTL packages which are no
9967         longer needed.
9968
9969         * s-crtl-vms64.ads: Removed.
9970
9971 2007-09-12  Olivier Hainque  <hainque@adacore.com>
9972
9973         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
9974         with discriminant constraints, generalize the code for BIT_FIELDs
9975         to PACKED fields of constant size and propagate DECL_PACKED.
9976
9977 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
9978
9979         * decl.c (array_type_has_nonaliased_component): New predicate.
9980         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
9981         set the TYPE_NONALIASED_COMPONENT flag on the type.
9982         <E_Array_Subtype>: Likewise.
9983         * gigi.h (type_for_nonaliased_component_p): Declare.
9984         * utils.c (type_for_nonaliased_component_p): New predicate.
9985         (create_field_decl): Invoke the above predicate to set the
9986         DECL_NONADDRESSABLE_P flag on the field.
9987
9988 2007-09-11  Javier Miranda  <miranda@adacore.com>
9989
9990         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
9991         in library level record type entities if we are generating statically
9992         allocated dispatch tables.
9993
9994         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
9995         importing/exporting the _tag declaration by new code
9996         importing/exporting the dispatch table wrapper. This change allows us
9997         to statically allocate of the TSD.
9998         (Make_DT.Export_DT): New procedure.
9999         (Build_Static_DT): New function.
10000         (Has_DT): New function.
10001
10002         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10003         True_Constant and Current_Value. Required to statically
10004         allocate the dispatch tables.
10005         (Check_Allocator): Make function iterative instead of recursive.
10006         Also return inner allocator node, when present, so that we do not have
10007         to look for that node again in the caller.
10008
10009 2007-09-11  Jan Hubicka  <jh@suse.cz>
10010
10011         * misc.c (gnat_expand_body): Kill.
10012         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10013
10014 2007-09-10  Robert Dewar  <dewar@adacore.com>
10015
10016         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10017         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10018         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10019         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10020         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10021         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10022         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10023         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10024         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10025         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10026         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10027         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10028         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10029         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10030         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10031         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10032         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10033         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10034         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10035         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10036         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10037         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10038         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10039         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10040         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10041         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10042         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10043         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10044         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10045         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10046         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10047         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10048         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10049         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10050         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10051         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10052         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10053         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10054         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10055         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10056         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10057         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10058         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10059         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10060         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10061         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10062         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10063         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10064         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10065         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10066         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10067         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10068         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10069         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10070         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10071         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10072         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10073         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10074         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10075         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10076         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10077         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10078         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10079         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10080         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10081         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10082         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10083         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10084         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10085         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10086         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10087         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10088         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10089         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10090         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10091         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10092         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10093         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10094         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10095         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10096         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10097         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10098         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10099
10100 2007-09-10  Emmanuel Briot  <briot@adacore.com>
10101
10102         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10103         classes ("[]").
10104
10105 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
10106
10107         * adaint.c (__gnat_translate_vms): new function.
10108
10109 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
10110             Thomas Quinot  <quinot@adacore.com>
10111
10112         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10113         create an abstract subprogram in the case of 'Input. For 'Output we now
10114         create a real spec/body when the type is abstract, since it can
10115         potentially be called.
10116         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10117         body for 'Output when the type is abstract (only the creation of the
10118         body for 'Input is excluded when the type is abstract).
10119         (Stream_Operation_OK): Add an additional condition in the return
10120         statement, so that False will be returned for TTS_Stream_Input if the
10121         associated tagged type is an abstract extension. Add comments for
10122         return statement.
10123         (Expand_N_Object_Declaration): For the case of a shared passive
10124         variable, insert init proc call only after the shared variable
10125         procedures have been processed, because the IP call needs to undergo
10126         shared passive variable reference expansion, which requires these
10127         procedures to be available (and elaborated).
10128
10129 2007-09-10  Vincent Celier  <celier@adacore.com>
10130
10131         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10132         parameter Runtime_Project.
10133
10134 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10135
10136         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10137         given a box association, the type of the component is discriminated,
10138         and the value of the discriminant is the discriminant of the enclosing
10139         type, retrieve its value from the aggregate itself, where it must have
10140         been supplied.
10141
10142         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10143         to remove other spurious ambiguities on arithmetic operations involving
10144         literals and addresses, on systems where Address is a visible integer
10145         type, when the operator is called in functional notation.
10146         (Try_Primitive_Operation): Within an instance, a call in prefixed form
10147         is legal when the types match, even if the operation is currently
10148         hidden.
10149
10150 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10151
10152         * sem_ch12.adb (Build_Local_Package): A formal package with no
10153         associations is legal if all formals have defaults. It is not
10154         equivalent to a formal declared with a box.
10155
10156 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10157
10158         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10159
10160 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10161
10162         * gnat_ugn.texi: Add description of the new '-lratio' option
10163         Update 7.3.1 section about availability of the feature.
10164
10165 2007-09-10  Thomas Quinot  <quinot@adacore.com>
10166
10167         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10168         inserted node.
10169
10170 2007-09-10  Olivier Hainque  <hainque@adacore.com>
10171
10172         * Makefile.in: (mips-irix section): Activate build of libgmem.
10173
10174 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10175
10176         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10177         x87 registers.
10178
10179 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10180
10181         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10182         a debug renaming declaration specially.
10183
10184 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10185
10186         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10187         which a constant renaming is treated as a normal object declaration.
10188         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10189         the N_Indexed_Component case.
10190         <N_Indexed_Component>: Fall through to above case.
10191         <N_Object_Renaming_Declaration>: Return true for all composite types.
10192
10193 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10194
10195         * decl.c (make_packable_type): If the new type has been given BLKmode,
10196         try again to get an integral mode for it.
10197
10198 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
10199
10200         Re-apply accidentally reverted change:
10201
10202         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10203
10204         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10205         get_action_description_for): Replace _Unwind_Word with _uleb128_t
10206         and _Unwind_SWord with _sleb128_t.
10207
10208 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
10209
10210         * trans.c (convert_with_check): Update call to real_2expN.
10211
10212 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
10213
10214         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10215         * utils.c (end_subprog_body): Likewise.
10216
10217 2007-09-03  Nick Clifton  <nickc@redhat.com>
10218
10219         * Make-lang.in: Change copyright header to refer to version 3 of
10220         the GNU General Public License and to point readers at the
10221         COPYING3 file and the FSF's license web page.
10222         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10223         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10224         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10225         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10226         Likewise.
10227
10228 2007-08-31  Vincent Celier  <celier@adacore.com>
10229
10230         PR ada/4720
10231
10232         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10233         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10234         (Check_Version_And_Help): New procedure in package Switch to process
10235         switches --version and --help.
10236         Use Check_Version_And_Help in GNAT tools
10237
10238         * make.adb:  Ditto.
10239         (Compile_Sources): Make sure that sources that are "excluded" are not
10240         compiled.
10241         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10242         project file is used.
10243         (Version_Switch): Remove, moved to Switch
10244         (Help_Switch): Remove, moved to Switch
10245         (Display_Version): Remove, moved to Switch
10246
10247         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10248         package Switch to process switches --version and --help.
10249         (Display_Version): New procedure
10250
10251         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10252
10253 2007-08-31  Javier Miranda  <miranda@adacore.com>
10254
10255         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10256         internal tags.
10257
10258 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10259
10260         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10261         (Mark_Non_Null): If the node for which we just generated an access check
10262         is a reference to an *in* parameter and the reference appears in the
10263         declarative part of a subprogram body, mark the node as known non null.
10264
10265 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10266
10267         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10268         structure of E_Exception to reflect the new flag.
10269         (Is_Raised, Set_Is_Raised): New inlined routines.
10270         Update the usage of available flag to reflect the addition of Is_Raised.
10271         (Is_Raised, Set_Is_Raised): Bodies of new routines.
10272         (Write_Entity_Flags): Write the status of flag Is_Raised.
10273         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10274         spurious ambiguities when integer literals appear in the context of an
10275         address type that is a visible integer type.
10276
10277         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10278         exceptions never being raised.
10279         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10280         explicitly raised.
10281
10282 2007-08-31  Javier Miranda  <miranda@adacore.com>
10283
10284         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10285         statement when compiling under restriction No_Exceptions_Proparation.
10286
10287 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10288
10289         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10290         initialization aggregate for the type, generate itype references for
10291         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10292
10293 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
10294
10295         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10296         library-level package renaming, pass the declaration associated with
10297         the renaming's special debug variable to Qualify_Entity_Names to ensure
10298         that its encoded name is properly qualified.
10299
10300         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10301         occurring in the list of entities to qualify, and do not attempt to
10302         traverse an entity list in that case. Variables associated with
10303 `       library-level package renamings can now occur in the table.
10304
10305         * exp_dbug.ads: Revise documentation of the encoding for renaming
10306         declarations.
10307
10308 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10309
10310         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10311         access type points to an unconstrained array.
10312
10313 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10314
10315         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10316         conversion.
10317
10318         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10319         simple redundant qualifications. The check is performed whenever the
10320         expression is a non-overloaded identifier.
10321         (Resolve_Type_Conversion): Enchance the redundant type conversion check
10322         to include loop parameters.
10323         (Valid_Conversion): Avoid generation of spurious error message.
10324
10325 2007-08-31  Bob Duff  <duff@adacore.com>
10326
10327         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10328         concatenations of string literals into a single literal, in order to
10329         avoid very deep recursion in the front end, which was causing stack
10330         overflow.
10331
10332         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10333         string, and the right operand is a string literal (the case of "" &
10334         "..."), optimize by avoiding copying the right operand -- just use the
10335         value of the right operand directly.
10336
10337         * stringt.adb (Store_String_Chars): Optimize by growing the
10338         String_Chars table all at once, rather than appending characters one by
10339         one.
10340         (Write_String_Table_Entry): If the string to be printed is very long,
10341         just print the first few characters, followed by the length. Otherwise,
10342         doing "pn(n)" in the debugger can take an extremely long time.
10343
10344         * sem_prag.adb (Process_Interface_Name): Replace loop doing
10345         Store_String_Char with Store_String_Chars.
10346
10347 2007-08-31  Vincent Celier  <celier@adacore.com>
10348
10349         * prj-attr.adb: Add new attribute Excluded_Source_Files
10350
10351         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10352         Locally_Removed_Files.
10353
10354         * snames.ads, snames.adb: New standard name Excluded_Source_Files
10355
10356 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10357
10358         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10359         clauses of subunits, ignore limited_with_clauses that are illegal and
10360         have not been fully analyzed.
10361
10362 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10363
10364         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10365         flag, for effiency. It is called when analyzing arithmetic operators
10366         and also for actuals in calls that are universal_integers. The flag is
10367         set for the predefined type address, and for any type or subtype
10368         derived from it.
10369
10370         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10371         Universal_Integer, when the formal is a descendent of address and the
10372         call appears in user code.
10373         (Analyze_Selected_Component): if the prefix is a private extension, the
10374         tag component is visible.
10375
10376         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10377         entity flag.
10378
10379 2007-08-31  Robert Dewar  <dewar@adacore.com>
10380
10381         * s-fileio.adb (Open): Normalize file name to lower case in non-case
10382         sensitive file name systems to avoid unexpected mismatch in Vista.
10383
10384 2007-08-31  Vincent Celier  <celier@adacore.com>
10385
10386         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10387
10388 2007-08-31  Vincent Celier  <celier@adacore.com>
10389
10390         * symbols-vms.adb (Initialize): Read symbol files with continuation
10391         lines
10392         (Finalize): If symbol is long, split the line
10393
10394 2007-08-31  Vincent Celier  <celier@adacore.com>
10395
10396         * fmap.ads: Minor comment updates
10397
10398 2007-08-31  GNAT Script  <nobody@adacore.com>
10399
10400         * Make-lang.in: Makefile automatically updated
10401
10402 2007-08-31  Bob Duff  <duff@adacore.com>
10403
10404         * sinfo.ads: Minor comment fix.
10405
10406 2007-08-31  Thomas Quinot  <quinot@adacore.com>
10407
10408         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10409         with implementation.
10410         Documentation cleanup only.
10411
10412 2007-08-31  Sergey Rybin  <rybin@adacore.com>
10413
10414         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10415         gnatpp '--separate-stmt-name' option.
10416         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10417         option.
10418
10419         * gnat_ugn.texi: Add description for the new gnatpp
10420         '--separate-stmt-name' and '--use-on-new-line' options.
10421
10422 2007-08-31  Ben Elliston  <bje@au.ibm.com>
10423
10424         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10425         when compiling for powerpc64-*-linux.
10426         * system-linux-ppc64.ads: New file.
10427
10428 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
10429
10430         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10431         NetBSD.
10432
10433 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10434
10435         * misc.c (gnat_type_max_size): Constify.
10436
10437 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10438
10439         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10440         associated with Standard_Debug_Renaming_Type, to be used as the type of
10441         the special variables whose names provide debugger encodings for
10442         renaming declarations.
10443
10444         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10445         (Set_Debug_Renaming_Link): Change to set Node25.
10446         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10447         (Write_Field25_Name): Add case for E_Variable to output
10448         "Debug_Renaming_Link".
10449         (Write_Field23_Name): Correct the output string for "Limited_View".
10450
10451         * exp_dbug.adb: Add with and use of Tbuild.
10452         (Debug_Renaming_Declaration): Replace creation of an enumeration type
10453         and literal with creation of a variable of type
10454         Standard_Debug_Renaming_Type whose name encodes both the renamed object
10455         and the entity of the renaming declaration.
10456         (Qualify_Entity_Name): Add the delayed qualification of the entity name
10457         part of the name of a variable that has a Debug_Renaming_Link.
10458
10459         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10460         special type to be associated with variables that provide debugger
10461         encodings for renaming declarations.
10462
10463 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10464             Ed Schonberg  <schonberg@adacore.com>
10465             Javier Miranda  <miranda@adacore.com>
10466
10467         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10468         ancestor part given by an aggregate to test for an unchecked conversion,
10469         since this can occur in some cases when the ancestor part is a function
10470         call, and we don't want to fall into the recursive call to this
10471         procedure in that case.
10472
10473         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10474         stream attributes on limited types to account for user-specified
10475         attributes as well as whether Input (resp. Output) becomes available
10476         due to Read (resp. Write) being available for the type. Change Boolean
10477         variable to the more accurate name
10478         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10479         double-"not" predicate at beginning of return statement to more
10480         understandable form.
10481
10482         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10483         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10484         in a block statement and use that as the first statement of the
10485         expanded return rather than incorrectly using the handled sequence as
10486         the first statement.
10487
10488         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10489         operation, generate an explicit freeze node for it rather than
10490         generating extra formals, to ensure that gigi has the proper order of
10491         elaboration for anonymous subtypes in the signature of the subprograms.
10492         (Build_In_Place_Formal): Move assertion to beginning of loop.
10493         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10494         applied to a function call (occurs for some cases of 'Input).
10495         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10496         applied to a function call (occurs for some cases of 'Input).
10497
10498         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10499         2005, generate an extended return statement enclosing the result object
10500         and 'Read call.
10501
10502         * freeze.adb (Freeze_Record_Type): Extend the current management of
10503         components that are access type with an allocator as default value: add
10504         missing support to the use of qualified expressions of the
10505         allocator (which also cause freezing of the designated type!)
10506         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10507         dispatching operation, since extra formals may be needed by calls to
10508         build-in-place functions (such as stream 'Input).
10509
10510         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10511         formals for 'Constrained and accessibility level in the case of a
10512         predefined dispatching operation.
10513
10514         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10515         point, no need to find the parent node.
10516
10517 2007-08-16  Javier Miranda  <miranda@adacore.com>
10518
10519         * exp_attr.adb (Attribute_Priority): Add missing support for entries
10520         and entry barriers.
10521
10522 2007-08-16  Javier Miranda  <miranda@adacore.com>
10523
10524         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10525         is not really required and can introduce regression with the debugger.
10526         The original problem is fixed with the patch written for checks.adb.
10527
10528 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10529
10530         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10531         Range_Check on Allocated_Table.
10532
10533 2007-08-16  Vincent Celier  <celier@adacore.com>
10534
10535         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10536         Including_Non_Switch set to False.
10537         (Gnatmake): For the compiler, call Test_If_Relative_Path with
10538         Including_Non_Switch set to False.
10539
10540         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10541         parameter Including_Non_Switch, defaulted to True. When
10542         Including_Non_Switch is False, options that are not switches and
10543         appear as relative path are not converted to absolute paths.
10544
10545 2007-08-16  Nicolas Roche  <roche@adacore.com>
10546
10547         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10548         makefiles
10549
10550         * Make-lang.in: Update dependencies
10551
10552 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10553
10554         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10555         currently inspected is a selected component, retrieve the entity of
10556         its selector.
10557         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10558         from the immediate ancestor of Main_Unit_Entity.
10559         (Install_Limited_Withed_Unit): Do not install the limited view of
10560         package P if P is reachable through an ancestor chain from package C
10561         and C also has a with clause for P in its body.
10562         (Has_Limited_With_Clause): New routine.
10563         (Has_With_Clause): New routine.
10564
10565 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10566
10567         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10568         generic for an enclosing instance is a global reference, even though
10569         its scope is the enclosing instance.
10570
10571 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
10572             Javier Miranda  <miranda@adacore.com>
10573
10574         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10575         initialize a limited object.
10576         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10577         13/2 and 14/2.
10578         Make sure Has_Complex_Representation is inherited by derived type.
10579
10580 2007-08-16  Robert Dewar  <dewar@adacore.com>
10581
10582         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10583         exception case
10584
10585 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
10586
10587         * sem_disp.adb (Check_Dispatching_Operation): If the operation
10588         implements an operation inherited from a progenitor interface, verify
10589         that they are subtype-conformant.
10590
10591 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
10592             Bob Duff  <duff@adacore.com>
10593             Nicolas Setton  <setton@adacore.com>
10594
10595         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10596         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10597         the statement which is being resolved comes from a predefined library
10598         unit, all non-predefined library interpretations are skipped.
10599         (Resolve_Op_Concat): If string concatenation was folded in the parser,
10600         but the "&" is user defined, give an error, because the folding would
10601         be wrong.
10602
10603         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10604         the parser has folded a long sequence of concatenations of string
10605         literals.
10606
10607         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10608         and "JMP_BUF" variables as artificial.
10609         (N_String_Literal): Do not use alloca for very long string literals. Use
10610         xmalloc/free instead. Otherwise the stack might overflow.
10611
10612         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10613         compiler.
10614
10615 2007-08-16  Vincent Celier  <celier@adacore.com>
10616
10617         * vms_conv.adb (Process_Argument): Ensure that project related options
10618         are not put in the -cargs section when using GNAT COMPILE.
10619
10620 2007-08-16  Robert Dewar  <dewar@adacore.com>
10621
10622         * gnat_ugn.texi: Add note on preprocessing (output file not written)
10623
10624 2007-08-16  Thomas Quinot  <quinot@adacore.com>
10625
10626         * a-tags.adb: Minor reformatting.
10627
10628 2007-08-16  Bob Duff  <duff@adacore.com>
10629
10630         * sem_type.ads, sem_ch4.adb: Minor reformatting.
10631
10632 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10633
10634         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
10635         s-osinte-interix.ads, system-interix.ads: Removed.
10636
10637 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
10638
10639         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10640         calls to Check_Within_Time_Bounds.
10641         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10642         (Difference): Account for possible rounding of the resulting difference
10643
10644 2007-08-14  Robert Dewar  <dewar@adacore.com>
10645
10646         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10647         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10648         s-osinte-solaris.adb, s-osinte-solaris.ads,
10649         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10650
10651         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10652         switch -gnatyS. Enable -gnatyS in GNAT style check mode
10653
10654 2007-08-14  Robert Dewar  <dewar@adacore.com>
10655             Ed Schonberg  <schonberg@adacore.com>
10656
10657         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
10658         Suppress unmodified in-out parameter warning in some cases
10659         This patch is a also fairly significant change to the way suppressible
10660         checks are handled.
10661
10662         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10663         needed for access to concurrent record types generated by the expander.
10664         (Generate_Range_Check): When generating a temporary to capture the
10665         value of a conversion that requires a range check, set the type of the
10666         temporary before rewriting the node, so that the type is always
10667         properly placed for back-end use.
10668         (Apply_Float_Conversion_Check): Handle case where the conversion is
10669         truncating.
10670         (Get_Discriminal): Code reformatting. Climb the scope stack looking
10671         for a protected type in order to examine its discriminants.
10672
10673 2007-08-14  Robert Dewar  <dewar@adacore.com>
10674             Gary Dismukes  <dismukes@adacore.com>
10675             Ed Schonberg  <schonberg@adacore.com>
10676             Thomas Quinot  <quinot@adacore.com>
10677
10678         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
10679         a-stwisu.adb, a-strsup.adb: Fix warnings for range
10680         tests optimized out.
10681
10682         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10683         (Get_Allocator_Final_List): For the case of an anonymous access type
10684         that has a specified Associated_Final_Chain, do not go up to the
10685         enclosing scope.
10686         (Expand_N_Type_Conversion): Test for the case of renamings of access
10687         parameters when deciding whether to apply a run-time accessibility
10688         check.
10689         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10690         aggregate code before allocator, and ahead of declaration for
10691         temporary, to prevent access before elaboration when the allocator is
10692         an actual for an access parameter.
10693         (Expand_N_Type_Conversion): On an access type conversion involving an
10694         access parameter, do not apply an accessibility check when the
10695         operand's original node was an attribute other than 'Access. We now
10696         create access conversions for the expansion of 'Unchecked_Access and
10697         'Unrestricted_Access in certain cases and clearly accessibility should
10698         not be checked for those.
10699
10700         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
10701         includes a type conversion of a packed component that has been expanded,
10702         recover the original expression for the object, and use this expression
10703         in the post-call assignment statement, so that the assignment is made
10704         to the object and not to a back-end temporary.
10705         (Freeze_Subprogram): In case of primitives of tagged types not defined
10706         at the library level force generation of code to register the primitive
10707         in the dispatch table. In addition some code reorganization has been
10708         done to leave the implementation clear.
10709         (Expand_Call): When expanding an inherited implicit conversion,
10710         preserve the type of the inherited function after the intrinsic
10711         operation has been expanded.
10712
10713         * exp_ch2.ads, exp_ch2.adb
10714         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
10715         of an entry formal appearing in an assignment statement does not assign
10716         to the formal.
10717         (Expand_Current_Value): Instead of calling a routine to determine
10718         whether the prefix of an attribute reference should be optimized or
10719         not, prevent the optimization of such prefixes all together.
10720
10721         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
10722         component whose prefix is known to be of an access type is an implicit
10723         dereference and does not assign to the prefix.
10724
10725 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10726             Robert Dewar  <dewar@adacore.com>
10727
10728         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
10729         itype is visited, make an entry into table to link associated node and
10730         new itype.
10731         Add comments and correct harmless error in Build_NCT_Hash_Tables
10732         (Array_Aggr_Subtype): Associate each itype created for an index type to
10733         the corresponding range construct, and not to the aggregate itself. to
10734         maintain a one-to-one correspondence between itype and its associated
10735         node, to prevent errors when complex expression is copied.
10736         Fix mishandling of multiple levels of parens
10737
10738         * sem_aggr.adb: Create a limited view of an incomplete type, to make
10739         treatment of limited views uniform for all visible declarations in a
10740         limited_withed package.
10741         (New_Copy_Tree): If hash table is being used and itype is visited,
10742         make an entry into table to link associated node and new itype.
10743         (Resolve_Record_Aggregate): Do not add an others box association for a
10744         discriminated record component that has only discriminants, when there
10745         is a box association for the component itself.
10746
10747         * par-ch4.adb: Fix mishandling of multiple levels of parens
10748
10749 2007-08-14  Robert Dewar  <dewar@adacore.com>
10750
10751         * comperr.adb: Fix problem with suppressing warning messages from gigi
10752
10753         * erroutc.ads, erroutc.adb, errout.ads,
10754         errout.adb (Write_Eol): Remove trailing spaces before writing the line
10755         (Write_Eol_Keep_Blanks): New procedure to write a line, including
10756         possible trailing spaces.
10757         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10758         Fix problem with suppressing warning messages from back end
10759         Improve handling of deleted warnings
10760
10761         * gnat1drv.adb:
10762         Fix problem with suppressing warning messages from back end
10763         Handle setting of Static_Dispatch_Tables flag.
10764
10765         * prepcomp.adb:
10766         Fix problem with suppressing warning messages from back end
10767
10768         * exp_intr.adb: Improve handling of deleted warnings
10769
10770 2007-08-14  Robert Dewar  <dewar@adacore.com>
10771
10772         * debug.adb: Improve -gnatdI to cover all cases of serialization
10773         Add documentation of dZ, d.t
10774
10775         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
10776         serialization.
10777         (Sprint_Node_Actual): Generate new output associated with implicit
10778         importation and implicit exportation of object declarations.
10779
10780 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10781             Robert Dewar  <dewar@adacore.com>
10782             Javier Miranda  <miranda@adacore.com>
10783             Gary Dismukes  <dismukes@adacore.com>
10784
10785         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
10786         to make treatment of limited views uniform for all visible declarations
10787         in a limited_withed package.
10788         Improve warnings for in out parameters
10789         (Set_Related_Interaface/Related_Interface): Allow the use of this
10790         attribute with constants.
10791         (Write_Field26_Name): Handle attribute Related_Interface in constants.
10792         Warn on duplicate pragma Preelaborable_Initialialization
10793
10794         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
10795         generation of a freezing node to ensure proper management of null
10796         excluding access types in the backend.
10797         (Create_Extra_Formals): Test base type of the formal when checking for
10798         the need to add an extra accessibility-level formal. Pass the entity E
10799         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
10800         originally being done in a couple of cases), to ensure that the
10801         Extra_Formals list gets set on the entity E when the first entity is
10802         added.
10803         (Conforming_Types): Add missing calls to Base_Type to the code that
10804         handles anonymous access types. This is required to handle the
10805         general case because Process_Formals builds internal subtype entities
10806         to handle null-excluding access types.
10807         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10808         functions that need it, even when not marked Requires_Overriding.
10809         Improve warnings for in out parameters
10810         (Analyze_Function_Return): Warn for disallowed null return
10811         Warn on return from procedure with unset out parameter
10812         Ensure consistent use of # in error messages
10813         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
10814         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
10815         the implicit conversion of the expression done for anonymous access
10816         types. This is required to generate the code of the null excluding
10817         check (if required).
10818
10819         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
10820         A formal parameter is never publicly referenceable outside of its body.
10821         (Check_References): For an unreferenced formal parameter in an accept
10822         statement, use the same warning circuitry as for subprogram formal
10823         parameters.
10824         (Warn_On_Unreferenced_Entity): New subprogram, taken from
10825         Output_Unreferenced_Messages, containing the part of that routine that
10826         is now reused for entry formals as described above.
10827         (Goto_Spec_Entity): New function
10828         (Check_References): Do not give IN OUT warning for dispatching operation
10829         Improve warnings for in out parameters
10830         (Test_Ref): Check that the entity is not undefinite before calling
10831         Scope_Within, in order to avoid infinite loops.
10832         Warn on return from procedure with unset out parameter
10833         Improved warnings for unused variables
10834
10835 2007-08-14  Robert Dewar  <dewar@adacore.com>
10836             Javier Miranda  <miranda@adacore.com>
10837             Gary Dismukes  <dismukes@adacore.com>
10838
10839         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
10840         (Expand_N_Attribute_Reference): Further unify the handling of the
10841         three forms of access attributes, using common code now for all three
10842         cases. Add a test for the case of applying an access attribute to
10843         an explicit dereference when the context is an access-to-interface
10844         type. In that case we need to apply the conversion to the prefix
10845         of the explicit dereference rather than the prefix of the attribute.
10846         (Attribute_Version, UET_Address): Set entity as internal to ensure
10847         proper dg output of implicit importation.
10848         (Expand_Access_To_Type): Removed.
10849         (Expand_N_Attribute_Reference): Merge the code from the three cases
10850         of access attributes, since the processing is largely identical for
10851         these cases. The substantive fix here is to process the case of a
10852         type name prefix (current instance case) before handling the case
10853         of interface prefixes.
10854
10855 2007-08-14  Thomas Quinot  <quinot@adacore.com>
10856             Ed Schonberg  <schonberg@adacore.com>
10857             Javier Miranda  <miranda@adacore.com>
10858             Robert Dewar  <dewar@adacore.com>
10859
10860         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
10861         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
10862         type that is an anonymous access to controlled object, establish
10863         an associated finalization chain to avoid corrupting the global
10864         finalization list when a dynamically allocated object designated
10865         by such a component is deallocated.
10866         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10867         functions that need it, even when not marked Requires_Overriding.
10868         (Initialize_Tag): Replace call to has_discriminants by call to
10869         Is_Variable_Size_Record in the circuitry that handles the
10870         initialization of secondary tags.
10871         (Is_Variable_Size_Record): New implementation.
10872         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
10873         Suppress_Initialization pragma for a derived type.
10874         (Is_Variable_Size_Record): New subprogram.
10875         (Build_Offset_To_Top_Functions): New implementation that simplifies the
10876         initial version of this routine and also fixes problems causing
10877         incomplete initialization of the table of interfaces.
10878         (Build_Init_Procedure): Improve the generation of code to initialize the
10879         the tag components of secondary dispatch tables.
10880         (Init_Secondary_Tags): New implementation that simplifies the previous
10881         version of this routine.
10882         (Make_DT): Add parameter to indicate when type has been frozen by an
10883         object declaration, for diagnostic purposes.
10884         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
10885         diagnose attemps to freeze a subprogram when some untagged type of its
10886         profile is a private type whose full view has not been analyzed yet.
10887         (Freeze_Array_Type): Generate init proc for packed array if either
10888         Initialize or Normalize_Scalars is set.
10889         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
10890         constructing the new profile, copy the null_exclusion indicator for each
10891         parameter, to ensure full conformance of the new body with the spec.
10892
10893         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
10894         Create wrappers for constructor functions that need it, even when not
10895         marked Requires_Overriding.
10896         (Covers): Handle properly designated types of anonymous access types,
10897         whose non-limited views are themselves incomplete types.
10898         (Add_Entry): Use an entity to store the abstract operation which hides
10899         an interpretation.
10900         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
10901         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
10902         initialization aggregate.
10903         (Function_Interp_May_Be_Hidden): Rename to
10904         Function_Interp_Has_Abstract_Op.
10905         (Has_Compatible_Type): Remove machinery that skips interpretations if
10906         they are labeled as potentially hidden by an abstract operator.
10907         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
10908         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
10909         (Write_Overloads): Output the abstract operator if present.
10910         (Add_Entry): Before inserting a new entry into the interpretation table
10911         for a node, determine whether the entry will be disabled by an abstract
10912         operator.
10913         (Binary_Op_Interp_May_Be_Hidden): New routine.
10914         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
10915         aggregate.
10916         (Function_Interp_May_Be_Hidden): New routine.
10917         (Has_Compatible_Type): Do not consider interpretations hidden by
10918         abstract operators when trying to determine whether two types are
10919         compatible.
10920         (Has_Hidden_Interp): New routine.
10921         (Set_May_Be_Hidden_Interp): New routine.
10922         (Write_Overloads): Write the status of flag May_Be_Hidden.
10923
10924 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
10925             Javier Miranda  <miranda@adacore.com>
10926
10927         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
10928         types declared in the declarative part of a nested package body or in
10929         the proper body of a stub.
10930         (Set_All_DT_Position): Add missing check to avoid wrong assignation
10931         of the same dispatch table slot to renamed primitives.
10932         (Make_Select_Specific_Data_Table): Handle private types.
10933         (Tagged_Kind): Handle private types.
10934         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
10935         output of implicit importation and exportation.
10936         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
10937         first formal of the thunk is always associated with the controlling
10938         type. In addition perform the following code cleanup: remove formal
10939         Thunk_Alias which is no longer required, cleanup evaluation of the
10940         the controlling type, and update the documentation.
10941         Replace occurrence of Default_Prim_Op_Count by
10942         Max_Predef_Prims. Addition of compile-time check to verify
10943         that the value of Max_Predef_Prims is correct.
10944         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
10945         (Make_DT): Add parameter to indicate when type has been frozen by an
10946         object declaration, for diagnostic purposes.
10947         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
10948         construction of statically allocated dispatch tables.
10949         (Make_DT): In case of library-level tagged types export the declaration
10950         of the primary tag. Remove generation of tags (now done by Make_Tags).
10951         Additional modifications to handle non-static generation of dispatch
10952         tables. Take care of building tables for asynchronous interface types
10953         (Make_Tags): New subprogram that generates the entities associated with
10954         the primary and secondary tags of Typ and fills the contents of Access_
10955         Disp_Table. In case of library-level tagged types imports the forward
10956         declaration of the primary tag that will be declared later by Make_DT.
10957         (Expand_Interface_Conversion): In case of access types to interfaces
10958         replace an itype declaration by an explicit type declaration to avoid
10959         problems associated with the scope of such itype in transient blocks.
10960
10961 2007-08-14  Robert Dewar  <dewar@adacore.com>
10962             Ed Schonberg  <schonberg@adacore.com>
10963             Javier Miranda  <miranda@adacore.com>
10964
10965         * exp_util.ads, exp_util.adb:
10966         This patch replaces a number of occurrences of explicit tests for N_Null
10967         with calls to Known_Null. This improves tracking of null values, since
10968         Known_Null also catches null constants, and variables currently known to
10969         be null, so we get better tracking.
10970         (Ensure_Defined): create an itype reference only in the scope of the
10971         itype.
10972         (Side_Effect_Free): A selected component of an access type that
10973         denotes a component with a rep clause must be treated as not
10974         side-effect free, because if it is part of a linked structure its
10975         value may be affected by a renaming.
10976         (Expand_Subtype_From_Expr): For limited objects initialized with build
10977         in place function calls, do nothing; otherwise we prematurely introduce
10978         an N_Reference node in the expression initializing the object, which
10979         breaks the circuitry that detects and adds the additional arguments to
10980         the called function. Bug found working in the new patch for statically
10981         allocated dispatch tables.
10982         (Is_Library_Level_Tagged_Type): New subprogram.
10983         (Remove_Side_Effects): If the expression of an elementary type is an
10984         operator treat as a function call.
10985         (Make_Literal_Range): If the index type of the array is not integer, use
10986         attributes properly to compute the constraint on the resulting aggregate
10987         which is a string.
10988
10989         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
10990         class-wide type whose base type is an incomplete private type, leave
10991         class-wide type unfrozen so that freeze nodes can be generated
10992         properly at a later point.
10993         (Freeze_Entity, array case): Handle case of pragma Pack and component
10994         size attributre clause for same array.
10995
10996 2007-08-14  Vincent Celier  <celier@adacore.com>
10997
10998         * prj.ads, prj.adb: Update Project Manager to new attribute names for
10999         gprbuild.
11000         Allow all valid declarations in configuration project files
11001         (Reset): Initialize all tables and hash tables in the project tree data
11002         Major update of the Project Manager and of the project aware tools,
11003         including gprmake, so that the same sources in the GNAT repository
11004         can be used by gprbuild.
11005         (Slash_Id): Change type to be Path_Name_Type
11006         (Slash): Return a Path_Name_Type instead of a File_Name_Type
11007
11008         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11009         gprbuild.
11010         Update Project Manager to new attribute names for ghprbuild
11011         Allow all valid declarations in configuration project files
11012         Major update of the Project Manager and of the project aware tools,
11013         including gprmake, so that the same sources in the GNAT repository
11014         can be used by gprbuild.
11015
11016         * prj-com.ads:
11017         Major update of the Project Manager and of the project aware tools,
11018         including gprmake, so that the same sources in the GNAT repository
11019         can be used by gprbuild.
11020
11021         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11022         insensitive flag for attributes with optional index.
11023         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11024         array attribute, put the index in lower case.
11025         Update Project Manager to new attribute names for ghprbuild
11026         Allow all valid declarations in configuration project files
11027         Major update of the Project Manager and of the project aware tools,
11028         including gprmake, so that the same sources in the GNAT repository
11029         can be used by gprbuild.
11030
11031         * prj-env.ads, prj-env.adb:
11032         Major update of the Project Manager and of the project aware tools,
11033         including gprmake, so that the same sources in the GNAT repository
11034         can be used by gprbuild.
11035         (Get_Reference): Change type of parameter Path to Path_Name_Type
11036
11037         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11038         removing '-' from the path to start with the first character of the
11039         next directory.
11040         Major update of the Project Manager and of the project aware tools,
11041         including gprmake, so that the same sources in the GNAT repository
11042         can be used by gprbuild.
11043         Major update of the Project Manager and of the project aware tools,
11044         including gprmake, so that the same sources in the GNAT repository
11045         can be used by gprbuild.
11046
11047         * prj-nmsc.ads, prj-nmsc.adb:
11048         Update Project Manager to new attribute names for ghprbuild
11049         Allow all valid declarations in configuration project files
11050         (Search_Directories): Detect subunits that are specified with an
11051         attribute Body in package Naming. Do not replace a source/unit in the
11052         same project when the order of the source dirs are known. Detect
11053         duplicate sources/units in the same project when the order of the
11054         source dirs are not known.
11055         (Check_Ada_Name): Allow all identifiers that are not reserved words
11056         in Ada 95.
11057         Major update of the Project Manager and of the project aware tools,
11058         including gprmake, so that the same sources in the GNAT repository
11059         can be used by gprbuild.
11060         (Look_For_Sources): If the list of sources is empty, set the object
11061         directory of non extending project to nil.
11062         Change type of path name variables to be Path_Name_Type
11063         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11064         otherwise creating missing directories will fail.
11065
11066         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11067         prj-part.ads, prj-part.adb:
11068         Major update of the Project Manager and of the project aware tools,
11069         including gprmake, so that the same sources in the GNAT repository
11070         can be used by gprbuild.
11071
11072         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11073         insensitive flag for attributes with optional index.
11074         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11075         array attribute, put the index in lower case.
11076         (Parse_Variable_Reference): Allow the current project name to be used in
11077         the prefix of an attribute reference.
11078
11079         * prj-util.ads, prj-util.adb
11080         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11081         defaulted to False. When True, always check against indexes in lower
11082         case.
11083
11084         * snames.ads, snames.h, snames.adb:
11085         Update Project Manager to new attribute names for gprbuild
11086         Allow all valid declarations in configuration project files
11087
11088 2007-08-14  Robert Dewar  <dewar@adacore.com>
11089             Ed Schonberg  <schonberg@adacore.com>
11090
11091         * opt.ads: Warning for non-local exception propagation now off by
11092         default
11093         New switch -gnatI to disable representation clauses
11094         Implement new pragma Implicit_Packing
11095
11096         * usage.adb:
11097         Warning for non-local exception propagation now off by default
11098         Add warning for unchecked conversion of pointers wi different
11099         conventions.
11100         New switch -gnatI to disable representation clauses
11101
11102         * usage.adb: new switch -gnatyS
11103
11104         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11105         note that aggregates of anonymous array types are not flagged.
11106         -gnatwc now includes membership tests optimized away
11107         -gnatw.x warnings are now off by default
11108         Added conditional compilation Appendix
11109         Add documentation of -gnatI
11110         Add documentation for new -gnatyS style check
11111         Update documentation about SAL and auto-init on Windows.
11112
11113         * gnat_rm.texi:
11114         Add documentation for pragma Check_Name and 'Enabled attribute
11115         Document that Eliminate on dispatching operation is ignored
11116         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11117         Document pragma Main
11118         Document pragma Implicit_Packing
11119
11120         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11121         different conventions
11122         New switch -gnatI to disable representation clauses
11123
11124         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11125         recognized, report the invalid characters including "-gnat" instead of
11126         just the first character in the switch.
11127         New switch -gnatI to disable representation clauses
11128         Set Warn_On_Object_Renames_Function true for -gnatg
11129
11130         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11131         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11132         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11133         to switch -aP (add directory to project search dir).
11134
11135         * par-prag.adb: Implement new pragma Implicit_Packing
11136
11137         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11138         type as having a non-standard representation, to force expansion on
11139         conversion to related types.
11140         (Analyze_Pragma): Warn on misspelled pragma
11141         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11142         Ensure consistent use of # in error messages
11143         Implement pragma Implicit_Packing
11144
11145 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11146             Eric Botcazou  <ebotcazou@adacore.com>
11147
11148         * targtyps.c (get_target_maximum_default_alignment): New function.
11149         Maximum alignment
11150         that the compiler might choose by default for a type or object.
11151         (get_target_default_allocator_alignment): New function. Alignment known
11152         to be honored by the target default allocator.
11153         (get_target_maximum_allowed_alignment): New function. Maximum alignment
11154         we might accept for any type or object on the target.
11155         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11156
11157         * gigi.h (get_target_maximum_default_alignment): Declare new function.
11158         (get_target_default_allocator_alignment): Likewise.
11159         (get_target_maximum_allowed_alignment): Likewise.
11160
11161         PR ada/19037
11162         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11163         result of a function call, first try to use a stabilized reference for
11164         a constant renaming too.
11165         (validate_alignment): Use target_maximum_allowed_alignment instead of
11166         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11167         (gnat_to_gnu_entity): Use common nodes directly.
11168         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11169         alignment and size for the object.
11170         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11171         and N_Procedure_Call_Statement.
11172         (takes_address): Rename to lvalue_required_p, add third parameter
11173         'aliased' and adjust recursive calls.
11174         <N_Indexed_Component>: Update 'aliased' from the array type.
11175         <N_Selected_Component>: New case.
11176         <N_Object_Renaming_Declaration>: New Likewise.
11177         (Identifier_to_gnu): Adjust for above changes.
11178         (maybe_stabilize_reference) <CONST_DECL>: New case.
11179
11180         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11181         between type variants.
11182         (build_simple_component_ref): Likewise.
11183         (build_call_alloc_dealloc): Use target_default_allocator_alignment
11184         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11185         aligning type circuitry for allocations from the default storage pool.
11186         (build_allocator): Likewise.
11187         (build_simple_component_ref): Manually fold the reference for a
11188         constructor if the record type contains a template.
11189
11190         * utils.c (value_zerop): Delete.
11191         (gnat_init_decl_processing): Emit debug info for common types.
11192         (rest_of_record_type_compilation): If a union contains a field
11193         with a non-constant qualifier, treat it as variable-sized.
11194         (finish_record_type): Give the stub TYPE_DECL a name.
11195         (rest_of_record_type_compilation): Likewise.
11196         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
11197         types are equivalent array types.
11198         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11199         even if the type is not passed by reference.
11200         (static_ctors, static_dtors): Delete.
11201         (end_subprog_body): Do not record constructors and destructors.
11202         (build_global_cdtor): Delete.
11203         (gnat_write_global_declarations): Do not call build_global_cdtor.
11204
11205         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11206         -fRTS=rtp is specified.
11207         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11208         specified.
11209
11210         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11211         of the personality function with SJLJ exceptions.
11212
11213         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11214         the name of the personality function with SJLJ exceptions.
11215
11216 2007-08-14  Robert Dewar  <dewar@adacore.com>
11217             Ed Schonberg  <schonberg@adacore.com>
11218
11219         * par.ads, par.adb: Improve handling of extra right parens.
11220         (Par): Remove flag From_Limited_With_Clause.
11221
11222         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11223         Improve handling of extra right parens.
11224
11225 2007-08-14  Robert Dewar  <dewar@adacore.com>
11226
11227         * par-tchk.adb (TF_Semicolon): Improve error recovery
11228
11229 2007-08-14  Robert Dewar  <dewar@adacore.com>
11230             Ed Schonberg  <schonberg@adacore.com>
11231
11232         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11233         enumeration type, mark all literals as referenced.
11234         (Eval_Attribute, case 'Image): If the argument is an enumeration
11235         literal and names are available, constant-fold but mark nevertheless as
11236         non-static.
11237         Clean up function names.
11238         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11239         comment.
11240         (Requires_Simple_Name_Prefix): Removed.
11241
11242 2007-08-14  Robert Dewar  <dewar@adacore.com>
11243             Ed Schonberg  <schonberg@adacore.com>
11244
11245         * sem_ch11.adb: Improved warnings for unused variables
11246
11247         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11248         is a synchronized interface, the derived type is limited.
11249         (Analyze_Object_Declaration): Mark the potential coextensions in the
11250         definition and expression of an object declaration node.
11251         (Build_Derived_Type): For the completion of a private type declaration
11252         with a derived type declaration, chain the parent type's representation
11253         items to the last representation item of the derived type (not the
11254         first one) if they are not present already.
11255         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11256         object declaration of forward references to tags.
11257         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11258         subprogram types can appear as access discriminants of synchronized
11259         types.
11260         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11261         given in prefixed form as a selected component.
11262         (Process_Discriminants): If not all discriminants have defaults, place
11263         error message on a default that is present.
11264         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11265         extend a synchronized tagged type.
11266         Improved warnings for unused variables
11267         (Is_Visible_Component): Fix a visibility hole on a component inherited
11268         by a private extension when parent is itself declared as a private
11269         extension, and the derivation is in a child unit.
11270         (Find_Hidden_Interface): Move spec from the package body.
11271
11272 2007-08-14  Robert Dewar  <dewar@adacore.com>
11273             Ed Schonberg  <schonberg@adacore.com>
11274
11275         * sem_ch5.adb: Improve warnings on redundant assignments
11276
11277         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11278         parameter
11279         (Is_Synchronized_Tagged_Type): New subprogram that returns true
11280         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11281         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11282         is set to False. Improves handling of Known_[Not_]Null.
11283         (Wrong_Type): Special case address arithmetic attempt
11284         (Collect_Abstract_Interfaces): Add new formal to allow collecting
11285         abstract interfaces just using the partial view of private types.
11286         (Has_Abstract_Interfaces): Add new formal to allow checking types
11287         covering interfaces using the partial view of private types.
11288         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11289         component still needs to be defined in this case, but is never
11290         initialized as VMs are using other dispatching mechanisms.
11291         (Abstract_Interface_List): For a protected type, use base type to get
11292         proper declaration.
11293         Improve warnings on redundant assignments
11294         (Is_Variable): Handle properly an implicit dereference of a prefixed
11295         function call.
11296         (Build_Actual_Subtype): If this is an actual subtype for an
11297         unconstrained formal parameter, use the sloc of the body for the new
11298         declaration, to prevent anomalises in the debugger.
11299
11300 2007-08-14  Robert Dewar  <dewar@adacore.com>
11301
11302         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11303         dispatching operation
11304
11305 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11306             Gary Dismukes  <dismukes@adacore.com>
11307
11308         * exp_aggr.ads,
11309         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11310         expanded aggregate code before allocator, and ahead of declaration for
11311         temporary, to prevent access before elaboration when the allocator is
11312         an actual for an access parameter.
11313         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11314         the TSD and the table of interfaces.
11315         (Convert_To_Assignments): Augment the test for delaying aggregate
11316         expansion for limited return statements to include the case of extended
11317         returns, to prevent creation of an unwanted transient scope.
11318         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11319         (Expand_Array_Aggregate): Handle aggregates associated with
11320         statically allocated dispatch tables.
11321         (Expand_Record_Aggregate): Handle aggregates associated with
11322         statically allocated dispatch tables.
11323         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11324         of anonymous access type.
11325
11326 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11327
11328         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11329         is a variable that renames a slice, use the variable itself in the
11330         expannsion when the renamed expression itself may be modified between
11331         the declaration of the renaming and the array assignment.
11332
11333 2007-08-14  Jerome Guitton  <guitton@adacore.com>
11334
11335         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11336         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
11337         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11338         New functions; dummy implementations.
11339
11340         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11341         functions, used to implement the multi-tasks mode routines on VxWorks.
11342
11343         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11344         New functions, thin
11345         binding to the VxWorks routines which have changed between VxWorks 5
11346         and 6.
11347         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11348         which are not callable from a RTP.
11349
11350         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11351         implemented for the multi-tasks mode on VxWorks 5 and 6.
11352
11353         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11354
11355         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11356         functions.
11357
11358 2007-08-14  Vincent Celier  <celier@adacore.com>
11359
11360         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
11361         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
11362         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11363         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11364         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11365         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11366         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11367         procedure.
11368         (Major_Id_Name): New function.
11369         mlib-tgt.ads/mlib.tgt.adb:
11370         (Library_Major_Minor_Id_Supported): New function, default returns True
11371         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11372         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11373         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11374         Implementation of Library_Major_Minor_Id_Supported returns False
11375         clean.adb:
11376         (Clean_Library_Directory): If major/minor ids are supported, clean all
11377         library files.
11378         Major update of the Project Manager and of the project aware tools,
11379         including gprmake, so that the same sources in the GNAT repository
11380         can be used by gprbuild.
11381
11382 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11383
11384         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11385         (GCC_ZCX_Support): Switch to True.
11386
11387         * s-intman-solaris.adb (Notify_Exception): Call
11388         Adjust_Context_For_Raise before raising, as expected for signal
11389         handlers in general.
11390
11391         * s-intman-posix.adb (Notify_Exception): Remove declaration of
11392         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11393         to other implementation bodies.
11394
11395         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11396         be visible by multiple implementation bodies.
11397
11398         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11399         only for conditions coming from hardware.
11400         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11401         adjustments to signal context prior to exception raise from signal
11402         handler.
11403         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11404         mode.
11405         Solaris section: (__gnat_adjust_context_for_raise): New function.
11406         Implementation of the machine context adjustments to perform prior to
11407         raise from a signal handler. Version for both sparc and x86.
11408         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11409         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11410         prior to raising as expected for any handler, before possible nested
11411         faults to make sure all the contexts in a chain have been adjusted by
11412         the time we propagate.
11413
11414 2007-08-14  Pascal Obry  <obry@adacore.com>
11415
11416         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11417         (SYSTEM_INFO): New record.
11418         (SetThreadIdealProcessor): New imported routine needed for supporting
11419         task_info pragma on Windows.
11420
11421         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11422         info can be applied to the current host.
11423         (Create_Task): Set the ideal processor if information is present.
11424
11425         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11426         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11427
11428 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11429
11430         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11431         stack size and initial stack pointer value for a given task.
11432         (Enter_Task): Get the stack attributes of the task we are entering and
11433         let the stack checking engine know about them.
11434
11435         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11436         Let the stack-checking engine know about the initial sp value and stack
11437         size associated with the current task.
11438         (Set_Stack_Info): If a stack base has been notified for the current
11439         task, honor it. Fallback to the previous less accurate method otherwise.
11440
11441         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11442
11443 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11444
11445         * sem_ch10.adb: Create a limited view of an incomplete type, to make
11446         treatment of limited views uniform for all visible declarations in a
11447         limited_withed package.
11448         Set flag indicating that a subprogram body for a child unit has a
11449         generated spec.
11450         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11451         separate declaration, remove the unit name from visibility after
11452         compilation, so that environment is clean for subsequent compilations.
11453         (Install_Limited_Context_Clauses): Do not install a
11454         limited_private_with_clause unless the current unit is a body or a
11455         private child unit.
11456         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11457         in the same fashion.
11458         (Install_Limited_Withed_Unit): Do not install a limited with clause if
11459         it applies to the declaration of the current package body.
11460         (Remove_Private_With_Clauses): If there is a regular with_clause for
11461         the unit, delete Private_With_Clause from context, to prevent improper
11462         hiding when processing subsequent nested packages and instantiations.
11463
11464 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
11465
11466         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11467         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11468         representing absolute path names.
11469         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11470
11471         * cstreams.c (__gnat_full_name for VxWorks): Use
11472         __gnat_is_absolute_path to detect whether we need to add the current
11473         directory to normalize the path.
11474
11475 2007-08-14  Javier Miranda  <miranda@adacore.com>
11476
11477         * a-tags.ads,
11478         a-tags.adb (Displace): Associate a message with the raised CE
11479         exception.
11480         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11481         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11482         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11483         spec.
11484         (Default_Prim_Op_Count): Removed.
11485         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11486         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11487         Remove pragma Inline_Always.
11488
11489         * rtsfind.ads (Default_Prim_Op_Count): Removed
11490         (Max_Predef_Prims): New entity
11491         (RE_Expanded_Name): Removed
11492         (RE_HT_Link): Removed
11493         (RE_Iface_Tag): Remmoved
11494         (RE_Ifaces_Table): Removed
11495         (RE_Interfaces_Array): Removed
11496         (RE_Interface_Data_Element): Removed
11497         (RE_Nb_Ifaces): Removed
11498         (RE_RC_Offset): Removed
11499         (RE_Static_Offset_To_Top): Removed
11500
11501         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11502         formal.
11503         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11504         Prim_Op_Count by Max_Predef_Prims.
11505
11506 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11507             Vincent Celier  <celier@adacore.com>
11508
11509         * binde.adb (Elab_All_Links): Remove unnecessary call to
11510         Generic_Separately_Compiled (if a unit satisfies this predicate, there
11511         won't be an associated Afile).
11512         (Elab_All_Links): Fail if a referenced unit cannot be found
11513
11514         * bindgen.adb:
11515         Fix comments in bindgen regarding consistency checks done in Bcheck:
11516         the checks are made across units within a partition, not across several
11517         partitions.
11518         Fix generation of C binder file for VxWorks.
11519
11520         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11521         Generic_May_Lack_ALI, more descriptive of the current use of the
11522         predicate, and update documentation.
11523
11524         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11525         reorganization and documentation update for the case of predefined
11526         library generics (for which we do not reference an Afile).
11527
11528 2007-08-14  Robert Dewar  <dewar@adacore.com>
11529
11530         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11531         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11532         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11533         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11534         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11535         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11536         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11537         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11538         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11539         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11540         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11541         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11542         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11543         g-altcon.adb: Minor reformatting
11544
11545         ada-tree.h: Delete empty line.
11546
11547         ali.ads: Minor reformatting
11548         Clarification of comments.
11549         Minor spelling correction
11550
11551         * exp_dbug.adb: Add Warnings Off to suppress new warning
11552
11553         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11554         formal
11555
11556         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11557         value
11558
11559         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11560
11561         * a-textio.ads: Reorder the standard input/output/error declarations
11562         for consistency.
11563
11564         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11565
11566         * par-ch2.adb: Recognize RM specially in errout
11567         Change 'R'M to RM in all error messages
11568
11569         * scng.adb: Recognize RM specially in errout
11570
11571         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11572         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11573
11574         * s-direio.adb: Add missing routine header box.
11575
11576         * sem_attr.ads: Add ??? comments
11577
11578         * sem_eval.adb: Recognize RM specially in errout
11579         Change 'R'M to RM in all error messages
11580
11581         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11582
11583         * s-tasinf.ads: Fix minor comment typo.
11584
11585         * a-cihama.adb: Minor comment addition
11586
11587         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11588         formal
11589
11590         * s-tasinf-tru64.ads: Fix minor comment typo.
11591
11592         * itypes.ads: Comment update.
11593
11594         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11595         anymore.
11596
11597         * argv.c: Added protection against null gnat_argv and gnat_envp.
11598
11599         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11600         warning message when Tolerate_Consistency_Errors is True.
11601
11602         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11603         Any_Id, as this subprogram is only applicable to *type* entities (it
11604         sets RM_Size). Instead initialize just Esize and Alignment.
11605
11606 2007-08-14  Bob Duff  <duff@adacore.com>
11607
11608         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11609         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11610         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
11611         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11612         a-coorse.ads (Next): Applied pragma Inline.
11613         Make all Containers packages Remote_Types (unless they are already
11614         Pure).
11615         (Previous): applied pragma Inline
11616         (Elements_Type): is now a record instead of an array
11617
11618 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11619
11620         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11621         of Set_Item.
11622         (Set_Item): When the new item is an element of the currently allocated
11623         table passed by reference, save a copy on the stack if we're going
11624         to reallocate. Also, in Table.Set_Item, make sure we test the proper
11625         variable to determine whether to call Set_Last.
11626
11627         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11628         symbols-vms.adb, symbols-processing-vms-alpha.adb,
11629         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11630         some occurrences of the pattern
11631            T.Increment_Last;
11632            T.Table (T.Last) := Value;
11633         with a cleaner call to
11634            T.Append (Value);
11635
11636 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11637             Gary Dismukes  <dismukes@adacore.com>
11638             Thomas Quinot  <quinot@adacore.com>
11639
11640         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11641         derived type with interface progenitors use the analyzed formal as the
11642         parent of the actual, to create renamings for all the inherited
11643         operations in Derive_Subprograms.
11644         (Collect_Previous_Instances): new procedure within of
11645         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11646         unit being loaded, to ensure that the generation of global symbols is
11647         consistent in different compilation modes.
11648         (Is_Tagged_Ancestor): New function testing the ancestor relation that
11649         takes progenitor types into account.
11650         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11651         traversing over the primitives of the formal and actual types to locate
11652         any abstract subprograms of the actual type that correspond to a
11653         nonabstract subprogram of the formal type's ancestor type(s), and issue
11654         an error if such is found.
11655         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11656         Instantiate_Package_Body, Instantiate_Subprogram_Body):
11657         Remove bogus guard around calls to Inherit_Context.
11658         (Reset_Entity): If the entity is the selector of a selected component
11659         that denotes a named number, propagate constant-folding to the generic
11660         template only if the named number is global to the generic unit.
11661         (Set_Instance_Env): Only reset the compilation switches when compiling
11662         a predefined or internal unit.
11663
11664 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11665
11666         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11667         parameter to determine whether operation applies to the prefix.
11668         (Complete_Object_Operation): If actual has an access type and
11669         controlling formal is not an in_parameter, reject the actual if it is
11670         an access_to_constant type.
11671         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11672         type, the candidate operations are found in the scope of declaration of
11673         the type, because the type has no primitive subprograms.
11674         (Analyze_Selected_Component): If prefix is class-wide, and root type is
11675         a private extension, only examine visible components before trying to
11676         analyze as a prefixed call.
11677         Change Entity_List to Type_To_Use, for better readability.
11678         (Has_Fixed_Op): Use base type when checking whether the type of an
11679         operator has a user-defined multiplication/division
11680         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11681         user-defined operators are available for fixed-point types.
11682
11683 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11684             Ed Schonberg  <schonberg@adacore.com>
11685
11686         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11687         formal At_Any_Place indicating, when True, that we want to test for
11688         availability of the stream attribute at any place (as opposed to the
11689         current visibility context only).
11690         (Missing_Read_Write_Attributes): A stream attribute is missing for the
11691         purpose of enforcing E.2.2(8) only if it is not available at any place.
11692         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11693         when checking the legality of an extension aggregate in a preelaborable
11694         package. Treat the literal null as a valid default expression in a
11695         component declaration for a type with preelaborable initialization.
11696         A limited interface is a legal progenitor for the designated type of a
11697         remote access to class-wide type.
11698
11699 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11700             Ed Schonberg  <schonberg@adacore.com>
11701
11702         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
11703         reference): Use correct entity as denoted entity for the selector of
11704         the rewritten node.
11705         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
11706         setting the Referenced_As_LHS flag for entities that are implicitly
11707         dereferenced.
11708         (Find_Type): If the type is an internally generated incomplete type,
11709         mark the full view as referenced, to prevent spurious warnings.
11710         (Find_Selected_Component, Has_Components): Handle properly non-limited
11711         views that are themselves incomplete types.
11712         Handle interfaces visible through limited-with clauses.
11713         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
11714         subprogram generic actual for which we have generated a renaming.
11715         Warn when the renaming introduces a homonym of
11716         the renamed entity, and the renamed entity is directly visible.
11717
11718 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11719             Hristian Kirtchev  <kirtchev@adacore.com>
11720
11721         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
11722         appear in the subtree to the current allocator if it is not a static
11723         coextension.
11724         (Resolve_Allocator): Perform cleanup if resolution has determined that
11725         the allocator is not a coextension.
11726         (Resolve): Skip an interpretation hidden by an abstract operator only
11727         when the type of the interpretation matches that of the context.
11728         (Resolve): When looping through all possible interpretations of a node,
11729         do not consider those that are hidden by abstract operators.
11730         (Resolve_Actuals): When verifying that an access to class-wide object
11731         is an actual  for a controlling formal, ignore anonymous access to
11732         subprograms whose return type is an access to class_wide type.
11733         (Resolve_Slice): If the prefix of the slice is a selected component
11734         whose type depends on discriminants, build its actual subtype before
11735         applying range checks on the bounds of the slice.
11736         (Valid_Conversion): In an instance or inlined body, compare root types,
11737         to prevent anomalies between private and public views.
11738         (Resolve): Improve error message for ambiguous fixed multiplication
11739         expressions that involve universal_fixed multiplying operations.
11740
11741 2007-08-14  Javier Miranda  <miranda@adacore.com>
11742             Hristian Kirtchev  <kirtchev@adacore.com>
11743
11744         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
11745         location to allow the correct generation of errors in case of
11746         restrictions applied to the expanded code.
11747         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
11748         function if the condition does not reference them.
11749         (Expand_Entry_Body_Declarations): Mark the index constant as having a
11750         valid value.
11751
11752 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11753             Pablo Oliveira  <oliveira@adacore.com>
11754
11755         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
11756         typecode parameters for a union (in a variant record), remove
11757         extraneous layer of Any wrapping for member label.
11758         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
11759         elabration statements, register the package with the name server
11760         at the beginning, not at the end, of the elaboration statements so
11761         that they can create remote access to subprogram values that designate
11762         remote subprograms from the package.
11763
11764 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
11765
11766         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
11767         values to compute the number of seconds since the Unix Epoc in order to
11768         account for Daylight Savings Time. Perform special processing for dates
11769         that are earlier than the Unix Epoc to obtain a negative number.
11770
11771 2007-08-14  Emmanuel Briot  <briot@adacore.com>
11772
11773         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
11774         switches.
11775
11776 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
11777
11778         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
11779         binder-generated file is not in Ada.
11780         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
11781         recorded in the ALI file.
11782         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
11783
11784 2007-08-14  Vincent Celier  <celier@adacore.com>
11785
11786         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
11787         (Output_Source): Do nothing if parameter is No_Sdep_Id
11788
11789         * make.adb (Gnatmake): Do not rebuild an archive simply because a
11790         shared library it imports has a later time stamp.
11791         (Check): Resolve the symbolic links in the path name of the object
11792         directory.
11793         Check that the ALI file is in the correct object directory
11794         Check if a file name does not correspond to the mapping of units
11795         to file names.
11796         (Display_Version): New procedure
11797         (Initialize): Process switches --version and --help
11798         Use type Path_Name_Type for path name
11799
11800 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
11801
11802         * impunit.adb: Re-organize System.Random_Numbers and
11803         GNAT.Random_Numbers and add to builds.
11804
11805         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
11806
11807         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
11808
11809         * a-assert.ads, a-assert.adb: New files.
11810
11811 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
11812
11813         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
11814         if AAMP_On_Target is True, then the size of the type encompasses two
11815         addresses (a static link and a subprogram address), except in the case
11816         of library-level access types.
11817
11818 2007-08-14  Vincent Celier  <celier@adacore.com>
11819
11820         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
11821         writing the line.
11822         (Write_Eol_Keep_Blanks): New procedure to write a line, including
11823         possible trailing spaces.
11824         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11825
11826 2007-08-14  Javier Miranda  <miranda@adacore.com>
11827
11828         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
11829         null-excluding access types.
11830
11831 2007-08-14  Javier Miranda  <miranda@adacore.com>
11832
11833         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
11834         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
11835         of private types add missing check on matching interfaces in the
11836         partial and full declarations.
11837         (Analyze_Protected_Type): Code cleanup.
11838         (Analyze_Task_Type): Code cleanup.
11839
11840 2007-08-14  Javier Miranda  <miranda@adacore.com>
11841
11842         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
11843         generated interface thunk.
11844
11845 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11846
11847         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
11848         obsolescent warning on application of 'Class to an incomplete type.
11849
11850         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
11851         prevent obsolescent warning on application of 'Class to an incomplete
11852         type.
11853
11854 2007-08-14  Pascal Obry  <obry@adacore.com>
11855
11856         * s-fileio.adb (Is_Open): Add check for usability of the underlying
11857         file stream.
11858
11859 2007-08-14  Cyrille Comar  <comar@adacore.com>
11860
11861         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
11862         since it is potentially used in cases implying double finalization of
11863         the same object.
11864
11865 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
11866
11867         * s-tasini.adb (Get_Stack_Info): Move this function to
11868         System.Soft_Links.Tasking because it is common to the full and the
11869         restricted run times.
11870         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
11871         in SSL.Tasking.Init_Tasking_Soft_Links.
11872
11873         * s-solita.adb (Get_Stack_Info): Function moved from
11874         System.Tasking.Initialization because it is common to the full and the
11875         restricted run times.
11876         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
11877
11878 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
11879
11880         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
11881         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
11882         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
11883         parameter.
11884
11885         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
11886         guard to 12K.
11887
11888 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
11889
11890         * s-veboop.adb (SU): New named number initialized to
11891         System.Storage_Unit.
11892         (True_Val): The initialization expression is revised to use SU (=
11893         Storage_Unit) rather than assuming 8 for the component size of an
11894         unpacked Boolean array.
11895
11896 2007-08-14  Tristan Gingold  <gingold@adacore.com>
11897
11898         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
11899
11900         * tb-ivms.c: New file.
11901
11902         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
11903
11904 2007-08-14  Geert Bosch  <bosch@adacore.com>
11905
11906         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
11907         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
11908         Add required linker pragmas for automatically linking with the gnalasup
11909         linear algebra support library, and the systems math library.
11910         Rename cdot to cdotu and zdot to zdotu.
11911         Update header comment to describe purpose of package.
11912
11913 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11914
11915         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
11916         an explicitly specified Associated_Final_Chain, use that list.
11917         (Expand_N_Package_Body): Build dispatch tables of library level tagged
11918         types.
11919         (Expand_N_Package_Declaration): Build dispatch tables of library level
11920         tagged types. Minor code cleanup.
11921
11922 2007-08-14  Vincent Celier  <celier@adacore.com>
11923
11924         * gnatchop.adb (Terminate_Program): Remove exception and use
11925         Types.Terminate_Program instead.
11926
11927         * osint.ads, osint.adb (Current_Exit_Status): New global variable
11928         (Find_Program_Name): Added protection against empty name.
11929         (OS_Exit_Through_Exception): New procedure
11930
11931         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
11932         (OS_Exit_Default): New procedure that contains the previous
11933         implementation of procedure OS_Exit.
11934         (Final_Value): Remove obsolete Interix stuff.
11935
11936 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11937
11938         * g-socket.ads: Reorganize example code so that it also works on
11939         Windows XP.
11940
11941 2007-08-14  Tristan Gingold  <gingold@adacore.com>
11942
11943         * g-trasym.ads: AIX now supports symbolic backtraces.
11944
11945 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11946
11947         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
11948         units being loaded to detect circularities. A circularity may be
11949         present even if the current chain of pending units to load starts from
11950         a limited_with_clause.
11951
11952         * lib-load.ads: Change profile of Load_Unit to use a with_clause
11953         rather than a boolean flag, in order to detect circularities in
11954         with_clauses.
11955
11956         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
11957         than propagating the From_Limited_With flag, in order to handle
11958         properly circularities involving with_clauses.
11959
11960 2007-08-14  Nicolas Setton  <setton@adacore.com>
11961
11962         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
11963         warnings.
11964
11965 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
11966
11967         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
11968         to build for libgnala.
11969         libgnat: Add rules to build libgnala.a
11970         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
11971         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
11972         Add s-osinte-vxworks-kernel.adb to the target pairs of the
11973         kernel run-time lib for VxWorks 6, which would provide a different
11974         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
11975         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
11976         running ZCX by default.
11977         Add g-sttsne-locking to LynxOS version.
11978         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
11979         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
11980
11981         * system-darwin-x86.ads: New file.
11982
11983         * Make-lang.in: Delete files before copying onto them, so if they are
11984         read-only, the copy won't fail.
11985         Update dependencies
11986
11987 2007-08-14  Pascal Obry  <obry@adacore.com>
11988
11989         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
11990         naming scheme.
11991
11992 2007-08-14  Vincent Celier  <celier@adacore.com>
11993
11994         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
11995         (Gcc): Initialize Gcc_Name at the first call
11996
11997 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11998
11999         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12000         with_clauses of the enclosing unit when analyzing the package
12001         specification of a nested instance.
12002
12003 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12004
12005         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12006         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12007         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12008         layout of N_Allocator.
12009
12010 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12011
12012         * rtsfind.adb (Check_RPC): Add PCS version check.
12013
12014         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12015         (Gnat_Free_Software): New function.
12016
12017         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12018         the PCS_Version value from s-parint, used to check that it is consistent
12019         with what exp_dist expects.
12020
12021         * s-parint.ads (PCS_Version): New entity for checking consistency
12022         between exp_dist and PCS.
12023
12024         * gen-soccon.c: (SO_REUSEPORT): New constant.
12025
12026 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12027
12028         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12029         variable Sub_Second to Duration in order to accomodate a larger range
12030         of arithmetic operations.
12031
12032 2007-08-14  Bob Duff  <duff@adacore.com>
12033
12034         * g-sttsne-locking.ads: Move comments from spec to body.
12035         * g-sttsne-locking.adb: Move comments from spec to body.
12036         * g-sttsne-vxworks.ads: Removed.
12037         * g-sttsne-vxworks.adb: Removed.
12038
12039 2007-08-11  Ian Lance Taylor  <iant@google.com>
12040
12041         * misc.c (gnat_get_alias_set): Change return type to
12042         alias_set_type.
12043
12044 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12045
12046         * decl.c, utils2.c: Fix whitespace in last change.
12047
12048 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12049
12050         * decl.c (compare_field_bitpos): Constify.
12051         * utils2.c (compare_elmt_bitpos): Likewise.
12052
12053 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
12054
12055         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12056         anonymous access type.
12057         (pthread_sigmask): Now take an access sigset_t.
12058
12059 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
12060
12061         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12062
12063 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
12064
12065         PR tree-optimization/25737
12066         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12067
12068 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12069
12070         * trans.c (Attribute_to_gnu): When subtracting an
12071         offset from a pointer, use POINTER_PLUS_EXPR with
12072         NEGATE_EXPR instead of MINUS_EXPR.
12073         (gnat_to_gnu): Likewise.
12074         * utils.c (convert): When converting between
12075         thin pointers, use POINTER_PLUS_EXPR and sizetype
12076         for the offset.
12077         * utils2.c (known_alignment): POINTER_PLUS_EXPR
12078         have the same semantics as PLUS_EXPR for alignment.
12079         (build_binary_op): Add support for the semantics of
12080         POINTER_PLUS_EXPR's operands.
12081         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12082
12083 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
12084
12085         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12086         of get_signed_or_unsigned_type.
12087         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12088
12089 2007-06-11  Bob Duff  <duff@adacore.com>
12090             Thomas Quinot  <quinot@adacore.com>
12091
12092         * g-stsifd-sockets.adb (Create): Work around strange behavior of
12093         'bind' on windows that causes 'connect' to fail intermittently, by
12094         retrying the 'bind'.
12095         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12096
12097 2007-06-10  Duncan Sands  <baldrick@free.fr>
12098
12099         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12100         than to void, for the fields when making a new fat pointer type.
12101         (gnat_substitute_in_type): Now substitute_in_type.
12102         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
12103         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12104         * utils.c (update_pointer_to): Update fat pointers by updating the
12105         dummy node pointers used for the fields.
12106
12107 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12108             Bob Duff  <duff@adacore.com>
12109
12110         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12111         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12112         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
12113         constant Thread_Blocking_IO, always True by default, set False
12114         on a per-runtime basis.
12115         (Need_Netdb_Buffer): New constant.
12116
12117         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12118         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12119         files.
12120
12121         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12122         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12123         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12124         child package Task_Safe_NetDB
12125         (Host_Error_Messages): Add stub body.
12126         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12127
12128         * g-soccon-mingw.ads: Add Windows-specific constants.
12129         (Need_Netdb_Buffer): New constant.
12130         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12131         wrapper and import inet_addr(3) from the standard sockets library
12132         directly instead.
12133         (In_Addr): Add alignment clause.
12134         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12135
12136 2007-06-06  Robert Dewar  <dewar@adacore.com>
12137
12138         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12139         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12140         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12141         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12142         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12143         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12144         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12145         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12146         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12147         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12148         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12149         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12150         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12151         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12152         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12153         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12154         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12155         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12156         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12157         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12158         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12159         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12160         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12161         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12162         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12163         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12164         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12165         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12166         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12167         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12168         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12169         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12170         Unchecked_* by Ada.Unchecked_*
12171
12172 2007-06-06  Robert Dewar  <dewar@adacore.com>
12173
12174         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12175         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12176         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12177         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12178         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12179         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12180
12181         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12182         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12183         s-tasloc.adb, s-tasloc.ads: New files.
12184
12185 2007-06-06  Bob Duff  <duff@adacore.com>
12186
12187         * g-expect-vms.adb:
12188         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12189         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12190         (Send_Signal, Close): Raise Invalid_Process if the process id is
12191         invalid.
12192         (Pattern_Matcher_Access): Is now a general access type to be able to
12193         use aliased string.
12194
12195 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12196             Arnaud Charlet  <charlet@adacore.com>
12197
12198         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12199         (SIGEMT is now used instead of SIGTERM on AIX).
12200
12201         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12202         (Time_Slice_Supported): Set to True.
12203         Use SIGEMT instead of SIGTERM as SIGADAABORT.
12204
12205 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12206
12207         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12208         (Time, Time)): Use To_Relative_Time rather than manual calculation to
12209         express the bounds of Duration as Time. Raise Time_Error when the
12210         result is greater or equal to the higher bound of Duration (on the
12211         margin case).
12212         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12213         Ada_High_And_Leaps.
12214         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12215         Ada_High_And_Leaps.
12216         ("-" (Time, Time)): Reorder code.
12217         (All_Leap_Seconds): Removed.
12218         (Arithmetic_Operations.Add): Remove sign related kludge.
12219         (Arithmetic_Operations.Difference): Control the leaps seconds processing
12220         with flag Leap_Support.
12221         (Arithmetic_Operations.Subtract): Remove sign related kludge.
12222         (Check_Within_Time_Bounds): New procedure.
12223         (Clock): Control the leap seconds processing with flag Leap_Support.
12224         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12225         (Formatting_Operations.Split): Control the leap seconds processing with
12226         flag Leap_Support.
12227         (Formatting_Operations.Time_Of): Control the leaps seconds processing
12228         with flag Leap_Support. Adjust the year, month and day (if applicable)
12229         when the value of day seconds designates a new day.
12230         (Split): Use parameter associations for better readability. Integrate
12231         flag Is_Ada_05.
12232         (Time_Of): Use parameter associations for better readability. Integrate
12233         flag Is_Ada_05.
12234
12235         * a-calfor.adb (Split): Use parameter associations for better
12236         readability. Integrate flag Is_Ada_05.
12237         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12238         better readability. Integrate flag Is_Ada_05.
12239
12240 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12241
12242         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12243         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12244         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12245         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12246         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12247         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12248         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12249         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12250         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12251         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12252         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12253         time when entering this routine to detect a backward clock setting
12254         (manual setting or DST adjustment), to avoid waiting for a longer delay
12255         than needed.
12256         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12257         Remove handling of deferred priority change, and replace by setting the
12258         task priority directly, as required by AI-188.
12259         Update comments.
12260         (Max_Task_Image_Length): New constant.
12261         Replace Warnings (Off) by Unreferenced pragma, cleaner.
12262         (Dynamic_Priority_Support): Removed, no longer needed.
12263         (Poll_Base_Priority_Change): Ditto.
12264         (Set_Ceiling): Add this procedure to change the ceiling priority
12265         associated to a lock. This is a dummy implementation because dynamic
12266         priority ceilings are not supported by the underlying system.
12267
12268         * a-dynpri.adb (Set_Priority): Take into account case where Target is
12269         accepting a RV with its priority boosted.
12270         Remove handling of deferred priority change, and replace by setting the
12271         task priority directly, as required by AI-188.
12272
12273         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12274         Succeeded = True.
12275         Remove handling of deferred priority change, and replace by setting the
12276         task priority directly, as required by AI-188.
12277         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12278         of Self_Id earlier.
12279
12280         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12281         (Poll_Base_Priority_Change): Removed.
12282         Code clean up: use SSL.Current_Target_Exception.
12283
12284         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12285         to run as this is a potentially dispatching point.
12286         (Call_Synchronous): Use Local_Defer_Abort.
12287         (Callable): Relax assertion.
12288         (Selective_Wait): Relax assertion in case abort is not allowed.
12289         Remove handling of deferred priority change, and replace by setting the
12290         task priority directly, as required by AI-188.
12291
12292         * s-tasuti.adb (Make_Passive): Adjust assertions.
12293         Remove handling of deferred priority change, and replace by setting the
12294         task priority directly, as required by AI-188.
12295
12296 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12297
12298         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12299         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12300         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12301         system-vxworks-mips.ads, system-vxworks-alpha.ads,
12302         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12303         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12304         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12305         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12306         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12307         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12308         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12309         This patch changes the largest non-binary modulus from 2**31-1 to
12310         2**32-1.
12311         (Compiler_System_Version): Removed, no longer used.
12312         Clean up system files by removing flags only used on a single target.
12313         Also remove obsolete flags, only used during bootstrap from system.ads
12314         (Address): Add a pragma Preelaborable_Initialization.
12315
12316         * system-aix.ads:  Ditto.
12317         (GCC_ZCX_Support): Set to true.
12318         Update priority range on AIX and map Ada priorities to target
12319         priorities appropriately for different scheduling policies.
12320
12321         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12322
12323 2007-06-06  Vincent Celier  <celier@adacore.com>
12324
12325         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12326         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12327
12328         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12329         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12330         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12331         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12332         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
12333         MLib.Tgt, containing the default versions of the exported subprograms.
12334         For each platform, create a specific version of the body of new child
12335         package MLib.Tgt.Specific that contains only the body of subprograms
12336         that are different from the default.
12337         (Archive_Builder_Append_Options): New function.
12338
12339 2007-06-06  Matthew Gingell  <gingell@adacore.com>
12340
12341         * s-osinte-aix.adb: Map Ada priorities to target priorities
12342         appropriately for different scheduling policies.
12343
12344 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12345
12346         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12347         its C counterpart.
12348         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
12349         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
12350
12351 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
12352
12353         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12354         Noop on VMS, added for interface commonality.
12355
12356 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
12357             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12358             Olivier Hainque  <hainque@adacore.com>
12359
12360         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12361         renamed expression of a full renaming at toplevel.
12362         (gnat_to_gnu_entity, case object): If not defining, do not look inside
12363         the values the constant is initialized to if it is an N_Allocator.
12364         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12365         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12366         (make_aligning_type): Accept an extra ROOM argument for storage to be
12367         made available before the aligned field, and an extra BASE_ALIGN
12368         argument for callers to pass the alignment guaranteed to be honored for
12369         the whole aligning object. Avoid call to finish_record_type, which only
12370         interferes with the sizes we want to set.
12371         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12372         make_aligning_type for super-aligned objects on stack.
12373         (components_to_record): Pass the adjusted size of the type when creating
12374         fields in the qualified union for the variant part.
12375         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12376         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12377         packed array type.
12378         (maybe_pad_type): Set TYPE_USER_ALIGN.
12379         (make_aligning_type): Likewise.
12380         ALIGN argument is unsigned int.
12381         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12382         (gnat_to_gnu_param): Likewise, for parameters.
12383         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12384         if it is constant and stems from a function call.
12385         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12386         of the record is specified.  Adjust accordingly.
12387         (adjust_packed): New static function.
12388         (gnat_to_gnu_field): Use it to adjust the packedness setting.
12389         (components_to_record): Likewise.
12390         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12391         side-effects if the object is deemed constant.
12392         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12393         type instead of merely finalizing it.  Tidy.
12394         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12395         <E_Access_Type>: Likewise.
12396         (defer_debug_incomplete_list): Rename to defer_finalize_list.
12397         (defer_debug_level): Delete.
12398         (gnat_to_gnu_entity) <debug_deferred>: Likewise
12399         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12400         type.
12401         <E_Record_Type>: Do not explicitly defer finalizing the type.
12402         Adjust for write_record_type_debug_info renaming.
12403         <E_Subprogram_Type>: Likewise.
12404         Finalize deferred types right after deferred incomplete types are
12405         expanded.
12406         (rest_of_type_decl_compilation): New global function.
12407         (components_to_record): Rename defer_debug parameter to do_not_finalize.
12408         (components_to_record): Propagate the packedness to the fields of the
12409         qualified union type if there is a variant part.
12410         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12411         instead of inline code to adjust the XUT field offsets.
12412         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12413         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12414         and write the debug info if the type derives from a discriminated one.
12415         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12416         <E_Array_Subtype>: Likewise.
12417         <E_String_Literal_Subtype>: Likewise.
12418         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12419         an alignment clause.
12420         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12421         before giving warning.
12422         (prepend_one_attribute_to): New function, helper to prepend an attribute
12423         to an attribute list.
12424         (gnat_to_gnu_entity) <E_Procedure>: Use it.
12425         (prepend_attributes): Likewise.
12426         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12427         <E_Array_Type>: Declare the padding type for the element type, if any.
12428         <E_Array_Subtype>: Likewise.
12429         (defer_limited_with): New variable.
12430         (Gigi_Equivalent_Type): New function.
12431         (gnat_to_gnu_entity): Use it at start and use result throughout.
12432         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12433         Gigi_Equivalent_Type, support Limited_With, allow two levels of
12434         indirection, precompute if unconstrained array to simplify logic, and
12435         use defer_limited_with to defer elaboration of some types from limited
12436         with.
12437         (finalize_from_with_types): New function.
12438
12439 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
12440             Eric Botcazou  <ebotcazou@adacore.com>
12441             Tristan Gingold  <gingold@adacore.com>
12442             Olivier Hainque  <hainque@adacore.com>
12443
12444         * trans.c (Identifier_to_gnu): Change test for deferred constant by
12445         adding guard that the entity is an E_Constant before testing presence
12446         of Full_view (and remove unnecessary test that entity is not a type).
12447         For a CONST_DECL used by reference, manually retrieve
12448         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
12449         (struct language_function): Move from utils.c to here.
12450         (struct parm_attr): New structure.
12451         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12452         (f_parm_attr_cache): New macro.
12453         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12454         expressions for the 'First, 'Last and 'Length attributes of the
12455         unconstrained array IN parameters.
12456         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12457         Allocate the information structure for the function earlier, as well
12458         as the language-specific part.
12459         If the parameter attributes cache has been populated, evaluate the
12460         cached expressions on entry.
12461         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
12462         N_Procedure_Call_Statement and N_Indexed_Component.
12463         (Pragma_to_gnu): Translate inspection_point to an asm statement
12464         containaing a comment and a reference to the object (either its address
12465         for BLKmode or its value).
12466         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12467         to go to DECL_INITIAL. Together with the size constraint relaxation
12468         in create_var_decl, enlarges the set of situations in which an
12469         identifier may be used as an initializer without implying elaboration
12470         code.
12471         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12472         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12473         node.
12474         (maybe_stabilize_reference): Remove lvalues_only parameter.
12475         (gnat_stabilize_reference): Adjust for above change.
12476         (gnat_to_gnu): Do not set location information on the result
12477         if it is a reference.
12478         (add_cleanup): Add gnat_node parameter and set the location of the
12479         cleanup to it.
12480         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12481         (Exception_Handler_to_gnu_zcx): Likewise.
12482         (gigi): Remove the cgraph node if the elaboration procedure is empty.
12483         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12484         the former right after the latter.
12485         (start_stmt_group): Make global.
12486         (end_stmt_group): Likewise.
12487         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12488         vars.
12489         (gnu_program_error_label_stack): Likewise.
12490         (gigi): Initialize them.
12491         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12492         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12493         New cases.
12494         (push_exception_label_stack): New function.
12495         (takes_address): New function.
12496
12497         * utils.c (struct language_function): Move to trans.c from here.
12498         (unchecked_convert): Do not wrap up integer constants in
12499         VIEW_CONVERT_EXPRs.
12500         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12501         the latter for aggregate types, unexpected by later passes, and relax an
12502         arbitrary size constraint on the former.
12503         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12504         to compare the sizes.
12505         (convert_vms_descriptor): When converting to a fat pointer type, be
12506         prepared for a S descriptor at runtime in spite of a SB specification.
12507         (shift_unc_components_for_thin_pointers): New function.
12508         (write_record_type_debug_info): For variable-sized fields, cap the
12509         alignment of the pointer to the computed alignment.
12510         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12511         If REP_LEVEL is 2, do not compute the sizes.
12512         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12513         (build_unc_object_type): Likewise.
12514         (declare_debug_type): New function.
12515
12516         * ada-tree.def: USE_STMT: removed (not emitted anymore).
12517
12518         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12519         no statement is expandable anymore.
12520         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12521         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12522         when the user requested it explicitely.
12523         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12524         to 0 for Ada.
12525         (get_alias_set): Return alias set 0 for a type if
12526         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
12527
12528         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12529         (DECL_FUNCTION_STUB): New accessor macro.
12530         (SET_DECL_FUNCTION_STUB): New setter macro.
12531
12532         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
12533
12534         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12535         declarations.
12536
12537 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
12538
12539         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12540         Rename to Abort_Task_Interrupt to be able to keep the same interface
12541         as the rest of the targets.
12542
12543         * s-osinte-vxworks.ads s-osinte-vxworks.adb
12544         (To_VxWorks_Priority): Remove explicit "in" mode indicator
12545
12546         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12547         New files.
12548
12549 2007-06-06  Robert Dewar  <dewar@adacore.com>
12550
12551         * a-chahan.ads: Remove obsolescent pragmas
12552
12553         * a-chlat1.ads: Minor reformatting
12554
12555 2007-06-06  Robert Dewar  <dewar@adacore.com>
12556
12557         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12558         for Errout
12559
12560         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12561         implementation
12562
12563         * errout.ads (Finalize): Changed interface
12564         (Output_Messages): New procedure
12565         (Compilation_Errors): New Interface
12566
12567         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12568         Finalize/Output_Messages interface for Errout
12569         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12570         Errout.
12571
12572 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12573             Olivier Hainque  <hainque@adacore.com>
12574             Robert Dewar  <dewar@adacore.com>
12575
12576         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12577         check.
12578         (Raise_Current_Excep): Call Debug_Raise_Exception just before
12579         propagation starts, to let debuggers know about the event in a reliable
12580         fashion.
12581         (Local_Raise): Moved to System.Exceptions
12582         More convenient to have this as a separate unit
12583
12584         * s-except.adb, s-except.ads: New files.
12585
12586         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12587         Debug_Unhandled_Exception in System.Exceptions where it belongs
12588         together with a couple of other debug helpers.
12589         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12590         the former Unhandled_Exception.
12591
12592         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12593         (Warn_No_Exception_Propagation): New procedure
12594         (Warn_If_No_Propagation): Rewritten for new warning generation
12595         (Expand_Exception_Handlers): New warning generation
12596         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12597         (Add_Exception_Label): Use Special_Exception_Package_Used for test
12598         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12599         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12600         even if restriction is set (makes life easier in Check_Returns)
12601         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12602         checking exception identities.
12603         (Expand_Local_Exception_Handlers): Do not optimize when all others case
12604         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12605         block for handler (used by Check_Returns)
12606         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12607         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12608         remove all exception handlers when optimizing local raise statements.
12609         (Find_Local_Handler): Use Get_Renamed_Entity
12610         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12611         marked analyzed after expanding exception handlers, do not generate
12612         redundant cleanup actions, because they have been constructed already.
12613
12614 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12615
12616         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12617         presence of this categorization pragma is mandated by the language.
12618         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12619         for this type.
12620
12621 2007-06-06  Vincent Celier  <celier@adacore.com>
12622             Robert Dewar  <dewar@adacore.com>
12623
12624         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12625         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12626         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12627         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12628         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12629         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12630         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12631         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12632         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12633         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
12634         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
12635         ali.ads, ali.adb:
12636         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12637         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12638         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12639         Use variables of types File_Name_Type and Unit_Name_Type in error
12640         messages.
12641         (Get_Name): Add parameter Ignore_Special, and set it reading file name
12642         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12643         here.
12644         Define flags Flag217-Flag230 with associated subprograms
12645         (Flag_Word5): New record type.
12646         (Flag_Word5_Ptr): New access type.
12647         (To_Flag_Word5): New unchecked conversion.
12648         (To_Flag_Word5_Ptr): Likewise.
12649         (Flag216): New function.
12650         (Set_Flag216): New procedure.
12651
12652 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12653
12654         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12655         instead of 'Size.
12656
12657         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12658
12659 2007-06-06  Javier Miranda  <miranda@adacore.com>
12660
12661         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12662         the package.
12663         (Object_Specific_Data_Array): This is now internal to the package.
12664         (Object_Specific_Data): This is now internal to the package.
12665         (Select_Specific_Data_Element): This is now internal to the package.
12666         (Select_Specific_Data_Array): This is now internal to the package.
12667         (Select_Specific_Data): This is now internal to the package.
12668         (Offset_To_Top_Function_Ptr): This is now public.
12669         (To_Offset_To_Top_Function_Ptr): Removed.
12670         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12671          local to subprogram Offset_To_Top.
12672         (Predefined_DT): Removed.
12673         (Typeinfo_Ptr): Removed.
12674         (OSD): This function is now internal to this package.
12675         (SSD): This function is now internal to this package.
12676         (DT): New function that displaces the pointer to the table of primitives
12677          to get access to the enclosing wrapper record.
12678         (IW_Membership): Code cleanup.
12679         (Offset_To_Top): Code cleanup.
12680         (Predefined_DT): Removed.
12681         (Register_Interface_Tag): Removed.
12682         (Set_Interface_Table): Removed.
12683         (Set_Offset_Index): Removed.
12684         (Set_Offset_To_Top): Code cleanup.
12685         (Set_OSD): Removed.
12686         (Set_Signature): Removed.
12687         (Set_SSD): Removed.
12688         (Set_Tagged_Kind): Removed.
12689         (Typeinfo_Ptr): Removed.
12690         (TSD): Removed.
12691         (Displace): Add missing check on null actual.
12692
12693         * exp_disp.ads, exp_disp.adb
12694         (Select_Expansion_Utilities): Removed.
12695         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
12696         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
12697         the interface requires a new parameter.
12698         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
12699         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
12700         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
12701         Done to remove package Select_Expansion_Utilities.
12702         (Make_DT): New implementation for statically allocated dispatch tables.
12703         (Make_Secondary_DT): Moved to the scope of Make_DT.
12704         (Register_Primitive): Code cleanup plus incoporate the use of the new
12705         function DT_Address_Attribute.
12706         (Expand_Interface_Thunk): The profile of this subprogram has been
12707         changed to return the Thunk_Id and the corresponding code.
12708         (Fill_DT_Entry): Removed. Its functionality is now provided by
12709         subprogram Register_Primitive.
12710         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
12711         subprogram Register_Primitive.
12712         (Register_Primitive): New subprogram that incorporates the previous
12713         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
12714         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
12715         was only required to call Make_DT_Access_Action, which is now removed.
12716         (Ada_Actions): Removed
12717         (Action_Is_Proc): Removed
12718         (Action_Nb_Arg): Removed
12719         Replace all the calls to Make_DT_Access_Action by direct calls to
12720         Make_Procedure_Call_Statement or Make_Function_Call.
12721         (Set_DTC_Entity_Value): New subprogram.
12722         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
12723         (Expand_Interface_Thunk): Add missing support for primitives that are
12724         functions with a controlling result (case in which there is no need
12725         to generate the thunk).
12726
12727         * exp_atag.ads, exp_atag.adb
12728         (Build_DT): New subprogram that displaces the pointer to reference the
12729         base of the wrapper record.
12730         (Build_Typeinfo_Offset): Removed.
12731         (RTE_Tag_Node): Removed.
12732         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
12733         (Build_Get_RC_Offset): Removed.
12734         (Build_Inherit_Predefined_Prims): Removed.
12735         (Build_Inherit_TSD: Removed.
12736         (Build_New_TSD): Removed.
12737         (Build_Set_External_Tag): Removed.
12738         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
12739         (Build_Set_Prim_Op_Address): Add documentation.
12740         (Build_Set_TSD): Removed.
12741
12742         * rtsfind.ads, rtsfind.adb
12743         (Load_Fail): If load fails and we are not in configurable run-time
12744         mode, then raise Unrecoverable_Error.
12745         (Text_IO_Kludge): Generate an error message if a run-time library is
12746         not available in a given run-time (ie. zfp run-time).
12747         (RTE_Record_Component): Add code to check that the component we search
12748         for is not found in two records in the given run-time package.
12749         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
12750         (RE_DT_Predef_Prims_Offset): New entity
12751         (RE_Static_Offset_To_Top): New entity
12752         (RE_HT_Link): New entity.
12753         (System_Address_Image): Addition of this run-time package.
12754         (RE_Address_Image): New entity.
12755         (RE_Abstract_Interface): Removed.
12756         (RE_Default_Prim_Op_Count): Removed.
12757         (RE_DT_Entry_Size): Removed.
12758         (RE_DT_Min_Prologue_Size): Removed.
12759         (RE_DT_Prologue_Size): Removed.
12760         (RE_Ifaces_Table_Ptr): Removed.
12761         (RE_Interface_Data_Ptr): Removed.
12762         (RE_Type_Specific_Data): Removed.
12763         (RE_Primary_DT): Removed.
12764         (RE_Register_Interface_Tag): Removed.
12765         (RE_Set_Offset_Index): Removed.
12766         (RE_Set_OSD): Removed.
12767         (RE_Set_SSD): Removed.
12768         (RE_Set_Signature): Removed.
12769         (RE_Set_Tagged_Kind): Removed.
12770         (RE_Address_Array): New entity.
12771         (RE_DT): New entity.
12772         (RE_Iface_Tag): New entity.
12773         (RE_Interfaces_Table): New entity.
12774         (RE_No_Dispatch_Table): New entity.
12775         (RE_NDT_Prims_Ptr): New entity.
12776         (RE_NDT_TSD): New entity.
12777         (RE_Num_Prims): New entity.
12778         (RE_Offset_To_Top_Function_Ptr): New entity.
12779         (RE_OSD_Table): New entity.
12780         (RE_OSD_Num_Prims): New entity.
12781         (RE_Predef_Prims): New entity
12782         (RE_Predef_Prims_Table_Ptr): New entity.
12783         (RE_Primary_DT): New entity.
12784         (RE_Signature): New entity.
12785         (RE_SSD): New entity.
12786         (RE_TSD): New entity.
12787         (RE_Type_Specific_Data): New entity.
12788         (RE_Tag_Kind): New entity.
12789
12790 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12791
12792         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
12793         C imported variable.
12794         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
12795         on entry.
12796
12797 2007-06-06  Robert Dewar  <dewar@adacore.com>
12798
12799         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
12800         character
12801
12802 2007-06-06  Vincent Celier  <celier@adacore.com>
12803
12804         * a-tifiio.adb (Put, internal): For negative numbers, check that there
12805         is room for at least one digit and the minus sign.
12806         (Put.Put_Character): Never put a character outside of the range of
12807         string To.
12808
12809 2007-06-06  Olivier Hainque  <hainque@adacore.com>
12810             Eric Botcazou  <ebotcazou@adacore.com>
12811
12812         * utils2.c (build_allocator): Provide the extra arguments to
12813         make_aligning_type for super-aligned objects allocated from the default
12814         pool. Leave enough room for a pointer before the aligning field, and
12815         store the system's allocator return value there.
12816         (build_call_alloc_dealloc): When releasing a super-aligned object,
12817         retrieve the system's allocator return value from where build_allocator
12818         has stored it, just ahead of the adjusted address we are passed.
12819         (build_call_raise): Handle properly the generation of line numbers when
12820         the node is marked No_Location.
12821         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
12822         by using DECL_UID on ties.
12823         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
12824         main variant.
12825         (build_call_raise): Handle converting exception into goto; support new
12826         argument KIND.
12827         (build_component_ref): Add new arg to build_call_raise.
12828
12829 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12830
12831         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
12832         "." in the case of nnn.xxx when nnn terminates with an underscore.
12833         Parse the remaining "#" or ":" in the case of nnn#.xxx#
12834
12835 2007-06-06  Robert Dewar  <dewar@adacore.com>
12836
12837         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
12838
12839 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12840             Vincent Celier  <celier@adacore.com>
12841             Robert Dewar  <dewar@adacore.com>
12842
12843         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
12844         needed.
12845         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
12846         ((destructor)) for adafinal, even when switch -a is used.
12847         Do not issue pragma Linker_Destructor for adafinal when switch -a is
12848         used.
12849         (Gen_Object_Files_Options): Add formatting of Linker Options, when
12850         Output_Linker_Option_List is set. Suppress this formatting when
12851         Zero_Formatting is set.
12852         Add case for CLI_Target.
12853         (System_Restrictions_Used): New flag, used to avoid generating with of
12854         System_Restrictions and initialization of the data unless there is
12855         some use of System.Restrictions in the partition.
12856         (Check_System_Restrictions_Used): New procedure
12857
12858         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
12859         since we only with this unit in the binder file if it is used elsewhere
12860         in the partition.
12861
12862 2007-06-06  Vincent Celier  <celier@adacore.com>
12863
12864         * bindusg.adb: Add line for @<response file>
12865         Add lines for new switches -R and -Z
12866
12867         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
12868         hierarchy in the list of files of the closure when -R is used
12869         (Gnatbind): Accept arguments starting with '@' to indicate response
12870         files and take the arguments from the response files.
12871         If List_Closure is set, display the referenced files
12872
12873 2007-06-06  Javier Miranda  <miranda@adacore.com>
12874             Robert Dewar  <dewar@adacore.com>
12875             Ed Schonberg  <schonberg@adacore.com>
12876
12877         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
12878         which the address-clause is applied to in-mode actuals (allowed by
12879         13.1(22)).
12880         (Apply_Discriminant_Check): Do not generate a check if the type is
12881         constrained by a current instance.
12882         (Activate_Division_Check): New procedure
12883         (Activate_Overflow_Check): New procedure
12884         (Activate_Range_Check): New procedure
12885         Call these new Activate procedures instead of setting flags directly
12886         (Apply_Array_Size_Check): Removed, no longer needed.
12887         Code clean up: remove obsolete code related to GCC 2.
12888         (Get_E_Length): Protect against bomb in case scope is standard
12889         (Selected_Range_Checks): If the node to be checked is a conversion to
12890         an unconstrained array type, and the expression is a slice, use the
12891         bounds of the slice to construct the required constraint checks.
12892         Improve NOT NULL error messages
12893         (Apply_Constraint_Check): If the context is a null-excluding access
12894         type, diagnose properly the literal null.
12895
12896 2007-06-06  Pascal Obry  <obry@adacore.com>
12897
12898         * clean.adb (Clean_Archive): Use untouched casing for the archive name
12899         and the corresponding .deps file.
12900         (Clean_Interface_Copy_Directory): Use untouched casing for the library
12901         src directory. Minor code-clean-up. Use untouched casing for files
12902         read into the library src dir.
12903         (Clean_Library_Directory): Idem.
12904         (Parse_Cmd_Line): Accept new switch -aP
12905
12906 2007-06-06  Javier Miranda  <miranda@adacore.com>
12907             Ed Schonberg  <schonberg@adacore.com>
12908             Robert Dewar  <dewar@adacore.com>
12909             Eric Botcazou  <ebotcazou@adacore.com>
12910             Arnaud Charlet  <charlet@adacore.com>
12911
12912         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
12913         applicable to types that have the With_Type flag set. Returns the
12914         non-limited view of the type, if available, otherwise the type itself.
12915         For class-wide types, there is no direct link in the tree, so we have
12916         to retrieve the class-wide type of the non-limited view of the Etype.
12917         New attributes Static_Initialization and Static_Elaboration_Desired.
12918         Remove the pragma Thread_Body, and the associated flag
12919         Is_Thread_Body in entities, and all related code.
12920         (Suppress_Value_Tracking_On_Call): New flag
12921         E_Exception has Esize and Alignment fields
12922         (Universal_Aliasing): New function.
12923         (Set_Universal_Aliasing): New procedure.
12924         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
12925         (Check_Nested_Access): New procedure.
12926         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
12927         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12928         (Related_Interface): New attribute. Present in dispatch table pointer
12929         components of records. Set to point to the entity of the corresponding
12930         interface type.
12931         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
12932         (Original_Access_Type): Remove, not needed.
12933         (Root_Type): Handle properly subtypes of class-wide-types.
12934         Update comments.
12935
12936         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
12937         class-wide types visible through limited-with clauses.
12938         (Try_Primitive_Operation): When examining all primitive operations of a
12939         tagged type, do not consider subprograms labeled as hidden unless they
12940         belong to a private generic type with a tagged parent.
12941         (Try_Object_Operation): Extensive rewriting, to handle properly various
12942         overloading cases, when several ancestors may have class-wide operations
12943         that are possible candidates, and when the overloaded functions return
12944         array types and have defaulted parameters so that the call may be
12945         interpreted as an indexing.
12946         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
12947         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
12948         successive actuals before analyzing the call itself.
12949         (Try_Primitive_Operation): A primitive operation is compatible with the
12950         prefix if the prefix has a synchronized type and the type of the formal
12951         is its corresponding record, as can be the case when the primitive
12952         operation is declared outside of the body of the type.
12953         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
12954         perform homonym traversal, looking for class-wide operation matches
12955         (formerly done in statements of Try_Class_Wide_Operation). Matches on
12956         access parameters are now restricted to anonymous access types.
12957         (Mark_Allocator): An allocator with a discriminant association parent is
12958         a coextension.
12959         (Try_One_Prefix_Interpretation): If the type of the object is
12960         incomplete, as can be happen when it is a limited view obtained through
12961         a limited_with_clause, the selected component is not part of a prefixed
12962         call.
12963         (Complete_Object_Operation): Diagnose properly an object that is not
12964         aliased when the corresponding controlling formal is an access
12965         parameter.
12966         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
12967         ambiguous calls in prefixed notation, where two primitives differ only
12968         in that the controlling argument of one is an access parameter.
12969
12970         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
12971         whether a function that returns an unconstrained type can be inlined.
12972         (Process_Formals): Diagnose properly the illegal use of an incomplete
12973         type in the profile of an access_to_subprogram declaration.
12974         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
12975         operations are attached to the corresponding record.
12976         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
12977         When processing a primitive of a concurrent type which implements an
12978         interface change the type of all controlling formals to that of the
12979         corresponding record type.
12980         (Check_Synchronized_Overriding): Relax the conditional logic when trying
12981         to determine the tagged type to which a primitive belongs.
12982         (Check_Conventions): Capture condition to ignore a primitive operation
12983         (which is shared between the loop in Check_Conventions and the one in
12984         Check_Convention) in a new local function Skip_Check.
12985         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
12986         confusion with Check_Conventions' own Prim_Op local variable.
12987         (Create_Extra_Formals): Test for a tagged result type rather than a
12988         controlling result when determining whether to add a BIP_Alloc_Form
12989         formal and a BIP_Final_List formal to the function.
12990         (Check_Conformance); For parameters that are anonymous access types,
12991         subtype conformance requires that the not null and the constant
12992         indicators must match
12993         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
12994         to retrieve the appropriate type when processing a concurrent type
12995         declared within a generic. Minor comment reformatting. Change invocation
12996         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
12997         mitive.
12998         (Analyze_Subprogram_Body): If the return type of a function is an
12999         anonymous access to the limited view of a class-wide type, and the
13000         non-limited view of the type is available, update the type of the
13001         function so that code can be generated.
13002         (Process_Formals): In case of access-subtype itype whose designated
13003         type is also an itype (situation that happens now with access to
13004         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13005         attribute to avoid backend problems.
13006         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13007         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13008         anonymous types' designated types are same before testing
13009         Subtypes_Statically_Match.
13010         (Create_Extra_Formals): Test for a named access parameter that is a
13011         controlling formal as an additional condition for adding an
13012         accessibility level formal. This can occur in the subp type created for
13013         dispatching calls in Expand_Dispatching_Call, and allows calling
13014         Create_Extra_Formals from that procedure rather than special-casing the
13015         extra formals there.
13016         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13017         when the function has a controlling result.
13018         (Check_Returns): Add much more knowledge of the optimization of local
13019         raise statements to gotos, to retain proper warnings in this case.
13020         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13021         nodes when looking for last statement.
13022
13023         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13024         class-wide types visible through limited with clauses.
13025         (Add_One_Interp): If the operands are anonymous access types, the
13026         predefined operator on universal_access is immediately visibles
13027         (Find_Unique_Type): Handle anonymous access to subprogram types just as
13028         other anonymous access types.
13029         (Disambiguate): Take into account CIL convention.
13030         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13031
13032 2007-06-06  Robert Dewar  <dewar@adacore.com>
13033
13034         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13035         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13036         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13037         Fix lower bound of tables.
13038         Add rep clauses.
13039
13040         * nlists.adb: Ditto.
13041         (Prev_Node, Next_Node): Change index type to Int so that it properly
13042         covers the range First_Node_Id - 1 up.
13043
13044 2007-06-06  Javier Miranda  <miranda@adacore.com>
13045             Ed Schonberg  <schonberg@adacore.com>
13046             Bob Duff  <duff@adacore.com>
13047             Hristian Kirtchev  <kirtchev@adacore.com>
13048
13049         * exp_aggr.ads, exp_aggr.adb:
13050         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13051         in extension aggregates.
13052         (Flatten): Other conditions being met, an aggregate is static if the
13053         low bound given by component associations is different from the low
13054         bound of the base index type.
13055         (Packed_Array_Aggregate_Handled): If the component type is itself a
13056         packed array or record, the front-end must expand into assignments.
13057         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13058         Init_Pr, instead of Ancestor_Is_Expression.
13059         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13060         coextension chain root, either generate a list controller or use the
13061         already existing one.
13062         (Static_Array_Aggregate): New procedure to construct a positional
13063         aggregate that can be handled by the backend, when all bounds and
13064         components are compile-time known constants.
13065         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13066         types covering interface types into assignments.
13067         (Replace_Type): move to Build_Record_Aggr_Code.
13068         (Expand_Record_Aggr_Code): if the target of the aggregate is an
13069         interface type, convert to the definite type of the aggregate itself,
13070         so that needed components are visible.
13071         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13072         components and the context is an extended return statement do not
13073         create a transient block for it, to prevent premature finalization
13074         before the return is executed.
13075         (Gen_Assign): Do not generate a call to deep adjust routine if the
13076         component type is itself an array of controlled (sub)-components
13077         initialized with an inner aggregate.
13078         (Component_Check): New name for Static_Check. This name is now more
13079         appropriate, and documentation is added which was missing.
13080         (Component_Check): Add test for bit aligned component value
13081         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13082         Tagged_Comps, name is more appropriate given added function below.
13083         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13084
13085 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13086             Javier Miranda  <miranda@adacore.com>
13087             Robert Dewar  <dewar@adacore.com>
13088
13089         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13090         Terminated: Add unchecked type conversion from System.Address to
13091         System.Tasking.Task_Id when calling the predefined primitive
13092         _disp_get_task_id.
13093         Disable new Ada 05 accessibility check for JVM.NET targets, which
13094         cannot be implemented in a practical way.
13095         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13096         the sources always references the tag of the actual object. Therefore,
13097         if 'Tag is applied in the sources to class-wide interface objects we
13098         generate code that displaces "this" to reference the base of the object.
13099         (Expand_N_Attribute_Reference, case Size): Return specified size if
13100         known to front end.
13101         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13102         has code that displaces the pointer of the object to manage interface
13103         types. However this code must not be executed when the prefix is a
13104         subprogram. This bug caused the wrong expansion of the internally
13105         generated assignment that fills the dispatch table when the primitive
13106         is a function returning a class-wide interface type.
13107         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13108         Set_Attribute_Name for Name_Unaligned_Valid.
13109
13110 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13111             Gary Dismukes  <dismukes@adacore.com>
13112
13113         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13114         If the initialization is the equivalent aggregate of the initialization
13115         procedure of the type, do not remove it.
13116         (Expand_N_Attribute_Definition_Clause): Exclude access variables
13117         initialized to null from having their expression reset to empty and
13118         note this exception in the comment.
13119
13120 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13121             Robert Dewar  <dewar@adacore.com>
13122             Ed Schonberg  <schonberg@adacore.com>
13123             Gary Dismukes  <dismukes@adacore.com>
13124
13125         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13126         Add "with" and "use" clauses for Sem_Attr.
13127         (Expand_Current_Value): Do not replace occurences of attribute
13128         references where the prefix must be a simple name.
13129
13130         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13131         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13132         Attribute_Requires_Simple_Name_Prefix.
13133         (Name_Modifies_Prefix): Body of new function.
13134         (Requires_Simple_Name_Prefix): Body of new function.
13135         (Resolve_Attribute, case Access): Improve error message for case of
13136         mismatched conventions.
13137         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13138         incomplete type.
13139         (Analyze_Attribute, case 'Access): If the type of the prefix is a
13140         constrained subtype for a nominal unconstrained type, use its base type
13141         to check for conformance with the context.
13142         (Resolve_Attribute): Remove test of the access type being associated
13143         with a return statement from condition for performing accessibility
13144         checks on access attributes, since this case is now captured by
13145         Is_Local_Anonymous_Access.
13146         (Analyze_Access_Attribute): Set Address_Taken on entity
13147         (Analyze_Attribute, case Address): Set Address_Taken on entity
13148         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13149         validating an access attribute whose prefix is a current instance.
13150         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13151         applied to dispatching operations, if freezing is required then we set
13152         the attribute Has_Delayed_Freeze in the prefix's entity.
13153         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13154         current scope if access of local subprogram taken
13155         (Analyze_Access_Attribute): Check legality of self-reference even if the
13156         expression comes from source, as when a single component association in
13157         an aggregate has a box association.
13158         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13159         the prefix if it is a protected operation and the attribute is
13160         Unrestricted_Access.
13161         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13162         reference to the base type of the context, to force a constraint check
13163         when the context is an access subtype with an explicit constraint.
13164         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13165         node is rewritten as an interface conversion. leave unanalyzed after
13166         resolution, to ensure that type checking against the context will take
13167         place.
13168
13169 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13170             Javier Miranda  <miranda@adacore.com>
13171             Robert Dewar  <dewar@adacore.com>
13172
13173         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13174         wrapper when the full view of the controlling type of an inherited
13175         function that dispatches on result implements interfaces.
13176         (Expand_N_Object_Declaration): In cases where the type of the
13177         declaration is anonymous access, create finalization list for it.
13178         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13179         if the object has no explicit initialization, to match description of
13180         functionality of pragam Persistent_BSS.
13181         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13182         new function to build static aggregates, to replace initialization call
13183         when static initialization is desired.
13184         (Freeze_Type): Generate a list controller for an access type whenever
13185         its designated type has controlled anonymous access discriminants.
13186         (Build_Equivalent_Aggregate): New procedure to compute a static
13187         aggregate to be used as default initialization for composite types,
13188         instead of a generating a call to the initialization procedure for the
13189         type.
13190         (Build_Initialization_Call): When available, replace a call to the
13191         initialization procedure with a copy of the equivalent static aggregate
13192         for the type.
13193         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
13194         declarations for objects of a class-wide interface type, rather than
13195         just identifiers, to prevent visibility problems.
13196         (Expand_N_Object_Declaration): When expanding the declaration for an
13197         object of a class-wide interface type, preserve the homonym chain of
13198         the original entity before exchanging it with that of the generated
13199         renaming declaration.
13200         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13201         active, because there is no way to handle the exception.
13202         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13203         to do a minimum decoration of the Access_Disp_Table list.
13204         (Expand_Record_Controller): Avoid the addition of the controller between
13205         the component containing the tag of a secondary dispatch table and its
13206         adjacent component that stores the offset to the base of the object.
13207         This latter component is only generated when the parent type has
13208         discriminants ---documented in Add_Interface_Tag_Components).
13209         (Apply_Array_Size_Check): Removed, no longer needed.
13210         (Expand_N_Full_Type_Declaration): If the type has anonymous access
13211         components, create a Master_Entity for it only if it contains tasks.
13212         (Build_Init_Procedure): Suppress the tag assignment compiling under
13213         no run-time mode.
13214         (Freeze_Record_Type): Remove code associated with creation of dispatch
13215         table.
13216         (Init_Secondary_Tags): Update type of actuals when generating calls to
13217         Ada.Tags.Set_Offset_To_Top
13218         (Stream_Operation_OK): Disable use of streams compiling under no
13219         run-time mode
13220         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13221         if Has_Init_Expression set.
13222         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13223         Register_Primitive, which provides the same functionality.
13224         (Requires_Init_Proc): Return false in case of interface types.
13225         (Add_Secondary_Tables): Use the new attribute Related_Interface to
13226         cleanup the code.
13227         (Predefined_Primitive_Freeze): Do not assume that an internal entity
13228         is always associated with a predefined primitive because the internal
13229         entities associated with interface types are not predefined primitives.
13230         Therefore, the call to Is_Internal is replaced by a call to the
13231         function Is_Predefined_Dispatching_Operation.
13232         (Make_Eq_If): When generating the list of comparisons for the
13233         components of a given variant, omit the controller component that is
13234         present if the variant has controlled components.
13235
13236 2007-06-06  Javier Miranda  <miranda@adacore.com>
13237             Hristian Kirtchev  <kirtchev@adacore.com>
13238             Bob Duff  <duff@adacore.com>
13239
13240         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13241         handle the creation of finalization lists and calls for nested
13242         coextensions when the root of the chains is part of a return statement.
13243         (Inside_A_Return_Statement): New function inside Complete_Coextension_
13244         Finalization.
13245         (Expand_Record_Equality): Skip components that are interface types.
13246         (Displace_Allocator_Pointer): Add missing support for interface subtypes
13247         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13248         with Rewrite_Coextension. Change the condition for detecting coextension
13249         root nodes.
13250         (Is_Local_Access_Discriminant): Removed.
13251         (Rewrite_Coextension): New routine which rewrites a static coextension
13252         as a temporary and uses its unrestricted access in the construction of
13253         the outer object.
13254         (Complete_Coextension_Finalization): New routine. Generate finalization
13255         attachment calls to all delayed coextensions.
13256         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13257         the allocator is not a coextension itself and has delayed coextensions.
13258         If the current allocator is controlled, but also a coextension, delay
13259         the generation of the finalization attachment call.
13260         Rename local variable "Node" to "Nod" in order to avoid confusion with
13261         "Elists.Node".
13262         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13263         limited types that are not inherently limited. Such an allocator is
13264         illegal, but is generated by the expander for a return statement, to
13265         copy the result onto the secondary stack. This is the only case where a
13266         limited object can be copied. Generate code to displace the pointer
13267         to the object if the qualified expression is a class-wide interface
13268         object. Such displacement was missing and hence the copy of the object
13269         was wrong.
13270         (Apply_Accessibility_Check): Handle allocated objects initialized in
13271         place.
13272         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13273         and Expand_Allocator_Expression. Allocating class-wide interface objects
13274         this routine displaces the pointer to the allocated object to reference
13275         the component referencing the corresponding secondary dispatch table.
13276         Expand_Allocator_Expression): Add missing support to allocate class-wide
13277         interface objects initialized with a qualified expression.
13278         (Get_Allocator_Final_List): Test for an anonymous access type that is a
13279         function result type, and use the finalization list associated with the
13280         function scope in that case (such an anonymous type should not be
13281         treated like an access parameter's type).
13282
13283 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13284             Gary Dismukes  <dismukes@adacore.com>
13285             Javier Miranda  <miranda@adacore.com>
13286
13287         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13288         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13289         required exception handler.
13290         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13291         properly the case of a function whose return type is a limited
13292         class-wide interface type. Modify the code of the accessibility
13293         check to handle class-wide interface objects. In this case we need to
13294         displace "this" to reference the primary dispatch table to get access
13295         to the TSD of the object (to evaluate its accessibility level).
13296         (Expand_N_Extended_Return_Statement): Test for a tagged result type
13297         rather than a controlling result as one of the conditions for
13298         generating tests of the implicit BIP_Alloc_Form formal. The
13299         initialization assignment is also handled according to whether the
13300         result is tagged instead of controlling.
13301         In the case where the init assignment is inserted in the "then" part of
13302         the allocation conditional, rewrite the target to be a dereference of
13303         the implicit BIP_Object_Access formal.
13304         If the returned value is unconstrained and created on the secondary
13305         stack, mark the enclosing block and function so that the secondary
13306         stack is not reclaimed on return.
13307         Treat returns from functions with controlling results similarly to
13308         returns from functions with unconstrained result subtypes.
13309         If the object returned is unconstrained, and an allocator must be
13310         created for it, analyze the allocator once the block for the extended
13311         return is installed, to ensure that finalizable components
13312         of the expression use the proper finalization list. Guard the call to
13313         Move_Final_List with a check that there is something to finalize.
13314         (Make_Tag_Ctrl_Assignment): Use "old" handling
13315         of controlled type assignment for virtual machines, since new code uses
13316         unsupported features (such as direct access to bytes in memory).
13317
13318 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13319             Ed Schonberg  <schonberg@adacore.com>
13320
13321         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13322         accessibility actual, check for the case of an aliased object that has
13323         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13324         we fall into processing for the attribute rather than the name of the
13325         object.
13326         (Expand_Inline_Call): If an actual is a literal, and the corresponding
13327         formal has its address taken in the body, create a temporary to capture
13328         value.  If the return type is a limited interface, do not treat the
13329         return value as Controlled.
13330         (Is_In_Place_Function):  If the return type is a limited interface,
13331         treat as returning in place. The actual returned object may not always
13332         be limited, but the caller has to assume that it is returned in place.
13333         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13334         context of an allocator, use the correct finalization chain (that is,
13335         the chain belonging to the access type, rather than the chain belonging
13336         to the current scope).
13337         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13338         result type rather than a controlling result as a precondition for
13339         adding an allocation form actual to a build-in-place call.
13340         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13341         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13342         primitive in the dispatch tables. This work is now done by Make_DT when
13343         the type is frozen.
13344         (Register_Predefined_DT_Entry): Removed.
13345         (Add_Return): If end label is not present, use sloc of last statement
13346         for generated return statement in procedure, for better gdb behavior
13347         on expanded code.
13348         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13349         object address nodes to ensure proper processing by routines like
13350         Insert_After*.
13351         (Expand_Call): Fix generation of validity check for parameter
13352         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13353         the allocation form parameter if the result subtype is constrained,
13354         except when the function has a controlling result.
13355         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13356         rather than Is_Controlled and Has_Controlled_Component, since we want to
13357         include class-wide result types in this treatment. Also test for a
13358         controlling result, since that also requires passing a finalization
13359         list.
13360         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13361         even when the result subtype is constrained, to handle calls involving
13362         controlling results.
13363         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13364         is now called even when the result subtype is constrained, to handle
13365         calls involving controlling results.
13366         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13367         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13368         now performs the test).
13369         (Make_Build_In_Place_Call_In_Object_Declaration):
13370         Add_Alloc_Form_Actual_* is now called even when the result subtype is
13371         constrained, to handle calls involving controlling results.
13372         (Add_Return): Accomodate rewritten pattern from local raise to goto
13373         transformation, so that we still recognize an transfer statement
13374         and do the right thing here in that case.
13375         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13376         and end of subprogram code.
13377         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13378         support for primitives that are functions (without formals) with a
13379         controlling result.
13380         (Inherited_From_Formal): If the actual subtype has not generic parent
13381         type, it is not an actual for a formal derived type, and there is no
13382         operation to inherit from the formal.
13383
13384 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13385             Thomas Quinot  <quinot@adacore.com>
13386
13387         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13388         inserted cleanup code appropriately for GDB use.
13389         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13390         exception handler for Deep_Adjust or Deep_Finalize.
13391         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13392         Raise_From_Controlled_Operation is available, use a call to that
13393         subprogram instead of a plain "raise Program_Error" node to raise
13394         Program_Error if an exception is propagated from an Adjust or Finalize
13395         operation.
13396         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13397         appears in the optional statement list of a triggering alternative, the
13398         scope actions can be inserted directly there, and not in the list that
13399         includes the asynchronous select itself.
13400
13401 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13402             Robert Dewar  <dewar@adacore.com>
13403             Hristian Kirtchev  <kirtchev@adacore.com>
13404
13405         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13406         generated exception handler appropriately when debugging generated code.
13407         Deal properly with No_Exception_Propagation restriction mode.
13408         (Expand_N_Abort_Statement): Add an unchecked type conversion from
13409         System.Address to System.Tasking.Task_Id when processing the result of
13410         the predefined primitive _disp_get_task_id.
13411         (Expand_N_Asynchronous_Select): Clarify comment.
13412         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13413         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13414         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13415         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13416         privals and for generated call to Complete_Entry_Body, for better gdb
13417         behavior.
13418         (Copy_Result_Type): Utility to construct a parameter and result profile
13419         for protected functions whose return type is an anonymous access to
13420         subprogram.
13421         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13422         call the above.
13423         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13424         point when the local-raise-to-goto transformation has taken place.
13425
13426 2007-06-06  Javier Miranda  <miranda@adacore.com>
13427             Nicolas Setton  <setton@adacore.com>
13428
13429         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13430         functionality when the backend is generating code.
13431         Otherwise any serious error
13432         reported by the backend calling the frontend routine Error_Msg
13433         changes the Compilation_Mode to Check_Semantics, disables the
13434         functionality of this routine and causes the generation of
13435         spureous additional errors.
13436
13437         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13438         debugging information now generated by the compiler for fat-pointer
13439         types.
13440         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13441         DWARF2/3.
13442         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13443
13444 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13445
13446         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13447         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13448         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13449         For a remote call to a function with a classwide return type, apply an
13450         E.4(18) check to the returned value.
13451         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13452         stream attributes of the designated type of an RACW, as they are not
13453         dispatching primitive operations.
13454
13455 2007-06-06  Geert Bosch  <bosch@adacore.com>
13456
13457         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13458         negative literal
13459         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13460         positive
13461         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13462         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13463         positive
13464         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13465
13466 2007-06-06  Javier Miranda  <miranda@adacore.com>
13467
13468         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13469         attribute compiling package Ada.Tags under No_Run_Time_Mode.
13470
13471 2007-06-06  Javier Miranda  <miranda@adacore.com>
13472
13473         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13474         deallocation of class-wide interface objects.
13475         (Expand_Dispatching_Constructor_Call): Take into account that if the
13476         result of the dispatching constructor is an interface type, the
13477         function returns a class-wide interface type; otherwise the returned
13478         object would be actual. The frontend previously accepted returning
13479         interface types because Expand_Interface_Actuals silently performed
13480         the management of the returned type "as if" it were a class-wide
13481         interface type.
13482         (Expand_Dispatching_Constructor_Call): Replace call to
13483         Make_DT_Access_Action by direct call to Make_Function_Call.
13484
13485 2007-06-06  Robert Dewar  <dewar@adacore.com>
13486             Ed Schonberg  <schonberg@adacore.com>
13487
13488         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13489         compute masking constant, since we now set Esize properly to the
13490         underlying size.
13491         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13492         to match the alignment.
13493         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13494         packed arrays of 8 bits or less.
13495
13496         * freeze.adb (Freeze_Entity): When freezing the formals of a
13497         subprogram, freeze the designated type of a parameter of an access type
13498         only if it is an access parameter.
13499         Increase size of C convention enumeration object
13500         (Freeze_Entity, array type case): Make sure Esize value is properly
13501         adjusted for the alignment if it is known.
13502         (Freeze_Entity, array type case): When checking bit packed arrays for
13503         the size being incorrect, check RM_Size, not Esize.
13504         (Freeze_Record_Type): Check for bad discriminated record convention
13505         (In_Exp_Body): Return true if the body is generated for a subprogram
13506         renaming, either an attribute renaming or a renaming as body.
13507         (Check_Itype): If the designated type of an anonymous access component
13508         is a non-protected subprogram type, indicate that it is frozen, to
13509         prevent out-of-scope freeze node at some subsequent call.
13510         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13511         only if the subprogram is neither imported nor exported, as well as the
13512         NCA descriptor class if the subprogram is exported.
13513
13514 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13515             Arnaud Charlet  <charlet@adacore.com>
13516             Robert Dewar  <dewar@adacore.com>
13517             Gary Dismukes  <dismukes@adacore.com>
13518
13519         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13520         default initialization on an imported object, when there is no
13521         initialization call generated for it.
13522         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13523         restriction
13524
13525         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13526         Static_Elaboration_Desired.
13527         Remove pragma Thread_Body.
13528         Implement a new pragma No_Body
13529         Removes the Explicit_Overriding pragma
13530         Remove Optional_Overriding pragma
13531         (Prag): Deal with Universal_Aliasing.
13532         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13533         Pragma_CIL_Constructor): New names.
13534
13535         * sem_cat.adb (Validate_Object_Declaration): An initialization that
13536         uses the equivalent aggregate of a type must be treated as an implicit
13537         initialization.
13538         (Get_Categorization): Check a unit for pragma Preelaborate only if it
13539         has none of the other categories.
13540         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13541         to apply Import to an object renaming declaration.
13542
13543         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13544         from a C++ class should be declared as limited and that it will be
13545         considererd limited.
13546         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13547         should be declared as limited and that it will be considererd limited.
13548         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13549         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13550         (Analyze_Pragma): Deal with Universal_Aliasing.
13551         (Sig_Flags): Likewise.
13552         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13553         (Overflow_Checks_Unsuppressed): New flag.
13554         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13555         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13556         case of JVM or .NET targets, and compiling user code.
13557         Add debugging convenience routine rv
13558
13559 2007-06-06  Robert Dewar  <dewar@adacore.com>
13560
13561         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13562         are interface type.
13563         (Build_Elementary_Input_Call): For floating-point use right type in the
13564         absence of strange size or stream size clauses.
13565         (Build_Elementary_Write_Call): Same fix
13566         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13567         set to value that does not match base type size.
13568
13569 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13570
13571         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13572         object of a limited type can be initialized with a call to a function
13573         that returns in place. If the limited type has unknown discriminants,
13574         and the underlying type is a constrained composite type, build an actual
13575         subtype from the function call, as is done for private types.
13576         (Side_Effect_Free): An expression that is the renaming of an object or
13577         whose prefix is the renaming of a object, is not side-effect free
13578         because it may be assigned through the renaming and its value must be
13579         captured in a temporary.
13580         (Has_Controlled_Coextensions): New routine.
13581         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13582         as is done for other limited types.
13583         (Non_Limited_Designated_Type): new predicate.
13584         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13585         objects.
13586         Remove all handling of with_type clauses.
13587
13588         * par-ch10.adb: Remove all handling of with_type clauses.
13589
13590         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13591         checksum if the main source could not be parsed.
13592         (Loat_Unit): When processing a child unit, determine properly whether
13593         the parent unit is a renaming when the parent is itself a child unit.
13594         Remove handling of with_type clauses.
13595
13596         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13597         (Set_Is_Static_Coextension): New procedure.
13598         (Has_Local_Raise): New function
13599         (Set_Has_Local_Raise): New procedure
13600         (Renaming_Exception): New field
13601         (Has_Init_Expression): New flag
13602         (Delay_Finalize_Attach): Remove because flag is obsolete.
13603         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13604         Remove all handling of with_type clauses.
13605         (Exception_Junk): Can now be set in N_Block_Statement
13606
13607 2007-06-06  Vincent Celier  <celier@adacore.com>
13608             Robert Dewar  <dewar@adacore.com>
13609
13610         * frontend.adb (Frontend): Return immediately if the main source could
13611         not be parsed, because of preprocessing errors.
13612
13613         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13614         (Gnat1drv): Exit with errors if the main source could not be parsed,
13615         because of preprocessing errors.
13616         (Check_Rep_Info): New procedure
13617
13618 2007-06-06  Robert Dewar  <dewar@adacore.com>
13619
13620         * g-hesorg.ads, g-heasor.ads,
13621         g-busorg.ads, g-bubsor.ads: Update documentation
13622         GNAT.Heap/Bubble_Sort_G is now pure
13623
13624 2007-06-06  Robert Dewar  <dewar@adacore.com>
13625
13626         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13627
13628 2007-06-06  Robert Dewar  <dewar@adacore.com>
13629             Ed Schonberg  <schonberg@adacore.com>
13630
13631         * g-comlin.ads, g-comlin.adb:
13632         Add new warning for renaming of function return objects
13633
13634         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13635         (Tree_Read): Use size of object instead of type'object_size, since the
13636         latter is incorrect for packed array types.
13637         (Tree_Write): Same fix
13638
13639         * opt.ads: Add new warning for renaming of function return objects
13640         (Generating_Code): New boolean variable used to indicate that the
13641         frontend as finished its work and has called the backend to process
13642         the tree and generate the object file.
13643         (GCC_Version): Is now private
13644         (Static_Dispatch_Tables): New constant declaration.
13645         (Overflow_Checks_Unsuppressed): New flag.
13646         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13647         (List_Closure): New flag for gnatbind (-R)
13648         Zero_Formatting: New flag for gnatbind (-Z)
13649         (Special_Exception_Package_Used): New flag.
13650         (Warn_On_Unrepped_Components): New flag.
13651
13652         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13653         unit is a compilation unit, rather than relying on its scope, so that
13654         Standard can be renamed.
13655         (Analyze_Object_Renaming): Add new warning for renaming of function
13656         return objects.
13657         Also reject attempt to rename function return object in Ada 83 mode.
13658         (Attribute_Renaming): In case of tagged types, add the body of the
13659         generated function to the freezing actions of the type.
13660         (Find_Type): A protected type is visible right after the reserved word
13661         "is" is encountered in its type declaration. Set the entity and type
13662         rather than emitting an error message.
13663         (New_Scope): Properly propagate Discard_Names to inner scopes
13664         (Check_Nested_Access): New procedure.
13665         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13666         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13667
13668         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13669         Add new warning for renaming of function return objects
13670         (Check_References): Suppress warnings for objects whose type or
13671         base type has Warnings suppressed.
13672         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13673         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13674
13675 2007-06-06  Vincent Celier  <celier@adacore.com>
13676             Emmanuel Briot  <briot@adacore.com>
13677             Olivier Hainque  <hainque@adacore.com>
13678
13679         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13680         absolute value of Header.Block_Size when displaying the freed physical
13681         memory in traces.
13682         (Allocate): Compute Storage_Address using Integer_Address, not
13683         Storage_Offset, because the range of Storage_Offset may not be large
13684         enough.
13685         (Configure): New parameter Low_Level_Traces
13686         (Allocate, Deallocation, Free_Physically): Added low-level traces
13687         (Configure): new parameter Errors_To_Stdout.
13688         (Output_File): new subprogram
13689         (Deallocate, Dereference): Send error messages to the proper stream
13690         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13691         documented. Previous code would send it to the current output file
13692         defined in GNAT.IO, which might not be stdout
13693         (Is_Valid): Adjust comment to mention that a positive reply means that
13694         Header_Of may be used to retrieve the allocation header associated with
13695         the subprogram Storage address argument. Return False early if this
13696         address argument is misaligned.
13697
13698 2007-06-06  Vincent Celier  <celier@adacore.com>
13699
13700         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
13701         switch -P
13702         (ASIS_Main): New global variable
13703         (Get_Closure): New procedure
13704         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
13705         check, metric or pretty. Call Get_Closure in this case.
13706         (Check_Files): For GNAT LIST, check all sources of all projects when
13707         All_Projects is True.
13708         (GNATCmd): Accept -U for GNAT LIST
13709
13710 2007-06-06  Vincent Celier  <celier@adacore.com>
13711
13712         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
13713         has been specified
13714         Correct error message when invocation of the linker fails
13715         Add explicit size clause for the C imported variables
13716         Object_List_File_Supported and Using_GNU_Linker to emphasize that
13717         we expect char size.
13718         Read target parameters earlier, since this is needed to set
13719         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
13720         targets.
13721
13722 2007-06-06  Vincent Celier  <celier@adacore.com>
13723
13724         * gnatls.adb:
13725         Add 3 spaces before the default project directory when displaying
13726         the project search path.
13727         Add new command line switch '-l' to display license information.
13728
13729 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
13730
13731         * gmem.c: Add support for timestamps on memory operations.
13732
13733         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
13734         operations (not used currently, just foundation for future
13735         enhancements). Add possibility to perform full dump of gmem.out file.
13736         (Print_Back_Traces): Declare accesses to root arrays constants since
13737         they aren't modified.
13738         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
13739
13740 2007-06-06  Vincent Celier  <celier@adacore.com>
13741
13742         * gnatsym.adb: Update Copyright notice
13743         (Parse_Cmd_Line): Accept new switch -D
13744         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
13745          file.
13746
13747         * prj.ads (Policy): New policy Direct
13748         (Yes_No_Unknown): New enumeration type
13749         (Project_Data): New component Libgnarl_Needed
13750
13751         * prj-nmsc.adb (Check_For_Source): When recording a source file make
13752         use the untouched pathname casing.
13753         (Get_Directories): Ensure that the Display_Exec_Directory is using the
13754         proper casing on non case-sensitive platforms like Windows.
13755         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
13756         on all platforms, as it is not possible to know which one is allowed
13757         before processing the project files.
13758         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
13759         specified when symbol policy is Direct. Check that when there is a
13760         symbol file defined (either by default or with attribute
13761         Library_Symbol_File) it is not the same as the reference symbol file.
13762         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
13763         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
13764         extending projects.
13765         (Record_Ada_Source): Record a source that has been locally removed in an
13766         imported project.
13767
13768         * symbols.ads (Policy): New policy Direct
13769
13770         * symbols-vms.adb (Initialize): Take new policy Direct in case
13771         statement
13772
13773 2007-06-06  Vincent Celier  <celier@adacore.com>
13774
13775         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
13776         Correct obvious bug (return Dir; instead of return Directory;).
13777         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
13778
13779 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13780
13781         * g-pehage.adb (Produce): Open output files in Binary mode, so that
13782         they have UNIX line endings (LF only) even on Windows, and thus pass
13783         all GNAT style checks.
13784
13785 2007-06-06  Emmanuel Briot  <briot@adacore.com>
13786
13787         * g-regpat.adb (Quote): Fix improper quoting of '.'
13788
13789 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13790
13791         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
13792         default, set False on a per-runtime basis.
13793         (Need_Netdb_Buffer): New constant.
13794
13795         * g-socket.ads, g-socket.adb: Import new package
13796         GNAT.Sockets.Thin.Task_Safe_NetDB.
13797         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
13798         binding to obtain proper message.
13799         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
13800         Replace various occurrences of Arry (Arry'First)'Address with the
13801         equivalent Arry'Address (GNAT always follows implementation advice from
13802         13.3(14)).
13803         (Get_Host_By_Address, Get_Host_By_Name,
13804         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
13805         instead, rely on platform-specific task safe netdb operations provided
13806         by g-socthi.
13807
13808         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
13809         parameter Process_Blocking_IO.
13810         (Host_Error_Messages): Add stub body.
13811         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13812         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
13813         Safe_Getservbyport): Move functions into new child package
13814         Task_Safe_NetDB.
13815         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
13816         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
13817         (In_Addr): Add alignment clause.
13818
13819 2007-06-06  Robert Dewar  <dewar@adacore.com>
13820
13821         * g-trasym.ads, g-traceb.ads: Update list of supported targets
13822         Add note about symbolic traceback
13823
13824 2007-06-06  Pascal Obry  <obry@adacore.com>
13825
13826         * hostparm.ads (Normalized_CWD): Use the host directory separator
13827         instead of the hardcoded forward slash which is not the proper
13828         character on Windows for example.
13829         (Java_VM): Removed.
13830
13831 2007-06-06  Vincent Celier  <celier@adacore.com>
13832             Arnaud Charlet  <charlet@adacore.com>
13833
13834         * a-clrefi.adb, a-clrefi.ads: New files
13835
13836         * impunit.adb: Add s-os_lib in the list of user visible units.
13837         (Non_Imp_File_Names_95): Add a-clrefi to this list
13838         Remove obsolete run-time entries.
13839         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
13840          "a-exetim" -- Ada.Execution_Time
13841          "a-extiti" -- Ada.Execution_Time.Timers
13842
13843         * mlib-prj.ads, mlib-prj.adb
13844         (Build_Library): Use untouched object dir and library dir. At the
13845         same time makes sure that the checks are done using the canonical
13846         form. Removes hard-coded directory separator and use the proper host
13847         one instead.
13848         (Process_Project): Do not look in object directory to check if libgnarl
13849         is needed for a library, if there is no object directory.
13850         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
13851         linking.
13852         (Build_Library): When invoking gnatbind, use a response file if the
13853         total size of the arguments is too large.
13854
13855         * Makefile.rtl: (g-sttsne): New object file.
13856         Add entry for a-clrefi, s-utf_32, System.Exceptions
13857
13858         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
13859         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
13860         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
13861         Change g-string to s-string, g-os_lib to s-os_lib
13862         Change all g-utf_32 references to s-utf_32
13863
13864 2007-06-06  Tristan Gingold  <gingold@adacore.com>
13865             Olivier Hainque  <hainque@adacore.com>
13866
13867         * init.c: Do not adjust IP of an imported VMS exception of ia64.
13868         LIB$STOP is called to raise an exception and the IP of the exception
13869         is the instruction right after the call.
13870         (__gnat_adjust_context_for_raise, AIX): Implement.
13871         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
13872          adjust_context_for_raise before Raise_From_Signal_Hanler.
13873         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
13874         siginfo is passed to the handler, necessary to let the zcx propagation
13875         engine unwind past it.
13876
13877 2007-06-06  Olivier Hainque  <hainque@adacore.com>
13878
13879         * initialize.c (__gnat_initialize for vxworks):  Update documentation
13880         on the ZCX support, using different sets of crtstuff objects than with
13881         GCC 3.4.
13882
13883 2007-06-06  Robert Dewar  <dewar@adacore.com>
13884
13885         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
13886         spec from body
13887         (Layout_Type): Fix recomputation of size from alignment.
13888
13889 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13890             Javier Miranda  <miranda@adacore.com>
13891
13892         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
13893         association in an instance.
13894         (Copy_Generic_Node): If the node is a string literal, no need to copy
13895         its descendants.
13896         (Is_Generic_Formal): For a formal subprogram, the declaration is the
13897         grandparent of the entity.
13898         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
13899         to simplify handling of formal interfaces that derive from other formal
13900         interfaces.
13901         (Instantiate_Subprogram_Body): The defining unit name of the body of
13902         the instance should be a defining identifier.
13903         (Install_Formal_Packages): make global to the package, for use in
13904         instantiations of child units.
13905         (Analyze_Package_Instantiation): Do not attempt to set information on an
13906         enclosing master of an entry when expansion is disabled.
13907         (Instantiate_Type): If the actual is a tagged synchronized type and the
13908         generic ancestor is an interface, create a generic actual for the
13909         corresponding record.
13910         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
13911         declaration, to ensure that the interface list is processed correctly.
13912         (Inline_Instance_Body): If enclosing scope is an instance body, remove
13913         its entities from visibiility as well.
13914         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
13915         given with a named association, analyze the expression only, not the
13916         discriminant association itself.
13917         (Reset_Entity): If the analysis of a selected component is transformed
13918         into an expanded name in the prefix of a call with parameters, do not
13919         transform the original node into an expanded name, to prevent visibility
13920         errors in the case of nested generics.
13921         (Check_Private_View): For an array type, check whether the index types
13922         may need exchanging.
13923
13924 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13925             Vincent Celier  <celier@adacore.com>
13926
13927         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
13928         since both are separated.
13929         Add support for imported CIL packages.
13930         Add further special handling of "value_type" for CIL.
13931         Add special handling of pragma Import for CIL.
13932
13933         * make.ads, make.adb: When switch -eS is used, direct all outputs to
13934         standard output instead of standard error, except errors.
13935         (Absolute_Path): Use untouched casing for the parent directory.
13936         (Add_Library_Search_Dir): Use the untouched directory name.
13937         (Add_Source_Search_Dir): Idem.
13938         (Change_To_Object_Directory): Update output to use proper casing.
13939         (Create_Binder_Mapping_File): Use the untouched filename to set
13940         ALI_Name.
13941         (Gnatmake): Use untouched library and executable directory names.
13942         (Insert_Project_Sources): Use untouched filename for spec and body.
13943         (Is_In_Object_Directory): Use untouched object directory.
13944         (Mark_Directory): Idem.
13945         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
13946         contains the non-canonical filename in all cases.
13947         (Change_To_Object_Directory): In verbose mode, display the name of the
13948         object directory we're changing to.
13949         (Compile_Sources): Make sure, when a project file is used, to compile
13950         the body of the unit, when there is one, even when only the spec is
13951         recorded in an ALI file.
13952         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
13953         spec to the body.
13954         (Report_Compilation_Failed): New procedure
13955         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
13956         procedures moved from the spec to the body.
13957         (Extract_Failure): Removed, not used
13958         Replace explicit raises of exception Bind_Failed and Link_Failed with
13959         calls to Make_Failed with the proper message.
13960         Replace explicit raises of exception Compilation_Failed with calls to
13961         procedure Report_Compilation_Failed.
13962         (Initialize): Create mapping files unconditionally when using project
13963         files.
13964
13965         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13966         Pragma_CIL_Constructor): New names.
13967
13968         * targparm.ads, targparm.adb
13969         (Compiler_System_Version): Removed, no longer used.
13970         (Get_Target_Parameters): Relax checks on system.ads validity. Add
13971         handling of two new system flags: JVM and CLI.
13972
13973 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
13974             Arnaud Charlet  <charlet@adacore.com>
13975
13976         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
13977         time, use the default s-interr body that provides interrupt support
13978         based on signals.
13979         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
13980         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
13981         g-soccon.ads, and s-taprop.adb for the marte run time.
13982         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
13983         timers are supported on marte.
13984         (EH_MECHANISM for marte): Do not use ZCX.
13985         (THREADSLIB for marte): Use -lmarte.
13986         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
13987         Add mlib-tgt-specific.o to gnatmake objects
13988         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
13989         longer of MLib.Tgt.
13990         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
13991         6, either kernel or rtp, use a specialized version of s-osinte.ads.
13992
13993 2007-06-06  Pascal Obry  <obry@adacore.com>
13994
13995         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
13996
13997 2007-06-06  Vincent Celier  <celier@adacore.com>
13998
13999         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14000         separator, use instead the proper host directory separator.
14001         (Copy_ALI_Files): Make sure that an already existing ALI file in the
14002         ALI copy dir is writable, before doing the copy.
14003
14004         * mlib-utl.ads, mlib-utl.adb:
14005         (Gcc): If length of command line is too long, put the list of object
14006         files in a response file, if this is supported by the platform.
14007         (Ar): If invocation of the archive builder is allowed to be done in
14008         chunks and building it in one shot would go above an OS dependent
14009         limit on the number of characters on the command line, build the archive
14010         in chunks.
14011
14012 2007-06-06  Vincent Celier  <celier@adacore.com>
14013
14014         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14015         of specified object file is not equal to base name of source.
14016
14017 2007-06-06  Javier Miranda  <miranda@adacore.com>
14018             Hristian Kirtchev  <kirtchev@adacore.com>
14019             Ed Schonberg  <schonberg@adacore.com>
14020
14021         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14022         the full type declaration.
14023         (Analyze_Component_Declaration): Add local variable E to capture the
14024         initialization expression of the declaration. Replace the occurences of
14025         Expression (N) with E.
14026         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14027         limited interface object with a function call.
14028         (Array_Type_Declaration): If the declaration lacks subtype marks for
14029         indices, create a simple index list to prevent cascaded errors.
14030         (Is_Null_Extension): Ignore internal components created for secondary
14031         tags when checking whether a record extension is a null extension.
14032         (Check_Abstract_Interfaces): Add missing support for interface subtypes
14033         and generic formals.
14034         (Derived_Type_Declaration): Add missing support for interface subtypes
14035         and generic formals.
14036         (Analyze_Object_Declaration): If an initialization expression is
14037         present, traverse its subtree and mark all allocators as static
14038         coextensions.
14039         (Add_Interface_Tag_Component): When looking for components that may be
14040         secondary tags, ignore pragmas that can appear within a record
14041         declaration.
14042         (Check_Abstract_Overriding): an inherited function that dispatches on
14043         result does not need to be overriden if the controlling type is a null
14044         extension.
14045         (Mentions_T): Handle properly a 'class attribute in an anonymous access
14046         component declaration, when the prefix is an expanded name.
14047         (Inherit_Component): If the derivation is for a private extension,
14048         inherited components remain visible and their ekind should not be set
14049         to Void.
14050         (Find_Type_Of_Object): In the case of an access definition, always set
14051         Is_Local_Anonymous_Access. We were previously not marking the anonymous
14052         access type of a return object as a local anonymous type.
14053         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14054         range with character literal bounds.
14055         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14056         (Access_Subprogram_Declaration): Indicate that the type declaration
14057         depends on an incomplete type only if the incomplete type is declared
14058         in an open scope.
14059         (Analyze_Subtype_Declaration): Handle properly subtypes of
14060         synchronized types that are tagged, and that may appear as generic
14061         actuals.
14062         (Access_Subprogram_Declaration): An anonymous access to subprogram can
14063         appear as an access discriminant in a private type declaration.
14064         (Add_Interface_Tag_Components): Complete decoration of the component
14065         containing the tag of a secondary dispatch table and the component
14066         containing the offset to the base of the object (this latter component
14067         is only generated when the parent type has discriminants --as documented
14068         in this routine).
14069         (Inherit_Components): Use the new decoration of the tag components to
14070         improve the condition that avoids inheriting the components associated
14071         with secondary tags of the parent.
14072         (Build_Discriminanted_Subtype): Indicate to the backend that the
14073         size of record types associated with dispatch tables is known at
14074         compile time.
14075         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14076         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14077         to include task, protected, and synchronized interfaces as limited
14078         interfaces.
14079         (Process_Discriminants): Remove the setting of
14080         Is_Local_Anonymous_Access on the type of (anonymous) access
14081         discriminants of nonlimited types.
14082         (Analyze_Interface_Type_Declaration): Complete the decoration of the
14083         class-wide entity it is is already present. This situation occurs if
14084         the limited-view has been previously built.
14085         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14086         field.
14087         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14088         Related_Interface.
14089
14090 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14091
14092         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14093         of the type that specify the position of interface tags when the type
14094         inherits discriminated array components from the parent type.
14095         If a component is initialized with a box, check for the presence of a
14096         default expression in its declaration before using its default
14097         initialization procedure.
14098         (Resolve_Record_Aggregate): If a component is box-initialized, and the
14099         component type has a discriminants, create a partial aggregate for it
14100         by copying the discriminants of the component subtype.
14101         Reject attempt to initialize a discriminant with a box.
14102         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14103         associated with dispatch tables is known at compile time.
14104         (Get_Value): If an association in a record aggregate has a box
14105         association, and the corresponding record component has a default
14106         expression, always copy the default expression, even when the
14107         association has a single choice, in order to create a proper
14108         association for the expanded aggregate.
14109
14110 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14111             Robert Dewar  <dewar@adacore.com>
14112
14113         * par-ch12.adb (P_Generic_Associations): The source position of an
14114         Others association is that of the others keyword, not that of the token
14115         that follows the box.
14116         (P_Formal_Type_Definition): Handle formal access types that carry a
14117         not null indicator.
14118
14119         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14120         multiple identifier are present, save Scan_State before scanning the
14121         colon, to ensure that separate trees are constructed for each
14122         declaration.
14123         (P_Identifier_Declarations): For object declaration, set new flag
14124         Has_Init_Expression if initialization expression present.
14125         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14126         Improve NOT NULL error messages
14127
14128 2007-06-06  Robert Dewar  <dewar@adacore.com>
14129
14130         * par-ch4.adb: (P_Name): Recover from literal used as name
14131
14132 2007-06-06  Vincent Celier  <celier@adacore.com>
14133
14134         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14135         defaulted to False.
14136         In the "not" case, recursive call with Complemented set to True.
14137         Do not allow "or" or "and" operators when Complemented is True.
14138
14139 2007-06-06  Vincent Celier  <celier@adacore.com>
14140
14141         * prj.adb (Project_Empty): Gives default value for new component
14142         Libgnarl_Needed
14143
14144         * prj-attr.ads: Minor reformatting
14145
14146         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14147         directory using the untouched casing.
14148         (For_All_Source_Dirs): Idem.
14149
14150         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14151         directories specified with switches -aP.
14152         (Add_Search_Project_Directory): New procedure
14153         (Initialize_Project_Path): Put the directories in table
14154         Search_Directories in the project search path.
14155         (Initialize_Project_Path): For VMS, transform into canonical form the
14156         project path.
14157
14158 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14159
14160         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14161         true if configurable run-time or No_Run_Time is set.
14162         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14163         processing an unit which is not the one being compiled.
14164
14165 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14166
14167         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14168         Replace UC by Ada.UC
14169
14170         * s-bitops.adb: Get rid of System.Pure_Exceptions.
14171         Replace UC by Ada.UC
14172
14173 2007-06-06  Robert Dewar  <dewar@adacore.com>
14174
14175         * scng.adb: (Check_End_Of_Line): Deal with very long lines
14176
14177 2007-06-06  Robert Dewar  <dewar@adacore.com>
14178
14179         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14180         Remove no longer used nodes.
14181
14182 2007-06-06  Javier Miranda  <miranda@adacore.com>
14183             Ed Schonberg  <schonberg@adacore.com>
14184             Robert Dewar  <dewar@adacore.com>
14185
14186         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14187         on obsolescent withed unit in case of limited-withed units.
14188         (Analyze_Compilation_Unit): Add guard to code that removed an
14189         instantiation from visibility, to prevent compiler aborts when
14190         instantiation is abandoned early on.
14191         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14192         current unit being analyzed, and Distinguish local incomplete types
14193         from limited views of types declared elsewhere.
14194         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14195         to state that the class-wide entity is shared by the limited-view
14196         and the full-view.
14197         (Analyze_With_Clause): Improve placement of flag for case of
14198         unimplemented unit.
14199         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14200         manner similar to GNAT.Current_Exception. This is a violation of
14201         restriction (No_Exception_Propagation), and also inhibits the
14202         optimization of local raise to goto.
14203         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14204         and if so set Most_Recent_Exception_Used flag in Opt, and also check
14205         for violation of restriction No_Exception_Propagation.
14206
14207 2007-06-06  Javier Miranda  <miranda@adacore.com>
14208             Hristian Kirtchev  <kirtchev@adacore.com>
14209             Gary Dismukes  <dismukes@adacore.com>
14210
14211         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14212         use of entity Exception_Occurrence if it is not available in the
14213         target run-time.
14214
14215         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14216         concurrent types are declared within an Ada 2005 generic, build their
14217         corresponding record types since they are needed for overriding-related
14218         semantic checks.
14219         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14220         protected type does not implement a task interface or a nonlimited
14221         interface.
14222         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14223         type does not implement a protected interface or a nonlimited interface.
14224         (Single_Task_Declaration, Single_Protected_Declaration): use original
14225         entity for variable declaration, to ensure that debugging information
14226         is correcty generated.
14227         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14228         routines if the expander is not active.
14229         (Analyze_Task_Body): Mark all handlers to stop optimization of local
14230         raise, since special things happen for task exception handlers.
14231
14232         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14233         concurrent types declared within a generic.
14234         (Check_Dispatching_Operation): Do not emit warning about late interface
14235         operations in the context of an instance.
14236         (Check_Dispatching_Call): Remove restriction against calling a
14237         dispatching operation with a limited controlling result.
14238         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14239         Register_Interface_DT_Entry by calls to Register_Primitive.
14240         (Check_Dispatching_Formals): Handle properly a function with a
14241         controlling access result.
14242
14243 2007-06-06  Robert Dewar  <dewar@adacore.com>
14244             Arnaud Charlet  <charlet@adacore.com>
14245
14246         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14247         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14248         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14249         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14250         message when using a VM, since this attribute is not supported.
14251         (Analyze_Record_Representation_Clause): Give unrepped component warnings
14252
14253         * usage.adb: Add new warning for renaming of function return objects
14254         Indicate that -gnatwp and -gnatwP concern front-end inlining
14255         Add line for -gnatyg
14256         Add usage information for -gnatw.c/C
14257
14258 2007-06-06  Robert Dewar  <dewar@adacore.com>
14259             Ed Schonberg  <schonberg@adacore.com>
14260
14261         * sem_ch5.adb
14262         (Find_Var): Do not consider function call in test for infinite loop
14263         warning if warnings set off for function entity.
14264         (One_Bound): Do not create a temporary for a loop bound if it is a
14265         character literal.
14266         (Analyze_Assignment): Traverse the right hand side of an assignment and
14267         mark all allocators as static coextensions.
14268         (Analyze_Assignment): Exempt assignments involving a dispatching call
14269         to a function with a controlling access result from the check requiring
14270         the target to be class-wide.
14271
14272 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14273             Ed Schonberg  <schonberg@adacore.com>
14274             Robert Dewar  <dewar@adacore.com>
14275             Javier Miranda  <miranda@adacore.com>
14276
14277         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14278         chain of coextensions when an allocator serves as the root of such a
14279         chain.
14280         (Propagate_Coextensions): Remove the test for the root being an
14281         allocator.
14282         (Resolve_Allocator): Add condition to ensure that all future decoration
14283         occurs on an allocator node. Add processing and cleanup for static
14284         coextensions.
14285         (Valid_Conversion): If the operand type is the limited view of a
14286         class-wide type, use the non-limited view is available to determine
14287         legality of operation.
14288         (Ambiguous_Character): move to spec, for use elsewhere.
14289         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14290         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14291         character literals.
14292         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14293         Do_Division_Check flag explicitly.
14294         (Resolve_Actuals): If the actual is of a synchronized type, and the
14295         formal is of the corresponding record type, this is a call to a
14296         primitive operation of the type, that is declared outside of the type;
14297         the actual must be unchecked-converted to the type of the actual
14298         (Resolve_Call): Kill all current values for any subprogram call if
14299         flag Suppress_Value_Tracking_On_Call is set.
14300         (Resolve_Type_Conversion): Generate error message the the operand
14301         or target of interface conversions come from a limited view.
14302         (Check_Infinite_Recursion): Ignore generated calls
14303         (Check_Allocator_Discrim_Accessibility): New procedure for checking
14304         that an expression that constrains an access discriminant in an
14305         allocator does not denote an object with a deeper level than the
14306         allocator's access type.
14307         (Resolve_Allocator): In the case of an allocator initialized by an
14308         aggregate of a discriminated type, check that associations for any
14309         access discriminants satisfy accessibility requirements by calling
14310         Check_Allocator_Discrim_Accessibility.
14311         (Resolve_Equality_Op): Handle comparisons of anonymous access to
14312         subprogram types in the same fashion as other anonymous access types.
14313         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14314         message that is not a continuation message.
14315         (Resolve_Type_Conversion): Add missing support for conversion to
14316         interface type.
14317         (Resolve_Actuals): Introduce a transient scope around the call if an
14318         actual is a call to a function returning a limited type, because the
14319         resulting value must be finalized after the call.
14320         (Resolve_Actuals): If the call was given in prefix notations, check
14321         whether an implicit 'Access reference or implicit dereference must be
14322         added to make the actual conform to the controlling formal.
14323
14324 2007-06-06  Robert Dewar  <dewar@adacore.com>
14325             Javier Miranda  <miranda@adacore.com>
14326
14327         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14328         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14329         overriding of an inherited private subprogram now there is no need to
14330         inherit its dispatching slot and reduce the size of the dispatch table.
14331         Set_All_DT_Position now ensures that the same slot is now assigned to
14332         both entities. This is required to statically build the dispatch table.
14333         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14334         of calling Set_All_DT_Position to re-evaluate the position of the
14335         entries in the dispatch table. Such reevaluation is not desired if
14336         the tagged type is already frozen.
14337
14338 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14339             Gary Dismukes  <dismukes@adacore.com>
14340             Robert Dewar  <dewar@adacore.com>
14341             Javier Miranda  <miranda@adacore.com>
14342
14343         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14344         reference acts as an lvalue when the attribute name modifies the prefix
14345         (Is_Coextension_Root): New routine.
14346         (Mark_Static_Coextensions): New routine.
14347         (Type_Access_Level): Revise code for checking the level of the
14348         anonymous access type of a return object.
14349         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14350         (Matches_Prefixed_View_Profile): Remove the no longer necessary
14351         retrieval of the corresponding controlling record type.
14352         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14353         concurrent types declared within a generic as well as class wide types.
14354         Emit a mode incompatibility error whenever a protected entry or routine
14355         override an interface routine whose first parameter is not of mode
14356         "out", "in out" or access to variable.
14357         (Overrides_Synchronized_Primitive): Rename to
14358         Find_Overridden_Synchronized_Primitive.
14359         (Collect_Interface_Components): New subprogram that collects all the
14360         components of a tagged record containing tags of secondary dispatch
14361         tables.
14362         (Add_Global_Declaration): New procedure
14363         (Abstract_Interface_List): Handle properly the case of a subtype of a
14364         private extension.
14365         (Type_Access_Level): In the case of a type whose parent scope is a
14366         return statement, call Type_Access_Level recursively on the enclosing
14367         function's result type to determine the level of the return object's
14368         type.
14369         (Build_Elaboration_Entity): Build name of elaboration entity from the
14370         scope chain of the entity, rather than the unit name of the file name.
14371         (Check_Nested_Access): New procedure.
14372         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14373         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14374         (Get_Renamed_Entity): Utility routine for performing common operation
14375         of chasing the Renamed_Entity field of an entity.
14376
14377 2007-06-06  Robert Dewar  <dewar@adacore.com>
14378
14379         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14380         elaboration model
14381         (Check_A_Call): Add check for entry call which was causing blowup
14382
14383 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14384
14385         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14386         special code on ia64-vms to handle major incompatibilities between the
14387         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14388         this routine with a very different set of arguments and expectations on
14389         the return value.
14390
14391 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14392
14393         * socket.c (__gnat_close_signalling_fd): New function.
14394         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14395         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14396         New supporting functions for task safe Netdb operations.
14397
14398 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14399             Olivier Hainque  <hainque@adacore.com>
14400
14401         * a-except-2005.ads, a-except-2005.adb
14402         (Raise_From_Controlled_Operation): New procedure in
14403         (private part of) Ada.Exceptions (standard runtime version). Used to
14404         provide informational exception message when Program_Error is raised as
14405         a result of an Adjust or Finalize operation propagating an exception.
14406         (Rmsg_28): Fix description for E.4(18) check.
14407         (Raise_Current_Excep): Call Debug_Raise_Exception just before
14408         propagation starts, to let debuggers know about the event in a reliable
14409         fashion.
14410         Take the address of E and dereference to make sure it is homed on stack
14411         and prevent the stores from being deleted, necessary for proper
14412         debugger behavior on "break exception" hits.
14413         (Local_Raise): Moved to System.Exceptions
14414
14415         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14416         exception message from the current occurrence and raise Program_Error
14417         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14418
14419 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14420             Arnaud Charlet  <charlet@adacore.com>
14421
14422         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14423         lock, if needed.
14424
14425         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14426         priority associated to a lock.
14427
14428         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14429         assertion to take into account case of no abort restriction.
14430         (Initialize_Protection_Entries): Add initialization for the field
14431         New_Ceiling associated to the protected object.
14432         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14433         needed.
14434
14435         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14436         since this function needs to be set consistently with Update_Exception.
14437
14438         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14439         since this function needs to be set consistently with Update_Exception.
14440
14441         * s-taskin.ads: Update comments on
14442         Interrupt_Server_Blocked_On_Event_Flag.
14443         (Unbind_Handler): Fix handling of server_task wakeup
14444         (Server_Task): Set self's state so that Unbind_Handler can take
14445         appropriate actions.
14446         (Common_ATCB): Now use a constant from System.Parameters to determine
14447         the max size of the Task_Image field.
14448
14449         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14450         Initialize_Analyzer function.
14451         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14452         take into account case of no abort restriction.
14453         ([Vulnerable_]Complete_Master): Modify assertion.
14454
14455         * s-tataat.adb (Finalize): Use the nestable versions of
14456         Defer/Undefer_Abort.
14457
14458         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14459
14460         * s-tpobop.ads: Update comments.
14461
14462         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14463         of locking the object manually, to avoid inconsistencies between
14464         Lock/Unlock_Entry assertions.
14465
14466         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14467         terminating
14468         application and System.Parameters.No_Abort is True.
14469         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14470         (Unbind_Handler): Fix handling of server_task wakeup
14471         (Server_Task): Set self's state so that Unbind_Handler can take
14472         appropriate actions.
14473
14474 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14475
14476         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14477         declarations instead of an explicit null body, for conciseness.
14478
14479 2007-06-06  Robert Dewar  <dewar@adacore.com>
14480
14481         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14482         illegal aggregate and the type is still Any_Composite.
14483         (Subtypes_Statically_Match): Fix problem of empty discriminant list
14484
14485 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14486
14487         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14488         to prevent subsequent expansion.
14489
14490 2007-06-06  Robert Dewar  <dewar@adacore.com>
14491
14492         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14493
14494 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14495             Robert Dewar  <dewar@adacore.com>
14496
14497         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14498         exceptions.
14499         (Write_Itype): Handle case of string literal subtype, which
14500         comes up in this context.
14501         (Update_Itype): when debugging expanded code, update sloc of itypes
14502         associated with defining_identifiers and ranges, for gdb use.
14503         (Sprint_Node_Actual): Add static keyword to object or exception
14504         declaration output if Is_Statically_Allocated is True.
14505         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14506         or task body, so that the tree carries the proper Sloc information for
14507         debugging use.
14508         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14509
14510 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14511
14512         * s-secsta.adb (Chunk): Ensure this object has a static size known at
14513         compile time, to avoid dynamic memory allocation
14514         (Elaboration code): Only use dynamic memory allocation when needed.
14515
14516 2007-06-06  Quentin Ochem  <ochem@adacore.com>
14517
14518         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14519         "Overflow_Guard".
14520         (Stack_Analyzer): Added field "Overflow_Guard"
14521         (Task_Result): Added field "Overflow_Guard".
14522         (Index_Str): New constant.
14523         (Task_Name_Str): New constant.
14524         (Actual_Size_Str): New constant.
14525         (Pattern_Array_Element_Size): New constant.
14526         (Get_Usage_Range): New subprogram.
14527         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14528         Now align the output.
14529         Added comments.
14530         (Initialize): Added value for Overflow_Guard.
14531         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14532         Update the value of the overflow guard according to the actual
14533         beginning of the pattern array.
14534         (Initialize_Analyzer): Added parameter Overflow_Guard.
14535         Take this parameter into accound when computing the max size.
14536         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14537         (Report_Result): Removed extra useless procedure.
14538         Updated call to Output_Result.
14539         Moved full computation of the Task_Result here.
14540
14541 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14542
14543         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14544         Thread_Blocking_IO, always True by default, set False on a per-runtime
14545         basis.
14546         Add Windows-specific constants
14547         Add new constant Need_Netdb_Buffer.
14548         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14549         not, whether to use getXXXbyYYY_r.
14550
14551         * gsocket.h: Add new constant Need_Netdb_Buffer.
14552         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14553         not, whether to use getXXXbyYYY_r.
14554
14555 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14556
14557         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14558         than their first call.
14559         Add type Dummy_Communication_Block used in the generation of the pre-
14560         defined dispatching primitive _disp_asynchronous_select.
14561         (Storage_Element): Put Pragma Universal_Aliasing on it.
14562
14563 2007-06-06  Vincent Celier  <celier@adacore.com>
14564
14565         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14566         function.
14567
14568         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14569         letter if it is not followed by a '/' or a '\'.
14570         (Windows): New Boolean function
14571
14572         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14573         Ada 2005.
14574         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14575         drive letter.
14576         (Containing_Directory): Raise Use_Error when the directory is a root
14577         directory.
14578         (Extension): When returning the result, use a conversion to Result_Type,
14579         not a qualification.
14580
14581 2007-06-06  Robert Dewar  <dewar@adacore.com>
14582
14583         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14584         (Set_Style_Check_Options): Recognize new -gnatyg style switch
14585
14586         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14587         Warn_On_Non_Local_Exception to False, to turn off warnings for
14588         No_Exception_Propagation in ZFP runtime.
14589         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14590         back-ends.
14591         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14592
14593 2007-06-06  Vincent Celier  <celier@adacore.com>
14594
14595         * switch-b.adb (Scan_Binder_Switches): Add processing for new
14596         switches -R and -Z
14597
14598         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14599         (Scan_Make_Switches): Recognize new switch -aP
14600
14601 2007-06-06  Matthew Gingell  <gingell@adacore.com>
14602             Jose Ruiz  <ruiz@adacore.com>
14603
14604         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14605         VxWorks task descriptor in the Ada run time, call a C subprogram
14606         (__gnat_get_stack_info) that extracts the required information.
14607
14608         * sysdep.c: Back out temporary lynxos workaround.
14609         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14610         time the stack information associated to the currently executing task.
14611         Only VxWorks systems require this function.
14612
14613 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14614
14615         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14616         add the stack bias if the offset is computed from a frame address.
14617         (__gnat_backtrace): Adjust for above change.
14618
14619 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14620
14621         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14622         PE_Non_Transportable_Actual.
14623         (By_Descriptor_Last): New constant.
14624         (By_Copy_Return): Likewise.
14625
14626 2007-06-06  Vincent Celier  <celier@adacore.com>
14627
14628         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14629         is.
14630
14631         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14632         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14633         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14634         Add missing comment for /OPTIMIZE=SPACE
14635         Add entry for OPTIMIZE=SPACE
14636         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14637         Add documentation for new qualifiers corresponding to -gnatw.c/.C
14638
14639 2007-06-06  Vincent Celier  <celier@adacore.com>
14640             Robert Dewar  <dewar@adacore.com>
14641
14642         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14643         -gnatw.C)
14644
14645         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14646         Document gnatbind switch -a
14647         (case Constructions): Document that variables declarations are allowed
14648         for previously declared variables.
14649         Fix external lib project example
14650         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14651         Indicate that "#if not X or Y then" is not allowed in input files to
14652         gnatprep.
14653         Document gnatw.x and gnatw.X warning flags
14654         Mention -Winline switch to activate warnings when back-end inlining is
14655         ineffective.
14656         Add gnatcheck rule descriptions
14657         Describe how to use the GNAT driver to call a tool on a closure.
14658         Describe how to run project-wide checks or metrics.
14659         Document gnatbind's -R option
14660         Updated to account for Ada 2005 support
14661
14662         * gnat_rm.texi (Case Construction): Allow variable declarations for
14663         previously declared variables.
14664         (Representation Clauses and Pragmas): Lift restriction on alignment
14665         clauses for record types.
14666         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14667         Document No_Exception_Propagation restriction
14668         Document No_Body pragma
14669         Updated to account for Ada 2005 support; corrected some typos
14670         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14671
14672         * gnat-style.texi: Make it clear that we never use mode IN for
14673         procedures or functions
14674
14675         * ug_words: Add entries for -gnatw.x and -gnatw.X
14676         Add entries for -gnatw.c/.C
14677
14678 2007-06-06  Pascal Obry  <obry@adacore.com>
14679             Vincent Celier  <celier@adacore.com>
14680
14681         * makegpr.adb (Add_Archive_Path): Use untouched object and library
14682         dirs and library name.
14683         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14684         comments.
14685         (Build_Library): Idem.
14686         (Compile_Individual_Sources): Idem.
14687         (Compile_Link_With_Gnatmake): Idem.
14688         (Compile_Sources): Idem.
14689         (Get_Imported_Directories): Idem.
14690         (Link_Executables): Idem. Same change for the executable dir.
14691         (Check_Compilation_Needed): C_Source_Path new variable containing
14692         the canonical form of Source_Path to check against the source names
14693         in the dependency file.
14694         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14695         verbose mode, display the name of the object directory we're changing
14696         to.
14697         (Saved_Switches): New name of table X_Switches
14698         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
14699         (Usage): New line for switch -aP
14700         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
14701         testing if a directory should be added to the search path.
14702
14703 2007-06-06  Javier Miranda  <miranda@adacore.com>
14704
14705         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
14706         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
14707         declaration after freezing point of all its associated tagged types;
14708         otherwise such types are frozen too early.
14709
14710 2007-06-06  Robert Dewar  <dewar@adacore.com>
14711
14712         * a-reatim.adb: Documentation addition
14713
14714         * g-cgideb.adb: Minor code reorganization
14715
14716         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
14717         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
14718         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
14719
14720         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
14721         function.  Change name New_Scope to Push_Scope
14722         (Get_Debug_Flag_K): Remove unused obsolete function.
14723
14724         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
14725         Push_Scope.
14726
14727         * makeusg.adb: Update Copyright notice
14728         Add line for switch -aP
14729
14730         * makeusg.adb: Fix wording of some usage messages
14731
14732         * s-assert.adb (Raise_Assert_Failure): Add call to
14733         Debug_Raise_Assert_Failure.
14734
14735         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
14736         (2, Standard'Alignment) for compatibility with AAMP (where alignment
14737         is restricted to 1).
14738
14739         * s-wchjis.adb: Remove use of System.Pure_Exceptions
14740
14741         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
14742         node location to No_Location when we're not debugging the expanded
14743         code.
14744
14745 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
14746
14747         * misc.c (enumerate_modes): Consider log2_b to always be one.
14748
14749 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
14750
14751         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
14752
14753 2007-05-02  Pascal Obry  <obry@adacore.com>
14754
14755         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
14756         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
14757         encoding support of Stream_IO.
14758         (Write_Unit): Idem.
14759
14760         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
14761         filename and corresponding encoding to match the OS requirement.
14762         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
14763         routine will fail on specific devices like CON: AUX: ...
14764
14765         PR ada/29856: Add missing braces
14766
14767 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14768
14769         PR ada/31660
14770         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
14771
14772 2007-04-21  Jan Hubicka  <jh@suse.cz>
14773
14774         * misc.c (gnat_expand_body): Don't call target for destructors,
14775         avoid redundant check on syntax errors.
14776
14777 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14778
14779         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
14780         instead of checking GIMPLE_STMT_P in chain_next.
14781
14782 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
14783
14784         PR ada/31576
14785         * system-linux-alpha.ads: Disable constant condition warning for the
14786         Default_Bit_Order variable.
14787         * system-linux-s390.ads: Likewise.
14788         * system-linux-s390x.ads: Likewise.
14789         * system-linux-sparc.ads: Likewise.
14790
14791 2007-04-06  Javier Miranda  <miranda@adacore.com>
14792             Matt Heaney  <heaney@adacore.com>
14793             Robert Dewar  <dewar@adacore.com>
14794
14795         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
14796         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
14797         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
14798         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
14799         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
14800         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
14801         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
14802         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
14803         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
14804         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
14805         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
14806         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
14807         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
14808         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
14809         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
14810         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
14811         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
14812         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
14813         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
14814         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
14815         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
14816         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
14817         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
14818         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
14819         s-taprop-tru64.adb, s-taprop-irix.adb,
14820         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
14821         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
14822         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
14823         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
14824         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
14825         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
14826         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
14827         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
14828         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
14829         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
14830         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
14831         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
14832         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
14833         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
14834         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
14835         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
14836         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
14837         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
14838         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
14839         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
14840         access types.
14841         Update documentation.
14842         Minor rewording.
14843
14844 2007-04-06  Robert Dewar  <dewar@adacore.com>
14845
14846         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
14847         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14848         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
14849         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
14850         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
14851         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
14852         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
14853         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
14854         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
14855         system-hpux-ia64.ads, targparm.adb,
14856         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
14857
14858         * system.ads: Move Functions_Return_By_DSP to obsolete section,
14859         kept for bootstrap purposes only.
14860
14861 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
14862
14863         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
14864         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
14865         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
14866         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
14867
14868 2007-04-06  Robert Dewar  <dewar@adacore.com>
14869
14870         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
14871         (Local_Raise): New dummy procedure called when a raise is converted
14872         to a local goto. Used for debugger to detect that the exception
14873         is raised.
14874
14875         * debug.adb: Document new d.g flag (expand local raise statements to
14876         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
14877
14878         * exp_sel.adb: Use Make_Implicit_Exception_Handler
14879
14880         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
14881         suppress warnings for unused handlers.
14882         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
14883         warnings for raise statements not handled locally.
14884         (Get_RT_Exception_Entity): New function
14885         (Get_Local_Call_Entity): New function
14886         (Find_Local_Handler): New function
14887         (Warn_If_No_Propagation): New procedure
14888         (Expand_At_End_Handler): Call Make_Implicit_Handler
14889         (Expand_Exception_Handlers): Major additions to deal with local handlers
14890         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
14891         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
14892         for local raise
14893
14894         * exp_ch11.ads (Get_RT_Exception_Entity): New function
14895         (Get_Local_Call_Entity): New function
14896
14897         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
14898         of restrictions that the binder will never suggest adding.
14899
14900         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
14901         to No_Elist.
14902
14903         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
14904         be with'ed in the presence of pragma Restriction
14905         (No_Exception_Propagation).
14906
14907         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
14908
14909         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
14910         parameter, then the handler is not a suitable target for a local raise,
14911         and this is a violation of restriction No_Exception_Propagation.
14912         (Analyze_Handled_Statements): Analyze choice parameters in exception
14913         handlers before analyzing statement sequence (needed for proper
14914         detection of local raise statements).
14915         (Analyze_Raise_Statement): Reraise statement is a violation of the
14916         No_Exception_Propagation restriction.
14917
14918         * s-rident.ads: Add new restriction No_Exception_Propagation
14919
14920         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
14921         function, like Make_Exception_Handler but sets Local_Raise_Statements
14922         to No_List.
14923         (Add_Unique_Serial_Number): Deal with case where this is called during
14924         processing of configuration pragmas.
14925
14926 2007-04-06  Thomas Quinot  <quinot@adacore.com>
14927             Pat Rogers  <rogers@adacore.com>
14928             Pascal Obry  <obry@adacore.com>
14929
14930         * g-stsifd-sockets.adb: New file.
14931
14932         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
14933         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
14934         g-socthi-vms.adb: Move signalling
14935         fd management to a nested package, so that they can conveniently be
14936         moved to a subunit that is shared across Windows, VMS, and VxWorks
14937         (Ada implementation) or completed with imported bodies from socket.c
14938         (UNIX case).
14939         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
14940         subprograms.
14941         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
14942         the signalling file descriptor.
14943         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
14944         signalling file descriptor.
14945         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
14946         instead of creating a pair of sockets for signalling here.
14947
14948         * g-socthi.adb: Ditto.
14949         Set the runtime process to ignore SIGPIPEs on platforms that support
14950         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14951
14952         * g-socthi-mingw.adb: Ditto.
14953         (WS_Version): Use Windows 2.2.
14954         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14955
14956         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
14957         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14958
14959         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
14960         added GNAT byte swapping facility
14961         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
14962
14963         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
14964
14965         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
14966         New subprograms.
14967         (__gnat_create_signalling_fds): New subprogram.
14968         Set the runtime process to ignore SIGPIPEs on platforms that support
14969         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14970
14971 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
14972             Vincent Celier  <celier@adacore.com>
14973
14974         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
14975         New version of Ada.Calendar which supports the new upper bound of Ada
14976         time (2399-12-31 86_399.999999999).
14977         The following modifications have been made to the package:
14978          - New representation of time as count of nanoseconds since the start of
14979            Ada time (1901-1-1 0.0).
14980          - Target independent Split and Time_Of routines which service both
14981            Ada 95 and Ada 2005 code.
14982          - Target independent interface to the Ada 2005 children of Calendar.
14983          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
14984          - Handling of non-leap centenial years.
14985          - Updated clock function.
14986          - Updated arithmetic and comparison operators.
14987
14988         * a-caldel.adb (To_Duration): Add call to target independent routine in
14989         Ada.Calendar to handle the conversion of time to duration.
14990
14991         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
14992         (UTC Offset).
14993         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
14994         set off to 0.
14995         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
14996         targets do not have a natural time zone, GMT is used as a default.
14997         (__gnat_get_task_options): New.
14998
14999         * a-direct.adb (Modification_Time): Add with and use clauses for
15000         Ada.Calendar and Ada.
15001         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15002         since it is no longer needed.
15003         (Duration_To_Time): Removed.
15004         (OS_Time_To_Long_Integer): Removed.
15005         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15006         Formatting Time_Of routines which automatically handle time zones,
15007         buffer periods and leap seconds.
15008
15009         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15010         target independent routines in Ada.Calendar.
15011
15012         * a-calfor.ads, a-calfor.adb:
15013         Code cleanup and addition of validity checks in various routines.
15014         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15015         Ada.Calendar.
15016
15017         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15018         independent routine in Ada.Calendar.
15019
15020 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15021
15022         * adaint.c:
15023         (convert_addresses): Adjust prototype and dummy definition to expect an
15024          extra file_name argument.
15025
15026         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15027         filling the now expected file_name argument with the appropriate
15028         argv[0] expansion.
15029         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15030         (tracebk): Array of void * instead of char *, corresponding to what
15031          convert_addresses expects.
15032         (exename): New static global, to hold the executable file name to be
15033         used in all convert_addresses invocations.
15034         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15035         change.
15036         (__gnat_gmem_a2l_initialize): Resolve exename.
15037         (__gnat_convert_addresses): Use exename as the convert_addresses
15038         file_name argument.
15039
15040         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15041         "convert_addresses", now expecting a filename argument. Import the
15042         necessary entities to compute the filename to use and pass it to
15043         convert_addresses.
15044
15045 2007-04-06  Matt Gingell  <gingell@adacore.com>
15046
15047         * system-aix.ads: Back out previous change.
15048         (Functions_Return_By_DSP): Removed
15049
15050 2007-04-06  Pascal Obry  <obry@adacore.com>
15051
15052         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15053         or the monotonic used by Ada.Real_Time) to compute the sleep duration
15054         on Windows.
15055
15056 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15057
15058         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15059         function. Its value changes in different VxWorks versions, and it is
15060         now handled by the function __gnat_get_task_options.
15061
15062         * s-taprop-vxworks.adb (Create_Task): Call the function
15063         __gnat_get_task_options to get the required options for creating a task.
15064
15065 2007-04-06  Pascal Obry  <obry@adacore.com>
15066             Thomas Quinot  <quinot@adacore.com>
15067
15068         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15069         dealing with filename.
15070         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15071         filename from a standard string to a wide-string depending on the
15072         encoding value.
15073         (__gnat_freopen): Idem.
15074         (__gnat_current_time): New function (wrapper for time(3) standard C
15075         function).
15076
15077         * g-os_lib.ads (Current_Time): New function. Returns the current
15078         system time as an OS_Time value.
15079
15080         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15081         (Monotonic_Clock): Same.
15082
15083 2007-04-06  Quentin Ochem  <ochem@adacore.com>
15084
15085         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15086         not on a natural.
15087         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15088
15089 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15090
15091         * a-retide.adb: Add elaboration code to ensure that the tasking run
15092         time is initialized when using delay operations even when no task is
15093         created.
15094
15095 2007-04-06  Javier Miranda  <miranda@adacore.com>
15096
15097         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15098         component Num_Prim_Ops.
15099         (Set_Num_Prim_Ops): Removed.
15100         Remove all the assertions because all the routines of this
15101         package are inline always.
15102         (Get_Offset_Index): Add support to primary dispatch tables.
15103         Move the documentation about the dispatch table to a-tags.ads
15104         (Set_External_Tag): Removed
15105         (Inherit_TSD): Removed.
15106         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15107         moved to a-tags.ads
15108         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15109         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15110         of the TSD field "Table" because this field has been renamed to
15111         "Ifaces_Table".
15112         (Inherit_CPP_DT): Removed.
15113         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15114         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15115         declarations have been moved to a-tags.ads
15116         (Check_Size): Removed.
15117         (Expanded_Name): Updated to get access to the new field of TSD
15118         containing the address of the expanded name.
15119         (Get_Access_Level/Set_Access_Level): Removed.
15120         (Get_Predefined_Prim_Op_Address): Removed.
15121         (Set_Predefined_Prim_Op_Address): Removed.
15122         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15123         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15124         (Set_Expanded_Name): Removed.
15125         (Inherit_DT): Removed.
15126         (Inherit_CPP_DT): Removed.
15127         (Set_RC_Offset): Removed.
15128         (Set_TSD): Removed.
15129         (Base_Address): New function that displaces "this" to point to the base
15130         of the object (that is, to point to the primary tag of the object).
15131
15132 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15133             Javier Miranda  <miranda@adacore.com>
15134
15135         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15136         anonymous access component, do not create a master_id if type already
15137         has one, as may happen if the type is a subcomponent of a packed array
15138         type.
15139         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15140         Initialize_Tag): Remove code associated with the old CPP pragmas.
15141         CPP_Virtual and CPP_Vtable are no longer supported.
15142         (Build_Offset_To_Top_Internal): Add support for concurrent record types
15143         (Build_Offset_To_Top_Functions): Add support for concurrent record types
15144         (Freeze_Record_Type): Remove call to
15145         Init_Predefined_Interface_Primitives.
15146         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15147         code required to initialize the tags of the secondary dispatch tables.
15148         This leaves the algoritm more clear.
15149         (Init_Secondary_Tags): Add support for concurrent record types
15150         (Make_Predefined_Primitive_Specs): Code cleanup.
15151         (Predefined_Primitive_Bodies): Code cleanup.
15152         (Build_Master_Renaming): New local subprogram.
15153         (Expand_N_Full_Type_Declaration): Build the master_id associated with
15154         anonymous access to task type components.
15155         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15156         subtype indication are resolved during analysis, and must not be done
15157         here.
15158         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15159
15160 2007-04-06  Geert Bosch  <bosch@adacore.com>
15161             Ed Schonberg  <schonberg@adacore.com>
15162             Javier Miranda  <miranda@adacore.com>
15163             Bob Duff  <duff@adacore.com>
15164
15165         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15166         for conversion of a Float_Type'Truncation to integer.
15167
15168         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15169         check if a node is an attribute that can be handled directly by the
15170         back end.
15171         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15172         attributes that can be handled directly by the back end.
15173         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15174         use new predicate Is_Access_Protected_Subprogram_Type.
15175         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15176         and Unchecked_Union if it is generated as part of the default  Output
15177         procedure for a type with default discriminants.
15178         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15179         if we are compiling under restriction No_Dispatching_Calls.
15180         (Constrained): Use Underlying_Type, in case the type is private without
15181         discriminants, but the full type has discriminants.
15182         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15183         call to Build_Get_Access_Level.
15184         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15185         interface objects requires a call to the run-time subprogram that
15186         returns the base address of the object.
15187         (Valid_Conversion): Improve error message on illegal attempt to store
15188         an anonymous access to subprogram value into a record component.
15189
15190         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15191         null".
15192         (Simplify_Type_Conversion): New procedure that performs simplification
15193         of Int_Type (Float_Type'Truncation (X)).
15194         (Resolve_Type_Conversion): Call above procedure after resolving operand
15195         and before performing checks. This replaces the existing ineffective
15196         code in Exp_Ch4.
15197         (Set_String_Literal_Subtype): When creating the internal static lower
15198         bound subtype for a string literal, use a newly created copy of the
15199         subtree representing the lower bound.
15200         (Resolve_Call): Exclude build-in-place function calls from transient
15201         scope treatment. Update comments to describe this exception.
15202         (Resolve_Equality_Op): In case of dispatching call check violation of
15203         restriction No_Dispatching_Calls.
15204         (Resolve_Call): If the call returns an array, the context imposes the
15205         component type of the array, and the function has one non-defaulted
15206         parameter, rewrite the call as the indexing of a call with a single
15207         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15208         in prefix form.
15209         (Resolve_Actuals): If an actual is an allocator for an access parameter,
15210         the master of the created object is the innermost enclosing statement.
15211         (Remove_Conversions): For a binary operator, check if type of second
15212         formal is numeric, to check if an abstract interpretation is present
15213         in the case of exponentiation as well.
15214
15215 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15216             Bob Duff  <duff@adacore.com>
15217
15218         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15219         copying a parameter list in a call, set properly the First_Named_Formal
15220         and Next_Named_Formal fields in the new list and in the enclosing call.
15221         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15222         names, to ease typing in the debugger. Improve comments.
15223         (Watch_Node): New variable, intended to be set in the debugger.
15224         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15225         called when the watched node is created.
15226         (New_Node_Debugging_Output): Combined version of local procedures
15227         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15228         with a parameter so that conditional breakpoints like "if Node = 12345"
15229         work.
15230         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15231         Add Elist1 function
15232
15233 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15234             Ed Schonberg  <schonberg@adacore.com>
15235             Gary Dismukes  <dismukes@adacore.com>
15236
15237         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15238         required for a conversion between two access-to-unconstrained-array
15239         types.
15240         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15241         to discriminant constraints on discriminant objects. This rule must
15242         apply as well to discriminants of protected types in private components.
15243         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15244         object of a null-excluding access type then don't require the
15245         the object declaration to have an expression and don't emit a
15246         run-time check.
15247
15248 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15249             Eric Botcazou  <botcazou@adacore.com>
15250
15251         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15252         and made constant.
15253
15254         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15255         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15256         carry any.
15257
15258         * fe.h (Compiler_Abort): Add third parameter.
15259
15260         * misc.c (internal_error_function): Build third argument from current
15261         input location and pass it to Compiler_Abort.
15262
15263 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
15264
15265         * cstand.adb (Create_Standard): When the target's storage unit size is
15266         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15267         Standard_String.
15268
15269 2007-04-06  Nicolas Roche  <roche@adacore.com>
15270
15271         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15272         absolute path can have the following form: device:/a/b. In this case
15273         '/' should be inserted between the path and the filename.
15274
15275 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15276             Eric Botcazou  <botcazou@adacore.com>
15277
15278         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15279         VAR_DECL to a CONST_DECL we make for a public constant when we know the
15280         corresponding definition has created the so made visible variable.
15281         Handle anonymous access to protected subprogram.
15282         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15283         object with an address clause volatile.  Re-enable original fix.
15284         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15285         too.
15286         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15287         associated with either the Equivalent or Root type, instead of the
15288         naked type node.
15289         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15290         subtree for every field of a global record type.
15291         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15292         discriminants, invoke again variable_size on its newly computed sizes.
15293
15294 2007-04-06  Robert Dewar  <dewar@adacore.com>
15295             Thomas Quinot  <quinot@adacore.com>
15296             Ed Schonberg  <schonberg@adacore.com>
15297             Bob Duff  <duff@adacore.com>
15298
15299         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15300         (Next_Component_Or_Discriminant): New function and procedure
15301         (First_Index, First_Literal, Master_Id,
15302         Set_First_Index, Set_First_Literal, Set_Master_Id):
15303         Add missing Ekind assertions.
15304         (Is_Access_Protected_Subprogram_Type): New predicate.
15305         (Has_RACW): New entity flag, set on package entities to indicate that
15306         the package contains the declaration of a remote accecss-to-classwide
15307         type.
15308         (E_Return_Statement): This node type has the Finalization_Chain_Entity
15309         attribute, in case the result type has controlled parts.
15310         (Requires_Overriding): Add this new flag, because "requires
15311         overriding" is subtly different from "is abstract" (see AI-228).
15312         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15313         Is_Abstract_Type. Make sure these are called only when appropriate.
15314         (Has_Pragma_Unreferenced_Objects): New flag
15315
15316         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15317         class-wide, the tag of the right-hand side must be an exact match, not
15318         an ancestor of that of the object on left-hand side.
15319         (Move_Activation_Chain): New procedure to create the call to
15320         System.Tasking.Stages.Move_Activation_Chain.
15321         (Expand_N_Extended_Return_Statement): Generate code to call
15322         System.Finalization_Implementation.Move_Final_List at the end of a
15323         return statement if the function's result type has controlled parts.
15324         Move asserts to Build_In_Place_Formal.
15325         (Move_Final_List): New function to create the call statement.
15326         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15327         tagged type, replace generation of call to the run-time subprogram
15328         CW_Membership by call to Build_CW_Membership.
15329         (Expand_N_Return_Statement): Replace generation of call to the run-time
15330         subprogram Get_Access_Level by call to Build_Get_Access_Level.
15331         (Expand_N_Simple_Function_Return): Replace generation of call to the
15332         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15333
15334         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15335         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15336         access to protected operations.
15337         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15338         master and chain actual parameters to a build-in-place function call
15339         involving tasks.
15340         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15341         statement.
15342         (Make_Build_In_Place_Call_In_Allocator,
15343         Make_Build_In_Place_Call_In_Anonymous_Context,
15344         Make_Build_In_Place_Call_In_Assignment,
15345         Make_Build_In_Place_Call_In_Object_Declaration): Call
15346         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15347         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15348         stubbed procedure with a null body, replace the call with a null
15349         statement without using the full inlining machinery, for efficiency
15350         and to avoid invalid values in source file table entries.
15351
15352         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15353         renamings of calls to build-in-place functions.
15354
15355         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15356         provides the functionality of RTE_Available to record components.
15357         (RTU_Entity): The function Entity has been renamed to RTU_Entity
15358         to avoid undesired overloading.
15359         (Entity): New subprogram that returns the entity for the referened
15360         unit. If this unit has not been loaded, it returns Empty.
15361         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15362         Remove no longer used entities.
15363         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15364         (RE_Type_Specific_Data): New entity.
15365         (RE_Move_Any_Value): New entity.
15366         (RE_TA_A, RE_Get_Any_Type): New entities.
15367         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15368          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15369          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15370         (Entity): New subprogram that returns the entity for the referened
15371         unit. If this unit has not been loaded, it returns Empty.
15372         (RTE): Addition of a new formal that extends the search to the scopes
15373         of the record types found in the chain of the package.
15374
15375         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15376         "abstract subprograms must be visible" message, whether or not the type
15377         is an interface; that is, remove the special case for interface types.
15378         (Analyze_Function_Return): Remove error message "return of task objects
15379         is not yet implemented" because this is now implemented.
15380         (Create_Extra_Formals): Add the extra master and activation chain
15381         formals in case the result type has tasks.
15382         Remove error message "return of limited controlled objects is not yet
15383         implemented".
15384         (Create_Extra_Formals): Add the extra caller's finalization list formal
15385         in case the result type has controlled parts.
15386         (Process_Formals): In case of access formal types there is no need
15387         to continue with the analysis of the formals if we already notified
15388         errors.
15389         (Check_Overriding_Indicator): Add code to check overriding of predefined
15390         operators.
15391         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15392         flags for formals that do not require them,.
15393         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15394         hidden entity is use visible or directly visible.
15395         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15396         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15397         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15398         New_Overloaded_Entity): Split Is_Abstract flag into
15399         Is_Abstract_Subprogram and Is_Abstract_Type.
15400
15401         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15402         a return statement's finalization list to the caller's list, used for
15403         build-in-place functions with result type with controlled parts.
15404         Remove no longer used entities.
15405
15406         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15407         longer needed, because the full type is now limited, and therefore a
15408         pass-by-reference type.
15409         (Foreign_Task_Level): New constant.
15410
15411         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15412         move tasks from the activation chain belonging to a return statement to
15413         the one passed in by the caller, and update the master to the one
15414         passed in by the caller.
15415         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15416         of unactivated tasks, so we don't kill the ones that are being returned
15417         by a build-in-place function.
15418         (Create_Task): Ignore AI-280 for foreign threads.
15419
15420 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15421             Robert Dewar  <dewar@adacore.com>
15422             Bob Duff  <duff@adacore.com>
15423             Gary Dismukes  <dismukes@adacore.com>
15424
15425         * errout.adb (Unwind_Internal_Type): Use predicate
15426         Is_Access__Protected_Subprogram_Type.
15427
15428         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15429         (Freeze_Entity, packed array case): Do not override explicitly set
15430         alignment and size clauses.
15431         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
15432         the enclosing subprogram is a child unit body that acts as a spec.
15433         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15434         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15435         Remove all code for DSP option
15436
15437         * layout.adb (Layout_Record_Type): Use First/
15438         Next_Component_Or_Discriminant
15439         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15440         to handle properly the anonymous access case.
15441
15442         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15443         for all access attributes, because overload resolution should work the
15444         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15445         causes the error message for the ambiguous "X'Access = Y'Access" and
15446         "X'Unrestricted_Access = Y'Access" and so forth to match.
15447         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15448         now that anonymous access to protected operations have their own kind.
15449         (Resolve_Attribute): In case of dispatching call check the violation of
15450         restriction No_Dispatching_Calls.
15451         (Check_Array_Type): Check new -gnatyA array index style option
15452
15453         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15454         attempt to derive from a synchronized tagged type.
15455         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15456         type, inherit the class-wide type already created, because it may
15457         already have been used in a self-referential anonymous access component.
15458         (Mentions_T): Recognize self-referential anonymous access components
15459         that use (a subtype of) the class-wide type of the enclosing type.
15460         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15461         Derived_Type for Prev formal on call to
15462         Check_Anonymous_Access_Components rather than Empty.
15463         (Make_Incomplete_Type_Declaration): Add test for case where the type has
15464         a record extension in deciding whether to create a class-wide type,
15465         rather than just checking Tagged_Present.
15466         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15467         to stand-alone object declarations as well as component declarations.
15468         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15469         prevent accidental overwriting when enclosing package appears in
15470         a limited_with_clause.
15471         (Array_Type_Declaration): If the component type is an anonymous access,
15472         the associated_node for the itype is the type declaration itself.
15473         (Add_Interface_Tag_Components): Modified to support concurrent
15474         types with abstract interfaces.
15475         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15476         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15477         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15478         to complete the decoration of synchronized interface types. Add also
15479         a call to Check_Abstract_Interfaces to verify the ARM rules.
15480         (Derive_Interface_Subprograms): Modified to support concurrent types
15481         with abstract interfaces.
15482         (Analyze_Subtype_Indication): Resolve the range with the given subtype
15483         mark, rather than delaying the full resolution depending on context.
15484         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15485         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15486         Array_Type_Declaration,Build_Derived_Record_Type,
15487         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15488         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15489         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15490         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15491         called only when appropriate.
15492         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15493         to private type.
15494         (Analyze_Subtype_Declaration): For an access subtype declaration, create
15495         an itype reference for the anonymous designated subtype, to prevent
15496         scope anonmalies in gigi.
15497         (Build_Itype_Reference): New utility, to simplify construction of such
15498         references.
15499
15500 2007-04-06  Vincent Celier  <celier@adacore.com>
15501
15502         * errutil.adb (Initialize): Initialize warnings table, if all warnings
15503         are suppressed, supply an initial dummy entry covering all possible
15504         source locations.
15505
15506         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15507         and start with only one, such as "-RTS=none".
15508         (Collect_Arguments): Do not check for sources outside of projects.
15509         Do not collect arguments if project is externally built.
15510         (Compile_Sources): Do nothing, not even check if the source is up to
15511         date, if its project is externally built.
15512         (Compile): When compiling a predefined source, add -gnatpg
15513         as the second switch, after -c.
15514         (Compile_Sources): Allow compilation of Annex J renames without -a
15515         (Is_In_Object_Directory): Check if the ALI file is in the object
15516         even if there is no project extension.
15517         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15518         gnatbind if the ALI file effectively exists.
15519         (Initialize): Add the directory where gnatmake is invoked in front of
15520         the path if it is invoked from a bin directory, even without directory
15521         information, so that the correct GNAT tools will be used when spawned
15522         without directory information.
15523
15524         * makeusg.adb: Change switch -S to -eS
15525         Add lines for new switches -we, -wn and -ws
15526         Add line for new switch -p
15527
15528         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15529         Treat_As_Error and there are warnings.
15530
15531         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15532         -gnatww Change gnatmake switch -S to -eS
15533         (Scan_Make_Switches): Code reorganisation. Process separately multi
15534         character switches and single character switches.
15535         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15536         False when switch is not recognized by gnatmake.
15537         (Scan_Make_Switches): Set Setup_Projects True when -p or
15538         --create-missing-dirs is specified.
15539
15540         * fname.adb (Is_Predefined_File_Name): Return True for annex J
15541         renamings Calendar, Machine_Code, Unchecked_Conversion and
15542         Unchecked_Deallocation only when Renamings_Included is True.
15543
15544         * par.adb: Allow library units Calendar, Machine_Code,
15545         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15546         when -gnatg is not specified.
15547         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15548         there is no need to generate always a record_definition_node in case
15549         of synchronized interface types.
15550         (SIS_Entry_Active): Initialize global variable to False
15551         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15552         indicate cases where AI-447 says "not null" is legal.
15553
15554         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15555
15556         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15557         files with with several lines starting with the object fileb name.
15558         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15559         is specified.
15560         (Initialize): Add the directory where gprmake is invoked in front of the
15561         path, if it is invoked from a bin directory or with directory
15562         information, so that the correct GNAT tools will be used when invoked
15563         directly.
15564         (Check_Compilation_Needed): Process correctly backslashes on Windows.
15565
15566         * vms_data.ads: Update switches/qualifiers
15567
15568 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15569             Thomas Quinot  <quinot@adacore.com>
15570
15571         * exp_aggr.adb:
15572         If the array component is a discriminated record, the array aggregate
15573         is non-static even if the component is given by an aggregate with
15574         static components.
15575         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15576         (Convert_Aggr_In_Allocator): If the allocator is for an access
15577         discriminant and the type is controlled. do not place on a finalization
15578         list at this point. The proper list will be determined from the
15579         enclosing object.
15580         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15581         initialize record controller if needed, before the components, to ensure
15582         that they are properly finalized.
15583         (Build_Record_Aggr_Code): For the case of an array component that has a
15584         corresponding array aggregate in the record aggregate, perform sliding
15585         if required.
15586
15587 2007-04-06  Javier Miranda  <miranda@adacore.com>
15588             Gary Dismukes  <dismukes@adacore.com>
15589             Ed Schonberg  <schonberg@adacore.com>
15590
15591         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15592         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15593
15594         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15595         accessibility on class-wide allocators if the allocator occurs at the
15596         same scope level as the allocator's type. The check is guaranteed to
15597         succeed in that case, even when the expression originates from a
15598         parameter of the containing subprogram.
15599         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15600         under No_Dispatching_Calls restriction. During the semantic analysis
15601         we already notified such violation.
15602         (Tagged_Membership): Constant folding. There is no need to check
15603         the tag at run-time if the type of the right operand is non
15604         class-wide abstract.
15605         Replace call to Is_Ancestor by call to Is_Parent
15606         to support concurrent types with interface types.
15607         (Expand_N_Allocator): Add an assertion associated with the generation
15608         of the master_id.
15609         (Expand_N_Slice): Do not enable range check to nodes associated
15610         with the frontend expansion of the dispatch table.
15611         (Is_Local_Access_Discriminant): Subsidiary function to
15612         Expand_N_Allocator.
15613         (Tagged_Membership): Replace generation of call to the run-time
15614         subprogram CW_Membership by call to Build_CW_Membership.
15615         (Expand_Allocator_Expression): Replace generation of call to the
15616         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15617
15618         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15619         initialize most the TSD components by means of an aggregate.
15620         Modify the declaration of the object containing the TSD
15621         because we now expand code that has a higher level of abstraction.
15622         The TSD has a discriminant containing the Inheritance Depth Level,
15623         value that is used in the membership test but also to fix the size
15624         of the table of ancestors.
15625         (Expand_Interface_Conversion): Insert function body at the closest place
15626         to the conversion expression, to prevent access-before-elaboration
15627         errors in the backend.
15628         Code improved to reduce the size of the dispatch table if
15629         compiling under restriction No_Dispatching_Calls plus code cleanup.
15630         Code reorganization plus removal of calls to Set_Num_Prim_Ops
15631         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15632         (Expand_Dispatching_Call): Minor code reorganization plus addition of
15633         code to return immediately if compiling under No_Dispatching_Calls
15634         restriction.
15635         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15636         CPP_Virtual and CPP_Vtable are no longer supported.
15637         (Expand_Interface_Conversion): Add missing support for interface type
15638         derivations.
15639         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15640         Is_Parent to support concurrent types with interfaces.
15641         (Init_Predefined_Interface_Primitives): Removed.
15642         (Make_Secondary_DT): Modified to support concurrent record types.
15643         (Set_All_DT_Position): Modified to support concurrent record types.
15644         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15645         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15646         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15647         with CW_Membership.
15648         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15649         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15650         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15651         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15652         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15653         (Expand_Dispatching_Call): Replace generation of call to the run-time
15654         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15655         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15656         Address.
15657         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15658         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15659         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15660         Build_Set_Prim_Op_Address.
15661         (Get_Remotely_Callable): Subprogram removed.
15662         (Init_Predefined_Interface_Primitives): Replace generation of call to
15663         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15664         Prims.
15665
15666         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15667         First (Parameter_Associations ()) with the call to First_Actual that
15668         returns an actual parameter expression for both named and positional
15669         associations.
15670
15671         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15672         check violation of restriction No_Dispatching_Calls.
15673         (Check_Controlling_Type): A formal of a tagged incomplete type is a
15674         controlling argument.
15675
15676         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15677         First/Next_Component_Or_Discriminant
15678         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15679         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15680         specify Any_Limited_Interface, and this functionality is already
15681         provided by the function Has_Abstract_Interfaces.
15682         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15683         support concurrent types implementing interfaces.
15684         (Find_Implemented_Interface): Removed. All the calls to this subprogram
15685         specify kind Any_Limited_Interface, and this functionality is already
15686         provided by the function Has_Abstract_Interfaces.
15687         (Remove_Side_Effects): replace Controlled_Type by
15688         CW_Or_Controlled_Type whenever the issue is related to
15689         using or not the secondary stack.
15690
15691         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15692         P_Interface_Type_Definition to fulfill the new interface (the formal
15693         Is_Synchronized is no longer required).
15694
15695         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
15696         Update dependencies.
15697
15698         * exp_atag.ads, exp_atag.adb: New file
15699
15700 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15701             Bob Duff  <duff@adacore.com>
15702             Cyrille Comar  <comar@adacore.com>
15703
15704         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
15705         anonymous, use finalization list of enclosing dynamic scope.
15706         (Expand_N_Package_Declaration): For a library package declaration
15707         without a corresponding body, generate RACW subprogram bodies in the
15708         spec (just as we do for the task activation call).
15709         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
15710         Is_Abstract_Type. Make sure these are called only when appropriate.
15711         Remove all code for DSP option
15712         (CW_Or_Controlled_Type): new subprogram.
15713
15714 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
15715             Ed Schonberg  <schonberg@adacore.com>
15716             Gary Dismukes  <dismukes@adacore.com>
15717
15718         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
15719         parameter. If it is set to true, return a result capped according to
15720         the global upper bound for the index of an entry family.
15721         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
15722         (Build_Find_Body_Index): Adjust for above change.
15723         (Entry_Index_Expression): Likewise.
15724         (Is_Potentially_Large_Family): New function extracted from...
15725         (Collect_Entry_Families): ...here. Call it to detect whether the family
15726         is potentially large.
15727         (Build_Entry_Count_Expression): If the family is potentially large, call
15728         Family_Size with 'Cap' set to true.
15729         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
15730         a protected version of an operation declared in the private part of
15731         a protected object, because they may be invoked through a callback.
15732         (Set_Privals): If the type of a private component is an anonymous access
15733         type, do not create a new itype for each protected body.
15734         If the body of a protected operation creates
15735         controlled types (including allocators for class-widetypes), the
15736         body of the corresponding protected subprogram must include a
15737         finalization list.
15738         (Build_Activation_Chain_Entity): Build the chain entity for extended
15739         return statements.
15740         (Type_Conformant_Parameters): Use common predicate Conforming_Types
15741         to determine whether operation overrides an inherited primitive.
15742         (Build_Wrapper_Spec): Add code to examine the parents while looking
15743         for a possible overriding candidate.
15744         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
15745         hold an actual parameter value since its initialization is separated
15746         from the the declaration. Prevents errors on null-excluding access
15747         formals.
15748
15749 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15750             Pablo Oliveira  <oliveira@adacore.com>
15751
15752         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
15753         Do an Unchecked_Conversion to handle the passage from the Underlying
15754         Type to the Base Type when calling Build_To_Any_Call and
15755         Build_From_Any_Call.
15756         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
15757         E_Constant, depending upon Variable formal.
15758         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15759         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
15760         parameter that requires an extra constrained parameter, declare
15761         temporary for actual as a variable, not a constant.
15762         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
15763         the unit being compiled is the one that contains the stub type.
15764         Change primitive operation name for the RACW associated with a RAS
15765         from Call to _Call so it cannot clash with any legal identifier.
15766         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
15767         Is_RAS.
15768         (Append_RACW_Bodies): New subprogram.
15769         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
15770         Add_Receiving_Stubs_To_Declarations functions.
15771         When expanding a package body, this list correspond to the
15772         statements in the HSS at the end of the pacakge.
15773         When expanding a package spec, this list correspond to the
15774         spec declarations.
15775         (Add_Receiving_Stubs_To_Declarations): Append the function
15776         registering the receiving stubs at the end of the 'Stmts' list.
15777         (RCI_Package_Locator): Pass the new Version generic formal when
15778         instantiating a RCI_Locator package.
15779         (Build_From_Any_Function): To compute the High bound for an
15780         unconstrained array actual, we add the Low bound with the length.
15781         Thus we must convert the low bound and the length to an appropriate
15782         type before doing the sum.
15783         (Build_Subprogram_Receiving_Stubs, PolyORB):
15784          * Retrieve the extra formals parameters at the
15785            end of the parameter stream.
15786          * Use Move_Any_Value to write back out parameters
15787            after executing the request as it is more efficient
15788            than Copy_Any_Value.
15789          * Build the any containing Extra Formals with the
15790            appropriate typecode.
15791         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
15792         empty Component_List.
15793         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
15794         the tree the declaration for an object that serves as actual parameter
15795         in server-side stubs.
15796         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15797         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
15798         Use Build_Actual_Object_Declaration to prepare the actuals.
15799         (Add_Parameter_To_NVList): Set the parameter mode to In for
15800         Extra Constrained Parameters.
15801         (Build_General_Calling_Stubs): Set the parameter type to boolean for
15802         Extra Constrained parameters.
15803         (Build_To_Any_Function, Build_From_Any_Function,
15804         Built_TypeCode_Function): When Typ is implicit, call the correct
15805         function with the first not implicit parent type.
15806         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
15807         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
15808         typecode from the Etype. Therefore we retrieve the correct typecode
15809         with a call to Get_Any_Type.
15810         (Copy_Specification): Do controlling formal type substitution based on
15811         Is_Controlling_Formal flag, instead of caller-provided object type.
15812         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
15813         a RACW primitive operation, we might get a subprogram declaration for an
15814         ancestor of the RACW designated type (not for the designated type
15815         itself), in the case where this operation is inherited. In this case we
15816         have no easy means of determining the original tagged type for which
15817         the primitive was declared, so instead we now rely on
15818         Copy_Specification to use the Is_Controlling_Formal flag to determine
15819         which formals require type substitution.
15820
15821 2007-04-06  Robert Dewar  <dewar@adacore.com>
15822             Ed Schonberg  <schonberg@adacore.com>
15823
15824         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
15825         GNAT.Current_Exception are not allowed if pragma Restrictions
15826         (No_Exception_Propagation) is set and in any case make the associated
15827         handler unsuitable as a target for a local raise statement.
15828         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
15829         run-time subprogram CW_Membership by call to Build_CW_Membership.
15830         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
15831         by a function call, a temporary must be created before expanding the
15832         Constructor_Call itself, to prevent out-of-order elaboration in the
15833         back-end when stack checking is enabled..
15834
15835 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15836
15837         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
15838         result are the bounds of the left operand, not the right.
15839
15840 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15841
15842         * exp_strm.adb
15843         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
15844          discriminant defaults.
15845         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
15846         (Make_Component_List_Attributes): Ditto.
15847
15848 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15849             Bob Duff  <duff@adacore.com>
15850
15851         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
15852         an association with a box as providing a value even though the
15853         initialization procedure for the type is not available.
15854         (Resolve_Record_Aggregate): Check that a choice of an association with a
15855         box corresponds to a component of the type.
15856         (Resolve_Record_Aggregate): Split Is_Abstract flag into
15857         Is_Abstract_Subprogram and Is_Abstract_Type.
15858
15859         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
15860         assert.
15861
15862         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
15863         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15864         called only when appropriate.
15865
15866 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15867
15868         * g-alleve.ads (Low Level Vector type definitions): Map each to the
15869         associated vector view instead of all to the unsigned char view.
15870
15871         * g-altcon.adb (Generic_Conversions): New internal generic package,
15872         offering facilities for all the Vector/View conversion routines
15873         implemented by this unit.
15874         (To_View/To_Vector - all versions): Reimplemented in a systematic
15875         manner, using the internal Generic_Conversions facilities.
15876
15877 2007-04-06  Pascal Obry  <obry@adacore.com>
15878
15879         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
15880         string.
15881         (Create): Free the source string before storing the new one.
15882
15883 2007-04-06  Vincent Celier  <celier@adacore.com>
15884
15885         * g-debpoo.adb (Validity): New package with a complete new
15886         implementation of subprograms Is_Valid and Set_Valid.
15887         (Is_Valid): Move to local package Validity
15888         (Set_Valid): Move to local package Validity
15889
15890 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15891             Pablo Oliveira  <oliveira@adacore.com>
15892
15893         * g-expect.adb (Get_Command_Output): When expanding the output buffer
15894         we must ensure that there is enough place for the new data we are going
15895         to copy in.
15896
15897 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15898
15899         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
15900         computation.
15901
15902 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15903             Vincent Celier  <celier@adacore.com>
15904
15905         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
15906         (Stack_String): Add this String that contains the name of the Stack
15907         package in the project file.
15908         (Packages_To_Check_By_Stack): Add this list that contains the packages
15909         to be checked by gnatstack, which are the naming and the stack packages.
15910         (Check_Files): If no .ci files were specified for gnatstack we add all
15911         the .ci files belonging to the projects, including binder generated
15912         files.
15913         (Non_VMS_Usage): Document that gnatstack accept project file switches.
15914         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
15915         Add gnatstack to the list of commands that use project file related
15916         switches, and get the single attribute Switches from the stack package
15917         in a project file when calling gnatstack. Parse the -U flag for
15918         processing files belonging to all projects in the project tree.
15919         Remove all processing for command Setup
15920
15921         * prj-attr.adb: Add new package Stack with single attribute Switches
15922
15923         * vms_conv.ads (Command_Type): Add command Stack.
15924         Move to body declarations that are only used in the body: types Item_Id,
15925         Translation_Type, Item_Ptr, Item and its subtypes.
15926
15927         * vms_conv.adb: (Initialize): Add data for new command Stack.
15928         Add declarations moved from the spec: types Item_Id, Translation_Type,
15929         Item_Ptr, Item and its subtypes.
15930         (Cargs_Buffer): New table
15931         (Cargs): New Boolean global variable
15932         (Process_Buffer): New procedure to create arguments
15933         (Place): Put character in table Buffer or Cargs_Buffer depending on the
15934          value of Cargs.
15935         (Process_Argument): Set Cargs when processing qualifiers for GNAT
15936         COMPILE
15937         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
15938         empty, for table Cargs_Buffer.
15939         (Initialize): Remove component Setup in Command_List
15940
15941 2007-04-06  Vincent Celier  <celier@adacore.com>
15942
15943         * gprep.adb (Process_Files.Process_One_File): Use full file name when
15944         issuing pragma Source_Reference.
15945
15946 2007-04-06  Emmanuel Briot  <briot@adacore.com>
15947
15948         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
15949         [[:xdigit:]] character class.
15950         Also raise an exception when an invalid character class is used.
15951
15952 2007-04-06  Pascal Obry  <obry@adacore.com>
15953
15954         * i-cstrea.ads: (fopen): Add encoding parameter.
15955         (freopen): Idem.
15956         Change reference from a-sysdep.c to sysdep.c in comment.
15957         Update copyright notice.
15958         This set of patch add support for the encoding form parameter.
15959
15960         * mingw32.h (S2WSU): New macro to convert from a string to a
15961         wide-string using the UTF-8 encoding. The S2WS macro supports now only
15962         standard 8bits encoding.
15963         (WS2SU): As above but converting from wide-sring to string.
15964         This is needed as it is necessary to have access to both versions in the
15965         runtime for the form parameter encoding support.
15966         This set of patch add support for the encoding form parameter.
15967         (S2WS): Improve implementation to handle cases where the filename is not
15968         UTF-8 encoded. In this case we default to using the current code page
15969         for the conversion.
15970
15971         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
15972         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
15973         the constants defined in adaint.h.
15974         (fopen): Add encoding parameter.
15975         (freopen): Idem.
15976
15977         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
15978         encoding. This is needed for the Reset routine (freopen low level-call).
15979
15980         * s-fileio.adb (Open): Decode encoding form parameter and set the
15981         corresponding encoding value into AFCB structure.
15982         (Reset): Pass the encoding value to freopen.
15983         (Close): Move the call to Lock_Task to the beginning of the procedure.
15984
15985 2007-04-06  Geert Bosch  <bosch@adacore.com>
15986             Robert Dewar  <dewar@adacore.com>
15987
15988         * i-fortra.ads: Add Double_Complex type.
15989
15990         * impunit.adb: (Is_Known_Unit): New function
15991         Add Gnat.Byte_Swapping
15992         Add GNAT.SHA1
15993         Add new Ada 2005 units
15994         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
15995         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
15996         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
15997         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
15998
15999         * impunit.ads (Is_Known_Unit): New function
16000
16001         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16002         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16003         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16004         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16005         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16006         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16007         New files.
16008
16009         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16010
16011         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16012
16013 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16014             Arnaud Charlet  <charlet@adacore.com>
16015
16016         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16017         __gnat_adjust_context_for_raise.
16018         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16019         implementation of floating point operations as native x86 targets.
16020         So the FPU should be initialized in the same way using finit. Fix
16021         floating point operations accuracy issues.
16022         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16023         member in struct sigaction, so as to avoid warning for incompatible
16024         pointer types.
16025
16026 2007-04-06 Serguei Rybin  <rybin@adacore.com>
16027
16028         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16029         switches from previously loaded tree
16030
16031 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16032
16033         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16034         cases where a given dependency has a body or not.
16035         (Write_With_File_Names): New subprogram, common code for the two cases
16036         above.
16037
16038 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16039             Javier Miranda  <miranda@adacore.com>
16040
16041         * lib-xref.ads, lib-xref.adb:
16042         Modify the loop that collects type references, to include interface
16043         types that the type implements. List each of these interfaces when
16044         building the entry for the type.
16045         (Generate_Definition): Initialize component Def and Typ of new entry
16046         in table Xrefs, to avoid to have these components unitialized.
16047         (Output_References): Split Is_Abstract flag into
16048         Is_Abstract_Subprogram and Is_Abstract_Type.
16049         (Generate_Reference): Add barrier to do not generate the warning
16050         associated with Ada 2005 entities with entities generated by the
16051         expander.
16052
16053 2007-04-06  Robert Dewar  <dewar@adacore.com>
16054             Arnaud Charlet  <charlet@adacore.com>
16055             Vincent Celier  <celier@adacore.com>
16056
16057         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16058         Update 'Exception Handling Control' chapter which was outdated.
16059         Minor fix to documentation of -gnatwq
16060         Remove section "Adapting the Run Time to a New C++ Compiler" because
16061         it is now obsolete.
16062         Add passage on need of -nostart-files in some non-ada-main cases.
16063         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16064         Update documentation about Interfacing with C++
16065         Add documentation for new gnatmake switch -p
16066         Add missing protocol part in URLs.
16067         Document -gnatyA
16068         Document pragma Compile_Time_Error
16069         Add documentation for Object_Size indicating that stand alone
16070         objects can have a larger size in some cases.
16071         Add node for GNAT.Byte_Swapping, GNAT.SHA1
16072         Update reference to the Ravenscar profile.
16073         Document pragma Unreferenced_Objects
16074
16075         * gnat-style.texi: Fix typo
16076
16077 2007-04-06  Vincent Celier  <celier@adacore.com>
16078
16079         * mlib.adb (Building_Library): Only output "building a library..." in
16080         verbose mode
16081
16082         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16083         files in verbose mode.
16084
16085         * mlib-utl.adb (Ar): Only output the first object files when not in
16086         verbose mode.
16087         (Gcc): Do not display all the object files if not in verbose mode, only
16088         the first one.
16089
16090 2007-04-06  Robert Dewar  <dewar@adacore.com>
16091
16092         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16093         it no longer destroys the contents of Name_Buffer or Name_Len and
16094         non-standard and invalid names are handled better.
16095         (Get_Decoded_Name_String): Improve performance by using
16096         Name_Has_No_Encodings flag in the name table.
16097         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16098         Used for debugging printouts.
16099
16100 2007-04-06  Robert Dewar  <dewar@adacore.com>
16101             Javier Miranda  <miranda@adacore.com>
16102             Bob Duff  <duff@adacore.com>
16103
16104         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16105         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16106         there is no need to generate always a record_definition_node in case
16107         of synchronized interface types.
16108         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16109         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16110         illegal in Ada 95, in cases where it is legal. Change the warnings to
16111         errors in other cases. Don't give the error unless the "not null"
16112         parses properly. Correct the source position at which the error occurs.
16113         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16114         P_Null_Exclusion, to suppress "not null" warnings.
16115         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16116         associated goto statements.
16117
16118         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16119         of END RECORD
16120
16121         * scans.ads (Type_Token_Location): New flag
16122
16123         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16124         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16125         P_Null_Exclusion, to suppress "not null" warnings.
16126
16127 2007-04-06  Robert Dewar  <dewar@adacore.com>
16128             Javier Miranda  <miranda@adacore.com>
16129             Bob Duff  <duff@adacore.com>
16130             Vincent Celier  <celier@adacore.com>
16131
16132         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16133         (Extensions_Allowed): No longer sets Ada_Version
16134         Entry for pragma Unreferenced_Objects
16135
16136         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16137         system.tasking if pragma priority used in a procedure
16138         (Analyze_Pragma, case Warning): Handle dot warning switches
16139         (Process_Compile_Time_Warning_Or_Error): New procedure
16140         (Analyze_Pragma): Add processing for Compile_Time_Error
16141         Add support for extra arguments External_Name and Link_Name.
16142         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16143         (Process_Import_Or_Interface): Add support for the use of pragma Import
16144         with tagged types.
16145         (Extensions_Allowed): No longer affects Ada_Version
16146         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16147         Is_Abstract_Type. Make sure these are called only when appropriate.
16148         Add processing for pragma Unreferenced_Objects
16149
16150         * snames.h, snames.ads, snames.adb: Add entry for pragma
16151         Compile_Time_Error
16152         Add new standard name Minimum_Binder_Options for new gprmake
16153         Add new standard names for gprmake: Archive_Suffix,
16154         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16155         Library_Support, Library_Version_Options,
16156         Shared_Library_Minimum_Options,
16157         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16158         Change Name_Call to Name_uCall so that it cannot clash with a legal
16159         subprogram name.
16160         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16161         Append C_Plus_Plus to convention identifiers as synonym for CPP
16162         Add new standard names Stack and Builder_Switches
16163         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16164         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16165         Run_Path_Option, Toolchain_Version.
16166         Entry for pragma Unreferenced_Objects
16167
16168         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16169         switches, without repetition of "eD". Make sure that last character of
16170         -gnatep= switch is not taken as -gnat switch character.
16171         Complete rewrite of circuit for handling saving compilation options
16172         Occasioned by need to support dot switchs for -gnatw, but cleans up
16173         things in general.
16174         -gnatX does not affect Ada_Version
16175         Include -gnatyA in -gnatg style switches
16176
16177         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16178         warnings on return objects.
16179         (Warn_On_Useless_Assignment): Exclude warnings on return objects
16180         (Set_Dot_Warning_Switch): New procedure
16181         (Check_References): Add missing case of test for
16182         Has_Pragma_Unreferenced_Objects
16183         (Output_Unreferenced_Messages): Implement effect of new pragma
16184         Unreferenced_Objects, remove special casing of limited controlled
16185         variables.
16186
16187 2007-04-06  Vincent Celier  <celier@adacore.com>
16188
16189         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16190         the default project path, initially done during elaboration of the
16191         package.
16192         If the prefix returned by Sdefault is null, get the prefix from a call
16193         to Executable_Prefix_Path.
16194         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16195         null.
16196
16197         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16198         canonical directory name to open the directory from which files are
16199         retrieved.
16200         (Record_Other_Sources): Idem.
16201         (Locate_Directory): Add the possibility to create automatically missing
16202         directories when Setup_Projects is True.
16203         Call Locate_Directory so that the directory will be created when
16204         Setup_Projects is True, for object dir, library dir, library ALI dir,
16205         library source copy dir and exec dir.
16206
16207         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16208         versions of GNAT.
16209
16210 2007-04-06  Robert Dewar  <dewar@adacore.com>
16211
16212         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16213         Use First/Next_Component_Or_Discriminant
16214         (Analyze_Record_Representation_Clause):
16215         Use First/Next_Component_Or_Discriminant
16216         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16217         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16218         definition if type is unconstrained.
16219         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16220         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16221         Is_Abstract_Subprogram and Is_Abstract_Type.
16222         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16223
16224         * repinfo.adb (List_Record_Info): Use First/
16225         Next_Component_Or_Discriminant.
16226
16227         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16228         New procedure.
16229
16230         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16231         Include -gnatyA in default switches
16232
16233         * opt.ads: (Warn_On_Non_Local_Exception): New flag
16234         (Warn_On_Reverse_Bit_Order): New flag
16235         (Extensions_Allowed): Update the documentation.
16236         (Warn_On_Questionable_Missing_Parens): Now on by default
16237
16238         * usage.adb: Add documentation of -gnatw.x/X switches
16239         Document new -gnatyA style switch
16240         -gnatq warnings are on by default
16241
16242 2007-04-06  Ed Falis  <falis@adacore.com>
16243
16244         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16245         full word is no longer compared twice.
16246
16247 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16248
16249         * sem_ch10.adb (Install_Limited_Context_Clauses.
16250         Expand_Limited_With_Clause): Use a new copy of selector name in the
16251         call to Make_With_Clause. This fixes the tree structure for ASIS
16252         purposes. Nothing is changed in the compiler behaviour.
16253         (Process_Body_Clauses): Handle properly use clauses whose prefix is
16254         a package renaming.
16255         (Install_Limited_With_Clauses): Do not install non-limited view when it
16256         is still incomplete.
16257
16258 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16259             Gary Dismukes  <dismukes@adacore.com>
16260
16261         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16262         when capturing size information, instead of base type, which for a
16263         formal array type will be the unconstrained type.
16264         (Analyze_Formal_Object_Declaration): Add check for illegal default
16265         expressions for a formal in object of a limited type.
16266         (Instantiate_Object): Ditto.
16267         (Check_Formal_Package_Instance): Skip entities that are formal objects,
16268         because they were defaulted in the formal package and no check applies
16269         to them.
16270         (Check_Formal_Package_Instance): Extend conformance check to other
16271         discrete types beyond Integer.
16272         (Process_Default): Copy directly the unmatched formal. A generic copy
16273         has already been performed in Analyze_Formal_Package.
16274         (Analyze_Associations): If a formal subprogram has no match, check for
16275         partial parametrization before looking for a default, to prevent
16276         spurious errors.
16277         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16278         not set the instantiation environment before analyzing the actuals.
16279         Fixes regression on 8515-003 with implementation of AI-133.
16280         Set_Instance_Env checks whether the generic unit is a predefined
16281         unit, in which case the instance must be analyzed with the latest Ada
16282         mode. This setting must take place after analysis of the actuals,
16283         because the actuals must be analyzed and frozen in the Ada mode extant
16284         outside of the current instantiation.
16285         (Save_Env, Restore_Env): Preserve and restore the configuration
16286         parameters so that predefined units can be compiled in the proper Ada
16287         mode.
16288         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16289         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16290         and Is_Abstract_Type.
16291         (Analyze_Formal_Package): For better error recovery, Add exception
16292         handler to catch Instantion_Error, which can be raised in
16293         Analyze_Associations
16294
16295 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16296             Bob Duff  <duff@adacore.com>
16297             Gary Dismukes  <dismukes@adacore.com>
16298
16299         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16300         prefix type is a discriminated subtype of the type of the formal.
16301         (Analyze_Allocator): Collect all coextensions regardless of the context.
16302         Whether they can be allocated statically is determined in exp_ch4.
16303         (Analyze_Selected_Component): If the prefix is a limited view and the
16304         non-limited view is available, use the non-limited one.
16305         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16306         therefore illegal), suggest a qualified expression rather than a type
16307         conversion, because a type conversion would be illegal in this context.
16308         (Anayze_Allocator): Trace recursively all nested allocators so that all
16309         coextensions are on the corresponding list for the root. Do no mark
16310         coextensions if the root allocator is within a declaration for a stack-
16311         allocated object, because the access discriminants will be allocated on
16312         the stack as well.
16313         (Analyze_Call): Remove restriction on calls to limited functions for the
16314         cases of generic actuals for formal objects, defaults for formal objects
16315         and defaults for record components.
16316         (Analyze_Allocator): Before analysis, chain coextensions on the proper
16317         element list. Their expansion is delayed until the enclosing allocator
16318         is processed and its finalization list constructed.
16319         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16320         for an operation with the given name among the primitive operations of
16321         the corresponding record type.
16322         (Analyze_Selected_Component): If the prefix is a task type that
16323         implements an interface, and there is no entry with the given name,
16324         check whether there is another primitive operation (e.g. a function)
16325         with that name.
16326         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16327         properly the indexing of a function call written in prefix form, where
16328         the function returns an array type, and all parameters of the function
16329         except the first have defaults.
16330         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16331         the original operands, rather than relocating them, for efficiency and
16332         to work properly when an operand is overloaded.
16333         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16334         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16335         (Analyze_Selected_Component): If the prefix is a private extension, only
16336         scan the visible components, not those of the full view.
16337         (Try_Primitive_Operation): If the operation is a procedure, collect all
16338         possible interpretations, as for a function, because in the presence of
16339         classwide parameters several primitive operations of the type can match
16340         the given arguments.
16341
16342 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16343             Robert Dewar  <dewar@adacore.com>
16344
16345         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16346         tag-indeterminate call to an abstract function, when the left-hand side
16347         is not classwide.
16348         (Analyze_Loop_Statement): Improve detection of infinite loops
16349
16350 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16351             Thomas Quinot  <quinot@adacore.com>
16352
16353         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16354         out of Analyze_Package_Declaration, because processing must be applied
16355         to package bodies as well, for deferred constants completed by pragmas.
16356         (Analyze_Package_Declaration): When the package declaration being
16357         analyzed does not require an explicit body, call Check_Completion.
16358         (May_Need_Implicit_Body): An implicit body is required when a package
16359         spec contains the declaration of a remote access-to-classwide type.
16360         (Analyze_Package_Body): If the package contains RACWs, append the
16361         pending subprogram bodies generated by exp_dist at the end of the body.
16362         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16363         Is_Abstract_Subprogram and Is_Abstract_Type.
16364         (Preserve_Full_Attributes): The full entity list is not an attribute
16365         that must be preserved from full to partial view.
16366
16367         * sem_dist.adb (Add_RAS_Dereference_TSS):
16368         Change primitive name to _Call so it cannot clash with any legal
16369         identifier, and be special-cased in Check_Completion.
16370         Mark the full view of the designated type for the RACW associated with
16371         a RAS as Comes_From_Source to get proper view switching when installing
16372         private declarations.
16373         Provite a placeholder nested package body along with the nested spec
16374         to have a place for Append_RACW_Bodies to generate the calling stubs
16375         and stream attributes.
16376
16377 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16378             Robert Dewar  <dewar@adacore.com>
16379
16380         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16381         that is a limited view, check the non-limited view if available.
16382         (Undefined): Refine error message for missing with of Text_IO
16383         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16384         to distinguish real missing with cases.
16385         Fix format of all missing with messages
16386         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16387         renaming as body when renamed entity is abstract.
16388
16389 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16390             Javier Miranda  <miranda@adacore.com>
16391
16392         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16393         predicate recursive, to handle complex expressions on literals whose
16394         spurious ambiguity comes from the abstract interpretation of some
16395         subexpression.
16396         (Interface_Present_In_Ancestor): Add support to concurrent record
16397         types.
16398         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16399         Is_Abstract_Subprogram and Is_Abstract_Type.
16400
16401 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16402             Javier Miranda  <miranda@adacore.com>
16403
16404         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16405         dereference of a local object R created as a reference to another
16406         object O, use the access level of O.
16407         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16408         rather than local Same_Formal_Type, to check whether protected operation
16409         overrides an inherited one.
16410         (Same_Formal_Type): New predicate, used when matching signatures of
16411         overriding synchronized operations, to handle the case when a formal
16412         has a type that is a generic actual.
16413         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16414         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16415         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16416         syntactic ambiguities involving indexing of function calls that return
16417         arrays.
16418         (Abstract_Interface_List): New subprogram that returns the list of
16419         abstract interfaces associated with a concurrent type or a
16420         concurrent record type.
16421         (Interface_Present_In_Parent): New subprogram used to check if a
16422         given type or some of its parents implement a given interface.
16423         (Collect_Abstract_Interfaces): Add support for concurrent types
16424         with interface types.
16425         (Has_Abstract_Interfaces): Add support for concurrent types with
16426         interface types.
16427         (Is_Parent): New subprogram that determines whether E1 is a parent
16428         of E2. For a concurrent type its parent is the first element of its
16429         list of interface types; for other types this function provides the
16430         same result than Is_Ancestor.
16431         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16432         (Collect_Synchronized_Interfaces): Removed because the subprogram
16433         Collect_Abstract_Interfaces provides this functionality.
16434         (Collect_Abstract_Interfaces): Minor update to give support to
16435         concurrent types and thus avoid undesired code duplication.
16436         (Get_Subprogram_Entity): Handle entry calls.
16437         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16438         entry calls.
16439         (Enter_Name): Do not give -gnatwh hiding warning for record component
16440         entities, they never result in hiding.
16441
16442 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16443             Robert Dewar  <dewar@adacore.com>
16444
16445         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16446         to chain nested components that are allocators for access discriminants
16447         of the enclosing object.
16448         Add N_Push and N_Pop nodes
16449         New field Exception_Label added
16450         (Local_Raise_Statements): New field in N_Exception_Handler_Node
16451         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16452         (Is_Coextension): New flag for allocators, to mark allocators that
16453         correspond to access discriminants of dynamically allocated objects.
16454         (N_Block_Statement): Document the fact that the corresponding entity
16455         can be an E_Return_Statement.
16456         (Is_Coextension): New flag for allocators.
16457         Remove all code for DSP option
16458
16459         * sprint.ads, sprint.adb: Display basic information for class_wide
16460         subtypes. Add handling of N_Push and N_Pop nodes
16461
16462 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16463
16464         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16465         before propagating exception.
16466
16467 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16468
16469         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16470         an address always within the call instruction from a return address.
16471
16472 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16473             Eric Botcazou  <botcazou@adacore.com>
16474
16475         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16476         expression with a COMPOUND_EXPR including the call instead of emitting
16477         the call directly here.
16478         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16479         high bound is constant and the slice is empty.  Tidy.
16480         (tree_transform, case N_Op_Not): Handle properly the case where the
16481         operation applies to a private type whose full view is a modular type.
16482         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16483         Address_Clause, use the associated Expression as the GNAT tree
16484         representing the choice value to ensure the corresponding GCC tree is
16485         of the proper kind.
16486         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16487         instead of just the operands, as the base GCC stabilize_reference does.
16488         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16489         requested; otherwise fail.
16490         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16491
16492 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16493
16494         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16495         implementation of UI_Div.
16496         (UI_Div): Reimplement as a call to UI_Div_Rem.
16497         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16498         remainder, avoiding the cost of a multiplication and a subtraction.
16499         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16500         provides both quotient and remainder in a single computation.
16501         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16502         functions for uint.
16503         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16504         is undefined if the given n is not inversible.
16505
16506 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16507
16508         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16509         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16510         opcodes.
16511
16512 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16513             Olivier Hainque  <hainque@adacore.com>
16514
16515         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16516         when updating the contents of the old pointer to an unconstrained array.
16517         (end_subprog_body): Set error_gnat_node to Empty.
16518         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16519         (unchecked_convert): For subtype to base type conversions, require that
16520         the source be a subtype if it is an integer type.
16521         (builtin_decls): New global, vector of available builtin functions.
16522         (gnat_pushdecl): Add global builtin function declaration nodes to the
16523         builtin_decls list.
16524         (gnat_install_builtins): Adjust comments.
16525         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16526         calling gnat_pushdecl, so that it knows when it handed a builtin
16527         function declaration node.
16528         (builtin_decl_for): Search the builtin_decls list.
16529
16530 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16531
16532         * s-stchop-vxworks.adb:
16533         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16534
16535 2007-04-06  Robert Dewar  <dewar@adacore.com>
16536             Arnaud Charlet  <charlet@adacore.com>
16537
16538         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16539
16540         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16541         of files
16542         Add mention of -Sev (set initialize_scalars option from environment
16543         variable at run time) in gnatbind usage message.
16544
16545         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16546
16547         * fname-uf.ads: Minor comment fix
16548
16549         * osint.ads: Change pragma Elaborate to Elaborate_All
16550
16551         * par-load.adb: Add documentation.
16552
16553         * sem_cat.ads, sem_cat.adb: Minor code reorganization
16554
16555         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16556
16557         * s-secsta.ads: Extra comments
16558
16559         * s-soflin.ads: Minor comment fixes
16560
16561         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16562
16563         * s-wchcon.ads: Minor comment addition
16564
16565         * treepr.adb: Minor change in message
16566         (Print_Name,Print_Node): Make these debug printouts more robust: print
16567         "no such..." instead of crashing on bad input.
16568
16569 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
16570
16571         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16572         instead of gnat_signed_or_unsigned_type.
16573         * utils.c (gnat_signed_or_unsigned_type): Remove.
16574         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16575         * gigi.h (gnat_signed_or_unsigned_type): Remove
16576
16577 2007-03-09  Roger Sayle  <roger@eyesopen.com>
16578
16579         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16580         fold with the result of buildN.
16581         * decl.c (gnat_to_gnu_entity): Likewise.
16582         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16583         * utils.c (finish_record_type, merge_sizes, max_size, convert):
16584         Likewise.
16585         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16586         nonbinary_modular_operation, build_binary_op, build_unary_op,
16587         build_cond_expr): Likewise.
16588
16589         * utils.c (convert): Use fold_build1 when casting values to void.
16590         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16591         fold_convert instead of convert when appropriate.
16592
16593 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
16594
16595         * Make-lang.in: Add install-pdf target as copied from
16596         automake v1.10 rules.
16597
16598 2007-02-28  Andreas Schwab  <schwab@suse.de>
16599
16600         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16601         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16602         (doc/gnat-style.info): Likewise.
16603
16604 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
16605
16606         * gnat-style.texi: Standardize title page.
16607         * gnat_rm.texi: Likewise.
16608         * gnat_ugn.texi: Likewise.
16609
16610 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
16611
16612         * decl.c (annotate_value): Adjust for refactoring of tree_map
16613         hierarchy.
16614
16615 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
16616
16617         * decl.c (annotate_value): Adjust for refactoring of tree_map
16618         hierarchy.
16619
16620 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
16621
16622         PR ada/18819
16623         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16624         untagged derived type, add hidden components to keep discriminant
16625         layout consistent, when a given discriminant of the derived type
16626         constraints several discriminants of the parent type.
16627
16628 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
16629             Sandra Loosemore  <sandra@codesourcery.com>
16630
16631         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
16632         build the call expression.
16633         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16634         * utils.c (max_size) <tcc_exceptional>: Delete.
16635         <tcc_vl_exp>: New case.
16636         <tcc_expression>: Delete CALL_EXPR subcase.
16637         (build_global_cdtor): Use build_call_nary instead of build3.
16638         * utils2.c (build_call_1_expr): Likewise.
16639         (build_call_2_expr): Likewise.
16640         (build_call_0_expr): Likewise.
16641         (build_call_alloc_dealloc): Likewise.
16642
16643 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
16644
16645         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
16646         get_action_description_for): Replace _Unwind_Word with _uleb128_t
16647         and _Unwind_SWord with _sleb128_t.
16648
16649 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
16650
16651         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16652         * decl.c: Include gt-ada-decl.h.
16653         (annotate_value_cache): New.
16654         (annotate_value): Use it instead of TREE_COMPLEXITY.
16655
16656 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
16657
16658         * misc.c, utils2.c: Fix comment typos.
16659
16660 2007-01-24  Roger Sayle  <roger@eyesopen.com>
16661
16662         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16663         TREE_CONSTANT_OVERFLOW.
16664         (allocatable_size_p, annotate_value): Likewise.
16665         * trans.c (gnat_to_gnu): Likewise.
16666         * utils.c (unchecked_convert): Likewise.
16667         * utils2.c (build_simple_component_ref): Likewise.
16668
16669 2007-01-23  Richard Guenther  <rguenther@suse.de>
16670
16671         PR bootstrap/30541
16672         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16673         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16674         (gnatboot3): Likewise.
16675         (GNATBIND): Do not define.
16676         * Makefile.in (GNATBIND): Do not define.
16677
16678 2007-01-08  Richard Guenther  <rguenther@suse.de>
16679
16680         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16681         * trans.c (gnat_to_gnu): Likewise.
16682
16683 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
16684
16685         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16686         * adaint.c: Likewise.
16687
16688 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
16689
16690         Merge from gimple-tuples-branch:
16691         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
16692
16693         * ada-tree.h (lang_tree_node): Handle gimple tuples.
16694         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16695         GIMPLE_MODIFY_STMT.
16696
16697 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
16698
16699         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
16700         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
16701         Fix typos.
16702
16703 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
16704
16705         PR ada/27936
16706         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
16707         if the initializer takes into account the padding.
16708
16709 2006-11-11  Richard Guenther  <rguenther@suse.de>
16710
16711         * trans.c (maybe_stabilize_reference): Remove handling of
16712         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
16713
16714 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
16715
16716         PR ada/29707
16717         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
16718         (To_Target_Priority): New function.
16719
16720 2006-10-31  Robert Dewar  <dewar@adacore.com>
16721
16722         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
16723         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
16724         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
16725         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
16726         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
16727         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
16728         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
16729         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
16730         a-szbzha.adb: Minor reformatting. Fix header.
16731
16732         * a-numaux-x86.adb: Add parentheses for use of unary minus
16733         * a-ngcefu.adb: Supply missing parentheses for unary minus
16734         * a-ngcoty.adb: Add parens for use of unary minus
16735         * a-ngelfu.adb: Add missing parens for unary minus
16736         * a-tifiio.adb: Add parentheses for uses of unary minus
16737
16738 2006-10-31  Robert Dewar  <dewar@adacore.com>
16739             Bob Duff  <duff@adacore.com>
16740             Ed Schonberg  <schonberg@adacore.com>
16741
16742         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
16743         with multiplying operator.
16744         (Expected_Type_Is_Any_Real): New function to determine from the Parent
16745         pointer whether the context expects "any real type".
16746         (Resolve_Arithmetic_Op): Do not give an error on calls to the
16747         universal_fixed "*" and "/" operators when they are used in a context
16748         that expects any real type. Also set the type of the node to
16749         Universal_Real in this case, because downstream processing requires it
16750         (mainly static expression evaluation).
16751         Reword some continuation messages
16752         Add some \\ sequences to continuation messages
16753         (Resolve_Call): Refine infinite recursion case. The test has been
16754         sharpened to eliminate some false positives.
16755         Check for Current_Task usage now includes entry barrier, and is now a
16756         warning, not an error.
16757         (Resolve): If the call is ambiguous, indicate whether an interpretation
16758         is an inherited operation.
16759         (Check_Aggr): When resolving aggregates, skip associations with a box,
16760         which are priori correct, and will be replaced by an actual default
16761         expression in the course of expansion.
16762         (Resolve_Type_Conversion): Add missing support for conversion from
16763         a class-wide interface to a tagged type. Minor code cleanup.
16764         (Valid_Tagged_Converion): Add support for abstact interface type
16765         conversions.
16766         (Resolve_Selected_Component): Call Generate_Reference here rather than
16767         during analysis, and use May_Be_Lvalue to distinguish read/write.
16768         (Valid_Array_Conversion): New procedure, abstracted from
16769         Valid_Conversion, to incorporate accessibility checks for arrays of
16770         anonymous access types.
16771         (Valid_Conversion): For a conversion to a numeric type occurring in an
16772         instance or inlined body, no need to check that the operand type is
16773         numeric, since this has been checked during analysis of the template.
16774         Remove legacy test for scope name Unchecked_Conversion.
16775
16776         * sem_res.ads: Minor reformatting
16777
16778         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
16779         (PE_Current_Task_In_Entry_Body): New exception code
16780         (SE_Restriction_Violation): Removed, not used
16781
16782         * a-except.ads:  Update comments.
16783
16784         * types.h, types.ads: Add definition for Validity_Check
16785         (PE_Current_Task_In_Entry_Body): New exception code
16786         (SE_Restriction_Violation): Removed, not used
16787
16788 2006-10-31  Thomas Quinot  <quinot@adacore.com>
16789
16790         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
16791         error status.
16792
16793 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
16794             Jose Ruiz  <ruiz@adacore.com>
16795
16796         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
16797         part of Ada.Calendar: all subprogram raise Unimplemented.
16798         (Split_W_Offset): Temp function body, raising Unimplemented
16799
16800         * a-calend.ads, a-calend-vms.ads:
16801         Add imported variable Invalid_TZ_Offset used to designate targets unable
16802         to support time zones.
16803         (Unimplemented): Temporary function raised by the body of new
16804         subprograms below.
16805         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
16806         unit provides handling of leap seconds and is used by the new Ada 2005
16807         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
16808         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
16809         version returns an extra value which is the offset to UTC.
16810
16811         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
16812         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
16813         (Split_W_Offset): New function body.
16814         (Time_Of): When a date is close to UNIX epoch, compute the time for
16815         that date plus one day (that amount is later substracted after
16816         executing mktime) so there are no problems with time zone adjustments.
16817
16818         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
16819
16820         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
16821         a-catizo.ads, a-catizo.adb: New files.
16822
16823         * impunit.adb: Add new Ada 2005 entries
16824
16825         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
16826         Rename all occurences of "__gnat_localtime_r" to
16827         "__gnat_localtime_tzoff".
16828         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
16829         zone data and calculate the GMT offset.
16830         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
16831         Use the field "tm_gmtoff" to extract the GMT offset.
16832         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
16833         the external variable "timezone" to calculate the GMT offset.
16834
16835 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
16836             Jose Ruiz  <ruiz@adacore.com>
16837
16838         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
16839         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
16840         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
16841         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
16842         System.Any_Priority to a POSIX priority on the target.
16843
16844         * system-linux-ia64.ads:
16845         Extend range of Priority types on Linux to use the whole range made
16846         available by the system.
16847
16848         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
16849         function maps from System.Any_Priority to a POSIX priority on the
16850         target.
16851         (PTHREAD_PRIO_PROTECT): Set real value.
16852         (PTHREAD_PRIO_INHERIT): Now a function.
16853         (SIGCPUFAIL): New signal.
16854         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
16855         are documented as reserved by the OS.
16856
16857         * system-aix.ads: Use the full range of priorities provided by the
16858         system on AIX.
16859
16860         * s-taprop-posix.adb: Call new function To_Target_Priority.
16861         (Set_Priority): Take into account Task_Dispatching_Policy and
16862         Priority_Specific_Dispatching pragmas when determining if Round Robin
16863         must be used for scheduling the task.
16864
16865         * system-linux-x86_64.ads, system-linux-x86.ads,
16866         system-linux-ppc.ads: Extend range of Priority types on Linux to use
16867         the whole range made available by the system.
16868
16869         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
16870         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
16871         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
16872         when deallocating the TCB in order to avoid potential references to
16873         deallocated data.
16874         (Set_Priority): Take into account Task_Dispatching_Policy and
16875         Priority_Specific_Dispatching pragmas when determining if Round Robin
16876         or FIFO within priorities must be used for scheduling the task.
16877
16878         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
16879         the Thread field (to be used internally by the run-time system) and the
16880         kernel-level task id in the LWP field (to be used by the debugger).
16881         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
16882         instance, and propagate the current task options to the spawned task.
16883         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
16884         (Initialize): Set Round Robin dispatching when the corresponding pragma
16885         is in effect.
16886
16887 2006-10-31  Robert Dewar  <dewar@adacore.com>
16888
16889         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16890         system-linux-hppa.ads, system-hpux-ia64.ads,
16891         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
16892         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
16893         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
16894         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
16895         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
16896         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
16897         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
16898         Default_Bit_Order) to kill constant condition warnings for references
16899         to this switch.
16900
16901 2006-10-31  Vincent Celier  <celier@adacore.com>
16902             Eric Botcazou  <ebotcazou@adacore.com>
16903
16904         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
16905         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
16906         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
16907         Ext_To, when building the library file name
16908
16909         * mlib-tgt-vxworks.adb: ditto.
16910         (Get_Target_Suffix): Add support for x86 targets.
16911
16912         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
16913
16914         * mlib-tgt-darwin.adb:
16915         Use Append_To, instead of Ext_To, when building the library file name
16916         (Flat_Namespace): New global variable.
16917         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
16918         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
16919         (Link_Shared_Libgcc): Delete.
16920         (Build_Dynamic_Library): Adjust for above changes.
16921         Use Opt package.
16922         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
16923
16924 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
16925
16926         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
16927         (Initialize): Add type conversions required by above change.
16928
16929 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
16930
16931         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
16932         (getpid): New body for this function that uses the underlying taskIdSelf
16933         function for VxWorks 5 and VxWorks 6 in kernel mode.
16934         (unsigned_int): New type, modular to allow logical bit operations.
16935         (taskOptionsGet): New imported function.
16936
16937         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
16938         field to be compliant with the type used by the corresponding operating
16939         system primitive.
16940
16941 2006-10-31  Pascal Obry  <obry@adacore.com>
16942             Eric Botcazou  <ebotcazou@adacore.com>
16943             Vincent Celier  <celier@adacore.com>
16944
16945         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
16946         ASCII version of the registry API. This is needed as the GNAT runtime
16947         is now UNICODE by default.
16948         Include version.h.
16949         (get_gcc_version): Do not hardcode the return value.
16950         (__gnat_file_time_name): On Windows properly set the default returned
16951         value to -1 which corresponds to Invalid_Time.
16952         (__gnat_fopen): New routine. A simple wrapper on all plateforms
16953          except on Windows where it does conversion for unicode support.
16954         (__gnat_freopen): Idem.
16955         (__gnat_locate_exec_on_path): If environment variable PATH does not
16956         exist, return a NULL pointer
16957
16958         * adaint.h: (__gnat_fopen): Declare.
16959         (__gnat_freopen): Likewise.
16960
16961         * mingw32.h (_tfreopen): Define this macro here for older MingW
16962         version.
16963         Activate the unicode support on platforms using a MingW runtime
16964         version 3.9 or newer.
16965
16966         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
16967         This is needed for proper unicode support on Windows.
16968         (freopen): Idem.
16969
16970 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
16971             Nicolas Setton  <setton@adacore.com>
16972             Olivier Hainque  <hainque@adacore.com>
16973             Gary Dismukes  <dismukes@adacore.com>
16974
16975         * gigi.h: (tree_code_for_record_type): Declare.
16976         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
16977         (get_global_renaming_pointers): Rename to
16978         invalidate_global_renaming_pointers.
16979         (static_ctors): Delete.
16980         (static_dtors): Likewise.
16981         (gnat_write_global_declarations): Declare.
16982         (create_var_decl): Adjust descriptive comment to indicate that the
16983         subprogram may return a CONST_DECL node.
16984         (create_true_var_decl): Declare new function, similar to
16985         create_var_decl but forcing the creation of a VAR_DECL node.
16986         (get_global_renaming_pointers): Declare.
16987         (add_global_renaming_pointer): Likewise.
16988
16989         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
16990
16991         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
16992         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
16993         processing.
16994         (gnat_to_gnu_entity): Remove From_With_Type from computation for
16995         imported_p.
16996         <E_Access_Type>: Use the Non_Limited_View as the full view of the
16997         designated type if the pointer comes from a limited_with clause.  Make
16998         incomplete designated type if it is in the main unit and has a freeze
16999         node.
17000         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17001         Underlying_Full_View similarly.  Return earlier if the full view already
17002         has an associated tree.
17003         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17004         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17005         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17006         reference type built for objects with an address clause.
17007         Use create_true_var_decl with const_flag set for
17008         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17009         TREE_READONLY set.
17010         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17011         for Character and Wide_Character types. This info is read by the
17012         dwarf-2 writer, and is needed to be able to use the command "ptype
17013         character" in the debugger.
17014         (gnat_to_gnu_entity): When generating a type representing
17015         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17016         so that debug writers can distinguish it from ordinary integers.
17017         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17018         addition to TREE_READONLY to assert the constantness of variables for
17019         elaboration purposes.
17020         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17021         parameters to call new Einfo function First_Formal_With_Extras.
17022         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17023         protected type with its corresponding discriminant, to obtain a usable
17024         declaration
17025         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17026         for a multiple elaboration of the "equivalent" type.
17027         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17028         into record_global_renaming_pointer.
17029         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17030         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17031         <E_Array_Subtype>: Likewise.
17032         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17033         incomplete subtypes and incomplete subtypes of incomplete types visible
17034         through a limited with clause.
17035         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17036         the base index type for the maximum size of the array only if they are
17037         constant.
17038         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17039         expression into a SAVE_EXPR if stabilization failed.
17040
17041         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17042         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17043         by lower level compilation passes.
17044         (gnat_genericize): New function, lowering a function body to GENERIC.
17045         Turn the type of RESULT_DECL into a real reference type if the decl
17046         has been marked DECL_BY_REFERENCE, and adjust references to the latter
17047         accordingly.
17048         (gnat_genericize_r): New function. Tree walking callback for
17049         gnat_genericize.
17050         (convert_from_reference, is_byref_result): New functions. Helpers for
17051         gnat_genericize_r.
17052         (create_type_decl): Call gnat_pushdecl before calling
17053         rest_of_decl_compilation, to make sure that field TYPE_NAME of
17054         type_decl is properly set before calling the debug information writers.
17055         (write_record_type_debug_info): The heuristics which compute the
17056         alignment of a field in a variant record might not be accurate. Add a
17057         safety test to make sure no alignment is set to a smaller value than
17058         the alignment of the field type.
17059         (make_dummy_type): Use the Non_Limited_View as the underlying type if
17060         the type comes from a limited_with clause. Do not loop on the full view.
17061         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17062         (dummy_node_table): New global variable, moved from decl.c.
17063         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17064         (save_gnu_tree): Use above macros.
17065         (get_gnu_tree): Likewise.
17066         (present_gnu_tree): Likewise.
17067         (init_dummy_type): New function, moved from decl.c. Use above macros.
17068         (make_dummy_type): Likewise.
17069         (tree_code_for_record_type): New function extracted from make_dummy_type
17070         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17071         (static_ctors): Change it to a vector, make static.
17072         (static_dtors): Likewise.
17073         (end_subprog_body): Adjust for above change.
17074         (build_global_cdtor): Moved from trans.c.
17075         (gnat_write_global_declarations): Emit global constructor and
17076         destructor, and call cgraph_optimize before emitting debug info for
17077         global declarations.
17078         (global_decls): New global variable.
17079         (gnat_pushdecl): Store the global declarations in global_decls, for
17080         later use.
17081         (gnat_write_global_declarations): Emit debug information for global
17082          declarations.
17083         (create_var_decl_1): Former create_var_decl, with an extra argument to
17084          state whether the creation of a CONST_DECL is allowed.
17085         (create_var_decl): Behavior unchanged. Now a wrapper around
17086         create_var_decl_1 allowing CONST_DECL creation.
17087         (create_true_var_decl): New function, similar to create_var_decl but
17088         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17089         (create_field_decl): Do not always mark the field as addressable
17090         if its type is an aggregate.
17091         (global_renaming_pointers): New static variable.
17092         (add_global_renaming_pointer): New function.
17093         (get_global_renaming_pointers): Likewise.
17094
17095         * misc.c (gnat_dwarf_name): New function.
17096         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17097         (gnat_post_options): Add comment about structural alias analysis.
17098         (gnat_parse_file): Do not call cgraph_optimize here.
17099         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17100
17101         * trans.c (process_freeze_entity): Don't abort if we already have a
17102         non dummy GCC tree for a Concurrent_Record_Type, as it might
17103         legitimately have been elaborated while processing the associated
17104         Concurrent_Type prior to this explicit freeze node.
17105         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17106         exception handler volatile if it is of variable size.
17107         (process_type): Remove bypass for types coming from a limited_with
17108         clause.
17109         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17110         actual, convert the corresponding gnu_actual to the real destination
17111         type when necessary.
17112         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17113         originally TREE_READONLY but whose elaboration cannot be performed
17114         statically.
17115         Part of fix for F504-021.
17116         (tree_transform, subprogram cases): Change loops on formal parameters to
17117         call new Einfo function First_Formal_With_Extras.
17118         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17119         stemming from type conversion for the lhs.
17120         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17121         number of bits per unit for components of records.
17122         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17123         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17124         with At_End_Proc after the SJLJ EH cleanup.
17125         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17126         compilation unit.
17127         (elaborate_all_entities): Do not retest type_annotate_only.
17128         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17129         result type of an abstract subprogram, which may be an itype associated
17130         with an anonymous access result (related to AI-318-02).
17131         (build_global_cdtor): Move to utils.c.
17132         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17133         this choice is not a null tree nor an integer constant.
17134         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17135         on the body of elaboration routines instead of mark_unvisited.
17136         (add_stmt): Do not mark the tree.
17137         (add_decl_expr): Tweak comment.
17138         (mark_unvisited): Delete.
17139         (unshare_save_expr): New static function.
17140         (call_to_gnu): Issue an error when making a temporary around a
17141         procedure call because of non-addressable actual parameter if the
17142         type of the formal is by_reference.
17143         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17144         after building the elaboration routine.
17145
17146 2006-10-31  Bob Duff  <duff@adacore.com>
17147
17148         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17149         as finalization-started, so we can raise Program_Error on 'new'.
17150
17151         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17152         collection has already started.
17153
17154         * s-finimp.ads (Collection_Finalization_Started): Added new special
17155         flag value for indicating that a collection's finalization has started.
17156
17157         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17158         create a task whose master has already waited for dependent tasks.
17159
17160 2006-10-31  Robert Dewar  <dewar@adacore.com>
17161
17162         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17163
17164         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17165         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17166         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17167         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17168         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17169         a-except-2005.ads: Add pragma Preelaborable_Warning
17170
17171 2006-10-31  Robert Dewar  <dewar@adacore.com>
17172             Jose Ruiz  <ruiz@adacore.com>
17173
17174         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17175
17176         * ali.adb (Get_Name): Properly handle scanning of wide character names
17177         encoded with brackets notation.
17178         (Known_ALI_Lines): Add S lines to this list.
17179         (Scan_ALI): Acquire S (priority specific dispatching) lines.
17180         New flag Elaborate_All_Desirable in unit table
17181
17182         * ali.ads (Priority_Specific_Dispatching): Add this range of
17183         identifiers to be used for Priority_Specific_Dispatching table entries.
17184         (ALIs_Record): Add First_Specific_Dispatching and
17185         Last_Specific_Dispatching that point to the first and last entries
17186         respectively in the priority specific dispatching table for this unit.
17187         (Specific_Dispatching): Add this table for storing each S (priority
17188         specific dispatching) line encountered in the input ALI file.
17189         New flag Elaborate_All_Desirable in unit table
17190
17191         * bcheck.adb: (Check_Configuration_Consistency): Add call to
17192         Check_Consistent_Dispatching_Policy.
17193         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17194         verifying that the use of Priority_Specific_Dispatching,
17195         Task_Dispatching_Policy, and Locking_Policy is consistent across the
17196         partition.
17197
17198         * bindgen.adb: (Public_Version_Warning): function removed.
17199         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17200         required information from ALI files in order to initialize the table
17201         containing the specific dispatching policy.
17202         (Gen_Adainit_Ada): Generate the variables required for priority specific
17203         dispatching entries (__gl_priority_specific_dispatching and
17204         __gl_num_specific_dispatching).
17205         (Gen_Adainit_C): Generate the variables required for priority specific
17206         dispatching entries (__gl_priority_specific_dispatching and
17207         __gl_num_specific_dispatching).
17208         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17209         pragma entries.
17210         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17211         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17212         (Tab_To): Removed.
17213         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17214         a call to gnat_set_globals.
17215         Generate a string containing settings from
17216         Priority_Specific_Dispatching pragma entries.
17217         (Gen_Object_Files_Options): Do not include the runtime libraries when
17218         pragma No_Run_Time is specified.
17219
17220         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17221         consistency with s-intman-posix.adb.
17222         (__gnat_error_handler, case FreeBSD): Account for the fact that the
17223         handler is installed with SA_SIGINFO.
17224         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17225         FreeBSD ZCX support, copied from Linux version.
17226         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17227         sigfillset, and sigemptyset so the routines defined by MaRTE.
17228         (__gl_priority_specific_dispatching): Add this variable that stores the
17229         string containing priority specific dispatching policies in the
17230         partition.
17231         (__gl_num_specific_dispatching): Add this variable that indicates the
17232         highest priority for which a priority specific dispatching pragma
17233         applies.
17234         (__gnat_get_specific_dispatching): Add this routine that returns the
17235         priority specific dispatching policy, as set by a
17236         Priority_Specific_Dispatching pragma appearing anywhere in the current
17237         partition. The input argument is the priority number, and the result
17238         is the upper case first character of the policy name.
17239         (__gnat_set_globals): Now a dummy function.
17240         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17241         mechargs instead of sigargs, as the latter can be retrieved from the
17242         former and sigargs is not what we want on ia64.
17243         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17244         mechargs argument.
17245         (__gnat_adjust_context_for_raise, ia64-vms): New function.
17246         (tasking_error): Remove unused symbol.
17247         (_abort_signal): Move this symbol to the IRIX specific part since this
17248         is the only target that uses this definition.
17249         (Check_Abort_Status): Move this symbol to the IRIX specific part since
17250         this is the only target that uses this definition.
17251         (Lock_Task): Remove unused symbol.
17252         (Unlock_Task): Remove unused symbol.
17253
17254         * lib-writ.adb (Write_ALI): Output new S lines for
17255         Priority_Specific_Dispatching pragmas.
17256         Implement new flag BD for elaborate body desirable
17257
17258         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17259         (Specific_Dispatching): Add this table for storing the entries
17260         corresponding to Priority_Specific_Dispatching pragmas.
17261         Document new BD flag for elaborate body desirable
17262
17263         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17264         of known pragmas.
17265
17266 2006-10-31  Javier Miranda  <miranda@adacore.com>
17267
17268         * a-tags.ads, a-tags.adb:
17269         (Predefined_DT): New function that improves readability of the code.
17270         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17271         Inherit_DT): Use the new function Predefined_DT to improve code
17272         readability.
17273         (Register_Interface_Tag): Update assertion.
17274         (Set_Interface_Table): Update assertion.
17275         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17276         determining progenitor interfaces in Tags.
17277         (Inherit_CPP_DT): New subprogram.
17278
17279         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17280         analysis of the thunk code.
17281         (Expand_Interface_Conversion): Handle run-time conversion of
17282         access to class wide types.
17283         (Expand_Dispatching_Call): When generating the profile for the
17284         subprogram itype for a dispatching operation, properly terminate the
17285         formal parameters chaind list (set the Next_Entity of the last formal
17286         to Empty).
17287         (Collect_All_Interfaces): Removed. This routine has been moved to
17288         sem_util and renamed as Collect_All_Abstract_Interfaces.
17289         (Set_All_DT_Position): Hidden entities associated with abstract
17290         interface primitives are not taken into account in the check for
17291         3.9.3(10); this check is done with the aliased entity.
17292         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17293         interfacing with CPP by default.
17294         (Expand_Interface_Conversion): Add missing support for static conversion
17295         from an interface to a tagged type.
17296         (Collect_All_Interfaces): Add new out formal containing the list of
17297         abstract interface types to cleanup the subprogram Make_DT.
17298         (Make_DT): Update the code to generate the table of interfaces in case
17299         of abstract interface types.
17300         (Is_Predefined_Dispatching_Alias): New function that returns true if
17301         a primitive is not a predefined dispatching primitive but it is an
17302         alias of a predefined dispatching primitive.
17303         (Make_DT): If the ancestor of the type is a CPP_Class and we are
17304         compiling under full ABI compatibility mode we avoid the generation of
17305         calls to run-time services that fill the dispatch tables because under
17306         this mode we currently inherit the dispatch tables in the IP subprogram.
17307         (Write_DT): Emit an "is null" indication for a null procedure primitive.
17308         (Expand_Interface_Conversion): Use an address as the type of the formal
17309         of the internally built function that handles the case in which the
17310         target type is an access type.
17311
17312 2006-10-31  Robert Dewar  <dewar@adacore.com>
17313
17314         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17315
17316 2006-10-31  Robert Dewar  <dewar@adacore.com>
17317
17318         * bindusg.ads, bindusg.adb:
17319         Change to package and rename procedure as Display, which
17320         now ensures that it only outputs usage information once.
17321
17322 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17323
17324         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17325         using RTPs.
17326
17327         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17328         when using RTPs.
17329
17330 2006-10-31  Robert Dewar  <dewar@adacore.com>
17331             Ed Schonberg  <schonberg@adacore.com>
17332
17333         * treepr.adb: Use new subtype N_Membership_Test
17334
17335         * checks.ads, checks.adb: Add definition for Validity_Check
17336         (Range_Or_Validity_Checks_Suppressed): New function
17337         (Ensure_Valid): Test Validity_Check suppressed
17338         (Insert_Valid_Check): Test Validity_Check suppressed
17339         (Insert_Valid_Check): Preserve Do_Range_Check flag
17340         (Validity_Check_Range): New procedure
17341         (Expr_Known_Valid): Result of membership test is always valid
17342         (Selected_Range_Checks): Range checks cannot be applied to discriminants
17343         by themselves. Disabling those checks must also be done for task types,
17344         where discriminants may be used for the bounds of entry families.
17345         (Apply_Address_Clause_Check): Remove side-effects if address expression
17346         is non-static and is not the name of a declared constant.
17347         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17348         Code cleanup and new error messages.
17349         (Enable_Range_Check): Test for some cases of suppressed checks
17350         (Generate_Index_Checks): Suppress index checks if index checks are
17351         suppressed for array object or array type.
17352         (Apply_Selected_Length_Checks): Give warning for compile-time detected
17353         length check failure, even if checks are off.
17354         (Ensure_Valid): Do not generate a check on an indexed component whose
17355         prefix is a packed boolean array.
17356         * checks.adb: (Alignment_Checks_Suppressed): New function
17357         (Apply_Address_Clause_Check): New procedure, this is a completely
17358         rewritten replacement for Apply_Alignment_Check
17359         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17360         we request a discriminal value only in case of discriminants.
17361         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17362         assignments where the target subtype is unconstrained and the target
17363         object is a parameter or dereference (other aliased cases are known
17364         to be unconstrained).
17365
17366 2006-10-31  Robert Dewar  <dewar@adacore.com>
17367
17368         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17369         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17370         vms_conv.adb: Fix bad table increment values (much too small)
17371
17372         * table.adb (Realloc): Make sure we get at least some new elements
17373         Defends against silly small values for table increment
17374
17375 2006-10-31  Robert Dewar  <dewar@adacore.com>
17376             Ed Schonberg  <schonberg@adacore.com>
17377             Bob Duff  <duff@adacore.com>
17378
17379         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17380         entities. Move other fields around to make this possible
17381         (Is_Derived_Type): Add missing call to Is_Type.
17382         (Extra_Formals): New function for subprograms, entries, subprogram
17383         types.
17384         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17385         (First_Formal_With_Extras): New function for subprogs, entries, subp
17386         types.
17387         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17388         Add node information for E_Return_Statement.
17389         (Elaborate_Body_Desirable): New flag
17390         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17391         to be Is_Inherently_Limited_Type, because return-by-reference has
17392         no meaning in Ada 2005.
17393         (E_Return_Statement): New entity kind.
17394         (Return_Applies_To): Field of E_Return_Statement.
17395         (Is_Return_Object): New flag in object entities.
17396         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17397         (Must_Have_Preelab_Init): New flag
17398         (Known_To_Have_Preelab_Init): New flag
17399         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17400         (Is_Visible_Formal): New flag on entities in formal packages.
17401         (Low_Bound_Known): New flag
17402         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17403         Incomplete_Kind.
17404         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17405         output when Id is an incomplete subtype.
17406
17407 2006-10-31  Robert Dewar  <dewar@adacore.com>
17408
17409         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17410         Avoid abbreviation Creat
17411         (Finalize): List all sources in extended mail source if -gnatl
17412         switch is active.
17413         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17414         (Finalize): Implement new -gnatl=xxx switch to output listing to file
17415         (Set_Specific_Warning_On): New procedure
17416         (Set_Specific_Warning_Off): New procedure
17417         Add implementation of new insertion \\
17418         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17419         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17420         types.
17421         (Error_Msg_Internal): Make sure that we set Last_Killed to
17422         True when a message from another package is suppressed.
17423         Implement insertion character ~ (insert string)
17424         (First_Node): Minor adjustments to get better placement.
17425
17426         * frontend.adb:
17427         Implement new -gnatl=xxx switch to output listing to file
17428
17429         * gnat1drv.adb:
17430         Implement new -gnatl=xxx switch to output listing to file
17431
17432         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
17433         (Commands_To_Stdout): New flag
17434         Implement new -gnatl=xxx switch to output listing to file
17435         New switch Dump_Source_Text
17436         (Warn_On_Deleted_Code): New warning flag for -gnatwt
17437         Define Error_Msg_Line_Length
17438         (Warn_On_Assumed_Low_Bound): New switch
17439
17440         * osint.ads, osint.adb
17441         (Normalize_Directory_Name): Fix bug.
17442         Implement new -gnatl=xxx switch to output listing to file
17443         (Concat): Removed, replaced by real concatenation
17444         Make use of concatenation now allowed in compiler
17445         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17446         we find the 'lib' or 'bin' directory even when the tool has been
17447         invoked with a relative path.
17448         (Executable_Name): New function taking string parameters.
17449
17450         * osint-c.ads, osint-c.adb:
17451         Implement new -gnatl=xxx switch to output listing to file
17452
17453         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17454
17455         * switch-c.adb:
17456         Implement new -gnatl=xxx switch to output listing to file
17457         Recognize new -gnatL switch
17458         (no longer keep in old warning about old style usage)
17459         Use concatenation to simplify code
17460         Recognize -gnatjnn switch
17461         (Scan_Front_End_Switches): Clean up handling of -gnatW
17462         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17463
17464 2006-10-31  Robert Dewar  <dewar@adacore.com>
17465
17466         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17467         (Set_Specific_Warning_Off): New procedure
17468         (Warning_Specifically_Suppressed): New function
17469         (Validate_Specific_Warnings): New procedure
17470         (Output_Msg_Text): Complete rewrite to support -gnatjnn
17471
17472         * err_vars.ads: Implement insertion character ~ (insert string)
17473
17474 2006-10-31  Bob Duff  <duff@adacore.com>
17475             Ed Schonberg  <schonberg@adacore.com>
17476
17477         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17478         the parent part is a build-in-place function call, generate assignments.
17479         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17480         are build-in-place function calls.
17481         (Replace_Self_Reference): New subsidiary of
17482         Make_OK_Assignment_Statement, to replace an access attribute that is a
17483         self-reference into an access to the appropriate component of the
17484         target object. Generalizes previous mechanism to handle self-references
17485         nested at any level.
17486         (Is_Self_Referential_Init): Remove, not needed.
17487         (Is_Self_Referential_Init): New predicate to simplify handling of self
17488         referential components in record aggregates.
17489         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17490         check for presence of entity before checking for self-reference.
17491         (Has_Default_Init_Comps): Return True if a component association is a
17492         self-reference to the enclosing type, which can only come from a
17493         default initialization.
17494         (Make_OK_Assignment_Statement): If the expression is of the form
17495         Typ'Acc, where Acc is an access attribute, the expression comes from a
17496         default initialized self-referential component.
17497         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17498         that has been derived from several abstract interfaces we must also
17499         initialize the tags of the secondary dispatch tables.
17500
17501 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17502             Thomas Quinot  <quinot@adacore.com>
17503             Javier Miranda  <miranda@adacore.com>
17504             Robert Dewar  <dewar@adacore.com>
17505
17506         * exp_attr.adb:
17507         (Expand_Access_To_Protected_Op): If the context indicates that an access
17508         to a local operation may be transfered outside of the object, create an
17509         access to the wrapper operation that must be used in an external call.
17510         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17511         target, pass the Valid attribute applied to a floating-point prefix on
17512         to the back end without expansion.
17513         (Storage_Size): Use the new run-time function Storage_Size to retrieve
17514         the allocated storage when it is specified by a per-object expression.
17515         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17516         Nothing to do here, the attribute has been rewritten during semantic
17517         analysis.
17518         (Expand_Attribute_Reference): Handle expansion of the new Priority
17519         attribute
17520         (Find_Fat_Info): Handle case of universal real
17521         (Expand_Access_To_Protected_Op): Fix use of access to protected
17522         subprogram from inside the body of a protected entry.
17523         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17524         'Access and 'Unrestricted_Access, to transform the attribute reference
17525         into a fat pointer.
17526         (Is_Constrained_Aliased_View): New predicate to help determine whether a
17527         subcomponent's enclosing variable is aliased with a constrained subtype.
17528         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17529         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17530         an aliased prefix must be known to be constrained in order to use True
17531         for the attribute value, and now it's possible for some aliased views
17532         to be unconstrained.
17533
17534 2006-10-31  Robert Dewar  <dewar@adacore.com>
17535
17536         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17537         (Expand_Entity_Reference): Correct error of not handling subprogram
17538         formals in current_value processing.
17539
17540 2006-10-31  Javier Miranda  <miranda@adacore.com>
17541             Robert Dewar  <dewar@adacore.com>
17542             Ed Schonberg  <schonberg@adacore.com>
17543             Gary Dismukes  <dismukes@adacore.com>
17544
17545         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
17546         register in the final list objects containing class-wide interfaces;
17547         otherwise we incorrectly register the tag of the interface in the final
17548         list.
17549         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17550         generate the wrapper if the parent primitive is abstract. This is
17551         required to report the correct error message.
17552         (Expand_N_Subtype_Indication): Do validity checks on range
17553         (Clean_Task_Names): If an initialization procedure includes a call to
17554         initialize a task (sub)component, indicate that the procedure will use
17555         the secondary stack.
17556         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17557         compatibility for interfacing with CPP by default.
17558         (Expand_N_Object_Declaration): Only build an Adjust call when the
17559         object's type is a nonlimited controlled type.
17560         * exp_ch3.adb: Add with and use of Exp_Ch6.
17561         (Expand_N_Object_Declaration): Check for object initialization that is a
17562         call to build-in-place function and apply Make_Build_In_Place_Call_In_
17563         Object_Declaration to the call.
17564         (Freeze_Type): When the designated type of an RACW was not frozen at the
17565         point where the RACW was declared, validate the primitive operations
17566         with respect to E.2.2(14) when it finally is frozen.
17567         (Build_Initialization_Call,Expand_Record_Controller): Rename
17568         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17569         return-by-reference has no meaning in Ada 2005.
17570         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17571         to register tag of the immediate ancestor interfaces in the
17572         run-time structure.
17573         (Init_Secondary_Tags): Moved to the specification to allow the
17574         initialization of extension aggregates with abstract interfaces.
17575         (Build_Master_Renaming): Make public, for use by function declarations
17576         whose return type is an anonymous access type.
17577         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17578         Insert_List_Before_And_Analyze after the generation of the specs
17579         associated with null procedures.
17580         (Expand_Tagged_Root): Update documentation in its specification.
17581         (Init_Secondary_Tags): Update documentation.
17582         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17583         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17584         then generate code to inherit the contents of the dispatch table
17585         directly from the ancestor.
17586         (Expand_Record_Controller): Insert controller component after tags of
17587         implemented interfaces.
17588         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17589         create null procedure overridings when null procedures are inherited
17590         from interfaces.
17591         (Make_Null_Procedure_Specs): New procedure to generate null procedure
17592         declarations for overriding null primitives inherited from interfaces.
17593         (Is_Null_Interface_Procedure): New function in
17594         Make_Null_Procedure_Specs.
17595         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17596         immediate ancestor of a tagged type is an abstract interface type we
17597         must generate the specification of the predefined primitives associated
17598         with controlled types (because the dispatch table of the ancestor is
17599         null and hence these entries cannot be inherited). This is required to
17600         elaborate well the dispatch table.
17601
17602 2006-10-31  Javier Miranda  <miranda@adacore.com>
17603             Ed Schonberg  <schonberg@adacore.com>
17604             Bob Duff  <duff@adacore.com>
17605             Gary Dismukes  <dismukes@adacore.com>
17606             Robert Dewar  <dewar@adacore.com>
17607
17608         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
17609         conversion.
17610         (Expand_N_In): Do validity checks on range
17611         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17612         (Expand_N_Allocator): For "new T", if the object is constrained by
17613         discriminant defaults, allocate the right amount of memory, rather than
17614         the maximum for type T.
17615         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17616         when the allocator is initialized by a build-in-place call, since the
17617         allocator is already rewritten as a reference to the function result,
17618         and this prevents an unwanted duplication of the function call.
17619         Add with and use of Exp_Ch6.
17620         (Expand_Allocator_Expresssion): Check for an allocator whose expression
17621         is a call to build-in-place function and apply
17622         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17623         untagged designated types).
17624         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17625         optimization if source or target is biased.
17626         (Expand_N_Allocator): Add comments for case of an allocator within a
17627         function that returns an anonymous access type designating tasks.
17628         (Expand_N_Allocator): apply discriminant checks for access
17629         discriminants of anonymous access types (AI-402, AI-416)
17630
17631 2006-10-31  Bob Duff  <duff@adacore.com>
17632             Robert Dewar  <dewar@adacore.com>
17633             Gary Dismukes  <dismukes@adacore.com>
17634             Ed Schonberg  <schonberg@adacore.com>
17635
17636         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17637
17638         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
17639         (Expand_N_Assignment_Statement): Call
17640         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17641         build-in-place function call. Currently, this can happen only for
17642         assignments that come from aggregates.
17643         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17644         in order to alleviate the upward compatibility introduced by AI-318.
17645         (Expand_N_Extended_Return_Statement): Add support for handling the
17646         return object as a build-in-place result.
17647         (Expand_Non_Function_Return): Implement simple return statements nested
17648         within an extended return.
17649         (Enable_New_Return_Processing): Turn on the new processing of return
17650         statements.
17651         (Expand_Non_Function_Return): For a return within an extended return,
17652         don't raise Program_Error, because Sem_Ch6 now gives a warning.
17653         (Expand_N_Extended_Return_Statement): Implement AI-318
17654         (Expand_Simple_Function_Return): Ditto.
17655         (Expand_N_If_Statement): Handle new -gnatwt warning
17656         (Expand_N_Case_Statement): Handle new -gnatwt warning
17657         (Expand_N_Assignment): Handle assignment to the Priority attribute of
17658         a protected object.
17659         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17660         validity checking of assignments to elementary record components.
17661         (Expand_N_Return_Statement): return Class Wide types on the secondary
17662         stack independantly of their controlled status since with HIE runtimes,
17663         class wide types are not potentially controlled anymore.
17664
17665         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17666         node kind.
17667
17668         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17669         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17670         it expects a block, procedure, or task. The return statement will get
17671         turned into a block, and Expand_Cleanup_Actions will happen then.
17672
17673 2006-10-31  Robert Dewar  <dewar@adacore.com>
17674             Ed Schonberg  <schonberg@adacore.com>
17675             Bob Duff  <duff@adacore.com>
17676             Gary Dismukes  <dismukes@adacore.com>
17677
17678         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17679         capability.
17680         (Expand_Inlined_Call): Tagged types are by-reference types, and
17681         therefore should be replaced by a renaming declaration in the expanded
17682         body, as is done for limited types.
17683         (Expand_Call): If this is a call to a function with dispatching access
17684         result, propagate tag from context.
17685         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17686         CPP by default.
17687         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17688         build-in-place when the right-hand side of an assignment is a
17689         build-in-place function call.
17690         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17691         of the explicit dereference of the allocator to the result subtype of
17692         the build-in-place function. This is needed to satisfy type checking
17693         in cases where the caller's return object is created by an allocator for
17694         a class-wide access type and the type named in the allocator is a
17695         specific type.
17696         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
17697         conversion of the reference to the declared object to the result subtype
17698         of the build-in-place function. This is needed to satisfy type checking
17699         in cases where the declared object has a class-wide type. Also, in the
17700         class-wide case, change the type of the object entity to the specific
17701         result subtype of the function, to avoid passing a class-wide object
17702         without explicit initialization to the back end.
17703         (Register_Interface_DT_Entry): Moved outside the body of
17704         Freeze_Subprogram because this routine is now public; it is called from
17705         Check_Dispatching_Overriding to handle late overriding of abstract
17706         interface primitives.
17707         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
17708         adding an implicit access actual on a call to a build-in-place function.
17709         (Expand_Actuals): Test for an actual parameter that is a call to a
17710         build-in-place function and apply
17711         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
17712         (Is_Build_In_Place_Function): New function to determine whether an
17713         entity is a function whose calls should be handled as build-in-place.
17714         (Is_Build_In_Place_Function_Call): New function to determine whether an
17715         expression is a function call that should handled as build-in-place.
17716         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
17717         calls to build-in-place functions as the initialization of an allocator.
17718         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
17719         handling calls to build-in-place functions in contexts that do not
17720         involve init of a separate object (for example, actuals of subprogram
17721         calls).
17722         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
17723         handling calls to build-in-place functions as the initialization of an
17724         object declaration.
17725         (Detect_Infinite_Recursion): Add explicit parameter Process to
17726         instantiation of Traverse_Body to avoid unreferenced warning.
17727         (Check_Overriding_Inherited_Interfaces): Removed.
17728         (Register_Interface_DT_Entry): Code cleanup.
17729         (Register_Predefined_DT_Entry): Code cleanup.
17730         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
17731         inlined statements if within a transient scope.
17732         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
17733         formal parameters with occurrences of actuals in inlined body, establish
17734         visibility on the proper view of the actual's subtype for the body's
17735         context.
17736         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
17737         compatibility mode and we have an imported CPP subprogram because
17738         for now we assume that imported CPP primitives correspond with
17739         objects whose constructor is in the CPP side (and therefore we
17740         don't need to generate code to register them in the dispatch table).
17741         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
17742         aligned selected component.
17743         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
17744         the actual of an in-mode parameter is a type conversion.
17745         (Expand_Actuals): If the call does not come from source and the actual
17746         is potentially misaligned, let gigi handle it rather than rejecting the
17747         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
17748         Class Wide types as returning by reference independantly of their
17749         controlled status since with HIE runtimes class wide types are not
17750         potentially controlled anymore.
17751
17752 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17753
17754         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
17755         references that are private components of the protected object.
17756         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
17757         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
17758         instantiation to deal with warnings.
17759         (Initialize_Protection): If expression for priority is non-static, use
17760         System_Priority as its expected type, in case the expression has not
17761         been analyzed yet.
17762
17763 2006-10-31  Robert Dewar  <dewar@adacore.com>
17764
17765         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
17766         initialization of Homonym_Len.
17767         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
17768         names from fully qualified name. Fixes problem of duplicate
17769         external names differing only in the presence of such a block name.
17770
17771 2006-10-31  Thomas Quinot  <quinot@adacore.com>
17772             Pablo Oliveira  <oliveira@adacore.com>
17773
17774         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
17775         subprogram Ids, even if they are not yet assigned.
17776         (Build_Subprogram_Id): It is now this function that will take care of
17777         calling Assign_Subprogram_Ids if necessary.
17778         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
17779         should be done only once they are assigned.
17780         (Build_From_Any_Function, case of tagged types): Add missing call to
17781         Allocate_Buffer.
17782         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
17783         type for an RACW type.
17784         (Add_RACW_Features): When processing an RACW declaration for which the
17785         designated type is already frozen, enforce E.2.2(14) rules immediately.
17786         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
17787         special reordering of controlling formals.
17788
17789         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
17790         associated stub type for an RACW type.
17791
17792 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
17793
17794         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
17795         fixed-point operations in an integer context, i.e. as operands of a
17796         conversion to an integer type, indicate that result must be rounded.
17797
17798 2006-10-31  Robert Dewar  <dewar@adacore.com>
17799
17800         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
17801         cases, pass the encoding method, since it is now required by the run
17802         time.
17803
17804         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
17805         assumption that Str'First = 1.
17806         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
17807         it on to the Value_Wide_Wide_Character call.
17808         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
17809         properly handles a string of the form quote-encoded_wide_char-quote.
17810
17811         * s-wchcnv.adb: Minor reformatting
17812
17813 2006-10-31  Javier Miranda  <miranda@adacore.com>
17814
17815         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
17816         run-time membership test to ensure that the constructed object
17817         implements the target abstract interface.
17818
17819 2006-10-31  Robert Dewar  <dewar@adacore.com>
17820
17821         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
17822         Machine_Attribute pragma internally to implement the user pragma.
17823         Add processing for pragma Interface so that it is now completely
17824         equivalent to pragma Import.
17825
17826         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
17827         so that it can be applied to all entities, including record components
17828         and enumeration literals.
17829         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
17830         priority ranges are correct, verify compatibility against task
17831         dispatching and locking policies, and if everything is correct an entry
17832         is added to the table containing priority specific dispatching entries
17833         for this compilation unit.
17834         (Delay_Config_Pragma_Analyze): Delay processing
17835         Priority_Specific_Dispatching pragmas because when processing the
17836         pragma we need to access run-time data, such as the range of
17837         System.Any_Priority.
17838         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
17839         Allow pragma Unreferenced as a context item
17840         Add pragma Preelaborable_Initialization
17841         (Analyze_Pragma, case Interface): Interface is extended so that it is
17842         now syntactically and semantically equivalent to Import.
17843         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
17844         insertion characters.
17845         Add handling for Pragma_Wide_Character_Encoding
17846         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
17847         never supercedes a real restriction, and that a real restriction
17848         always supercedes a warning.
17849         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
17850         appropriate form.
17851
17852 2006-10-31  Bob Duff  <duff@adacore.com>
17853             Ed Schonberg  <schonberg@adacore.com>
17854             Robert Dewar  <dewar@adacore.com>
17855
17856         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
17857         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
17858         Is_Inherently_Limited_Type, because return-by-reference has no meaning
17859         in Ada 2005.
17860         (Find_Node_To_Be_Wrapped): Use new method of determining the result
17861         type of the function containing a return statement, because the
17862         Return_Type field was removed. We now use the Return_Applies_To field.
17863
17864         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
17865         (Build_Task_Image_Decl): If procedure is not called from an
17866         initialization procedure, indicate that function that builds task name
17867         uses the sec. stack. Otherwise the enclosing initialization procedure
17868         will carry the indication.
17869         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
17870         N_Object_Declaration instead.
17871         (Kill_Dead_Code): New interface to implement -gnatwt warning for
17872         conditional dead code killed, and change implementation accordingly.
17873         (Insert_Actions): Add N_Return_Object_Declaration case.
17874         Correct comment to mention N_Extension_Aggregate node.
17875         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
17876         attempts to save information for global variables which cannot be
17877         safely tracked.
17878         (Get_Current_Value_Condition): Handle conditions the other way round
17879         (constant on left). Also handle right operand of AND and AND THEN
17880         (Set_Current_Value_Condition): Corresponding changes
17881         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
17882         (Get_Current_Value_Condition): Handle simple boolean operands
17883         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
17884         (Get_Current_Value_Condition): If the variable reference is within an
17885         if-statement, does not appear in the list of then_statments, and does
17886         not come from source, treat it as being at unknown location.
17887         (Get_Current_Value_Condition): Enhance to allow while statements to be
17888         processed as well as if statements.
17889         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
17890         come from source.
17891         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
17892         of loop. This is safe now that we fixed Kill_Current_Values.
17893         (OK_To_Do_Constant_Replacement): Check whether current scope is
17894         Standard, before examining outer scopes.
17895
17896 2006-10-31  Vincent Celier  <celier@adacore.com>
17897
17898         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
17899         When True, apply VMS treatment to children of packages A, G, I and S.
17900         For F320-016
17901
17902         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
17903
17904 2006-10-31  Robert Dewar  <dewar@adacore.com>
17905             Ed Schonberg  <schonberg@adacore.com>
17906
17907         * freeze.adb: Add handling of Last_Assignment field
17908         (Warn_Overlay): Supply missing continuation marks in error msgs
17909         (Freeze_Entity): Add check for Preelaborable_Initialization
17910
17911         * g-comlin.adb: Add Warnings (Off) to prevent new warning
17912
17913         * g-expect.adb: Add Warnings (Off) to prevent new warning
17914
17915         * lib-xref.adb: Add handling of Last_Assignment field
17916         (Generate_Reference): Centralize handling of pragma Obsolescent here
17917         (Generate_Reference): Accept an implicit reference generated for a
17918         default in an instance.
17919         (Generate_Reference): Accept a reference for a node that is not in the
17920         main unit, if it is the generic body corresponding to an subprogram
17921         instantiation.
17922
17923         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
17924
17925         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
17926         -gnatwq/Q.
17927         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
17928         exception handler.
17929         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
17930         use clauses, to avoid messages on packages used to qualify, and also
17931         to avoid messages from obsolescent units.
17932         (Warn_On_Useless_Assignments): Don't generate messages for imported
17933         and exported variables.
17934         (Warn_On_Useless_Assignments): New procedure
17935         (Output_Obsolescent_Entity_Warnings): New procedure
17936         (Check_Code_Statement): New procedure
17937
17938         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
17939         Change name Is_Ada_2005 to Is_Ada_2005_Only
17940         (Last_Assignment): New field for useless assignment warning
17941
17942 2006-10-31  Olivier Hainque  <hainque@adacore.com>
17943
17944         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
17945         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
17946
17947 2006-10-31  Bob Duff  <duff@adacore.com>
17948             Robert Dewar  <dewar@adacore.com>
17949             Ed Schonberg  <schonberg@adacore.com>
17950
17951         * g-awk.adb (Default_Session, Current_Session): Compile this file in
17952         Ada 95 mode, because it violates the new rules for AI-318.
17953
17954         * g-awk.ads: Use overloaded subprograms in every case where we used to
17955         have a default of Current_Session. This makes the code closer to be
17956         correct for both Ada 95 and 2005.
17957
17958         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
17959         code, relying on the fact that the compiler generates a warning
17960         instead of an error in -gnatg mode.
17961
17962         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
17963         E_Return_Statement entity kind.
17964         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
17965
17966         * par.adb (P_Interface_Type_Definition): Addition of one formal to
17967         report an error if the reserved word abstract has been previously found.
17968         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
17969
17970         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
17971         parenthesized range attribute usage
17972         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
17973
17974         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
17975         in the syntax for extended_return_statement. This is not in the latest
17976         RM, but the ARG is expected to issue an AI allowing this.
17977         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
17978         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
17979         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
17980         P_Return_Statement): Parse the new syntax for extended_return_statement.
17981
17982         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
17983         Output_End_Missing): Add error-recovery code for the new
17984         extended_return_statement syntax; that is, the new E_Return entry on
17985         the scope stack.
17986
17987         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
17988         limited to nonlimited, because otherwise we violate the new Ada 2005
17989         rules about returning limited types in function Create_AST_Handler in
17990         s-asthan.adb.
17991
17992         * sem.adb (Analyze): Add cases for new node kinds
17993         N_Extended_Return_Statement and N_Return_Object_Declaration.
17994
17995         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
17996         type is in the same category as type of context before applying check,
17997         to prevent anomalies in instantiations.
17998         (Resolve_Aggregate): Remove test for limited components in aggregates.
17999         It's unnecessary in Ada 95, because if it has limited components, then
18000         it must be limited. It's wrong in Ada 2005, because limited aggregates
18001         are now allowed.
18002         (Resolve_Record_Aggregate): Move check for limited types later, because
18003         OK_For_Limited_Init requires its argument to have been resolved.
18004         (Get_Value): When copying the component default expression for a
18005         defaulted association in an aggregate, use the sloc of the aggregate
18006         and not that of the original expression, to prevent spurious
18007         elaboration errors, when the expression includes function calls.
18008         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18009         were missing. We also didn't handle qualified expressions. Now also
18010         allow function calls. Use new common routine OK_For_Limited_Init.
18011         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18012         with space can upper case letter).
18013
18014         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18015         Has_Static_Discriminants flag
18016         (Record_Type_Declaration): Diagnose an attempt to declare an interface
18017         type with discriminants.
18018         (Process_Range_Expr_In_Decl): Do validity checks on range
18019         (Build_Discriminant_Constraints): Use updated form of
18020         Denotes_Discriminant.
18021         (Process_Subtype): If the subtype is a private subtype whose full view
18022         is a concurrent subtype, introduce an itype reference to prevent scope
18023         anomalies in gigi.
18024         (Build_Derived_Record_Type, Collect_Interface_Primitives,
18025         Record_Type_Declaration):  The functionality of the subprograms
18026         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18027         is now performed by a single routine.
18028         (Build_Derived_Record_Type): If the type definition includes an explicit
18029         indication of limitedness, then the type must be marked as limited here
18030         to ensure that any access discriminants will not be treated as having
18031         a local anonymous access type.
18032         (Check_Abstract_Overriding): Issue a detailed error message when an
18033         abstract subprogram was not overridden due to incorrect mode of its
18034         first parameter.
18035         (Analyze_Private_Extension_Declaration): Add support for the analysis of
18036         synchronized private extension declarations. Verify that the ancestor is
18037         a limited or synchronized interface or in the generic case, the ancestor
18038         is a tagged limited type or synchronized interface and all progenitors
18039         are either limited or synchronized interfaces.
18040         Derived_Type_Declaration): Check for presence of private extension when
18041         dealing with synchronized formal derived types.
18042         Process_Full_View): Enchance the check done on the usage of "limited" by
18043         testing whether the private view is synchronized.
18044         Verify that a synchronized private view is completed by a protected or
18045         task type.
18046         (OK_For_Limited_Init_In_05): New function.
18047         (Analyze_Object_Declaration): Move check for limited types later,
18048         because OK_For_Limited_Init requires its argument to have been resolved.
18049         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18050         in order to alleviate the upward compatibility introduced by AI-318.
18051         (Constrain_Corresponding_Record): If the constraint is for a component
18052         subtype, mark the itype as frozen, to avoid out-of-scope references to
18053         discriminants in the back-end.
18054         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18055         this subprogram against wrong sources.
18056         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18057         discriminant of limited type completed with a protected type, when the
18058         discriminant is used to constrain a private component of the type, and
18059         expansion is disabled.
18060         (Find_Type_Of_Object): Do not treat a return subtype that is an
18061         anonymous subtype as a local_anonymous_type, because its accessibility
18062         level is the return type of the enclosing function.
18063         (Check_Initialization): In -gnatg mode, turn the error "cannot
18064         initialize entities of limited type" into a warning.
18065         (OK_For_Limited_Init): Return true for generated nodes, since it
18066         sometimes violates the legality rules.
18067         (Make_Incomplete_Declaration): If the type for which an incomplete
18068         declaration is created happens to be the currently visible entity,
18069         preserve the homonym chain when removing it from visibility.
18070         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18071         inherited subprograms.
18072         (Access_Definition): If this is an access to function that is the return
18073         type of an access_to_function definition, context is a type declaration
18074         and the scope of the anonymous type is the current one.
18075         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18076         incomplete subtype to the set of private dependents of the original
18077         incomplete type.
18078         (Constrain_Discriminated_Type): Emit an error message whenever an
18079         incomplete subtype is being constrained.
18080         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18081         corresponding subtype of the full view of the original incomplete type.
18082         (Check_Incomplete): Properly detect invalid usage of incomplete types
18083         and subtypes.
18084
18085 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18086
18087         * g-catiio.ads, g-catiio.adb (Value): New function.
18088         Given an input String, try and parse a valid Time value.
18089
18090 2006-10-31  Vincent Celier  <celier@adacore.com>
18091
18092         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18093         Integer_Address arithmetic, as in Set_Valid.
18094
18095 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18096             Robert Dewar  <dewar@adacore.com>
18097
18098         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18099         handling executable extension manually and duplicating code.
18100
18101         * make.adb: Implement new -S switch
18102         (Gnatmake): Use new function Osint.Executable_Name instead
18103         of handling executable extension manually.
18104
18105         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18106         is specified, the executable name ends with this suffix.
18107         Take advantage of Osint.Executable_Name instead of duplicating code.
18108
18109         * switch-m.adb: Recognize new gnatmake -S switch
18110
18111         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18112         variable.
18113         (Get_Target_Parameters): Set Executable_Extension_On_Target if
18114         available.
18115
18116         * makeusg.adb: Add line for gnatmake -S switch
18117
18118 2006-10-31  Vincent Celier  <celier@adacore.com>
18119
18120         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18121         call it with -static-libgcc, as there are some platforms, such as
18122         Darwin, where one of these two switches is compulsory to link.
18123
18124 2006-10-31  Vincent Celier  <celier@adacore.com>
18125
18126         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18127         instead of ADA_PROJECT_PATH, for the project path.
18128         (Gnatls): When displaying the project path directories, use host dir
18129         specs.
18130
18131         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18132         names in the project path, as absolute paths may correspond to
18133         multi-valued VMS logical names.
18134
18135 2006-10-31  Vincent Celier  <celier@adacore.com>
18136
18137         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18138         absolute path name.
18139         (Locate_Regular_File): Ditto
18140         (Change_Dir): Remove, no longer used
18141         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18142         on Windows. Get it calling Get_Current_Dir.
18143         (OpenVMS): Remove imported boolean, no longer needed.
18144         (Normalize_Pathname)[VMS]: Do not resolve directory names.
18145         (Pid_To_Integer): New function to convert a Process_Id to  Integer
18146
18147 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18148
18149         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18150         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18151         to No_Socket.
18152         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18153         W_Sig_Socket.
18154
18155 2006-10-31  Robert Dewar  <dewar@adacore.com>
18156
18157         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18158         initial letter o as a zero.
18159
18160 2006-10-31  Robert Dewar  <dewar@adacore.com>
18161
18162         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18163
18164 2006-10-31  Robert Dewar  <dewar@adacore.com>
18165
18166         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18167         variant records
18168         (Layout_Variant_Record): Retrieve the discriminants from the entity
18169         rather than from the type definition, because in the case of a full
18170         type for a private type we need to take the discriminants from the
18171         partial view.
18172         (Layout_Component_List): When applying the Max operator to variants with
18173         a nonstatic size, check whether either operand is static and scale that
18174         operand from bits to storage units before applying Max.
18175         (Layout_Type): In VMS, if a C-convention access type has no explicit
18176         size clause (and does not inherit one in the case of a derived type),
18177         then the size is reset to 32 from 64.
18178
18179 2006-10-31  Vincent Celier  <celier@adacore.com>
18180
18181         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18182         its file has already been loaded, according to the unit being loaded,
18183         not to the current value of Multiple_Unit_Index.
18184
18185 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18186             Eric Botcazou  <ebotcazou@adacore.com>
18187             Arnaud Charlet  <charlet@adacore.com>
18188
18189         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18190         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18191         possible.
18192         (a-except.o): Pass it to the compiler.
18193         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18194         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18195         a-calend-mingw.adb version.
18196
18197         * Makefile.rtl: Added s-dsaser.
18198         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18199         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18200         Ada.Dispatching.Round_Robin.
18201         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18202
18203         * Make-lang.in: Remove all references to gt-ada-decl.h.
18204         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18205         sources.
18206         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18207         Update dependencies.
18208
18209         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18210
18211 2006-10-31  Vincent Celier  <celier@adacore.com>
18212
18213         * mlib-utl.adb (Initialized): Remove, no longer used
18214         (Initialize): Remove, no longer used
18215         (Ar): If Ar_Exec is null, get the location of the archive builder and,
18216         if there is one, the archive indexer. Fail if the archive builder cannot
18217         be found.
18218         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18219         be found.
18220
18221 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18222
18223         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18224         Process_Body_Clauses): If the context of a body includes a use clause
18225         for P.Q then a with_clause for P in the same body is not redundant,
18226         even if the spec also has a with_clause on P.
18227         Add missing continuation mark to error msg
18228         (Build_Limited_Views): A limited view of a type is tagged if its
18229         declaration includes a record extension.
18230         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18231         node, even if the subunit has errors. This avoids malfunction by
18232         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18233         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18234         generation of obsolescent messages for with statements (cannot do
18235         this too early, or we cannot implement avoiding the messages in the
18236         case of obsolescent units withing obsolescent units).
18237         (Install_Siblings): If the with_clause is on a remote descendant of
18238         an ancestor of the current compilation unit, find whether there is
18239         a sibling child unit that is immediately visible.
18240         (Remove_Private_With_Clauses): New procedure, invoked after completing
18241         the analysis of the private part of a nested package, to remove from
18242         visibility the private with_clauses of the enclosing package
18243         declaration.
18244         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18245         now centralized in Generate_Reference.
18246         (Install_Limited_Context_Clauses): Remove superfluous error
18247         message associated with unlimited view visible through use
18248         and renamings. In addition, at the point in which the error
18249         is reported, we add the backslash to the text of the error
18250         to ensure that it is reported as a single error message.
18251         Use new // insertion for some continuation messages
18252         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18253         to create implicit with_clause for parent unit mentioned in original
18254         limited_with_clause.
18255         (Install_Limited_With_Unit): Set entity of parent identifiers if the
18256         unit is a child unit. For ASIS queries.
18257         (Analyze_Subunit): If the subunit appears within a child unit, make all
18258         ancestor child units directly visible again.
18259
18260 2006-10-31  Robert Dewar  <dewar@adacore.com>
18261
18262         * par-ch10.adb (P_Context_Clause): Minor error message fix
18263
18264 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18265             Javier Miranda  <miranda@adacore.com>
18266
18267         * par-ch12.adb: Grammar update and cleanup.
18268         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18269         support for synchronized derived type definitions.
18270         Add the new actual Abstract_Present to every call to
18271         P_Interface_Type_Definition.
18272         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18273         a formal object declaration with an access definition or a subtype mark
18274         with a null exclusion.
18275         (P_Generic_Association): Handle association with box, and others_choice
18276         with box, to support Ada 2005 partially parametrized formal packages.
18277
18278 2006-10-31  Robert Dewar  <dewar@adacore.com>
18279             Javier Miranda  <miranda@adacore.com>
18280
18281         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18282         (P_Type_Declaration): Remove barrier against the reserved word "limited"
18283         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18284         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18285         private extensions.
18286         (P_Type_Declaration): Add the new actual Abstract_Present to every call
18287         to P_Interface_Type_Definition.
18288         (P_Interface_Type_Definition): Addition of one formal to report an error
18289         if the reserved word abstract has been previously found.
18290         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18291         object renaming declaration with an access definition or subtype mark
18292         with a possible null exclusion.
18293
18294         * par-ch9.adb: Minor error msg fix
18295
18296         * par-load.adb: Add missing continuation mark to error msg
18297
18298         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18299
18300 2006-10-31  Vincent Celier  <celier@adacore.com>
18301
18302         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18303         unknown attribute in unknown package or in package that does not need
18304         to be checked.
18305         (Parse_Package_Declaration): Do not issue warning for unknown package in
18306         quiet output.
18307
18308 2006-10-31  Vincent Celier  <celier@adacore.com>
18309
18310         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18311         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18312         Packages_To_Check.
18313
18314 2006-10-31  Vincent Celier  <celier@adacore.com>
18315
18316         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18317         on VMS, change "__" to '.' before checking the name.
18318         (Record_Ada_Source): Always add the source file name in the list of
18319         of sources, even if it is not the first time, as it is for another
18320         source index.
18321         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18322         dot, instead of replacing only the first '_'.
18323
18324         * prj-part.adb (Parse): Convert project file path to canonical form
18325
18326         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18327         extended, the project id of the project extending it is recorded in its
18328         data, even when it has already been processed as an imported project.
18329
18330 2006-10-31  Robert Dewar  <dewar@adacore.com>
18331
18332         * repinfo.adb (List_Entities): Don't list entities from renaming
18333         declarations.
18334
18335 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18336             Robert Dewar  <dewar@adacore.com>
18337
18338         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18339         only a restriction warning is active for the given restriction. This is
18340         desirable because we do not want to modify code in the case where only
18341         a warning is set.
18342         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18343         causes overriding of real restrictions.
18344         Take advantage of new No_Restrictions constant.
18345
18346         * raise.h: (__gnat_set_globals): Change profile.
18347
18348 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18349
18350         * rtsfind.adb: Remove s-polint from comment as it exists no more.
18351
18352         * rtsfind.ads:
18353         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18354         Move all the entities in obsolete package System.PolyORB_Interface to
18355         System.Partition_Interface.
18356         (RE_Storage_Size): New function in System.Tasking.
18357         (RE_Get_Ceiling): New entity.
18358         (RE_Set_Ceiling): New entity.
18359         (RO_PE_Get_Ceiling): New entity.
18360         (RO_RE_Set_Ceiling): New entity.
18361         (Inherit_CPP_DT): New entity
18362
18363 2006-10-31  Robert Dewar  <dewar@adacore.com>
18364
18365         * scng.adb (Scan, case of numeric literal): Better msg for identifier
18366         starting with a digit.
18367
18368 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18369             Thomas Quinot  <quinot@adacore.com>
18370             Javier Miranda  <miranda@adacore.com>
18371             Gary Dismukes  <dismukes@adacore.com>
18372
18373         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18374         properly an attempt to apply Unchecked_Access to a protected operation.
18375         (OK_Self_Reference): New subprogram to check the legality of an access
18376         attribute whose prefix is the type of an enclosing aggregate.
18377         Generalizes previous mechanism to handle attribute references nested
18378         arbitrarily deep within the aggregate.
18379         (Analyze_Access_Attribute): An access attribute whose prefix is a type
18380         can appear in an aggregate if this is a default-initialized aggregate
18381         for a self-referential type.
18382         (Resolve_Attribute, case Access): Ditto.
18383         Add support for new implementation defined attribute Stub_Type.
18384         (Eval_Attribute, case Attribute_Stub_Type): New case.
18385         (Analyze_Attribute, case Attribute_Stub_Type): New case.
18386         (Stream_Attribute_Available): Implement using new subprogram from
18387         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18388         Has_Specified_Stream_Attribute flag.
18389         Disallow Storage_Size and Storage_Pool for access to subprogram
18390         (Resolve_Attribute, case 'Access et al): Take into account anonymous
18391         access types of return subtypes in extended return statements. Remove
18392         accessibility checks on anonymous access types when Unchecked_Access is
18393         used.
18394         (Analyze_Attribute): Add support for the use of 'Class to convert
18395         a class-wide interface to a tagged type.
18396         Add support for the attribute Priority.
18397         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18398         whether the designated type is discriminated with a constrained partial
18399         view and require static matching in that case.
18400         Add local variable Des_Btyp. The Designated_Type
18401         of an access to incomplete subtype is either its non-limited view if
18402         coming from a limited with or its etype if regular incomplete subtype.
18403
18404         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18405         Fix predicate to identify and allow cases of (expander-generated)
18406         references to tag of designated object of a RACW.
18407         (Validate_Static_Object_Name): In Ada 2005, a formal object is
18408         non-static, and therefore cannot appear as a primary in a preelaborable
18409         package.
18410         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18411         Has_Read_Write_Attributes.
18412         (Has_Read_Write_Attributes): Reimplement in termes of
18413         Has_Stream_Attribute_Definition.
18414         (Missing_Read_Write_Attributes): When checking component types in a
18415         record, unconditionally call Missing_Read_Write_Attributes recursively
18416         (remove guard checking for Is_Record_Type / Is_Access_Type).
18417
18418 2006-10-31  Robert Dewar  <dewar@adacore.com>
18419
18420         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18421         useless assignments here and conditionalize it on absence of exception
18422         handlers.
18423         (Analyze_Exception_Handlers): Small code reorganization of error
18424         detection code, for new handling of formal packages.
18425
18426 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18427             Hristian Kirtchev  <kirtchev@adacore.com>
18428
18429         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
18430         that has been constant-folded, preserve information of original tree,
18431         for ASIS uses.
18432         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18433         generated private extension declaration if the formal derived type is
18434         synchronized. Carry synchronized present over to the generated private
18435         extension.
18436         (Validate_Derived_Type_Instance): Ensure that the actual of a
18437         synchronized formal derived type is a synchronized tagged type.
18438         (Instantiate_Formal_Package): When creating the instantiation used to
18439         validate the actual package of a formal declared without a box, check
18440         whether the formal itself depends on a prior actual.
18441         (Instantiate_Formal_Subprogram): Create new entities for the defining
18442         identifiers of the formals in the renaming declaration, for ASIS use.
18443         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18444         a renaming declaration or a subtype declaration for an actual in an
18445         instance, capture location information of declaration in generic, for
18446         ASIS use.
18447         (Instantiate_Formal_Package): Add comments on needed additional tests.
18448         AI-317 (partial parametrization) is fully implemented.
18449         (Validate_Private_Type_Instance): Add check for actual which
18450         must have preelaborable initialization
18451         Use new // insertion for some continuation messages
18452         (Analyze_Formal_Object_Declaration): Change usage of Expression to
18453         Default_Expression. Add type retrieval when the declaration has an
18454         access definition. Update premature usage of incomplete type check.
18455         (Check_Access_Definition): New subsidiary routine. Check whether the
18456         current compilation version is Ada 05 and the supplied node has an
18457         access definition.
18458         (Instantiate object): Alphabetize local variables. Handle the creation
18459         of new renaming declarations with respect to the kind of definition
18460         used - either an access definition or a subtype mark. Guard against
18461         unnecessary error message in the context of anonymous access types after
18462         they have been resolved. Add check for required null exclusion in a
18463         formal object declaration.
18464         (Switch_View): A private subtype of a non-private type needs to be
18465         switched (the base type can have been switched without its private
18466         dependents because of the last branch of Check_Private_View.
18467         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18468         value from BT.
18469         (Instantiate_Type): Emit an error message whenever a class-wide type of
18470         a tagged incomplete type is used as a generic actual.
18471         (Find_Actual_Type): Extend routine to handle a component type in a child
18472         unit that is imported from a formal package in a parent.
18473         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18474         agree on constrainedness, rather than checking against ultimate ancestor
18475         (Instantiate_Subprogram_Body): Create a cross-reference link to the
18476         generic body, for navigation purposes.
18477
18478 2006-10-31  Robert Dewar  <dewar@adacore.com>
18479             Thomas Quinot  <quinot@adacore.com>
18480
18481         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18482         type.
18483         (New_Stream_Subprogram): When processing an attribute definition clause
18484         for a stream-oriented subprogram, record an entity node occurring at
18485         the point of clause to use for checking the visibility of the clause,
18486         as defined by 8.3(23) as amended by AI-195.
18487         (New_Stream_Subprogram): New procedure, factoring behaviour from both
18488          New_Stream_Function and New_Stream_Procedure.
18489         (New_Stream_Function, New_Stream_Procedure): Removed.
18490         (Analyze_Attribute_Definition_Clause, case Address): Check new
18491         Alignment_Check check
18492
18493 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18494             Javier Miranda  <miranda@adacore.com>
18495             Robert Dewar  <dewar@adacore.com>
18496
18497         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18498         generate the same errors compiling under -gnatc.
18499         (Try_Object_Operation): If no candidate interpretation succeeds, but
18500         there is at least one primitive operation with the right name, report
18501         error in call rather than on a malformed selected component.
18502         (Analyze_Selected_Component): If the prefix is an incomplete type from
18503         a limited view, and the full view is available, use the full view to
18504         determine whether this is a prefixed call to a primitive operation.
18505         (Operator_Check): Verify that a candidate interpretation is a binary
18506         operation before checking the type of its second formal.
18507         (Analyze_Call): Add additional warnings for function call contexts not
18508         yet supported.
18509         (Analyze_Allocator): Move the check for "initialization not allowed for
18510         limited types" after analyzing the expression. This is necessary,
18511         because OK_For_Limited_Init looks at the structure of the expression.
18512         Before analysis, we don't necessarily know what sort of expression it
18513         is. For example, we don't know whether F(X) is a function call or an
18514         indexed component; the former is legal in Ada 2005; the latter is not.
18515         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18516         were missing. We also didn't handle qualified expressions. Now also
18517         allow function calls. Use new common routine OK_For_Limited_Init.
18518         (Analyze_Type_Conversion): Do not perform some legality checks in an
18519         instance, because the error message will be redundant or spurious.
18520         (Analyze_Overloaded_Selected_Component): Do not do style check when
18521         setting an entity, since we do not know it is the right entity yet.
18522         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18523         (Analyze_Overloaded_Selected_Component): Same change
18524         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18525         since regular incomplete subtypes are transformed into corresponding
18526         subtypes of their full views.
18527         (Complete_Object_Operation): Treat name of transformed subprogram call
18528         as coming from source, for browsing purposes.
18529         (Try_Primitive_Operation): If formal is an access parameter, compare
18530         with base type of object to determine whether it is a primitive
18531         operation.
18532         (Operator_Check): If no interpretation of the operator matches, check
18533         whether a use clause on any candidate might make the operation legal.
18534         (Try_Class_Wide_Operation): Check whether the first parameter is an
18535         access type whose designated type is class-wide.
18536
18537 2006-10-31  Robert Dewar  <dewar@adacore.com>
18538             Ed Schonberg  <schonberg@adacore.com>
18539             Gary Dismukes  <dismukes@adacore.com>
18540
18541         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18542         warn on infinite loops.
18543         Add \\ to some continuation messages
18544         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18545         (Process_Bounds): If the bounds are integer literals that result from
18546         constant-folding, and they carry a user-defined type, preserve that type
18547         rather than treating this as an integer range.
18548         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18549         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18550         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18551         left hand side of assignment.
18552         (Analyze_Assignment): Add suport to manage assigments to the attribute
18553         priority of a protected object.
18554         (Check_Possible_Current_Value_Condition): Allow fully qualified names
18555         not just identifiers.
18556         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18557         or AND THEN for possible tracking.
18558         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18559         case of while loops so we can track values in the loop body.
18560
18561 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18562             Hristian Kirtchev  <kirtchev@adacore.com>
18563             Bob Duff  <duff@adacore.com>
18564
18565         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18566         procedure cannot be a protected operation (it is a basic_declaration,
18567         not a subprogram_declaration).
18568         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18569         Subp. Add logic for entry processing.
18570         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18571         Determine whether an entry or subprogram of a protected or task type
18572         override an inherited primitive of an implemented interface.
18573         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18574         Update the actual used in calls to Check_Overriding_Indicator.
18575         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18576         generate the proper reference to the parent unit, for cross-reference.
18577         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18578         Is_Formal.
18579         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18580         (Add_Extra_Formal): Revise procedure to allow passing in associated
18581         entity, scope, and name suffix, and handle setting of the new
18582         Extra_Formals field.
18583         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18584         pass new parameters. Add support for adding the new extra access formal
18585         for functions whose calls are treated as build-in-place.
18586         (Analyze_A_Return_Statement): Correct casing in error message.
18587         Move Pop_Scope to after Analyze_Function_Return, because an extended
18588         return statement really is a full-fledged scope. Otherwise, visibility
18589         doesn't work right. Correct use of "\" for continuation messages.
18590         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18591         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18592         the node doesn't get properly marked as analyzed.
18593         (Analyze_Subprogram_Body): If subprogram is a function that returns
18594         an anonymous access type that denotes a task, build a Master Entity
18595         for it.
18596         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18597         proper usage of null exclusion in a result definition.
18598         (Process_Formals): Code cleanup and new error message.
18599         (Process_Formals): Detect incorrect application of null exclusion to
18600         non-access types.
18601         (Conforming_Types): Handle conformance between [sub]types and itypes
18602          generated for entities that have null exclusions applied to them.
18603         (Maybe_Primitive_Operation): Add an additional type retrieval when the
18604          base type is an access subtype. This case arrises with null exclusions.
18605         (New_Overloaded_Entity): Do not remove the overriden entity from the
18606         homonym chain if it corresponds with an abstract interface primitive.
18607         (Process_Formals): Replace membership test agains Incomplete_Kind with a
18608         call to the synthesized predicate Is_Incomplete_Type.
18609         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18610         primitives.
18611         (Analyze_Subprogram_Declaration): Check that abstract interface
18612         primitives are abstract or null.
18613         (Analyze_Subprogram_Specification): Remove previous check for abstract
18614         interfaces because it was not complete.
18615         (Has_Interface_Formals): Removed.
18616
18617 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18618             Javier Miranda  <miranda@adacore.com>
18619
18620         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18621         of Analyze_Package_Body, to create Itype references for anonymous
18622         access types created in the package declaration, whose designated types
18623         may have only a limited view.
18624         (Analyze_Package_Specification): For the private part of a nested
18625         package, install private_with_clauses of enclosing compilation unit if
18626         we are in its visible part.
18627         (Declare_Inherited_Private_Subprograms): Complete barrier
18628         to ensure that the primitive operation has an alias to some parent
18629         primitive. This is now required because, after the changes done for the
18630         implementation of abstract interfaces, the contents of the list of
18631         primitives has entities whose alias attribute references entities of
18632         such list of primitives.
18633         (Analyze_Package_Specification): Simplify code that handles parent units
18634         of instances and formal packages.
18635         (Uninstall_Declarations): Check the convention consistency among
18636         primitive overriding operations of a tagged record type.
18637
18638 2006-10-31  Robert Dewar  <dewar@adacore.com>
18639             Hristian Kirtchev  <kirtchev@adacore.com>
18640             Javier Miranda  <miranda@adacore.com>
18641             Ed Schonberg  <schonberg@adacore.com>
18642
18643         * sem_ch8.adb: Minor error msg rewording
18644         (Undefined): When checking for misspellings, invert arguments (to get
18645         expected and found set right)
18646         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18647         (Analyze_Generic_Renaming): Same fix
18648         (Use_One_Package): Do not take into account the internal entities of
18649         abstract interfaces during the analysis of entities that are marked
18650         as potentially use-visible.
18651         (Find_Type): Handle the case of an attribute reference for
18652         implementation defined attribute Stub_Type (simply let the analysis of
18653         the attribute reference rewrite it).
18654         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18655         type that appears in a Use_Type clause.
18656         (Analyze_Object_Renaming): Add support for renaming of the Priority
18657         attribute.
18658         (Find_Type): In Ada 2005, a task type can be used within its own body,
18659         when it appears in an access definition.
18660         (Analyze_Object_Renaming): Remove warning on null_exclusion.
18661         (Analyze_Object_Renaming): Introduce checks for required null exclusion
18662          in a formal object declaration or in a subtype declaration.
18663         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18664         (Check_Null_Exclusion): New local routine to
18665         Analyze_Subprogram_Renaming. Check whether the formals and return
18666         profile of a renamed subprogram have required null exclusions when
18667         their counterparts of the renaming already impose them.
18668         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18669         Determine whether an entity is inside a generic scope.
18670         (In_Open_Scope): First pass of documentation update.
18671         (Find_Expanded_Name): Add support for shadow entities associated with
18672         limited withed packages. This is required to handle nested packages.
18673         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18674         that makes a renaming of a limited withed package illegal.
18675
18676 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18677             Ed Schonberg  <schonberg@adacore.com>
18678
18679         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18680         Check_Overriding_Indicator.
18681         (Analyze_Task_Definition): Ditto.
18682         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18683         (Check_Overriding_Indicator): To find overridden interface operation,
18684         examine only homonyms that have an explicit subprogram declaration, not
18685         inherited operations created by an unrelated type derivation.
18686         (Check_Overriding_Indicator): When checking for the presence of "null"
18687         in a procedure, ensure that the queried node is a procedure
18688         specification.
18689         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18690         type when the formal is an access to variable.
18691         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18692         (Analyze_Task_Type): Same addition
18693         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18694         provide navigation capabilities for entries.
18695
18696 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18697             Ed Schonberg  <schonberg@adacore.com>
18698             Javier Miranda  <miranda@adacore.com>
18699             Gary Dismukes  <dismukes@adacore.com>
18700
18701         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
18702         inherited from an interface ancestor by another interface in the
18703         context of an instance as 'late'.
18704         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
18705         of a call to a function that dispatches on access result.
18706         (Check_Dispatching_Operation): In case of late overriding of a primitive
18707         that covers abstract interface subprograms we register it in all the
18708         secondary dispatch tables associated with abstract interfaces.
18709         (Check_Dispatching_Call): Add check that a dispatching call is not made
18710         to a function with a controlling result of a limited type. This is a
18711         current implementation restriction.
18712         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
18713         (Check_Dispatching_Operation): Do no emit a warning if the controlling
18714         argument is an interface type that is a generic formal.
18715         (Is_Interface_Subprogram): Removed.
18716         (Check_Dispatching_Operation): If the subprogram is not a dispatching
18717         operation, check the formals to handle the case in which it is
18718         associated with an abstract interface type.
18719
18720 2006-10-31  Robert Dewar  <dewar@adacore.com>
18721             Ed Schonberg  <schonberg@adacore.com>
18722
18723         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
18724         Add new calls to this procedure during traversal
18725         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
18726         another unit if expansion is disabled.
18727
18728 2006-10-31  Robert Dewar  <dewar@adacore.com>
18729
18730         * sem_eval.adb (Compile_Time_Compare): Make use of information from
18731         Current_Value in the conditional case, to evaluate additional
18732         comparisons at compile time.
18733
18734 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18735             Hristian Kirtchev  <kirtchev@adacore.com>
18736             Javier Miranda  <miranda@adacore.com>
18737
18738         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
18739         subprogram type to provide better diagnostics in case of ambiguity.
18740         (Covers): Handle coverage of formal and actual anonymous access types in
18741         the context of generic instantiation.
18742         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
18743         abstract interface types; this is required to handle concurrent types
18744         with discriminants and abstract interface types.
18745         (Covers): Include type coverage of both regular incomplete subtypes and
18746         incomplete subtypes of incomplete type visibles through a limited with
18747         clause.
18748
18749 2006-10-31  Robert Dewar  <dewar@adacore.com>
18750             Hristian Kirtchev  <kirtchev@adacore.com>
18751             Ed Schonberg  <schonberg@adacore.com>
18752
18753         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
18754         messages for entities in packages which are not used.
18755         (Collect_Synchronized_Interfaces): New procedure.
18756         (Overrides_Synchronized_Primitive): New function.
18757         (Denotes_Discriminant): Extend predicate to apply to task types.
18758         Add missing continuation marks in error msgs
18759         (Unqualify): New function for removing zero or more levels of
18760         qualification from an expression. There are numerous places where this
18761         ought to be used, but we currently only deal properly with zero or one
18762         level.
18763         (In_Instance); The analysis of the actuals in the instantiation of a
18764         child unit is not within an instantiation, even though the parent
18765         instance is on the scope stack.
18766         (Safe_To_Capture_Value): Exclude the case of variables that are
18767         renamings.
18768         (Check_Obsolescent): Removed
18769         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
18770         is an aliased view, even when rewritten as a reference to the target
18771         object in an assignment.
18772         (Get_Subprogram_Entity): New function
18773         (Known_To_Be_Assigned): New function
18774         (Type_Access_Level): Compute properly the access level of a return
18775         subtype that is an anonymous access type.
18776         (Explain_Limited_Type): Correct use of "\" for continuation messages.
18777         (Is_Transfer): The new extended_return_statement causes a transfer of
18778         control.
18779         (Has_Preelaborable_Initialization): New function
18780         (Has_Null_Exclusion): New function. Given a node N, determine whether it
18781         has a null exclusion depending on its Nkind.
18782         Change Is_Lvalue to May_Be_Lvalue
18783         (May_Be_Lvalue): Extensive additional code to deal with subprogram
18784         arguments (IN parameters are not Lvalues, IN OUT parameters are).
18785         (Safe_To_Capture_Value): Extend functionality so it can be used for
18786         the current value condition case.
18787         (Has_Compatible_Alignment): New function
18788         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
18789         objects to handle the Ada 2005 case, where aliasedness no longer implies
18790         that the object is constrained. In particular, for dereferenced names,
18791         the designated object must be assumed to be unconstrained.
18792         (Kill_Current_Values): Properly deal with the case where we encounter
18793         a loop in the scope chain.
18794         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
18795         a value.
18796         (Compile_Time_Constraint_Error): Improve error message in error case
18797
18798         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
18799         associated with entities of abstract interface primitives.
18800         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
18801
18802 2006-10-31  Robert Dewar  <dewar@adacore.com>
18803
18804         * s-osinte-tru64.adb:
18805         Mark Asm statements Volatile to prevent warnings (seems a
18806         reasonable change anyway)
18807         Fixes new warnings
18808
18809         * s-mastop-irix.adb: Add Volatile to Asm statements
18810         Suppresses warning, and seems appropriate in any case
18811
18812         * s-osinte-vms.adb: Add Volatile to Asm statement
18813
18814         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
18815
18816         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
18817         returned.
18818         Add call to Check_Code_Statement
18819
18820 2006-10-31  Robert Dewar  <dewar@adacore.com>
18821             Ed Schonberg  <schonberg@adacore.com>
18822             Bob Duff  <duff@adacore.com>
18823
18824         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
18825         Synchronized_Present): Add Formal_Derived_Type_Definition and
18826         Private_Extension_Declaration to the list of assertions.
18827         (Is_Entry_Barrier_Function): New flag
18828         (Has_Self_Reference): New flag on aggregates, to indicate that they
18829         contain a reference to the enclosing type, inserted through a default
18830         initialization.
18831         (Next_Rep_Item): Move from Node4 to Node5.
18832         (Entity): Add this field for N_Attribute_Definition_Clause.
18833         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
18834         (N_Return_Object_Declaration): Remove this node kind. We now use
18835         N_Object_Declaration instead.
18836         (Actual_Designated_Subtype): Move to a different place to make room in
18837         N_Extended_Return_Statement.
18838         (Procedure_To_Call): Move to a different place to make room in
18839         N_Extended_Return_Statement.
18840         (Return_Type): Removed this field to make room in return statements
18841         (both kinds).
18842         (Return_Statement_Entity): New field in return statements, in part to
18843         replace Return_Type, and in part to support the fact that return
18844         statements are now pushed on the scope stack during semantic analysis.
18845         (Return_Object_Declarations): New field to support extended return
18846         statements.
18847         (N_Extended_Return_Statement): New node for extended_return_statement
18848         nonterminal.
18849         (N_Return_Object_Declaration): New node for part of
18850         extended_return_statement nonterminal. Needed because all the necessary
18851         fields won't fit in N_Extended_Return_Statement.
18852         Generic_associations now carry the Box_Present flag, to indicate a
18853         default for an actual in a partially parametrized formal package.
18854
18855         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
18856         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
18857         and for the new predefined dispatching policies: EDF_Across_Priorities,
18858         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
18859         Introduce new name Stub_Type for implementation defined attribute.
18860         Add pragma Preelaborable_Initialization
18861         Add entry for Priority attribute.
18862         Add Pragma_Wide_Character_Encoding
18863         (Get_Convention_Name): Given a convention id, this function returns the
18864         corresponding name id from the names table.
18865
18866 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18867             Robert Dewar  <dewar@adacore.com>
18868             Bob Duff  <duff@adacore.com>
18869
18870         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
18871         print null exclusion twice in the case of an access definition,
18872         Implement new -gnatL switch
18873         Remove N_Return_Object_Declaration. We now use
18874         N_Object_Declaration instead. Implement the case for
18875         N_Extended_Return_Statement. Alphabetize the cases.
18876         Add cases for new nodes N_Extended_Return_Statement and
18877         N_Return_Object_Declaration. The code is not yet written.
18878         Update the output for N_Formal_Object_Declaration
18879         and N_Object_Renaming_Declaration.
18880         (Write_Itype): Account for the case of a modular integer subtype whose
18881         base type is private.
18882
18883 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18884
18885         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
18886         Remove elaboration code, now done in the binder.
18887
18888         * s-rident.ads: Make this unit Preelaborate.
18889         (No_Restrictions): New constant used to clean up code and follow
18890         preelaborate constraints.
18891
18892         * s-stalib.adb:
18893         Add System.Restrictions dependence, referenced directly from the
18894         binder generated file.
18895
18896 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
18897
18898         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
18899         True when AAMP extended floating-point is in use (48-bit). Change type
18900         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
18901         the two byte array types on AFloat. Change type of IV_Ilf overlay
18902         variable from Byte8 to ByteLF. Add appropriate initializations of
18903         floating-point overlays for AAMP cases.
18904
18905 2006-10-31  Javier Miranda  <miranda@adacore.com>
18906
18907         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
18908         (Get_Ceiling): New subprogram that returns
18909         the ceiling priority of the protected object.
18910         (Set_Ceiling): New subprogram that sets the new ceiling priority of
18911         the protected object.
18912
18913         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
18914
18915         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
18916
18917 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
18918
18919         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
18920         requeuing to the same protected object to give higher priority tasks
18921         the opportunity to execute.
18922
18923 2006-10-31  Robert Dewar  <dewar@adacore.com>
18924
18925         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
18926         add more precise check for the character sequence that follows '[' to
18927         avoid possible confusion in case if '[' is the last character of a
18928         string literals.
18929         (Scan_Wide): Always allow brackets encoding
18930
18931 2006-10-31  Olivier Hainque  <hainque@adacore.com>
18932
18933         * s-stchop.ads: make this unit preelaborate. This is desirable in
18934         general and made mandatory by the use of this unit by s-taprop which
18935         is itself preelaborate.
18936
18937         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
18938         Td_Events component.
18939
18940 2006-10-31  Vincent Celier  <celier@adacore.com>
18941
18942         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
18943         in file names.
18944
18945 2006-10-31  Vincent Celier  <celier@adacore.com>
18946
18947         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
18948
18949 2006-10-31  Vincent Celier  <celier@adacore.com>
18950
18951         * makegpr.adb (Check_Compilation_Needed): Take into account path names
18952         with spaces.
18953         (Check_Compilation_Needed): When checking a C or C++ source, do not
18954         resolve symbolic links.
18955         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
18956         When not in verbose mode and Ellipse is True, display "..." for the
18957         first argument with Display set to False.
18958         (Build_Global_Archive): Always set Display True for the first object
18959         file. Call Display_Command with Ellipse set to True.
18960
18961 2006-10-31  Matt Heaney  <heaney@adacore.com>
18962
18963         * a-crbtgo.ads: Commented each subprogram
18964
18965         * a-crbtgo.adb: Added reference to book from which algorithms were
18966         adapted.
18967
18968         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
18969         indicate which child.
18970         (Generic_Conditional_Insert): changed parameter name from "Success" to
18971         "Inserted".
18972         (Generic_Unconditional_Insert_With_Hint): improved algorithm
18973
18974         * a-coorse.adb (Replace_Element): changed parameter name in call to
18975         conditional insert operation.
18976
18977         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
18978
18979         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
18980         Generic_Iteration
18981
18982         * a-ciorse.adb (Replace_Element): changed parameter name in call to
18983         conditional insert operation.
18984
18985         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
18986         Generic_Iteration.
18987
18988         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
18989         instead of mode inout.
18990
18991         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
18992         draft
18993         (Generic_Read): preserve existing buckets array if possible
18994         (Generic_Write): don't send buckets array length anymore
18995
18996         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
18997         instead of mode inout.
18998
18999         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19000         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19001
19002         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19003         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19004         (Replace_Element): local operation is now an instantiation
19005
19006         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19007         check current length.
19008         (Generic_Replace_Element): new operation
19009
19010 2006-10-31  Doug Rupp  <rupp@adacore.com>
19011
19012         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19013         Call TBK$SYMBOLIZE without omitting parameters.
19014
19015 2006-10-31  Vincent Celier  <celier@adacore.com>
19016
19017         * symbols-processing-vms-ia64.adb,
19018         symbols-processing-vms-alpha.adb (Process): Do not include symbols
19019         that come from generic instantiations in bodies.
19020
19021 2006-10-31  Pat Rogers  <rogers@adacore.com>
19022
19023         * a-rttiev.ads, a-rttiev.adb:
19024         This is a significant redesign primarily for the sake of automatic
19025         timer task termination but also to fix a design flaw.
19026         Therefore we are now using an RTS lock, instead of a protected
19027         object, to provide mutual exclusion to the queue of pending events
19028         and the type Timing_Event is no longer a protected type.
19029
19030 2006-10-31  Robert Dewar  <dewar@adacore.com>
19031             Cyrille Comar  <comar@adacore.com>
19032             Ben Brosgol  <brosgol@adacore.com>
19033
19034         * debug.adb:  Update flags documentation
19035
19036         * gnat_ugn.texi: Add documentation for new -gnatwq switch
19037         Clean up documentation for several other warning switches
19038         Clarify how task stack size can be specified with various
19039         versions of Windows.
19040         Add note that -gnatVo includes ranges including loops
19041         Add documentation for -gnatL switch
19042         Add note on elaboration warning for initializing variables
19043         Add documentation for new -gnatwt warning switch
19044         Document new form of pragma Warnings (On|Off, string)
19045         Add comment on use of pragma Warnings to control warnings
19046         Add documentation for -gnatjnn switch
19047         Modify section on interfacing with C for VMS 64-bit.
19048         Add doc for -gnatVe/E
19049         Add documentation of new warning flags -gnatww/-gnatwW
19050         Add warnings about address clause overlays to list of warnings
19051         (Exception Handling Control): Document that the option --RTS must be
19052         used consistently for gcc and gnatbind.
19053         Clarify that inlining is not always possible
19054         Update documentation on pragma Unchecked_Union.
19055
19056         * gnat_rm.texi:
19057         Add documentation for new extended version of pragma Obsolescent
19058         Add documentation for implementation defined attribute 'Stub_Type.
19059         Add note on use of Volatile in asm statements
19060         Add documentation on use of pragma Unreferenced in context clause
19061         Document new form of pragma Warnings (On|Off, pattern)
19062         Document pragma Wide_Character_Encoding
19063         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19064         enforced if code generation is active.
19065         Add section on pragma Suppress to document GNAT specific check
19066         Alignment_Check
19067         Clarify difference between No_Dispatching_Calls & No_Dispatch.
19068         Add documentation for pragma Restrictions (No_Elaboration_Code)
19069
19070         * gnat-style.texi:
19071         Add comments on layout of subprogram local variables in the
19072         presence of nested subprograms.
19073
19074         * ug_words: Resync.
19075
19076         * elists.ads: Minor reformatting
19077         Node returns Node_Or_Entity_Id (doc change only)
19078
19079         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19080
19081         * g-arrspl.ads (Create): Update comments.
19082
19083         * sem.ads: Add details on the handling of the scope stack.
19084
19085         * usage.adb: Update documentation.
19086
19087         * validsw.ads, validsw.adb:
19088         Add definition of Validity_Check_Components and implement -gnatVe/E
19089
19090         * vms_data.ads: Add missing VMS qualifiers.
19091
19092         * s-addope.ads: Add documentation on overflow and divide by zero
19093
19094 2006-10-31  Robert Dewar  <dewar@adacore.com>
19095             Thomas Quinot  <quinot@adacore.com>
19096             Arnaud Charlet  <charlet@adacore.com>
19097
19098         * fmap.adb: Put routines in alpha order
19099
19100         * g-boumai.ads: Remove redundant 'in' keywords
19101
19102         * g-cgi.adb: Minor reformatting
19103
19104         * g-cgi.ads: Remove redundant 'in' keywords
19105
19106         * get_targ.adb: Put routines in alpha order
19107
19108         * prj-attr.ads: Minor reformatting
19109
19110         * s-atacco.ads: Minor reformatting
19111
19112         * scn.adb: Put routines in alpha order
19113
19114         * sinput-l.adb: Minor comment fix
19115
19116         * sinput-p.adb: Minor comment fix
19117
19118         * s-maccod.ads: Minor reformatting
19119
19120         * s-memory.adb: Minor reformatting
19121
19122         * s-htable.adb: Fix typo in comment.
19123
19124         * s-secsta.adb: Minor comment update.
19125
19126         * s-soflin.adb: Minor reformatting
19127
19128         * s-stoele.ads:
19129         Add comment about odd qualification in Storage_Offset declaration
19130
19131         * s-strxdr.adb:
19132         Remove unnecessary 'in' keywords for formal parameters.
19133
19134         * treeprs.adt: Minor reformatting
19135
19136         * urealp.adb: Put routines in alpha order
19137
19138         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19139         taking string.
19140
19141         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19142
19143         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19144
19145         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19146         workaround as on other platforms.
19147
19148         * g-eacodu-vms.adb: Remove redundant 'in' keywords
19149         * g-expect-vms.adb: Remove redundant 'in' keywords
19150
19151         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19152         clear error message if the list-of-files file cannot be opened.
19153
19154         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19155         equality operator is always visible.
19156
19157         * lang.opt: Woverlength-strings: New option.
19158
19159         * nmake.adt:
19160         Update copyright, since nmake.ads and nmake.adb have changed.
19161
19162         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19163         (Binder_Output_Time_Stamps_Set): removed.
19164         (Old_Binder_Output_Time_Stamp): idem.
19165         (New_Binder_Output_Time_Stamp): idem.
19166         (Recording_Time_From_Last_Bind): idem.
19167         (Recording_Time_From_Last_Bind): Make constant.
19168
19169         * output.ads, output.adb (Write_Str): Allow LF characters
19170         (Write_Spaces): New procedure
19171
19172         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19173
19174         * inline.adb: Minor reformatting
19175
19176         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19177
19178         * s-mastop-vms.adb: Remove redundant 'in' keywords
19179
19180         * s-osprim-vms.adb: Remove redundant 'in' keywords
19181
19182         * s-trafor-default.adb: Remove redundant 'in' keywords
19183
19184         * 9drpc.adb: Remove redundant 'in' keywords
19185
19186         * s-osinte-mingw.ads: Minor reformatting
19187
19188         * s-inmaop-posix.adb: Minor reformatting
19189
19190         * a-direio.ads: Remove quotes from Compile_Time_Warning message
19191
19192         * a-exexda.adb: Minor code reorganization
19193
19194         * a-filico.adb: Minor reformatting
19195
19196         * a-finali.adb: Minor reformatting
19197
19198         * a-nudira.ads: Remove quote from Compile_Time_Warning message
19199
19200         * a-numeri.ads: Minor reformatting
19201
19202         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19203
19204         * exp_pakd.ads: Fix obsolete comment
19205
19206         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19207         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19208         Probably not a bug, but certainly neater and more efficient.
19209
19210         * a-tienio.adb: Minor reformatting
19211
19212         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19213         Avoid assuming low bound of string is 1.
19214
19215         * gnatbind.adb: Change Bindusg to package and rename procedure as
19216         Display, which now ensures that it only outputs usage information once.
19217         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19218
19219         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19220         Table'First.
19221
19222         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19223         warning.
19224         (Match): Add pragma Assert to ensure that Matches'First is zero
19225
19226         * g-regpat.ads (Match): Document that Matches lower bound must be zero
19227
19228         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19229         documented preconditions (also kills warnings about bad indexes).
19230
19231         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19232         is 1.
19233         (Build_Import_Library): Ditto;
19234
19235         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19236
19237         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19238
19239         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19240         lower bound of choice table is 1.
19241
19242         * sem_case.ads (Analyze_Choices): Document that lower bound of
19243         Choice_Table is 1.
19244
19245         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19246         string is 1.
19247
19248         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19249         and add appropriate Assert pragma to suppress warnings.
19250
19251         * atree.h, atree.ads, atree.adb
19252         Change Elist24 to Elist25
19253         Add definitions of Field28 and Node28
19254         (Traverse_Field): Use new syntactic parent table in sinfo.
19255
19256         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19257
19258         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19259
19260         * exp_tss.adb: Put routines in alpha order
19261
19262         * fe.h: Remove redundant declarations.
19263
19264 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19265
19266         * utils.c (builtin_function): Rename to gnat_builtin_function.
19267         Move common code to add_builtin_function.
19268         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19269         gnat_builtin_function.
19270         * gigi.h (builtin_function): Rename to gnat_builtin_function.
19271         Change the signature.
19272
19273 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
19274
19275         * Makefile.in: Add TEXI2PDF definition.
19276         * Make-lang.in: Add "ada.pdf" target.
19277
19278 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
19279
19280         * decl.c, utils.c: Fix comment typos.
19281         * utils.c: Fix a typo.
19282
19283 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
19284
19285         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19286         on "pure" Ada subprograms if SJLJ exceptions are used.
19287         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19288         on the declaration node of JMPBUF_SAVE.
19289         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19290         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19291         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19292
19293 2006-08-20  Laurent Guerby  <laurent@guerby.net>
19294
19295         PR ada/28716
19296         g-socket.adb (Bind_Socket): Call Set_Address.
19297
19298 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
19299
19300         PR ada/15802
19301         * decl.c (same_discriminant_p): New static function.
19302         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19303         subtype and we have discriminants, fix up the COMPONENT_REFs
19304         for the discriminants to make them reference the corresponding
19305         fields of the parent subtype after it has been built.
19306
19307 2006-09-15  Roger Sayle  <roger@eyesopen.com>
19308
19309         PR ada/18817
19310         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19311         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19312
19313 2006-09-13  Olivier Hainque  <hainque@adacore.com>
19314
19315         PR ada/29025
19316         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19317         of a SAVE_EXPR, just make the operand addressable/not-readonly and
19318         let the common gimplifier code make and propagate a temporary copy.
19319         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19320         out/in-out actuals and defer setting the addressable/readonly bits
19321         to the gimplifier.
19322
19323 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19324
19325         PR ada/28591
19326         * decl.c (components_to_record): Defer emitting debug info for the
19327         record type associated with the variant until after we are sure to
19328         actually use it.
19329
19330 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19331
19332         PR ada/21952
19333         * gigi.h (gnat_internal_attribute_table): Declare.
19334         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19335         * utils.c (gnat_internal_attribute_table): New global variable.
19336         (builtin_function): Always call decl_attributes on the builtin.
19337         (handle_const_attribute): New static function.
19338         (handle_nothrow_attribute): Likewise.
19339
19340 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
19341
19342         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19343
19344 2006-06-23  Olivier Hainque  <hainque@adacore.com>
19345
19346         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19347         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19348
19349 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
19350             Eric Botcazou  <ebotcazou@adacore.com>
19351
19352         PR ada/18692
19353         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
19354         check-gnat into check-acats.
19355
19356 2006-06-17  Karl Berry  <karl@gnu.org>
19357
19358         * gnat-style.texi (@dircategory): Use "Software development"
19359         instead of "Programming", following the Free Software Directory.
19360
19361 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19362
19363         PR ada/27944
19364         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19365
19366 2006-06-06  Laurent Guerby  <laurent@guerby.net>
19367
19368         PR ada/27769
19369         mlib-utl.adb: Use Program_Name.
19370
19371 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
19372
19373         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19374         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19375         trans.c, utils.c: Fix comment typos.  Follow spelling
19376         conventions.
19377         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
19378         conventions.
19379
19380 2006-05-19  Nicolas Setton  <setton@adacore.com>
19381
19382         * misc.c (gnat_dwarf_name): New function.
19383         (LANG_HOOKS_DWARF_NAME): Define to it.
19384
19385 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
19386
19387         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19388         (ada/misc.o): Likewise.
19389         (ada/utils.o): Likewise.
19390
19391 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
19392
19393         * Makefile.in: Add Ada support for GNU/kFreeBSD.
19394         * s-osinte-kfreebsd-gnu.ads: New file.
19395
19396 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
19397
19398         * Make-lang.in: Rename docdir to gcc_docdir.
19399
19400 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
19401
19402         * gigi.h (get_ada_base_type): Delete.
19403         * utils2.c (get_ada_base_type): Likewise.
19404         * trans.c (convert_with_check): Operate in the real base type.
19405
19406 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19407
19408         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19409
19410 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
19411
19412         * utils.c (create_var_decl): Use have_global_bss_p when deciding
19413         whether to make the decl common.
19414
19415 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19416
19417         * Make-lang.in (Ada): Remove.
19418         (.PHONY): Remove Ada
19419
19420 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19421
19422         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19423         aggregate, check the interpretations of the other operand to find one
19424         that may be a boolean array.
19425
19426         (Analyze_Selected_Component): Fix flow-of-control typo in case where
19427         the prefix is a private extension.
19428
19429 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
19430
19431         PR ada/26315
19432         * utils2.c (find_common_type): If both input types are BLKmode and
19433         have the same constant size, keep using the first one.
19434
19435         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19436
19437         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19438
19439         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19440
19441 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
19442
19443         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19444         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19445         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
19446         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19447         Abort_Defer/Undefer pairs to avoid the possibility of a task being
19448         aborted while owning a lock.
19449
19450 2006-02-17  Javier Miranda  <miranda@adacore.com>
19451             Robert Dewar  <dewar@adacore.com>
19452
19453         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19454         through an access to class-wide interface we force the displacement of
19455         the pointer to the allocated object to reference the corresponding
19456         secondary dispatch table.
19457         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19458         if Long_Shifts are supported on the target, even if 64 bit divides
19459         are not supported (configurable run time mode).
19460         (Expand_N_Type_Conversion): Do validity check if validity checks on
19461         operands are enabled.
19462         (Expand_N_Qualified_Expression): Do validity check if validity checks
19463         on operands are enabled.
19464
19465 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19466
19467         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19468         must be materialized when the renamed expression is an explicit
19469         dereference.
19470
19471 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19472
19473         * freeze.adb (Statically_Discriminated_Components): Return false if
19474         the bounds of the type of the discriminant are not static expressions.
19475
19476         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19477         the bounds of the discriminant type are not static.
19478
19479 2006-02-17  Robert Dewar  <dewar@adacore.com>
19480
19481         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19482         then we close To if it is valid.
19483
19484 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19485
19486         * init.c (facility_resignal_table): new array
19487         (__gnat_default_resignal_p): enhance default predicate to resignal if
19488         VMS condition has one of the predefined facility codes.
19489
19490 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
19491
19492         * Makefile.in: Use VMS64 specialized versions of several units in
19493         Interfaces.C hierarchy to be compatible with HP C default size choices.
19494         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19495
19496 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19497
19498         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19499         instantiation, the corresponding entity is the related_instance of the
19500         wrapper package created for the instance.
19501
19502 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19503
19504         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19505         the current instance is nested within another instance in a child unit.
19506
19507 2006-02-17  Javier Miranda  <miranda@adacore.com>
19508             Ed Schonberg  <schonberg@adacore.com>
19509
19510         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19511         type we cannot inherit the primitive operations; we inherit the
19512         Corresponding_Record_Type (which has the list of primitive operations).
19513         (Check_Anonymous_Access_Types): When creating anonymous access types for
19514         access components, use Rewrite in order to preserve the tree structure,
19515         for ASIS use.
19516         (Analyze_Object_Declaration): For limited types with access
19517         discriminants with defaults initialized by an aggregate, obtain
19518         subtype from aggregate as for other mutable types.
19519         (Derived_Type_Declaration): If the derived type is a limited interface,
19520         set the corresponding flag (Is_Limited_Record is not sufficient).
19521
19522 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
19523
19524         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19525         to inline a function that returns an unconstrained type, the return
19526         expression must be the first variable declared in the body of the
19527         function.
19528
19529 2006-02-17  Javier Miranda  <miranda@adacore.com>
19530
19531         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19532         abstract interface type, the static analysis is not enough to know if
19533         the interface is implemented or not by the source tagged type. Hence
19534         we must pass the work to the expander to generate the required code to
19535         evaluate the conversion at run-time.
19536         (Resolve_Equality_Op): Do not apply previous
19537         transformation if expansion is disasbled, to prevent anomalies when
19538         locating global references in a generic unit.
19539
19540 2006-02-17  Vincent Celier  <celier@adacore.com>
19541
19542         * snames.ads, snames.adb: New standard names for new project attributes:
19543         archive_builder, archive_indexer, compiler_pic_option,
19544         config_body_file_name, config_body_file_name_pattern,
19545         config_file_switches, config_file_unique, config_spec_file_name,
19546         config_spec_file_name_pattern, default_builder_switches,
19547         default_global_compiler_switches, default_language,
19548         dependency_file_kind, global_compiler_switches, include_path,
19549         include_path_file, language_kind, linker_executable_option,
19550         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19551         roots, runtime_project.
19552
19553 2006-02-17  Matthew Heaney  <heaney@adacore.com>
19554
19555         * a-convec.ads, a-convec.adb:
19556         (operator "&"): handle potential overflow for large index types
19557         (Insert): removed Contraint_Error when using large index types
19558         (Insert_Space): removed Constraint_Error for large index types
19559         (Length): moved constraint check from Length to Insert
19560
19561         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19562         as not null access.
19563         Explicit raise statements now include an exception message.
19564         (operator "&"): handle potential overflow for large index types
19565         (Insert): removed Contraint_Error when using large index types
19566         (Insert_Space): removed Constraint_Error for large index types
19567         (Length): moved constraint check from Length to Insert
19568
19569 2006-02-17  Robert Dewar  <dewar@adacore.com>
19570
19571         * s-wchcnv.adb: Document handling of [ on output (we do not change
19572         this to ["5B"] and the new comments say why not.
19573
19574         * gnat_ugn.texi:
19575         Add note for -gnatVo that this now includes the cases of type
19576         conversions and qualified expressions.
19577         Add comments on handling of brackets encoding for Text_IO
19578
19579 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
19580             Thomas Quinot  <quinot@adacore.com>
19581             Robert Dewar  <dewar@adacore.com>
19582             Javier Miranda  <miranda@adacore.com>
19583
19584         * expander.adb: Fix typo in comment
19585
19586         * exp_pakd.adb: Fix typo
19587         Minor comment reformatting.
19588
19589         * g-dyntab.adb: Minor reformatting
19590
19591         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19592         aliased subprograms to look for the abstract interface subprogram.
19593
19594 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
19595
19596         * env.c (__gnat_setenv): Use size_t.
19597         (__gnat_unsetenv): Likewise.
19598         (__gnat_clearenv): Likewise.
19599
19600 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
19601
19602         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19603
19604 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19605
19606         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19607         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19608         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19609         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19610         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19611         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19612         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19613         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19614         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19615         no longer used.
19616
19617 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
19618
19619         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19620         protection against race conditions is not needed.
19621         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19622         fallback handler.
19623         (Set_Specific_Handler): Add mutual exclusive access to the specific
19624         handler.
19625         (Specific_Handler): Add mutual exclusive access for retrieving the
19626         specific handler.
19627
19628         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19629         back handler.
19630
19631         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19632         Fall_Back_Handler and Specific_Handler.
19633
19634         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19635         termination handlers.
19636         Set two different owerflow depending on the maximal stack size.
19637
19638         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19639         protection against race conditions is not needed when executing the
19640         task termination handler.
19641
19642 2006-02-13  Robert Dewar  <dewar@adacore.com>
19643
19644         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19645         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19646         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19647         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19648         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19649         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19650         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19651         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19652         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19653         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19654         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19655         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19656         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19657         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19658         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19659         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19660         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19661         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19662         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19663         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19664         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19665         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19666         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19667         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19668         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19669         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19670         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19671         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19672         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19673         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19674         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19675         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19676         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19677         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19678         reformatting.
19679
19680 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
19681
19682         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19683         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19684         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19685         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19686         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19687         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19688         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19689         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19690         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19691
19692 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19693
19694         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19695         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
19696         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
19697         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
19698         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
19699         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
19700         replaced by anonymous access type.
19701         (pthread_sigmask): Now take an access sigset_t
19702
19703         * s-osinte-hpux.ads:  Ditto.
19704         (pthread_mutex_t, pthread_cond_t): Update definitions to support
19705         properly 32 and 64 bit ABIs.
19706
19707 2006-02-13  Pascal Obry  <obry@adacore.com>
19708
19709         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
19710         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
19711         s-taprop-linux.adb, s-taprop-solaris.adb,
19712         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
19713         adjustement is already done when calling this routine.
19714
19715 2006-02-13  Pascal Obry  <obry@adacore.com>
19716
19717         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
19718         table to take advantage of the 16 priority levels available on Windows
19719         2000 and XP. On NT4 there are only 7 priority levels, this is properly
19720         supported by this new mapping.
19721
19722 2006-02-13  Nicolas Setton  <setton@adacore.com>
19723
19724         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
19725         (get_encoding): New subprogram. Extracts the encodings from an encoded
19726         Ada name.
19727
19728 2006-02-13  Pascal Obry  <obry@adacore.com>
19729             Nicolas Roche  <roche@adacore.com>
19730             Arnaud Charlet  <charlet@adacore.com>
19731
19732         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
19733         support.
19734         (__gnat_try_lock): Add unicode support by using a specific section on
19735         Windows.
19736         (__gnat_get_current_dir): Idem.
19737         (__gnat_open_read): Idem.
19738         (__gnat_open_rw): Idem.
19739         (__gnat_open_create): Idem.
19740         (__gnat_create_output_file): Idem.
19741         (__gnat_open_append): Idem.
19742         (__gnat_open_new): Idem.
19743         (__gnat_file_time_name): Idem.
19744         (__gnat_set_file_time_name): Idem.
19745         (__gnat_stat): Idem.
19746         (win32_no_block_spawn): Idem.
19747         (__gnat_locate_exec_on_path): Idem.
19748         (__gnat_opendir): New routine.
19749         (__gnat_closedir): Idem.
19750         (__gnat_readdir): Add new parameter length (pointer to int). Update
19751         implementation to use it and add specific Win32 code for Unicode
19752         support.
19753         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
19754         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
19755         (convert_addresses): Do not define this dummy routine on VMS.
19756
19757         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
19758         runtime Unicode support will be activated.
19759         (S2WS): String to Wide-String conversion. This version just copy a
19760         string in non Unicode version.
19761         (WS2S): Wide-String to String conversion. This version just copy a
19762         string in non Unicode version.
19763
19764         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
19765         (Open): Now import __gnat_opendir from adaint.c.
19766         (Read): Change the implementation to support unicode characters. It is
19767         not possible to use strlen() on Windows as this version supports only
19768         standard ASCII characters. So the length of the directory entry is now
19769         returned from the imported __gnat_readdir routine.
19770         Update copyright notice.
19771
19772         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
19773         (opendir): Moved to adaint.c.
19774
19775         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
19776         (Get_Directory): Fix wrong indexing.
19777         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
19778         __gnat_getenv from env.c
19779         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
19780         from env.c
19781
19782         * env.h, env.c: New file.
19783
19784         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
19785         adaint.c by __gnat_getenv from env.c
19786
19787         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
19788         adaint.c by __gnat_getenv from env.c
19789
19790         * Make-lang.in: Add env.o in the list of C object needed by gnat1
19791         and gnatbind.
19792         Update dependencies.
19793
19794 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19795             Olivier Hainque  <hainque@adacore.com>
19796             Eric Botcazou  <ebotcazou@adacore.com>
19797
19798         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
19799
19800         * gigi.h (value_factor_p): Add prototype and description, now public.
19801
19802         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
19803         promotion for field with rep clause if the associated size was proven
19804         to be in error.
19805         Expand comments describing attempts to use a packable type.
19806         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
19807         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
19808         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
19809         necessary since these are not different types and pointers may
19810         actually designate any subtype in this hierarchy.
19811         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
19812         discriminants but put them into record only if not Unchecked_Union;
19813         pass flag to components_to_record showing Unchecked_Union.
19814         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
19815         components before variants; don't set TYPE_UNCHECKED_UNION_P.
19816         (components_to_record): New argument UNCHECKED_UNION.
19817         Remove special case code for Unchecked_Union and instead use main code
19818         with small changes.
19819
19820         PR ada/26096
19821         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
19822         variable with the expression being built, only its inner field.
19823
19824         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
19825         emit_sequence_entry_statements.
19826         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
19827         (establish_gnat_vms_condition_handler): Move before
19828         Subprogram_Body_to_gnu.
19829         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
19830         for a subprogram if it has a foreign convention or is exported.
19831         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
19832         substituted for a CONST_DECL.
19833         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
19834         Etype to assoc_to_constructor.
19835         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
19836         discriminants of Unchecked_Union.
19837         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
19838         don't need cluttering preprocessor directives.
19839         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
19840         condition handler as current in the compiled function.
19841         (body_with_handlers_p): New function. Tell whether a given sequence of
19842         statements node is attached to a package or subprogram body and involves
19843         exception handlers possibly nested within inner block statements.
19844         (emit_sequence_entry_statements): New function, to emit special
19845         statements on entry of sequences when necessary. Establish GNAT
19846         condition handler in the proper cases for VMS.
19847         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
19848         emit_sequence_entry_statements.
19849
19850         * utils2.c (find_common_type): If both input types are BLKmode and
19851         have a constant size, use the smaller one.
19852         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
19853         the same.
19854
19855         * utils.c (value_factor_p): Make public, to allow uses from other gigi
19856         units.
19857         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
19858         (convert, case UNION_TYPE): Remove special treatment for unchecked
19859         unions.
19860
19861         PR ada/18659
19862         (update_pointer_to): Update variants of pointer types to unconstrained
19863         arrays by attaching the list of fields of the main variant.
19864
19865 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19866             Robert Dewar  <dewar@adacore.com>
19867
19868         * a-exexpr.adb, a-exexpr-gcc.adb
19869         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
19870         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
19871         Remove code unused for exception propagation for the compiler itself
19872         from a-except.adb and update to still share separate packages.
19873
19874         * a-except.ads, a-except.adb: Ditto.
19875         Add comments that this version is now used only by the compiler and
19876         other basic tools. The full version that includes the Ada 2005 stuff
19877         is in separate files a-except-2005.ads/adb. The reason is that we do
19878         not want to cause bootstrap problems with compilers not recognizing
19879         Wide_Wide_String.
19880         Add exception reason code PE_Implicit_Return
19881         Add new exception reason code (Null Exception_Id)
19882
19883         * a-except-2005.adb, a-except-2005.ads: New files.
19884
19885         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
19886
19887         * s-wchcon.adb: New file.
19888
19889         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
19890         (traceback.o deps): Likewise.
19891         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
19892         Activate build of GMEM instrumentation library on VMS targets.
19893         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
19894         Use a-except-2005.ads/adb for all run-time library builds unless
19895         specified otherwise.
19896         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
19897         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
19898         Use s-parame.adb on all native platforms.
19899         Use s-parame-vxworks.adb on all vxworks platforms.
19900         Add env.c env.h in LIBGNAT_SRCS
19901         Add env.o in LIBGNAT_OBJS
19902         (GNATMAKE_OBJS): Remove ctrl_c.o object.
19903         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
19904         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
19905         supports VxWorks 6 RTPs.
19906         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
19907         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
19908
19909         * types.h, types.ads (Terminate_Program): New exception
19910         Add comment on modifying multiple versions of a-except.adb when the
19911         table of exception reasons is modified.
19912         Add exception reason code PE_Implicit_Return
19913         Add new exception reason code (Null Exception_Id)
19914
19915         * clean.adb (Initialize): Get the target parameters before checking
19916         if target is OpenVMS. Move the OpenVMS specific code here from package
19917         body elaboration code.
19918
19919 2006-02-13  Thomas Quinot  <quinot@adacore.com>
19920             Vincent Celier  <celier@adacore.com>
19921             Robert Dewar  <dewar@adacore.com>
19922
19923         * ali-util.adb (Get_File_Checksum): Update to account for change in
19924         profile of Initialize_Scanner.
19925
19926         * gprep.adb (Gnatprep): Update to account for change in profile of
19927         Initialize_Scanner.
19928         (Process_One_File): Same.
19929
19930         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
19931         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
19932         that behaviour using the new Unit information recorded in the source
19933         files table, rather than going through all units every time.
19934         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
19935         (Get_Source_Unit): Same.
19936
19937         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
19938         change in profile of Initialize_Scanner.
19939         (Prepare_To_Preprocess): Same.
19940
19941         * lib.ads: Fix typo in comment (templace -> template).
19942
19943         * prj-part.adb (Parse_Single_Project): Update to account for change in
19944         profile of Initialize_Scanner.
19945
19946         * scn.adb (Initialize_Scanner): Account for change in profile of
19947         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
19948         Also record the association of the given Source_File_Index to the
19949         corresponding Unit_Number_Type.
19950
19951         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
19952         procedure.
19953         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
19954         Remove Unit formal for generic scanner: this formal
19955         is only relevant to Scn (the scanner instance used to parse Ada source
19956         files), not to other instances. Update comment accordingly.
19957         (Scan): Use new function Snames.Is_Keyword_Name.
19958
19959         * sinfo-cn.adb: Fix typo in comment.
19960
19961         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
19962         Unit.
19963
19964         * sinput.ads (Source_File_Record): New component Unit, used to capture
19965         the unit identifier (if any) associated to a source file.
19966
19967         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
19968         Unit in Source_File_Record.
19969
19970         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
19971         in profile of Initialize_Scanner.
19972
19973         * scans.adb (Initialize_Ada_Keywords): New procedure
19974
19975         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
19976         Ada keywords in the Namet table, without the need to call
19977         Initialize_Scanner.
19978
19979         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
19980         (Is_Keyword_Name): New function
19981
19982         * snames.ads: Add subtype Configuration_Pragma_Names
19983         Add pragma Ada_2005 (synonym for Ada_05)
19984         (Is_Keyword_Name): New function
19985
19986         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
19987
19988 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19989
19990         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
19991         index.
19992
19993         * a-stwima.adb (To_Set): Add extra check when N = 0.
19994
19995         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
19996
19997 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
19998
19999         * s-parame-mingw.adb, s-parame-linux.adb,
20000         s-parame-solaris.adb: Removed, replaced by s-parame.adb
20001
20002         * s-parame-vxworks.ads: Fix typo.
20003
20004         * s-parame-vxworks.adb: New file.
20005
20006         * s-parame.adb: Version now used by all native platforms.
20007         (Default_Stack_Size): Use 2 megs for default stack size and use
20008         __gl_default_stack_size when available.
20009         (Minimum_Stack_Size): Use 12K.
20010
20011         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20012         (Create_Task): Refine implementation taking advantage of the XP stack
20013         size support. On XP, we now create the thread using the flag
20014         STACK_SIZE_PARAM_IS_A_RESERVATION.
20015
20016         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20017
20018         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20019         XP and 0 on older Windows versions.
20020
20021         * interfac-vms.ads: Removed, no longer used.
20022
20023 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20024
20025         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20026         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20027         a-cohase.adb: All explicit raise statements now include an exception
20028         message.
20029
20030         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20031         (Update_Element_Preserving_Key): renamed op to just Update_Element.
20032         Explicit raise statements now include an exception message
20033
20034         * a-cihase.ads, a-cohase.ads: Removed comment.
20035
20036         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20037         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20038         a-szbzha.adb, a-szfzha.ads: New files.
20039
20040 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20041
20042         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20043         quicksort.
20044
20045 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20046
20047         * lang.opt: Wvariadic-macros: New option.
20048         Wold-style-definition: Likewise.
20049         Wmissing-format-attribute: Likewise.
20050
20051         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20052         -Wold-style-definition and -Wmissing-format-attribute.
20053
20054 2006-02-13  Robert Dewar  <dewar@adacore.com>
20055
20056         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20057
20058         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20059
20060 2006-02-13  Nicolas Roche  <roche@adacore.com>
20061
20062         * a-envvar.adb, a-envvar.ads: New files.
20063
20064 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20065
20066         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20067
20068         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20069
20070 2006-02-13  Pat Rogers  <rogers@adacore.com>
20071
20072         * a-rttiev.adb, a-rttiev.ads: New files.
20073
20074 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20075
20076         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20077         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
20078
20079         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20080
20081 2006-02-13  Robert Dewar  <dewar@adacore.com>
20082
20083         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20084         sem_case.adb: Minor code reorganization (not Present should be No)
20085
20086 2006-02-13  Geert Bosch  <bosch@adacore.com>
20087             Gary Dismukes  <dismukes@adacore.com>
20088
20089         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20090         0, since the lower bound of the actual string may be greater than one.
20091
20092         PR ada/20753
20093         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20094         layout is requested.
20095
20096 2006-02-13  Vincent Celier  <celier@adacore.com>
20097
20098         * back_end.adb (Scan_Compiler_Arguments): Check if
20099         Search_Directory_Present is True and, if it is, add the argument in
20100         the source search directory path.
20101
20102         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20103         Search_Directory_Present to True.
20104
20105 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
20106
20107         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20108         volatile, to tell the compiler to preserve this variable at any level
20109         of optimization.
20110         (Gen_Versions_Ada): Temporarily work around codegen bug.
20111
20112 2006-02-13  Vincent Celier  <celier@adacore.com>
20113
20114         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20115         gcc to link with option -shared-libgcc.
20116         (Gnatlink): Remove duplicate switches -shared-libgcc
20117
20118 2006-02-13  Robert Dewar  <dewar@adacore.com>
20119
20120         * gnatvsn.ads (Current_Year): New constant, used to easily update
20121         copyright on all GNAT tools.
20122
20123         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20124         copyright notice.
20125
20126 2006-02-13  Robert Dewar  <dewar@adacore.com>
20127
20128         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20129         after hyphen (small aesthetic change useful for a range of numbers
20130         using ^-^.
20131         Suppress range checks for a couple of assignments which otherwise
20132         cause validity checks with validity checking turned on.
20133
20134         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20135         Improvement in error message for object.
20136         (Rep_Item_Too_Late): Remove '!' in warning message.
20137
20138 2006-02-13  Robert Dewar  <dewar@adacore.com>
20139             Eric Botcazou  <ebotcazou@adacore.com>
20140
20141         * err_vars.ads: Suppress range checks for a couple of assignments
20142         which otherwise cause validity checks with validity checking turned on.
20143         Update comments.
20144
20145         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20146         Make message unconditional if it is a warning.
20147         (Error_Msg_NEL): Always output warning messages.
20148         Suppress range checks for a couple of assignments which otherwise
20149         cause validity checks with validity checking turned on.
20150
20151         * errout.ads (Message Insertion Characters): Document that '!' is
20152         implied by '?' in error messages.
20153
20154         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20155         (Gnat1drv): Use a goto to end of main subprogram instead of
20156         Exit_Program (E_Success) so that finalization can occur normally.
20157
20158 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20159
20160         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20161         wrapped around.
20162
20163 2006-02-13  Vincent Celier  <celier@adacore.com>
20164
20165         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20166         Unchecked_Conversion functions.
20167         (Modification_Time): Use direct conversion of OS_Time to Calendar time
20168         when OpenVMS returns False.
20169
20170         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20171         a-dirval.adb (OpenVMS): New Boolean function
20172
20173 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20174             Thomas Quinot  <quinot@adacore.com>
20175
20176         * checks.adb (Build_Discriminant_Checks): If the expression being
20177         checks is an aggregate retrieve the values of its discriminants to
20178         generate the check, rather than creating a temporary and a reference
20179         to it.
20180         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20181         (Install_Null_Excluding_Check): Ditto
20182         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20183         not for the renamed object, so that the actual itype is attached in the
20184         proper context.
20185
20186 2006-02-13  Robert Dewar  <dewar@adacore.com>
20187             Vincent Celier  <celier@adacore.com>
20188
20189         * debug.adb: Eliminate numeric switches for binder/gnatmake
20190
20191         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20192         switches for the compiler.
20193         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20194         (Scan_Make_Switches): When failing with an illegal switch, output an
20195         error message with the full switch.
20196         Eliminate numeric switches for binder/gnatmake
20197
20198         * switch.ads, switch.adb (Bad_Switch): New procedure
20199
20200         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20201         Remove 0-9 as debug flag character possibilities
20202         -d is now controlling the primary stack size when its value is a
20203         positive. Also add checks against invalid values, and support for kb,
20204         mb. Ditto for -D switch.
20205
20206 2006-02-13  Robert Dewar  <dewar@adacore.com>
20207             Serguei Rybin  <rybin@adacore.com>
20208
20209         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20210         save/restore routines.
20211         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20212         were not always properly handled previously.
20213         Since we are changing the tree format anyway, also get rid of the
20214         junk obsolete Immediate_Errors flag.
20215         (Tree_Read): Change the way of reading Tree_Version_String - now we
20216         read the version string from the tree even if its length is not the
20217         same as the length of the version string computed from Gnatvsn.
20218         (Search_Directory_Present): New Boolean flag for the compiler.
20219         Define Tree_Version_String as a dynamic string.
20220         (Default_Stack_Size): new variable, used to handle switch -d.
20221
20222         * par-prag.adb:
20223         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20224         only for main unit.
20225         Add pragma Ada_2005 (synonym for Ada_05)
20226         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20227         were not always properly handled previously.
20228
20229         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20230         explicit Ada_95 to Ada_2005.
20231
20232 2006-02-13  Javier Miranda  <miranda@adacore.com>
20233             Robert Dewar  <dewar@adacore.com>
20234             Ed Schonberg  <schonberg@adacore.com>
20235
20236         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20237         against errors in the source program: a private types for which the
20238         corresponding full type declaration is missing and pragma CPP_Virtual
20239         is used.
20240         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20241         (Is_Known_Null): New flag
20242         (Has_Pragma_Pure): New flag
20243         (No_Return): Present in all entities, set only for procedures
20244         (Is_Limited_Type): A type whose ancestor is an interface is limited if
20245         explicitly declared limited.
20246         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20247         entities. Only used for component marked Is_Tag. If present it stores
20248         the Offset_To_Top function used to provide this value in tagged types
20249         whose ancestor has discriminants.
20250
20251         * exp_ch2.adb: Update status of new Is_Known_Null flag
20252
20253         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20254
20255         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20256         the categorization sense if Is_Pure was set by pragma Pure_Function.
20257
20258 2006-02-13  Quentin Ochem  <ochem@adacore.com>
20259             Olivier Hainque  <hainque@adacore.com>
20260
20261         * bindusg.adb: Updated documentation for -d and -D switches.
20262
20263         * raise.h (__gnat_set_globals): added new parameter for
20264         Default_Stack_Size.
20265
20266         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20267         (__gnat_handle_vms_condition): Adjust context before raise.
20268         (__gnat_install_handler): Restore the global vector setup for GCC
20269         versions before 3.4, as the frame based circtuitry is not available
20270         in this case.
20271         (__gnat_set_globals): added a parameter default_stack_size
20272         (__gl_default_stack_size): new variable.
20273
20274 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20275
20276         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20277         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20278         does not exist in the Ada RM.
20279         (Compatible_Int_Bounds): Determine whether two integer range bounds
20280         are of equal length and have the same start and end values.
20281         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20282         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20283         aggregate when it is part of an object declaration.
20284         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
20285         constrains discriminants of its parent, add explicitly the discriminant
20286         constraints of the ancestor by retrieving them from the
20287         stored_constraint of the parent.
20288
20289 2006-02-13  Robert Dewar  <dewar@adacore.com>
20290
20291         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20292         attribute Mechanism_Code is applied to renamed subprogram, modify
20293         prefix to point to base subprogram.
20294         Max/Min attributes now violate Restriction No_Implicit_Conditionals
20295
20296         * sinfo.ads: Document that Mechanism_Code cannot be applied to
20297         renamed subprograms so that the front-end must replace the prefix
20298         appropriately.
20299
20300 2006-02-13  Javier Miranda  <miranda@adacore.com>
20301             Gary Dismukes  <dismukes@adacore.com>
20302
20303         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20304         availability of RE_Interface_Tag.
20305         (Build_Initialization_Call): Fix wrong access to the discriminant value.
20306         (Freeze_Record_Type): Do not generate the tables associated with
20307         timed and conditional dispatching calls through synchronized
20308         interfaces if compiling under No_Dispatching_Calls restriction.
20309         When compiling for Ada 2005, for a nonabstract
20310         type with a null extension, call Make_Controlling_Function_Wrappers
20311         and insert the wrapper function declarations and bodies (the latter
20312         being appended as freeze actions).
20313         (Predefined_Primitive_Bodies): Do not generate the bodies of the
20314         predefined primitives associated with timed and conditional
20315         dispatching calls through synchronized interfaces if we are
20316         compiling under No_Dispatching_Calls.
20317         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
20318         service is available before generating a call.
20319         (Make_Controlling_Function_Wrappers): New procedure.
20320         (Expand_N_Full_Type_Declaration): Create a class-wide master for
20321         access-to-limited-interfaces because they can be used to reference
20322         tasks that implement such limited interface.
20323         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20324         procedure spec and body of the Offset_To_Top function that is generated
20325         when the parent of a type with discriminants has secondary dispatch
20326         tables.
20327         (Init_Secondary_Tags): Handle the case in which the parent of the type
20328         containing secondary dispatch tables has discriminants to generate the
20329         correct arguments to call Set_Offset_To_Top.
20330         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20331
20332         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20333         Add Wide_[Wide_]Expanded_Name.
20334         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20335         the same functionality of Get_Prim_Op_Address but applied to predefined
20336         primitive operations because the pointers to the predefined primitives
20337         are now saved in a separate table.
20338         (Parent_Size): Modified to get access to the separate table of primitive
20339         operations or the parent type.
20340         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20341         functionality of Set_Prim_Op_Address but applied to predefined primitive
20342         operations.
20343         (Set_Signature): New subprogram used to store the signature of a DT.
20344         (Displace): If the Offset_To_Top value is not static then call the
20345         function generated by the expander to get such value; otherwise use
20346         the value stored in the table of interfaces.
20347         (Offset_To_Top): The type of the actual has been changed to Address to
20348         give the correct support to tagged types with discriminants. In this
20349         case this value is stored just immediately after the tag field.
20350         (Set_Offset_To_Top): Two new formals have been added to indicate if the
20351         offset_to_top value is static and hence pass this value to the run-time
20352         to store it in the table of interfaces, or else if this value is dynamic
20353         and then pass to the run-time the address of a function that is
20354         generated by the expander to provide this value for each object of the
20355         type.
20356
20357         * rtsfind.ads (Default_Prin_Op_Count): Removed.
20358         (Default_Prim_Op_Count): New entity
20359         (Get_Predefined_Prim_Op_Address): New entity
20360         (Set_Predefined_Prim_Op_Address): New entity
20361         (RE_Set_Signature): New entity
20362
20363 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20364             Ed Schonberg  <schonberg@adacore.com>
20365
20366         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20367         Make_Adjust_Call done for a newly-allocated object.
20368
20369         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20370         in a subprogram are wrapped in a cleanup block, indicate that the
20371         subprogram contains an inner block with an exception handler.
20372         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20373         Adjust call is for a newly-allocated object. In that case we must not
20374         assume that the finalization list chain pointers are correct (since they
20375         come from a bit-for-bit copy of the original object's pointers) so if
20376         the attach level would otherwise be zero (no change), we set it to 4
20377         instead to cause the pointers to be reset to null.
20378
20379         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20380         reset chain pointers to null.
20381
20382 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20383
20384         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20385         string, and the context requires a loop for the assignment (e.g.
20386         because the left-hand side is packed), generate a unique name for the
20387         temporary that holds the string, to prevent spurious name clashes.
20388
20389 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20390             Javier Miranda  <miranda@adacore.com>
20391             Robert Dewar  <dewar@adacore.com>
20392             Gary Dismukes  <dismukes@adacore.com>
20393
20394         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20395         return unconstrained arrays.
20396         Update comments.
20397         (Expand_Call):  An indirect call through an access parameter of a
20398         protected operation is not a protected call.
20399         Add circuit to raise CE in Ada 2005 mode following call
20400         to Raise_Exception.
20401         (Register_DT_Entry): Do nothing if
20402         the run-time does not give support to abstract interfaces.
20403         (Freeze_Subprogram): In case of dispatching operations, do not generate
20404         code to register the operation in the dispatch table if the source
20405         is compiled with No_Dispatching_Calls.
20406         (Register_Predefined_DT_Entry): Generate code that calls the new
20407         run-time subprogram Set_Predefined_Prim_Op_Address instead of
20408         Set_Prim_Op_Address.
20409
20410         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20411         on array assignments if the right-hand side is a function call that has
20412         been inlined. Check is performed on the assignment in the block.
20413         (Process_Bounds): If bounds and range are overloaded, apply preference
20414         rule for root operations to disambiguate, and diagnose true ambiguity.
20415         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20416         a tag-indeterminate right-hand side even when Expander_Active is True.
20417         Needed to ensure that dispatching calls to T'Input are allowed and
20418         get the tag of the target class-wide object.
20419
20420         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20421         an inherited primitive operation that already overrides several
20422         abstract interface primitives. For transitivity, the new entity must
20423         also override all the abstract interface primitives covered by the
20424         inherited overriden primitive.
20425         Emit warning if new entity differs from homograph in same scope only in
20426         that one has an access parameter and the other one has a parameter of
20427         a general access type with the same designated type, at the same
20428         position in the signature.
20429         (Make_Inequality_Operator): Use source locations of parameters and
20430         subtype marks from corresponding equality operator when creating the
20431         tree structure for the implicit declaration of "/=". This does not
20432         change anything in behaviour except that the decoration of the
20433         components of the subtree created for "/=" allows ASIS to get the
20434         string images of the corresponding identifiers.
20435         (Analyze_Return_Statement): Remove '!' in warning message.
20436         (Check_Statement_Sequence): Likewise.
20437         (Analyze_Subprogram_Body): For an access parameter whose designated type
20438         is an incomplete type imported through a limited_with clause, use the
20439         type of the corresponding formal in the body.
20440         (Check_Returns): Implicit return in No_Return procedure now raises
20441         Program_Error with a compile time warning, instead of beging illegal.
20442         (Has_Single_Return):  Function returning unconstrained type cannot be
20443         inlined if expression in unique return statement is not an identifier.
20444         (Build_Body_To_Inline): It is possible to inline a function call that
20445         returns an unconstrained type if all return statements in the function
20446         return the same local variable. Subsidiary procedure Has_Single_Return
20447         verifies that the body conforms to this restriction.
20448
20449         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20450         same type, and  one of them is of an anonymous access type, convert
20451         the other operand to it, so that this is a valid binary operation for
20452         gigi.
20453         (Resolve_Type_Conversion): Handle subtypes of protected types and
20454         task types when accessing to the corresponding record type.
20455         (Resolve_Allocator): Add '\' in 2-line warning message.
20456         Remove '!' in warning message.
20457         (Resolve_Call): Add '\' in 2-line warning message.
20458         (Valid_Conversion): Likewise.
20459         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20460         resulting type may be an access type with an implicit dereference.
20461         Obtain the proper component from the designated type.
20462         (Make_Call_Into_Operator): Handle properly a call to predefined equality
20463         given by an expanded name with prefix Standard, when the operands are
20464         of an anonymous access type.
20465         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20466         Explicit_Dereference and Resolve_Selected_Component, to verify that the
20467         prefix of the expression is not of an incomplete type. Allows full
20468         diagnoses of all semantic errors.
20469         (Resolve_Actuals): If the actual is an allocator whose directly
20470         designated type is a class-wide interface we build an anonymous
20471         access type to use it as the type of the allocator. Later, when
20472         the subprogram call is expanded, if the interface has a secondary
20473         dispatch table the expander will add a type conversion to force
20474         the displacement of the pointer.
20475         (Resolve_Call): If a function that returns an unconstrained type is
20476         marked Inlined_Always and inlined, the call will be inlined and does
20477         not require the creation of a transient scope.
20478         (Check_Direct_Boolean_Op): Removed
20479         (Resolve_Comparison_Op): Remove call to above
20480         (Resolve_Equality_Op): Remove call to above
20481         (Resolve_Logical_Op): Inline above, since this is only call.
20482         (Valid_Conversion): Handle properly conversions between arrays of
20483         convertible anonymous access types.
20484
20485         PR ada/25885
20486         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20487         the literal in an unchecked conversion, because GCC 4.x needs a static
20488         value for a string bound.
20489
20490 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20491             Hristian Kirtchev  <kirtchev@adacore.com>
20492
20493         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20494         components of the corresponding record, take into account component
20495         definitions that are access definitions.
20496         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20497         procedure is not considered a dispatching call and will be expanded
20498         properly.
20499
20500 2006-02-13  Javier Miranda  <miranda@adacore.com>
20501
20502         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20503         controlling argument of the dispatching call is an abstract interface
20504         class-wide type then we use it directly.
20505         Check No_Dispatching_Calls restriction.
20506         (Default_Prim_Op_Position): Remove the code that looks for the last
20507         entity in the list of aliased subprograms. This code was wrong in
20508         case of renamings.
20509         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20510         when the source is compiled with the No_Dispatching_Calls restriction.
20511         (Init_Predefined_Interface_Primitives): No need to inherit primitives
20512         if we are compiling with restriction No_Dispatching_Calls.
20513         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20514         subprograms if we are compiling under No_Dispatching_Calls restriction.
20515         (Make_DT): Generate a dispatch table with a single dummy entry if
20516         we are compiling with the No_Dispatching_Calls restriction. In
20517         addition, in this case we don't generate code that calls to the
20518         following run-time subprograms: Set_Type_Kind, Inherit_DT.
20519         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20520         of this subprogram if compiling with the No_Dispatching_Calls
20521         restriction.
20522         (Expand_Type_Conversion): Instead of using the actual parameter,
20523         the argument passed as parameter to the conversion function was
20524         erroneously referenced by the expander.
20525         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20526         Set_Predefined_Primitive_Op_Address and Set_Signature.
20527         (Expand_Dispatching_Call): Generate call to
20528         Get_Predefined_Prim_Op_Address for predefined primitives.
20529         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20530         predefined primitives.
20531         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20532         primitives we reserve one dummy entry to ensure that the tag does not
20533         point to some memory that is associated with some other object. In
20534         addition, remove all the old code that generated the assignments
20535         associated with the signature of the dispatch table and replace them
20536         by a call to the new subprogram Set_Signature.
20537         (Set_All_DT_Position): Change the algorithm because now we have a
20538         separate dispatch table associated with predefined primitive operations.
20539         (Expand_Interface_Conversion): In case of non-static offset_to_top
20540         add explicit dereference to get access to the object after the call
20541         to displace the pointer to the object.
20542         (Expand_Interface_Thunk): Modify the generation of the actual used
20543         in the calls to the run-time function Offset_To_Top to fulfil its
20544         new interface.
20545         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20546
20547 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20548
20549         * exp_dist.adb (Copy_Specification): For access parameters, copy
20550         Null_Exclusion flag, which will have been set for stream subprograms
20551         in Ada2005 mode.
20552
20553 2006-02-13  Pascal Obry  <obry@adacore.com>
20554
20555         * expect.c (__gnat_expect_portable_execvp): New implementation. The
20556         previous implementation was using the C runtime spawnve routine but
20557         the corresponding wait was using directly the Win32 API. This was
20558         causing some times a lock when waiting for an event using
20559         WaitForSingleObject in __gnat_waitpid. This new implementation uses
20560         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20561         API fixes this problem.
20562
20563 2006-02-13  Robert Dewar  <dewar@adacore.com>
20564
20565         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20566         call.
20567
20568 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20569
20570         * exp_pakd.ads: Fix typos in comments.
20571
20572         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20573         array reference that is an explicit dereference, mark the converted
20574         (packed) array reference as analyzed to prevent a forthcoming
20575         reanalysis from resetting its type to the original (non-packed) array
20576         type.
20577
20578 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20579             Javier Miranda  <miranda@adacore.com>
20580             Eric Botcazou  <ebotcazou@adacore.com>
20581
20582         * exp_util.ads, exp_util.adb (Find_Prim_Op,
20583         Is_Predefined_Primitive_Operation): When
20584         searching for the predefined equality operator, verify that operands
20585         have the same type.
20586         (Is_Predefined_Dispatching_Operation): Remove the code that looks
20587         for the last entity in the list of aliased subprograms. This code
20588         was wrong in case of renamings.
20589         (Set_Renamed_Subprogram): New procedure
20590         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20591         Exp_Type constant computed when entering this subprogram.
20592         (Known_Null): New function
20593         (OK_To_Do_Constant_Replacement): New function
20594         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20595         (Side_Effect_Free): An attribute reference 'Input is not free of
20596         side effect, unlike other attributes that are functions. (from code
20597         reading).
20598         (Remove_Side_Effects): Expressions that involve packed arrays or records
20599         are copied at the point of reference, and therefore must be marked as
20600         renamings of objects.
20601         (Is_Predefined_Dispatching_Operation): Return false if the operation is
20602         not a dispatching operation.
20603
20604         PR ada/18819
20605         (Remove_Side_Effects): Lift enclosing type conversion nodes for
20606         elementary types in all cases.
20607
20608 2006-02-13  Javier Miranda  <miranda@adacore.com>
20609
20610         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20611         task types when accessing to the corresponding record type.
20612         Remove '!' in warning message.
20613
20614 2006-02-13  Olivier Hainque  <hainque@adacore.com>
20615
20616         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20617         to avoid useless and space inefficient overalignments on targets where
20618         Max_Alignment is larger than 16.
20619
20620 2006-02-13  Pascal Obry  <obry@adacore.com>
20621
20622         * g-catiio.adb (Sec_Number): New type used to compute the number of
20623         seconds since 1-1-1970.
20624         (Image) [Natural]: The parameter was an Integer, as we can't deal with
20625         negative numbers (years, months...) it is better to have a Natural here.
20626         Code clean-up.
20627         (Image) [Number]: Change parameter from Long_Integer to Number.
20628         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20629         overflow for dates past year 2038.
20630
20631 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20632
20633         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20634         Constraint_Error.
20635
20636 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20637
20638         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20639         native platforms.
20640         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20641         finalization can occur normally.
20642
20643 2006-02-13  Vincent Celier  <celier@adacore.com>
20644
20645         * gnatcmd.adb (Rules_Switches): New table
20646         (Add_To_Rules_Switches): New procedure
20647         (GNATCmd): For command CHECK, put all options following "-rules" in the
20648         Rules_Switches table. Append these -rules switches after the -cargs
20649         switches.
20650
20651 2006-02-13  Robert Dewar  <dewar@adacore.com>
20652
20653         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20654         These two cases were generating incorrect output, and if this unit
20655         was built with checks on, generated a discriminant mismatch constraint
20656         error.
20657
20658 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20659             Robert Dewar  <dewar@adacore.com>
20660
20661         * lib-xref.adb (Get_Type_Reference): For a private type whose full
20662         view is an array type, indicate the component type as well, for
20663         navigation purposes.
20664         (Generate_Reference): Don't consider array ref on LHS to be a case
20665         of violating pragma Unreferenced.
20666         Do not give Ada 2005 warning except on real reference.
20667
20668 2006-02-13  Vincent Celier  <celier@adacore.com>
20669
20670         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20671         main source, add switch -mdebug-main=_ada_ so that the executable can
20672         be debugged by the standard VMS debugger.
20673         (Gnatmake): Set No_Main_Subprogram to True when there is no main
20674         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20675         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20676         of the last source, as the binding and linking phases are never
20677         performed.
20678         Set all executable obsolete when rebuilding a library.
20679
20680         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20681         options.
20682
20683 2006-02-13  Javier Miranda  <miranda@adacore.com>
20684
20685         PR ada/23973
20686         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20687         code to improve the error message reported when the program has
20688         declarations of abstract interface types and it is not compiled with
20689         the -gnat05 switch.
20690         (P_Access_Definition): Reorganize the code to improve the error
20691         message reported when the new Ada 2005 syntax for anonymous
20692         access types is used and the program is not compiled with the
20693         -gnat05 switch.
20694
20695 2006-02-13  Robert Dewar  <dewar@adacore.com>
20696
20697         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
20698         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
20699         (MODE_IN)
20700
20701 2006-02-13  Javier Miranda  <miranda@adacore.com>
20702
20703         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
20704         against source containing syntax errors.
20705
20706 2006-02-13  Vincent Celier  <celier@adacore.com>
20707
20708         * prj.adb (Reset): Initialize the first element of table Namings with
20709         the standard naming data.
20710
20711 2006-02-13  Vincent Celier  <celier@adacore.com>
20712
20713         * prj.ads (Error_Warning): New enumeration type
20714
20715         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
20716         unknown, use the location of the project to report the error.
20717         (When_No_Sources): New global variable
20718         (Report_No_Ada_Sources): New procedure
20719         (Check): New parameter When_No_Sources. Set value of global variable
20720         When_No_Sources,
20721         (Find_Sources): Call Report_No_Ada_Sources when appropriate
20722         (Get_Sources_From_File): Ditto
20723         (Warn_If_Not_Sources): Better warning messages indicating the unit name
20724         and the file name.
20725
20726         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
20727         Call Prj.Proc.Process with parameter When_No_Sources.
20728
20729         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
20730         Call Recursive_Check with parameter When_No_Sources.
20731         (Recursive_Check): New parameter When_No_Sources. Call itself and
20732         Prj.Nmsc.Check with parameter When_No_Sources.
20733         (Process): New parameter When_No_Sources. Call Check with parameter
20734         When_No_Sources.
20735         (Copy_Package_Declarations): New procedure to copy renamed parameters
20736         and setting the location of the declared attributes to the location
20737         of the renamed package.
20738         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
20739         packages.
20740
20741 2006-02-13  Vincent Celier  <celier@adacore.com>
20742
20743         * prj-makr.adb (Make): Preserve the comments from the original project
20744         file.
20745         When removing nodes (attributes Source_Dirs, Source_Files,
20746         Source_List_File and package Naming), save the comments and attach the
20747         saved comments to the newly created nodes.
20748         Do not add a with clause for the naming package if one already exists.
20749
20750 2006-02-13  Javier Miranda  <miranda@adacore.com>
20751             Gary Dismukes  <dismukes@adacore.com>
20752             Robert Dewar  <dewar@adacore.com>
20753
20754         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
20755
20756         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
20757         aliased entities to look for the overriden abstract interface
20758         subprogram.
20759         (Is_Interface_Subprogram): Complete documentation.
20760         (Check_Dispatching_Operation): Do not generate code to register the
20761         operation in the dispatch table if the source is compiled with
20762         restriction No_Dispatching_Calls.
20763         (Override_Dispatching_Operation): Check for illegal attempt to override
20764         No_Return procedure with procedure that is not No_Return
20765         (Check_Dispatching_Call): Suppress the check for an abstract operation
20766         when the original node of an actual is a tag-indeterminate attribute
20767         call, since the attribute, which must be 'Input, can never be abstract.
20768         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
20769         call to the Input attribute (even when rewritten).
20770         (Propagate_Tag): Augment comment to indicate the possibility of a call
20771         to an Input attribute.
20772
20773         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
20774         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
20775
20776         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
20777         No_Wide_Characters is no longer partition-wide
20778         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
20779         rather than GNAT
20780
20781 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20782
20783         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
20784
20785 2006-02-13  Javier Miranda  <miranda@adacore.com>
20786
20787         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
20788         handles default-initialized components to keep separate the management
20789         of this feature but also avoid the unrequired resolution and
20790         expansion of components that do not have partially initialized
20791         values.
20792         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
20793         (Check_Bounds): Likewise.
20794         (Check_Length): Likewise.
20795
20796 2006-02-13  Javier Miranda  <miranda@adacore.com>
20797             Ed Schonberg  <schonberg@adacore.com>
20798
20799         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
20800         abstract interface type call analyze_and_resolve to expand the type
20801         conversion into the corresponding displacement of the
20802         reference to the base of the object.
20803         (Eval_Attribute, case Width): For systems where IEEE extended precision
20804         is supported, the maximum exponent occupies 4 decimal digits.
20805         (Accessibility_Message): Add '\' in 2-line warning message.
20806         (Resolve_Attribute): Likewise.
20807         (case Attribute_Access): Significantly revise checks
20808         for illegal access-to-subprogram Access attributes to properly enforce
20809         the rules of 3.10.2(32/2).
20810         Diagnose use of current instance with an illegal attribute.
20811
20812         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
20813         to a Node_Id.
20814         (Enclosing_Generic_Unit): New function to return a node's innermost
20815         enclosing generic declaration node.
20816         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
20817         (Type_Access_Level): The accessibility level of anonymous acccess types
20818         associated with discriminants is that of the current instance of the
20819         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
20820         (Compile_Time_Constraint_Error): Handle case of conditional expression.
20821         (Kill_Current_Values_For_Entity): New function
20822         (Enter_Name): Change formal type to Entity_Id
20823
20824 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20825             Ed Schonberg  <schonberg@adacore.com>
20826             Gary Dismukes  <dismukes@adacore.com>
20827
20828         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
20829         Analyze_Compilation_Unit.
20830         Detect and warn on redundant with clauses detected in a package spec
20831         and/or body when -gnatwr is used.
20832         (Analyze_Context): Analyze config pragmas before other items
20833         (Install_Context_Items): Don't analyze config pragmas here
20834         (Install_Limited_Withed_Unit): Set limited entity of package in
20835         with_clause so that cross-reference information or warning messages on
20836         unused packages can be properly generated
20837         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
20838         has Error_Posted set. Prevent infinite loops in illegal programs.
20839         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
20840         to the point of the error test requiring the current unit to be private.
20841         This ensures that private with clauses are not exempted from the basic
20842         checking for being a descendant of the same library unit parent as a
20843         withed private descendant unit.
20844         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
20845         handle private with clauses properly, as well as to account for cases
20846         where the withed unit is a public descendant of a private ancestor
20847         (in which case the current unit must be a descendant of the private
20848         ancestor's parent). The spec comments were updated accordingly. Also,
20849         the old error message in this subprogram was replaced with error
20850         messages that mirror the errors tested and reported by
20851         Check_Private_Child_Unit.
20852         Parameter and variable names improved for readability.
20853         (Install_Limited_Context_Clauses): Remove test for a withed unit being
20854         private as the precondition for calling
20855         Check_Private_Limited_Withed_Unit since that subprogram has been
20856         revised to test public units as well as private units.
20857
20858 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20859             Robert Dewar  <dewar@adacore.com>
20860             Ed Schonberg  <schonberg@adacore.com>
20861             Javier Miranda  <miranda@adacore.com>
20862
20863         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
20864         that Scope_Stack.First = 1.
20865         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20866         were not always properly handled previously.
20867         (Formal_Entity): Complete rewrite, to handle properly some complex case
20868         with multiple levels of parametrization by formal packages.
20869         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
20870         to the corresponding derived type declaration for proper semantics.
20871
20872         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
20873         (Check_Component): Enforce restriction on components of
20874         unchecked_unions: a component in a variant cannot contain tasks or
20875         controlled types.
20876         (Unchecked_Union): Allow nested variants and multiple discriminants, to
20877         conform to AI-216.
20878         Add pragma Ada_2005 (synonym for Ada_05)
20879         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20880         were not always properly handled previously.
20881         Document that pragma Propagate_Exceptions has no effect
20882         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
20883         (Set_Convention_From_Pragma): Check that if a convention is
20884         specified for a dispatching operation, then it must be
20885         consistent with the existing convention for the operation.
20886         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
20887         longer required to specify an vtable-ptr component in the record. For
20888         compatibility reasons we leave the support for the previous definition.
20889         (Analyze_Pragma, case No_Return): Allow multiple arguments
20890
20891         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
20892         non-overrideen inherited operation with a controlling result as
20893         illegal only its implicit declaration comes from the derived type
20894         declaration of its result's type.
20895         (Check_Possible_Deferred_Completion): Relocate the object definition
20896         node of the subtype indication of a deferred constant completion rather
20897         than directly analyzing it. The analysis of the generated subtype will
20898         correctly decorate the GNAT tree.
20899         (Record_Type_Declaration): Check whether this is a declaration for a
20900         limited derived record before analyzing components.
20901         (Analyze_Component_Declaration): Diagnose record types  not explicitly
20902         declared limited when a component has a limited type.
20903         (Build_Derived_Record_Type): Code reorganization to check if some of
20904         the inherited subprograms of a tagged type cover interface primitives.
20905         This check was missing in case of a full-type associated with a private
20906         type declaration.
20907         (Constant_Redeclaration): Check that the subtypes of the partial and the
20908         full view of a constrained deferred constant statically match.
20909         (Mentions_T): A reference to the current type in an anonymous access
20910         component declaration  must be an entity name.
20911         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
20912         class_wide type to refer to full type, not to the incomplete one.
20913         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
20914         available. Required to give support to the certified run-time.
20915         (Analyze_Component_Declaration): In case of anonymous access components
20916         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
20917         (Process_Discriminants): For an access discriminant, use the
20918         discriminant specification as the associated_node_for_itype, to
20919         simplify accessibility checks.
20920
20921 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20922             Javier Miranda  <miranda@adacore.com>
20923
20924         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
20925         abstract interpretations on an operator, remove interpretations that
20926         yield Address or a type derived from it, if one of the operands is an
20927         integer literal.
20928         (Try_Object_Operation.Try_Primitive_Operation,
20929         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
20930         location when creating the new reference to a primitive or class-wide
20931         operation as a part of rewriting a subprogram call.
20932         (Try_Primitive_Operations): If context requires a function, collect all
20933         interpretations after the first match, because there may be primitive
20934         operations of the same type with the same profile and different return
20935         types. From code reading.
20936         (Try_Primitive_Operation): Use the node kind to choose the proper
20937         operation when a function and a procedure have the same parameter
20938         profile.
20939         (Complete_Object_Operation): If formal is an access parameter and prefix
20940         is an object, rewrite as an Access reference, to match signature of
20941         primitive operation.
20942         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
20943         by an expanded name with prefix Standard, when the operands are of an
20944         anonymous access type.
20945         (Remove_Abstract_Operations): If the operation is abstract because it is
20946         inherited by a user-defined type derived from Address, remove it as
20947         well from the set of candidate interpretations of an overloaded node.
20948         (Analyze_Membership_Op): Membership test not applicable to cpp-class
20949         types.
20950
20951 2006-02-13  Bob Duff  <duff@adacore.com>
20952
20953         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
20954         redundant use clauses.
20955         In particular, if the scope of two use clauses overlaps, but one is not
20956         entirely included in the other, we should not warn.  This can happen
20957         with nested packages.
20958         (Analyze_Subprogram_Renaming): Protect the compiler against previously
20959         reported errors. The bug was reported when the compiler was built
20960         with assertions enabled.
20961         (Find_Type): If the node is a 'Class reference and the prefix is a
20962         synchronized type without a corresponding record, return the type
20963         itself.
20964
20965 2006-02-13  Javier Miranda  <miranda@adacore.com>
20966
20967         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
20968         if this is the full-declaration associated with a private declaration
20969         that implement interfaces, then the private type declaration must be
20970         limited.
20971         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
20972         as aliased. The use of the 'access attribute is not available for such
20973         object (for this purpose the object should be explicitly marked as
20974         aliased, but being an anonymous type this is not possible).
20975
20976 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20977             Robert Dewar  <dewar@adacore.com>
20978
20979         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
20980         compilation unit is an elaboration scope.
20981         (Add_Task_Proc): Add '\' in 2-line warning message.
20982         (Activate_All_Desirable): Deal with case of unit with'ed by parent
20983
20984 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20985             Javier Miranda  <miranda@adacore.com>
20986
20987         * sem_type.adb (Write_Overloads): Improve display of candidate
20988         interpretations.
20989         (Add_One_Interp): Do not add to the list of interpretations aliased
20990         entities corresponding with an abstract interface type that is an
20991         immediate ancestor of a tagged type; otherwise we have a dummy
20992         conflict between this entity and the aliased entity.
20993         (Disambiguate): The predefined equality on universal_access is not
20994         usable if there is a user-defined equality with the proper signature,
20995         declared in the same declarative part as the designated type.
20996         (Find_Unique_Type): The universal_access equality operator defined under
20997         AI-230 does not cover pool specific access types.
20998         (Covers): If one of the types is a generic actual subtype, check whether
20999         it matches the partial view of the other type.
21000
21001 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21002
21003         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21004         line. This is necessary to allow In_Extended_Main_Unit to provide
21005         correct results for itypes while writing out expanded source.
21006         (Close_File): No need to update the source_index_table here since it's
21007         now done for each line.
21008
21009 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21010             Robert Dewar  <dewar@adacore.com>
21011
21012         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21013         preserve the source unit where the itype is declared, and prevent a
21014         backend abort.
21015         (Note_Implicit_Run_Time_Call): New procedure
21016         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21017         E_Subprogram_Type)
21018
21019         * sprint.ads: Document use of $ for implicit run time routine call
21020
21021 2006-02-13  Quentin Ochem  <ochem@adacore.com>
21022
21023         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21024         task name.
21025
21026 2006-02-13  Bob Duff  <duff@adacore.com>
21027
21028         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21029         Scan_Unsigned, so we do not scan leading blanks and sign twice.
21030         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21031         raise Constraint_Error.
21032
21033         * s-vallli.adb (Scan_Long_Long_Integer): Call
21034         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21035         do not scan leading blanks and sign twice.
21036         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21037         raise Constraint_Error.
21038
21039         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21040         Scan_Long_Long_Unsigned): Split out most of the processing from
21041         Scan_Long_Long_Unsigned out into
21042         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21043         This prevents scanning leading blanks and sign twice.
21044         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21045         See RM-3.5(44).
21046
21047         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21048         out most of the processing from Scan_Unsigned out into
21049         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21050         This prevents scanning leading blanks and sign twice.
21051
21052         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21053         use with Modular'Value attribute.
21054         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21055         attribute.
21056
21057 2006-02-13  Robert Dewar  <dewar@adacore.com>
21058
21059         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21060
21061 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21062
21063         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21064         (PPC VxWorks): Likewise.
21065         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21066         (forced_callee): Make non-inlinable and non-pure.
21067         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21068
21069 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21070             Ben Brosgol  <brosgol@adacore.com>
21071             Robert Dewar  <dewar@adacore.com>
21072
21073         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21074         support.
21075         Document that gnatbind -M option is for cross environments only.
21076         Added description of using gnatmem to trace gnat rtl allocs and deallocs
21077         Add note on use of $ to label implicit run time calls
21078         Add documentation for -gnatyI (check mode IN)
21079         Updated chapter on compatibility with HP Ada
21080         VMS-oriented edits.
21081         Ran spell and corrected errors
21082         Add documentation for gnatbind -d and rework documentation of -D
21083         at the same time.
21084         Add subprogram/data elimination section.
21085         Minor editing of annex A.
21086         Add section for gnatcheck.
21087         Add documentation for restriction No_Dispatching_Calls
21088         Add documentation for pragma Ada_2005
21089         Remove mention of obsolete pragma Propagate_Exceptions
21090         Document that pragma Unreferenced can appear after DO in ACCEPT
21091         Clarify Pure_Function for library level units
21092         Mention Max/Min in connection with No_Implicit_Conditionals
21093         No_Wide_Characters restriction is no longer partition-wide
21094         Add a nice example for Universal_Literal_String attribute
21095         Document that pragma No_Return can take multiple arguments
21096
21097         * ug_words: Added entry for gnatcheck
21098
21099         * g-ctrl_c.ads (Install_Handler): Enhance comments
21100
21101         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21102
21103         * g-trasym.ads: Add documentation on how to do off line symbolic
21104         traceback computation.
21105
21106         * s-fatgen.adb: Add comments for Unaligned_Valid
21107
21108         * stand.ads: Fix typo in comment
21109
21110 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21111
21112         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21113
21114 2006-02-06  Roger Sayle  <roger@eyesopen.com>
21115
21116         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21117
21118 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21119
21120         PR target/25926
21121         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21122         implementation that calls __main.
21123
21124 2006-01-25  Peter O'Gorman  <peter@pogma.com>
21125
21126         PR bootstrap/25859
21127         * Makefile.in (GCC_LINK): Remove quotes.
21128         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21129         or $(GCC_LINK).
21130
21131         (powerpc-darwin): Pass -shared-libgcc when building shared library.
21132
21133 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21134
21135         PR ada/24533
21136         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21137
21138 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21139
21140         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21141
21142 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21143
21144         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21145         needed.
21146
21147 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21148
21149         * Make-lang.in: Update dependencies
21150
21151 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21152
21153         * Make-lang.in: Add rule for ada/exp_sel.o
21154
21155 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21156
21157         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21158
21159 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
21160
21161         * gnatvsn.ads (Library_Version): Bump to version 4.2
21162         (ASIS_Version_Number): Bumped.
21163
21164 2005-12-09  Doug Rupp  <rupp@adacore.com>
21165
21166         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21167         Ada bind file prefix on VMS from b$ to b__.
21168         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21169         __init.
21170
21171         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21172         Targparm.OpenVMS_On_Target.
21173         (Object_Suffix): Initialize with target object suffix.
21174         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21175
21176         * butil.adb: Change some Hostparm.OpenVMS checks to
21177         Targparm.OpenVMS_On_Target.
21178
21179         * clean.adb: Change some Hostparm.OpenVMS checks to
21180         Targparm.OpenVMS_On_Target.
21181         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21182         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21183         Ada bind file prefix on VMS from b$ to b__.
21184
21185         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21186         --GCC so that Get_Target_Parameters can find system.ads.
21187         (Gnatlink): Call Get_Target_Parameters in mainline.
21188         Initialize standard packages for Targparm.
21189         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21190         (Process_Args): Also Check for object files with target object
21191         extension.
21192         (Make_Binder_File_Names): Create with target object extension.
21193         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21194         to b__.
21195
21196         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21197         Targparm.OpenVMS_On_Target.
21198         ({declaration},Build_Library,Check_Library): Change Ada bind file
21199         prefix on VMS from b$ to b__.
21200
21201         * osint-b.adb: Change some Hostparm.OpenVMS checks to
21202         Targparm.OpenVMS_On_Target.
21203         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21204         b__.
21205
21206         * targext.c: New file.
21207
21208         * Makefile.in: add support for vxworks653 builds
21209         (../../vxaddr2line): gnatlink with targext.o.
21210         (TOOLS_LIBS): Move targext.o to precede libgnat.
21211         (init.o, initialize.o): Minor clean up in dependencies.
21212         (GNATLINK_OBJS): Add targparm.o, snames.o
21213         Add rules fo building targext.o and linking it explicitly with all
21214         tools.
21215         Also add targext.o to gnatlib.
21216
21217         * Make-lang.in: Add rules for building targext.o and linking it in
21218         with gnat1 and gnatbind.
21219         Add entry for exp_sel.o.
21220
21221         * osint.adb Change some Hostparm.OpenVMS checks to
21222         Targparm.OpenVMS_On_Target.
21223         (Object_File_Name): Use target object suffix.
21224
21225         * osint.ads (Object_Suffix): Remove, no longer used.
21226         (Target_Object_Suffix): Initialize with target object suffix.
21227
21228         * rident.ads: Add special exception to license.
21229
21230         * targparm.adb (Get_Target_Parameters): Set the value of
21231         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21232         value.
21233         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21234
21235         * targparm.ads: Add special exception to license.
21236
21237         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21238         function.
21239         (Copy_File): Make sure from file is closed if error on to file
21240         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21241
21242         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21243         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21244
21245         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21246         target object suffix.
21247
21248 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
21249             Quentin Ochem  <ochem@adacore.com>
21250             Florian Villoing  <villoing@adacore.com>
21251
21252         * a-taster.ads, a-taster.adb: New files.
21253
21254         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21255         link to the version that does nothing. This way the task termination
21256         routine is not executed twice for the environment task when finishing
21257         because of an unhandled exception.
21258
21259         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21260         handler because of an unhandled exception.
21261
21262         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21263         System.Tasking.Utilities instead of that in System.Tasking.Stages.
21264
21265         * s-finimp.adb (initialization code): Modify the soft link for the
21266         finalization of the global list instead of Adafinal.
21267
21268         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21269         non-tasking version of the soft link for task termination. We do
21270         nothing since if we are using the non-tasking version it
21271         means that the task termination functionality is not used.
21272         (Null_Finalize_Global_List): Add this null version for the procedure
21273         in charge of finalizing the global list for controlled objects.
21274         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21275         instead for handling run-time termination in a more flexible way.
21276         (Adafinal_NT): This new procedure will take care of finalizing the
21277         global list for controlled objects if needed, but no tasking
21278         finalization.
21279
21280         * s-tarest.adb (Task_Lock): Do not try to lock again the
21281         Global_Task_Lock if we already own it. Otherwise, we get blocked in
21282         some run-time operations.
21283         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21284         until all nested locks have been released.
21285         (Task_Wrapper): Call the fall-back task termination handler. It
21286         applies to all tasks but the environment task.
21287         (Finalize_Global_Tasks): Add the call for the task termination
21288         procedure for the environment task.
21289         (Task_Wrapper): suppress warnings around declaration of
21290         Secondary_Stack_Address.
21291
21292         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21293         moved to the Common_ATCB record.
21294         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21295         Common_ATCB record.
21296         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21297         Common_ATCB record.
21298
21299         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21300         Fall_Back_Handler, and Specific_Handler.
21301
21302         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21303         defined in Ada.Task_Termination, to avoid circular dependencies.
21304         (Termination_Handler): Redefine this type here, alredy defined in
21305         Ada.Task_Termination, for avoiding circular dependencies.
21306         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21307         for storing task termination handlers. In addition,
21308         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21309         Common_ATCB because it is used by both the regular and the restricted
21310         run times.
21311         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21312         Common_ATCB because it is used by both the regular and the restricted
21313         run times.
21314         (Common_ATCB): Added a dynamic task analyzer field.
21315
21316         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21317         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21318         (Task_Wrapper): Call the task termination handler. It applies to all
21319         tasks but the environment task.
21320         (Finalize_Global_Tasks): Call the task termination procedure for the
21321         environment task. The call to Finalize_Global_List is now performed
21322         using the soft links mechanism.
21323         (Task_Wrapper): added dynamic stack analysis.
21324
21325         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21326         potentially blocking operations has been moved from
21327         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21328         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21329         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21330         this run-time check.
21331
21332         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21333         of task termination procedure.
21334         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21335         link for the task termination procedure.
21336
21337         * bindusg.adb: (Bindusg): Added documentation for -u option.
21338
21339         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21340         (Get_Main_C): Add handling of dynamic stack analysis.
21341         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21342
21343         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21344         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21345         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21346
21347         * opt.ads: Added flags used by dynamic stack measurement.
21348         (Max_Line_Length): Remove (not used anymore)
21349
21350         * s-io.ads, s-io.adb (Standard_Error): new subprogram
21351         (Standart_Output): new subprogram
21352         (Set_Output): new subprogram
21353         (Put): now uses the value of Current_Out to know if the output has to be
21354         send to stderr or stdout.
21355
21356         * s-stausa.ads: Complete implementation.
21357
21358         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
21359
21360         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21361         list of Ada 05 files.
21362         (GNAT Library Units): Add AltiVec files.
21363
21364         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21365         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21366         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21367
21368 2005-12-09  Nicolas Setton  <setton@adacore.com>
21369
21370         * adaint.c (__gnat_locate_regular_file): Return immediately if
21371         file_name is empty.
21372
21373 2005-12-09  Javier Miranda  <miranda@adacore.com>
21374             Hristian Kirtchev  <kirtchev@adacore.com>
21375
21376         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21377         to the specification because the frontend generates code that uses this
21378         subprogram.
21379         (Set_Interface_Table): Add missing assertion.
21380         Update documentation describing the run-time structure.
21381         (Displace): New subprogram that displaces the pointer to the object
21382         to reference one of its secondary dispatch tables.
21383         (IW_Membership): Modified to use the new table of interfaces.
21384         (Inherit_TSD): Modified to use the new table of interfaces.
21385         (Register_Interface_Tag): Use the additional formal to fill the
21386         contents of the new table of interfaces.
21387         (Set_Interface_Table): New subprogram that stores in the TSD the
21388         pointer to the table of interfaces.
21389         (Set_Offset_To_Top): Use the additional formal to save copy of
21390         the offset value in the table of interfaces.
21391         Update structure of GNAT Primary and Secondary dispatch table diagram.
21392         Add comment section on GNAT dispatch table prologue.
21393         (Offset_To_Signature): Update the constant value of the Signature field.
21394         (Dispatch_Table): Update comment on hidden fields in the prologue.
21395         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21396         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21397         the type of formal parameter T to Tag, introduce additional assertions.
21398         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21399         conversion.
21400         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21401
21402         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21403         in all the calls to Expand_Interface_Thunk. Instead of referencing the
21404         record component containing the tag of the secondary dispatch table we
21405         have to use the Offset_To_Top run-time function to get this information;
21406         otherwise if the pointer to the base of the object has been displace
21407         we get a wrong value if we use the 'position attribute.
21408
21409         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21410         all the calls to Expand_Interface_Thunk.
21411         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21412         interfaces; hence the call to Set_Interface_Table was clearly wrong.
21413         (Collect_All_Interfaces): Modify the internal subprogram Collect to
21414         ensure that the interfaces implemented by the ancestors are placed
21415         at the header of the generated list.
21416         (Expand_Interface_Conversion): Handle the case in which the displacement
21417         associated with the interface conversion is not statically known. In
21418         this case we generate a call to the new run-time subprogram Displace.
21419         (Make_DT): Generate and fill the new table of interfaces.
21420         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21421         Get_Tagged_Kind and Set_Tagged_Kind.
21422         (Tagged_Kind): New function that determines the tagged kind of a type
21423         with respect to limitedness and concurrency and returns a reference to
21424         RE_Tagged_Kind.
21425         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21426         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21427         primary dispatch table for a type.
21428         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21429         secondary dispatch table respectively of a tagged type.
21430
21431         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21432         (Expand_Interface_Conversion): New subprogram to indicate if the
21433         displacement of the type conversion is statically known.
21434         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21435
21436         * rtsfind.ads (RE_Offset_To_Top): New entity
21437         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21438         accessible to users.
21439         (Re_Displace): New entity
21440         (RE_Interface_Data): New entity
21441         (RE_Set_Interface_Data): New_Entity
21442         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21443         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21444         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21445         RE_TK_Tagged, RE_TK_Task.
21446
21447         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21448         Init_Secondary_Tags_Internal to allow its use with interface types and
21449         also to generate the code for the new additional actual required
21450         by Set_Offset_To_Top.
21451         (Build_Init_Statements): In case of components associated with abstract
21452         interface types there is no need to generate a call to its IP.
21453         (Freeze_Record_Type): Generate Select Specific Data tables only for
21454         concurrent types.
21455         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21456         the bodies and specifications of the predefined primitive operations
21457         dealing with dispatching selects and abort, 'Callable, 'Terminated only
21458         for concurrent types.
21459
21460         * exp_sel.ads, exp_sel.adb: New files.
21461
21462         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21463         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21464         properly protected objects and attach handler in the case of the
21465         restricted profile.
21466         Move embeded package Select_Expansion_Utilities into a separate external
21467         package.
21468         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21469         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21470         (Build_K, Build_S_Assignment): New subprograms, part of the select
21471         expansion utilities.
21472         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21473         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21474         where the trigger is a dispatching procedure of a limited tagged type.
21475
21476 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21477
21478         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21479         pointer initialization values. Make a SAVE_EXPR instead. Add comments
21480         about the use and expansion of SAVE_EXPRs in the various possible
21481         renaming handling cases.
21482         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21483         abusing DECL_FCONTEXT.
21484
21485 2005-12-09  Matthew Heaney  <heaney@adacore.com>
21486
21487         * a-convec.adb (Merge): Added assertions to check whether vector params
21488         are sorted.
21489
21490         * a-coinve.adb (Merge): Added assertions to check whether vector params
21491         are sorted.
21492
21493         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21494         draft.
21495         (Cursor'Read): raises PE
21496
21497         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21498         to its default value.
21499
21500         * a-cihama.adb: Manually check whether cursor's key and elem are
21501         non-null
21502
21503         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21504         (Merge): Assert that target and source lists are in order
21505         (Swap): Declare non-const temporaries, to pass to Splice
21506
21507         * a-cdlili.ads: (Splice): Changed param name and param mode
21508
21509         * a-cdlili.adb: (Splice): Changed param name and param mode
21510         (Merge): Assert that target and source lists are in order
21511         (Swap): Declare non-const temporaries, to pass to Splice
21512
21513         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21514         (Write): declare Stream param as not null
21515
21516         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21517         an exception message.
21518
21519 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21520             Robert Dewar  <dewar@adacore.com>
21521
21522         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21523         which is the absolute maximum length we can support.
21524
21525         * frontend.adb: For the processing of configuration pragma files,
21526         remove references to Opt.Max_Line_Length, which is not checked anymore.
21527
21528         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21529         length.
21530
21531         * scn.adb, scng.adb:
21532         Always check line length against the absolute supported maximum,
21533         Hostparm.Max_Line_Length.
21534
21535         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21536         value for the maximum line length is Max_Line_Length (not
21537         Column_Number'Last).
21538         Minor error msg update
21539         (Set_Style_Check_Options): New interface returning error msg
21540         Minor code reorganization (processing for 'M' was out of alpha order)
21541
21542         * switch-c.adb: New interface for Set_Style_Check_Options
21543
21544         * stylesw.ads (Set_Style_Check_Options): New interface returning error
21545         msg.
21546
21547 2005-12-09  Javier Miranda  <miranda@adacore.com>
21548
21549         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21550         with IP subprogram were only supported if there were limited types.
21551
21552         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21553         records with IP subprogram were only supported if there were limited
21554         types.
21555
21556 2005-12-09  Olivier Hainque  <hainque@adacore.com>
21557             Eric Botcazou  <ebotcazou@adacore.com>
21558
21559         * trans.c (tree_transform, emit_check): Adjust calls to
21560         build_call_raise, passing the now expected GNAT_NODE argument.
21561
21562         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21563         source line information than what the current global locus indicates
21564         when appropriate.
21565
21566         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21567         field has overflowed.
21568         (build_call_raise): Add a GNAT_NODE argument to convey better source
21569         line information than what the current global locus indicates when
21570         appropriate.
21571         (build_component_ref): Adjust call to build_call_raise.
21572
21573 2005-12-09  Pascal Obry  <obry@adacore.com>
21574
21575         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21576         the iterator is quitting iteration on parent directory.
21577
21578 2005-12-09  Javier Miranda  <miranda@adacore.com>
21579
21580         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21581         and the assignment to a class-wide object, before the assignment we
21582         generate a run-time check to ensure that the tag of the Target is
21583         covered by the tag of the source.
21584
21585 2005-12-09  Robert Dewar  <dewar@adacore.com>
21586
21587         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21588         parameter in call to Image_Wide_Character.
21589
21590         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21591         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21592         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21593         annoying FFFE/FFFF inconsistency.
21594
21595 2005-12-09  Robert Dewar  <dewar@adacore.com>
21596             Javier Miranda  <miranda@adacore.com>
21597             Ed Schonberg  <schonberg@adacore.com>
21598
21599         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21600         of type conversion.
21601         (Find_Interface): New subprogram that given a tagged type and one of its
21602         component associated with the secondary table of an abstract interface
21603         type, return the entity associated with such abstract interface type.
21604         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21605         base type to create anonymous subtype, because entity may be a locally
21606         declared subtype or generic actual.
21607         (Find_Interface): New subprogram that given a tagged type and one of its
21608         component associated with the secondary table of an abstract interface
21609         type, return the entity associated with such abstract interface type.
21610
21611         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21612         conversion cannot be handled at compile time. In this case we pass this
21613         information to the expander to generate the appropriate code.
21614
21615 2005-12-09  Robert Dewar  <dewar@adacore.com>
21616             Ed Schonberg  <schonberg@adacore.com>
21617             Gary Dismukes  <dismukes@adacore.com>
21618             Javier Miranda  <miranda@adacore.com>
21619             Hristian Kirtchev  <kirtchev@adacore.com>
21620
21621         * einfo.adb (Itype_Printed): New flag
21622         (Is_Limited_Type): Derived types do not inherit limitedness from
21623         interface progenitors.
21624         (Is_Return_By_Reference_Type): Predicate does not apply to limited
21625         interfaces.
21626
21627         * einfo.ads (Itype_Printed): New flag
21628         Move Is_Wrapper_Package to proper section
21629         Add missing Inline for Is_Volatile
21630
21631         * output.ads, output.adb (Write_Erase_Char): New procedure
21632         (Save/Restore_Output_Buffer): New procedures
21633         (Save/Restore_Output_Buffer): New procedures
21634
21635         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21636         Add missing support for anonymous access type
21637         (Write_Id): Insert calls to Write_Itype
21638         (Write_Itype): New procedure to output itypes
21639
21640         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21641         use of "limited" in declaration.
21642
21643         * sinfo.ads, sinfo.adb:
21644         Formal derived types can carry an explicit "limited" indication.
21645
21646         * sem_ch3.adb: Add with and use of Targparm.
21647         (Create_Component): If Frontend_Layout_On_Target is True and the
21648         copied component does not have a known static Esize, then reset
21649         the size and positional fields of the new component.
21650         (Analyze_Component_Declaration): A limited component is
21651         legal within a protected type that implements an interface.
21652         (Collect_Interfaces): Do not add to the list the interfaces that
21653         are implemented by the ancestors.
21654         (Derived_Type_Declaration): If the parent of the full-view is an
21655         interface perform a transformation of the tree to ensure that it has
21656         the same parent than the partial-view. This simplifies the job of the
21657         expander in order to generate the correct object layout, and it is
21658         needed because the list of interfaces of the full-view can be given in
21659         any order.
21660         (Process_Full_View): The parent of the full-view does not need to be
21661         a descendant of the parent of the partial view if both parents are
21662         interfaces.
21663         (Analyze_Private_Extension_Declaration): If declaration has an explicit
21664         "limited" the parent must be a limited type.
21665         (Build_Derived_Record_Type): A derived type that is explicitly limited
21666         must have limited ancestor and progenitors.
21667         (Build_Derived_Type): Ditto.
21668         (Process_Full_View): Verify that explicit uses of "limited" in partial
21669         and full declarations are consistent.
21670         (Find_Ancestor_Interface): Remove function.
21671         (Collect_Implemented_Interfaces): New procedure used to gather all
21672         implemented interfaces by a type.
21673         (Contain_Interface): New function used to check whether an interface is
21674         present in a list.
21675         (Find_Hidden_Interface): New function used to determine whether two
21676         lists of interfaces constitute a set equality. If not, the first
21677         differing interface is returned.
21678         (Process_Full_View): Improve the check for the "no hidden interface"
21679         rule as defined by AI-396.
21680
21681 2005-12-09  Robert Dewar  <dewar@adacore.com>
21682
21683         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21684         types, not on record subtypes.
21685         (Freeze_Entity): Code cleanup. Add barrier to the loop
21686         that generates the references for primitive operations. This allows to
21687         remove an unnecessary exception handler.
21688         Code reformatting and comment clean ups.
21689
21690 2005-12-09  Vincent Celier  <celier@adacore.com>
21691
21692         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21693         If GNAT CHECK is called with a project file, but with no
21694         source on the command line, call gnatcheck with all the compilable
21695         sources of the project.
21696         Take into account the new command Check, for gnatcheck. Treat as for
21697         other ASIS tools: take into account project, specific package Check and
21698         Compiler switches.
21699         For ASIS tools, add the switches in package Compiler for
21700         the invocation of the compiler.
21701
21702         * prj-attr.adb: Add package Check and its attributes
21703
21704         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
21705
21706         * vms_conv.adb (Initialize): Change Params of command Check to
21707         unlimited files.
21708         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21709         Add data for new command Check
21710
21711         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
21712         ELIM.
21713         Add qualifiers for Check command options
21714         (Command_Type): New command Check
21715
21716 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21717
21718         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
21719         command line switch overruns the output buffer.
21720
21721 2005-12-09  Robert Dewar  <dewar@adacore.com>
21722
21723         * sem_prag.adb: Processing for new pragma Complete_Representation
21724         (Analyze_Pragma, case Debug): Implement two argument form.
21725
21726         * par-prag.adb: Entry for new pragma Complete_Representation
21727         (Prag, case Debug): Recognize two argument form of pragma Debug
21728         New interface for Set_Style_Check_Options.
21729
21730         * sem_ch13.adb: Implement new pragma Complete_Representation.
21731
21732         * snames.adb, snames.ads, snames.h: Entry for new pragma
21733         Complete_Representation.
21734
21735 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
21736
21737         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
21738         available user-specified stream attributes on limited parameters to
21739         also test the type directly rather than only its underlying type (for
21740         Ada 95) and, in the case of Ada 2005, to check that the user-specified
21741         attributes are visible at the point of the subprogram declaration.
21742         For Ada 2005, the error message is modified to indicate that the
21743         type's stream attributes must be visible (again, only for -gnat05).
21744
21745 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21746
21747         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
21748         anonymous access types.
21749
21750         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
21751         matching of anonymous access types and anonymous access to subprogram
21752         types. 'R'M 4.9.1 (2/2).
21753
21754 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21755
21756         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
21757         rule prematurely when operands are universal, remaining ambiguities
21758         will be removed during resolution.
21759         Code cleanup.
21760
21761         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
21762         that are Ada 2005 functions.
21763         (Has_Abstract_Interpretation): Subsidiary to
21764         Remove_Conversions, to remove ambiguities caused by abstract operations
21765         on numeric types when operands are universal.
21766
21767 2005-12-09  Robert Dewar  <dewar@adacore.com>
21768
21769         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
21770         for case where spec is categorized.
21771
21772 2005-12-09  Javier Miranda  <miranda@adacore.com>
21773
21774         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
21775         types use the corresponding record type. This was not needed before
21776         the implementation of Ada 2005 synchronized types because
21777         concurrent types were never tagged types in Ada 95.
21778
21779 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
21780
21781         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
21782         first subtype of the type of the expression to verify that it is a
21783         legal Time type.
21784
21785 2005-12-09  Robert Dewar  <dewar@adacore.com>
21786
21787         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
21788         decoded names.
21789
21790 2005-12-09  Quentin Ochem  <ochem@adacore.com>
21791             Robert Dewar  <dewar@adacore.com>
21792             Ed Falis  <falis@adacore.com>
21793             Florian Villoing  <villoing@adacore.com>
21794             Thomas Quinot  <quinot@adacore.com>
21795             Arnaud Charlet  <charlet@adacore.com>
21796
21797         * gnat_ugn.texi: Created section "Stack Related Tools"
21798         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
21799         "Stack Related Tools"
21800         Added subsection "Static Stack Usage Analysis"
21801         Added subsection "Dynamic Stack Usage Analysis"
21802         Include documentation of itypes in sprint listing (-gnatG)
21803         Documented gnatbind -D switch (default sec stack size for fixed sec
21804         stacks).
21805         Added Interrupt_State and Persistent_BSS to list of configuration
21806         pragmas.
21807         Add missing doc for maximum value of nnn in -gnatyMnnn
21808
21809         * gnat_rm.texi: Document the AltiVec binding.
21810         Add documentation for pragma Complete_Representation
21811         Shortened an overly long line (> 79 chars)
21812         Clarify documentation of unchecked conversion in implementation
21813         defined cases.
21814         Document two argument form of pragma Debug
21815
21816         * types.ads (Column_Number): Update documentation.
21817
21818         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
21819         library level Finalize_Storage_Only objects (these are not attached to
21820         any finalization list).
21821
21822         * system-mingw.ads: (Underlying_Priorities): Update comment.
21823
21824 2005-12-09  Robert Dewar  <dewar@adacore.com>
21825
21826         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
21827         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
21828         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
21829         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
21830         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
21831         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
21832         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
21833         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
21834         reformatting.
21835
21836 2005-12-09  Robert Dewar  <dewar@adacore.com>
21837
21838         * s-vaflop-vms-alpha.adb: (Ne_F): New function
21839         (Ne_G): New function
21840
21841         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
21842         for tag assignment.
21843         (Rewrite_Comparison): Handle case where operation is not a comparison
21844         and ignore, and also handle type conversion case.
21845
21846 2005-12-09  Thomas Quinot  <quinot@adacore.com>
21847
21848         * exp_aggr.ads: Fix typo in comment.
21849         ???-mark Convert_Aggr_In_Assignment as needing documentation.
21850
21851 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
21852
21853         * layout.adb: Replace various uses of byte by storage unit throughout.
21854         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
21855         static size, convert to storage units before returning, to conform to
21856         spec.
21857
21858 2005-12-09  Matthew Gingell  <gingell@adacore.com>
21859
21860         * g-exctra.ads: Fix typo in comment.
21861
21862 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21863
21864         * utils.c: Minor reformatting.
21865
21866 2005-12-09  Robert Dewar  <dewar@adacore.com>
21867
21868         * g-soccon.ads:
21869         Further comment fixes to make the status of the default file clear
21870
21871         * s-bitops.adb: Clarify comment for Bits_Array
21872
21873 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
21874
21875         * Make-lang.in (ada.install-normal): Remove.
21876
21877 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
21878
21879         * Make-lang.in: Remove all dependencies on s-gtype.
21880
21881 2005-12-05  Richard Guenther  <rguenther@suse.de>
21882
21883         * utils.c (convert): Use fold_convert where appropriate.
21884
21885 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
21886
21887         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
21888         a period is meant.
21889
21890 2005-12-02  Richard Guenther  <rguenther@suse.de>
21891
21892         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
21893
21894 2005-12-01  Roger Sayle  <roger@eyesopen.com>
21895
21896         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
21897         nodes.
21898
21899 2005-11-23  Laurent Guerby  <laurent@guerby.net>
21900
21901         * mlib-prj.adb (Build_Library): Initialize Delete.
21902
21903 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
21904
21905         * socket.c: Add extern int h_errno for rtems since networking header
21906         files are not available at this point in a tool bootstrap. Newlib
21907         only has basic C library header files.
21908
21909 2005-11-19  Richard Guenther  <rguenther@suse.de>
21910         Roger Sayle  <roger@eyesopen.com>
21911
21912         PR ada/23717
21913         * misc.c (internal_error_function): Don't use vsprintf to format
21914         the error message text, instead use pp_format_text and the new
21915         pretty printer APIs.  This allows handling of %qs, %w, etc.
21916
21917 2005-11-18  Laurent Guerby  <laurent@guerby.net>
21918
21919         PR ada/24857
21920         * Makefile.in: Use s-auxdec-empty for RTEMS.
21921
21922 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21923
21924         PR ada/22333
21925         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
21926         a temporary if taking the address of something that is neither
21927         reference, declaration, or constant, since the gimplifier
21928         can't handle that case.
21929
21930 2005-11-17  Laurent Guerby  <laurent@guerby.net>
21931
21932         PR ada/24857
21933         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
21934
21935 2005-11-16  Richard Guenther  <rguenther@suse.de>
21936
21937         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
21938
21939 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
21940
21941         PR ada/24855
21942         * raise-gcc.c: Add missing stdarg.h include.
21943
21944 2005-11-16  Richard Guenther  <rguenther@suse.de>
21945
21946         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
21947         (ada/misc.o): Likewise.
21948
21949 2005-11-14  Thomas Quinot  <quinot@adacore.com>
21950
21951         * g-soccon.ads: Minor reformatting. Update comments.
21952
21953         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
21954         gain visibility on the declaration of struct timeval.
21955
21956         * g-soccon-freebsd.ads,
21957         g-soccon-darwin.ads,
21958         g-soccon-tru64.ads,
21959         g-soccon-aix.ads,
21960         g-soccon-irix.ads,
21961         g-soccon-hpux.ads,
21962         g-soccon-solaris.ads,
21963         g-soccon-vms.ads,
21964         g-soccon-mingw.ads,
21965         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
21966
21967         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
21968         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
21969         g-soccon-linux-x86.ads: New files.
21970
21971         * g-socthi-mingw.adb:
21972         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
21973
21974         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
21975         (time_t, suseconds_t): New types constructed to match the tv_sec
21976         and tv_usec fields of C struct timeval.
21977         (Timeval): Construct structure in terms of the new types.
21978         (Host_Errno): New function (imported from socket.c), returns last hosts
21979         database error.
21980
21981         * g-socthi-vxworks.adb:  Add error handling circuitry.
21982
21983         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
21984         components of struct timeval.
21985         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
21986         (Check_Selector): In error conditions, clear internal socket sets to
21987         avoid a memory leak.
21988         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
21989         Send_Timeout, Receive_Timeout.
21990
21991         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
21992         the tv_sec and tv_usec fields of C struct timeval.
21993         (Timeval): Construct structure in terms of the new types.
21994         (Host_Errno): New function (imported from socket.c), returns last hosts
21995         database error.
21996
21997         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
21998         hosts database last error code.
21999
22000         * gen-soccon.c: Complete value expansion should not be performed on
22001         TARGET, as it has the form of a math expression, and some components
22002         may be platform-defined macros.
22003         For VxWorks, generate the OK and ERROR values.
22004         New constants giving the sizes of the components of C struct timeval.
22005
22006 2005-11-14  Robert Dewar  <dewar@adacore.com>
22007             Ed Schonberg  <schonberg@adacore.com>
22008
22009         PR ada/18434
22010         * types.ads: Include All_Checks in Suppress_Array
22011
22012         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22013         not(a=b), since we no longer do this rewriting, and hence it is not
22014         needed.
22015         (Elaboration_Checks_Suppressed): Add special casing to
22016         deal with different cases of static and dynamic elaboration checks (all
22017         checks does not count in the first case, but does in the second).
22018         (Expr_Known_Valid): Do not assume that the result of any arbitrary
22019         function call is valid, since this is not the case.
22020         (Ensure_Valid): Do not apply validity check to a real literal
22021         in a universal or fixed context
22022
22023         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22024         elementary types using the operator in standard. It is cleaner not to
22025         modify the programmers intent, especially in the case of floating-point.
22026         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22027         it did not matter because we always rewrote a/=b to not(a=b).
22028         (Expand_Allocator_Expression): For an allocator expression whose nominal
22029         subtype is an unconstrained packed type, convert the expression to its
22030         actual constrained subtype.
22031         Implement warning for <= or >= where < or > not possible
22032         Fix to Vax_Float tests (too early in many routines, causing premature
22033         Vax_Float expansions.
22034
22035         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22036         to be used with packages and generic packages as well as with
22037         subprograms.
22038         (Suppress): Set All_Checks, but not Elaboration_Check, for case
22039         of pragma Suppress (All_Checks)
22040         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22041         a string literal for precise control over warnings.
22042         Avoid raise of pragma in case of unrecognized pragma and just return
22043         instead.
22044
22045         * sem_prag.ads: Minor reformatting
22046
22047         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22048         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22049         Switch. Do not handle any exception.
22050         Include -gnatwx as part of -gnatg (warn on redundant parens)
22051         Allow optional = after -gnatm
22052         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22053         longer sets Elaboration_Checks.
22054         Code to set warning mode moved to Sem_Warn
22055         so that it can be shared by pragma processing.
22056
22057         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22058         statement.
22059
22060         * s-taprop-solaris.adb:
22061         Change some <= to =, to avoid new warning
22062
22063         * a-exexda.adb, prj-proc.adb:
22064         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22065         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22066
22067 2005-11-14  Robert Dewar  <dewar@adacore.com>
22068
22069         * exp_vfpt.adb: Handle /= case
22070         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22071         so that we do not get duplicate scaling for fixed point conversions.
22072
22073         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22074
22075 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22076
22077         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22078         Increase default priority on Lynx from 15 to 17, and meet the Ada
22079         requirement that Default_Priority be ((Priority'First +
22080         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22081
22082 2005-11-14  Vincent Celier  <celier@adacore.com>
22083
22084         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22085         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22086         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22087         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22088         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22089         mlib-tgt-lynxos.adb (DLL_Prefix): New function
22090
22091 2005-11-14  Doug Rupp  <rupp@adacore.com>
22092
22093         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22094         private part.
22095
22096 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22097
22098         * s-traces-default.adb, s-trafor-default.ads,
22099         s-tratas-default.adb: Fix compilation errors.
22100
22101 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22102
22103         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22104         raising the exception so the memory used is freed.
22105
22106 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22107
22108         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22109         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22110         (convert_address): Update comments and list of platforms using this.
22111
22112         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22113         no longer used.
22114
22115 2005-11-14  Pascal Obry  <obry@adacore.com>
22116             Vincent Celier  <celier@adacore.com>
22117
22118         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22119         GNAT.Command_Line.
22120
22121         * memroot.adb: Remove redundant with/use clause on
22122         System.Storage_Elements.
22123
22124 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22125
22126         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22127         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22128         related code to a-exexpr.adb
22129         (Save_Occurrence_And_Private): Move GCC EH related code to
22130         a-exexpr-gcc.adb
22131         (Raise_Current_Excep): Add new variable Id with pragma
22132         volatile, to ensure that the variable lives on stack.
22133
22134         * a-exexpr-gcc.adb, raise-gcc.c: New file.
22135
22136         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22137         from a-except.adb.
22138         Move GCC EH related code to a-exexpr-gcc.adb
22139
22140         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22141         64-bit Solaris
22142         Split the Linux version of g-soccon into separate variants for 32 and 64
22143         bit platforms.
22144         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22145         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22146         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22147         of host variable $(RANLIB_FLAGS).
22148         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22149         Code clean up: remove unused/obsolete targets.
22150         (EH_MECHANISM): New variable introduced to differenciate between the
22151         two EH mechanisms statically.
22152         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22153         (LIBGNAT_OBJS): Add raise-gcc.o
22154         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22155         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22156         supports VxWorks 6 RTPs.
22157         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22158         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22159
22160         * raise.c: Move all GCC EH-related routines to raise-gcc.c
22161
22162 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22163
22164         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22165         deferral level, when abort is not allowed, to a later stage (the
22166         Task_Wrapper).
22167         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22168         it will not get changed by the generated code. It was previously done
22169         in Create_Task.
22170
22171 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22172             Olivier Hainque  <hainque@adacore.com>
22173             Eric Botcazou  <ebotcazou@adacore.com>
22174
22175         * decl.c:
22176         Factor common code to build a storage type for an unconstrained object
22177         from a fat or thin pointer type and a constrained object type.
22178         (annotate_value): Handle BIT_AND_EXPR.
22179         (annotate_rep): Don't restrict the back annotation of inherited
22180         components to the type_annotate_only case.
22181         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22182         we are not defining the type.
22183         <E_Record_Type>: Likewise.
22184         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22185         to get advantage of the new maybe_stabilize_reference interface, to
22186         ensure that what we reference is indeed stabilized instead of relying
22187         on assumptions on what the stabilizer does.
22188         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22189         type imported through a limited_with clause, use its non-limited view.
22190         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22191         differentiation.
22192         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22193         of #if sections + explicit comparisons of convention identifiers.
22194         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22195         before early-returning for certain types when code generation is
22196         disabled.
22197         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22198         nullification of gnu_expr we do for objects with address clause and
22199         that we are not defining.
22200         (elaborate_expression_1): Do not create constants when creating
22201         variables needed by the debug info: the dwarf2 writer considers that
22202         CONST_DECLs is used only to represent enumeration constants, and emits
22203         nothing for them.
22204         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22205         object with an address clause into an indirect reference, drop the
22206         initializing expression.
22207         Include "expr.h".
22208         (STACK_CHECK_BUILTIN): Delete.
22209         (STACK_CHECK_PROBE_INTERVAL): Likewise.
22210         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22211         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22212         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22213         corresponding to the renamed object as ignored for debugging purposes.
22214
22215         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22216         related): For a prefix that is a dereference of a fat or thin pointer,
22217         if there is an actual subtype provided by the front-end, use that
22218         subtype to build an actual type with bounds template.
22219         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22220         is provided by the front-end, use that subtype to compute the size of
22221         the deallocated object.
22222         (gnat_to_gnu): When adding a statement into an elaboration procedure,
22223         check for a potential violation of a No_Elaboration_Code restriction.
22224         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22225         with extra arguments to control whether to recurse through non-values
22226         and to let the caller know if the stabilization has succeeded.
22227         (gnat_stabilize_reference): Now a simple wrapper around
22228         maybe_stabilize, for common uses without restriction on lvalues and
22229         without need to check for the success indication.
22230         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22231         pass false instead of 0 as the FORCE argument which is a bool.
22232         (Identifier_to_gnu): Remove checks ensuring that an renamed object
22233         attached to a renaming pointer has been properly stabilized, as no such
22234         object is attached otherwise.
22235         (call_to_gnu): Invoke create_var_decl to create the temporary when the
22236         function uses the "target pointer" return mechanism.
22237         Reinstate conversion of the actual to the type of the formal
22238         parameter before any other specific treatment based on the passing
22239         mechanism. This turns out to be necessary in order for PLACEHOLDER
22240         substitution to work properly when the latter type is unconstrained.
22241
22242         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22243         common pattern.
22244         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22245         with extra arguments to control whether to recurse through non-values
22246         and to let the caller know if the stabilization has succeeded.
22247
22248         * utils2.c (gnat_build_constructor): Only sort the fields for possible
22249         static output of record constructor if all the components are constant.
22250         (gnat_build_constructor): For a record type, sort the list of field
22251         initializers in increasing bit position order.
22252         Factor common code to build a storage type for an unconstrained object
22253         from a fat or thin pointer type and a constrained object type.
22254         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22255         types variants, and process special cases of VIEW_CONVERT expressions
22256         as their NOP_EXPR counterpart to ensure we get to the
22257         CORRESPONDING_VARs associated with CONST_DECls.
22258         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22259         on the right-hand side.
22260
22261         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22262         a common pattern.
22263         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22264         are converting back to its original type.
22265         (convert) <JM input>: Fallthrough regular conversion code instead of
22266         extracting the object if converting to a type variant.
22267         (create_var_decl): When a variable has an initializer requiring code
22268         generation and we are at the top level, check for a potential violation
22269         of a No_Elaboration_Code restriction.
22270         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22271         SIZE and SIZE_UNIT which we need for later back-annotations.
22272         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22273         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22274         is an unchecked union.
22275         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22276         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22277         main variant, just replace the VIEW_CONVERT_EXPR.
22278         <UNION_TYPE>: Revert 2005-03-02 change.
22279
22280         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22281
22282         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22283
22284 2005-11-14  Matthew Heaney  <heaney@adacore.com>
22285
22286         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22287         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22288         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22289         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22290         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22291         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22292         Compiles against the spec for ordered maps described in sections
22293         A.18.6 of the most recent (August 2005) AI-302 draft.
22294
22295 2005-11-14  Olivier Hainque  <hainque@adacore.com>
22296
22297         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22298         to ensure bias adjustments take place when need be and to prevent
22299         occurrences of intermediate overflows.
22300
22301 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22302             Olivier Hainque  <hainque@adacore.com>
22303
22304         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22305         ia64 HP-UX.
22306
22307         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22308         tracebacks on ia64 HP-UX and provide explanatory comment.
22309         Enable backtraces on ia64 GNU/Linux.
22310         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22311         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22312
22313 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22314             Javier Miranda  <miranda@adacore.com>
22315
22316         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22317         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22318         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22319         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22320
22321         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22322         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22323         assertions).
22324
22325         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22326         subprogram that generates the external name associated with a
22327         secondary dispatch table.
22328         (Get_Secondary_DT_External_Name): New subprogram that generates the
22329         external name associated with a secondary dispatch table.
22330
22331 2005-11-14  Emmanuel Briot  <briot@adacore.com>
22332
22333         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22334         line in the ALI file to include both an instantiation reference, and a
22335         returned value.
22336
22337 2005-11-14  Vincent Celier  <celier@adacore.com>
22338
22339         * clean.adb (Check_Project): Look for Ada code in extending project,
22340         even if Ada is not specified as a language.
22341         Use new function DLL_Prefix for DLL_Name
22342         (Clean_Interface_Copy_Directory): New procedure
22343         (Clean_Library_Directory): New procedure
22344         (Clean_Directory): Remove procedure, no longer used
22345         (Clean_Project): Do not delete any file in an externally built project
22346
22347         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22348         directory of an extending project, even when there are no Ada source
22349         present.
22350         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22351         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22352
22353         * mlib-prj.adb (Check_Library): For all library projects, get the
22354         library file timestamp.
22355         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22356         (Build_Library): Use new function DLL_Prefix for the DLL_Name
22357         (Clean): Remove procedure, no longer used
22358         (Ultimate_Extension_Of): New function
22359         (Build_Library): When cleaning the library directory, only remove an
22360         existing library file and any ALI file of a source of the project.
22361         When cleaning the interface copy directory, remove any source that
22362         could be a source of the project.
22363
22364         * prj.ads, prj.adb (Project_Empty): Add values of new components
22365         Library_TS and All_Imported_Projects.
22366         (Project_Empty): Add values for new components of Project_Data:
22367         Library_ALI_Dir and Display_Library_ALI_Dir
22368
22369         * prj-attr.adb: New project level attribute name Library_ALI_Dir
22370
22371         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22372         attribute Library_ALI_Dir.
22373         (Check_Library_Attributes): The library directory cannot be the same as
22374         any source directory of the project tree.
22375         (Check_Stand_Alone_Library): The interface copy directory cannot be
22376         the same as any source directory of the project tree.
22377
22378         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22379         all temporary files.
22380
22381 2005-11-14  Robert Dewar  <dewar@adacore.com>
22382             Ed Schonberg  <schonberg@adacore.com>
22383
22384         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22385         (Check_Elab_Call): A call within a protected body is never an
22386         elaboration call, and does not require checking.
22387         (Same_Elaboration_Scope): Take into account protected types for both
22388         entities.
22389         (Activate_Elaborate_All_Desirable): New procedure
22390
22391         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22392         desirable
22393
22394         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22395         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22396
22397         * lib-writ.ads, lib-writ.adb:
22398         Implement new AD/ED for Elaborate_All/Elaborate desirable
22399         Use new Elaborate_All_Desirable flag in N_With_Clause node
22400
22401         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22402         N_Free_Statement nodes.
22403         Define new class N_Subprogram_Instantiation
22404         Add Elaborate_Desirable flag to N_With_Clause node
22405         Add N_Delay_Statement (covering two kinds of delay)
22406
22407         * debug.adb: Introduce d.f flag for compiler
22408         Add -da switch for binder
22409
22410 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22411             Cyrille Comar  <comar@adacore.com>
22412
22413         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22414         for task component, in the case of a limited aggregate. The enclosed
22415         object declaration will create it earlier. Otherwise, in the case of a
22416         nested aggregate, the object may appear in the wrong scope.
22417         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22418         (Gen_Assign): If the component being assigned is an array type and the
22419         expression is itself an aggregate, wrap the assignment in a block to
22420         force finalization actions on the temporary created for each row of the
22421         enclosing object.
22422         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22423         structures are initialized after all discriminants are set so that
22424         they can be accessed even when their offset is dynamic.
22425
22426 2005-11-14  Robert Dewar  <dewar@adacore.com>
22427             Hristian Kirtchev  <kirtchev@adacore.com>
22428
22429         * sem_attr.adb: Implement Machine_Rounding attribute
22430         (Analyze_Access_Attribute): The access attribute may appear within an
22431         aggregate that has been expanded into a loop.
22432         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22433         'Terminated whenever the prefix is of a task interface class-wide type.
22434         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22435         the prefix is of a task interface class-wide type.
22436
22437         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22438         to avoid warnings.
22439
22440         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22441         Remove pragma Inline for [Unaligned_]Valid.
22442         Add comments that Valid routines do not work for Vax_Float
22443
22444         * exp_attr.adb: Implement Machine_Rounding attribute
22445
22446         * snames.h: Add entry for Machine_Rounding attribute
22447
22448 2005-11-14  Javier Miranda  <miranda@adacore.com>
22449             Robert Dewar  <dewar@adacore.com>
22450             Hristian Kirtchev  <kirtchev@adacore.com>
22451
22452         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22453         and related): For a prefix that is an explicit dereference of an
22454         access to unconstrained packed array type, annotate the dereference
22455         with an actual subtype so GIGI can make a correct size computation.
22456         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22457         'Unrestricted_Access, if the designated type is an interface we
22458         add a type conversion to force the displacement of the pointer
22459         to the secondary dispatch table.
22460         Use Universal_Real instead of Long_Long_Float when we need a high
22461         precision float type for the generated code (prevents gratuitous
22462         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22463         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22464         'Terminated for task interface class-wide objects. Generate a call to
22465         the predefined dispatching routine used to retrieve the _task_id from
22466         a task corresponding record.
22467         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22468
22469         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22470         (Check_Dispatching_Operation): Protect the frontend againts
22471         previously detected errors.
22472
22473         * Makefile.rtl: Add new instantiations of system.fat_gen
22474
22475         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
22476         Change name of instantiated package for better consistency
22477         with newly added system.fat_gen instantiations.
22478
22479         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22480         s-fvagfl.ads: New files.
22481
22482 2005-11-14  Cyrille Comar  <comar@adacore.com>
22483             Thomas Quinot  <quinot@adacore.com>
22484
22485         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22486         assignment of a value of a tagged type that has been rewritten to a
22487         block statement, it is known by construction that no checks are
22488         necessary for the statements within the block: analyze it with checks
22489         suppressed.
22490         (Expand_N_If_Statement): When killing a dead then-branch in an
22491         if-statement that has elsif_parts, recompute the Current_Value node
22492         for any entity whose value is known from the condition of the first
22493         elsif_part.
22494         (Expand_N_Return_Statement): When returning a mutable record, convert
22495         the return value into its actual subtype in order to help the backend
22496         to return the actual size instead of the maximum. This is another
22497         aftermath of not returning mutable records on the sec-stack anymore.
22498
22499         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22500         handling of error msg for suspicious reverse range iteration.
22501         (Check_Possible_Current_Value_Condition): Move declaration from body to
22502         spec, to allow this subprogram to be called from exp_ch5.
22503
22504 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22505
22506         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22507         generate a set of nested array aggregates instead of a single flat
22508         aggregate for multi-dimensional arrays.
22509
22510 2005-11-14  Pascal Obry  <obry@adacore.com>
22511
22512         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22513         by spawnve is a process handle, no need to convert. Add a parameter
22514         close to control wether the process handle must be closed.
22515         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22516         a process handle, not need to convert.
22517         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22518
22519         * g-expect.adb: (Kill): Document the new close parameter.
22520         (Close): Do not release the process handle in the kill there as
22521         waitpid() is using it.
22522         (Send_Signal): Release the process handle.
22523
22524 2005-11-14  Robert Dewar  <dewar@adacore.com>
22525
22526         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22527         need a high precision float type for the generated code (prevents
22528         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22529         used).
22530
22531         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22532         need a high precision float type for the generated code (prevents
22533         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22534         used).
22535         (Expand_Width_Attribute): In configurable run-time, the attribute is not
22536         allowed on non-static enumeration subtypes. Force a load error to emit
22537         the correct diagnostic.
22538
22539 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22540             Robert Dewar  <dewar@adacore.com>
22541             Ed Schonberg  <schonberg@adacore.com>
22542
22543         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22544         subtype to compute the size of the designated object at run-time,
22545         create such a subtype and store it in the Actual_Designated_Subtype
22546         attribute of the N_Free_Statement.
22547         Generate itype for classwide designated object in both cases of
22548         user-specified storage pool: specific and class-wide, not only in the
22549         specific case.
22550         Raise CE when trying to set a not null access type object to null.
22551         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22552         an explicit loop, because freeze nodes make its position variable.
22553
22554         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22555         null object.
22556
22557 2005-11-14  Javier Miranda  <miranda@adacore.com>
22558
22559         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22560         Build_Stream_Procedure): Add the null-excluding attribute to the first
22561         formal.
22562         This has no semantic meaning under Ada95 mode but it is a
22563         requirement under Ada05 mode.
22564
22565         * par-ch3.adb (P_Access_Definition): Addition of warning message if
22566         the null exclusion is used under Ada95 mode
22567         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22568         (P_Access_Definition): Remove assertion that forbids the use of
22569         the null-exclusion feature in Ada95.
22570
22571 2005-11-14  Robert Dewar  <dewar@adacore.com>
22572
22573         * impunit.adb: Exclude container helper units not intended for use by
22574         users.
22575
22576 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22577
22578         * freeze.adb (Freeze_Entity): For an access formal that is an access
22579         to subprogram, freeze the anonymous subprogram type at the same time,
22580         to prevent later freezing in the wrong scope, such as the enclosing
22581         subprogram body.
22582         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22583         subprogram whenever available.
22584
22585 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22586
22587         PR ada/23732
22588         * gnatvsn.ads (Library_Version): Bump to 4.1
22589
22590 2005-11-14  Robert Dewar  <dewar@adacore.com>
22591
22592         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22593         Storage_Offset to avoid wrap around causing invalid results.
22594
22595 2005-11-14  Pascal Obry  <obry@adacore.com>
22596
22597         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22598         cross-compiler.
22599         (Scan_Bind_Arg): Fail with an error message if -M option is used
22600         on a native compiler.
22601
22602 2005-11-14  Robert Dewar  <dewar@adacore.com>
22603             Vincent Celier  <celier@adacore.com>
22604
22605         * gprep.adb: Implement -C switch to scan comments
22606
22607         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22608
22609         * scans.ads: Comment updates (including new use of Tok_Comment in
22610         preprocessing)
22611
22612         * opt.ads: Add documentation for flags that are used by gprmake,
22613         currently and in the next version of gprmake.
22614         (Verbosity_Level): New variable
22615         Add Replace_In_Comments switch
22616
22617         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22618         and -vm.
22619         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22620
22621 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22622
22623         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22624         message, friendlier.
22625
22626 2005-11-14  Robert Dewar  <dewar@adacore.com>
22627
22628         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22629
22630 2005-11-14  Doug Rupp  <rupp@adacore.com>
22631
22632         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22633
22634 2005-11-14  Robert Dewar  <dewar@adacore.com>
22635
22636         * interfac.ads: Change declarations of IEEE float types so that we no
22637         longer need a separate version of this package for VMS.
22638
22639 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22640
22641         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22642         internal entity created for the declaration of a child subprogram body
22643         with no spec as coming from source, to generate proper cross-reference
22644         information.
22645
22646 2005-11-14  Vincent Celier  <celier@adacore.com>
22647
22648         * make.adb (Compile_Sources): Change verbose message to minimum
22649         verbosity level High for "is in an Ada library", "is a read-only
22650         library" and "is an internal library",
22651         (Create_Binder_Mapping_File): Path name of ALI file for library project
22652         must include the library directory, not the object directory.
22653         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22654         for new switches -vl, -vm and -vh.
22655         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22656         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22657         (Compile_Sources): Do not attempt to compile if an ALI file is missing
22658         in a project that is externally built.
22659         (Compute_All_Imported_Projects): New procedure
22660         (Gnatmake): Check if importing libraries should be regenerated because
22661         at least an imported library is more recent.
22662         (Initialize): For each project compute the list of the projects it
22663         imports directly or indirectly.
22664         (Add_Library_Search_Dir): New procedure, used in place of
22665         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22666         put in the search paths.
22667         (Add_Source_Search_Dir): New procedure, used in place of
22668         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22669         put in the search paths.
22670         (Mark_Directory): Resolve the absolute path the directory before marking
22671         it.
22672
22673         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22674         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22675         Switch. Do not handle any exception.
22676         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22677         so that the switch is recognized as valid.
22678         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22679
22680 2005-11-14  GNAT Script  <nobody@adacore.com>
22681
22682         * Make-lang.in: Makefile automatically updated
22683
22684 2005-11-14  Pascal Obry  <obry@adacore.com>
22685
22686         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22687         used.
22688         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22689         In both cases the last argument was dropped.
22690
22691 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
22692
22693         * namet.h: (Column_Numbe): New type.
22694         (Get_Column_Number): Define to sinput__get_column_number.
22695         (Instantiation): Define to sinput__instantiation.
22696         (Get_Column_Number): Declare.
22697         (Instantiation): Likewise.
22698
22699 2005-11-14  Robert Dewar  <dewar@adacore.com>
22700
22701         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
22702         syntax, which could cause compiler hangs.
22703
22704 2005-11-14  Vincent Celier  <celier@adacore.com>
22705
22706         * prj-ext.adb: Take into account new environment variable
22707         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
22708         are defined.
22709         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
22710         normalize its path name, making it absolute and resolving symbolic
22711         links, and replace the original if resolved path is different.
22712
22713 2005-11-14  Vincent Celier  <celier@adacore.com>
22714
22715         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
22716         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
22717
22718 2005-11-14  Emmanuel Briot  <briot@adacore.com>
22719
22720         * prj-pp.adb (Print): Do not output the with statement if the
22721         associated name is empty, which happens for virtual extending projects.
22722         (Print): Preserve the "extends all" attribute when printing the project.
22723
22724         * prj-tree.ads (String_Value_Of): Add comment about returned value for
22725         a virtual extending project.
22726
22727 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22728
22729         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
22730         rhs of an assignment even if the type is unconstrained, when the
22731         context is non-expanding.
22732         In an inlined body, if the context type is private,
22733         resolve with its full view, which must be a composite type.
22734
22735 2005-11-14  Robert Dewar  <dewar@adacore.com>
22736             Ed Schonberg  <schonberg@adacore.com>
22737
22738         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22739         Do not give obsolescent warning on with of subprogram (since we
22740         diagnose calls)
22741         (Analyze_With_Clause): Add test for obsolescent package
22742         (Install_Context_Clauses): If the unit is the body of a child unit, do
22743         not install twice the private declarations of the parents, to prevent
22744         circular lists of Use_Clauses in a parent.
22745         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
22746         compiling body of child unit.
22747         Use new class N_Subprogram_Instantiation
22748         (Expand_With_Clause): If this is a private with_clause for a child unit,
22749         appearing in the context of a package declaration, then the implicit
22750         with_clauses generated for parent units are private as well.
22751         (License_Check): Do not generate message if with'ed unit is internal
22752
22753 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
22754             Ed Schonberg  <schonberg@adacore.com>
22755             Thomas Quinot  <quinot@adacore.com>
22756
22757         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
22758         names are internal, because they will not have a corresponding partner
22759         in the actual package.
22760         (Analyze_Formal_Package): Move the setting of the formal package spec's
22761         Generic_Parent field so that it occurs prior to analyzing the package,
22762         to allow proper operation of Install_Parent_Private_Declarations.
22763         (Analyze_Package_Instantiation): Set the instantiated package entity's
22764         Package_Instantiation field.
22765         (Get_Package_Instantiation_Node): Move declaration to package spec.
22766         Retrieve the N_Package_Instantiation node when the Package_Instantiation
22767         field is present.
22768         (Check_Generic_Child_Unit): Within an inlined call, the only possible
22769         instantiation is Unchecked_Conversion, for which no parents are needed.
22770         (Inline_Instance_Body): Deinstall and record the use_clauses for all
22771         parent scopes of a scope being removed prior to inlining an instance
22772         body.
22773         (Analyze_Package_Instantiation): Do not perform front-end inlining when
22774         the current context is itself an instance within a non-instance child
22775         unit, to prevent scope stack errors.
22776         (Save_References): If the node is an aggregate that is an actual in a
22777         call, rewrite as a qualified expression to preserve some type
22778         information, to resolve possible ambiguities in the instance.
22779         (Instance_Parent_Unit): New global variable to record the ultimate
22780         parent unit associated with a generic child unit instance (associated
22781         with the existing Parent_Unit_Visible flag).
22782         (type Instance_Env): New component Instance_Parent_Unit for stacking
22783         parents recorded in the global Instance_Parent_Unit.
22784         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
22785         stack.
22786         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
22787         it's not a top-level unit, and only do this if Instance_Parent_Unit is
22788         not already set. Replace test of Is_Child_Unit with test of parent's
22789         scope against package Standard. Add comments and a ??? comment.
22790         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
22791         on a child instance parent to test that the parent equals
22792         Instance_Parent rather than simply checking that the unit is not a
22793         child unit.
22794         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
22795         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
22796         a formal interface are ancestors of the corresponding actual.
22797         (Validate_Formal_Interface_Type): Additional legality checks.
22798         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
22799         interface types with ancestors.
22800         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
22801         to diagnose attempts to use generic within its own declaration.
22802
22803 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22804             Javier Miranda  <miranda@adacore.com>
22805
22806         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
22807         discriminant.
22808         (Build_Private_Derived_Type): The entity of the created full view of the
22809         derived type does not come from source. If after installing the private
22810         declarations of the parent scope the parent is still private, use its
22811         full view to construct the full declaration of the derived type.
22812         (Build_Derived_Record_Type): Relax the condition that controls the
22813         execution of the check that verifies that the partial view and
22814         the full view agree in the set of implemented interfaces. In
22815         addition, this test now only takes into account the progenitors.
22816         (Derive_Interface_Subprograms): No need to derive subprograms
22817         of ancestors that are interfaces.
22818         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
22819         associated code.
22820         Change name Is_Package to Is_Package_Or_Generic_Package
22821         (Complete_Subprograms_Derivation): Handle the case in which the full
22822         view is a transitive derivation of the ancestor of the partial view.
22823         (Process_Full_View): Rename local subprogram Find_Interface_In_
22824         Descendant to Find_Ancestor_Interface to leave the code more clear.
22825         Remove wrong code that avoids the generation of an error message
22826         when the immediate ancestor of the partial view is an interface.
22827         In addition some minor reorganization of the code has been done to
22828         leave it more clear.
22829         (Analyze_Type_Declaration): If type has previous incomplete tagged
22830         partial view, inherit properly its primitive operations.
22831         (Collect_Interfaces): Make public, for analysis of formal
22832         interfaces.
22833         (Analyze_Interface_Declaration): New procedure for use for regular and
22834         formal interface declarations.
22835         (Build_Derived_Record_Type): Add support for private types to the code
22836         that checks if a tagged type implements abstract interfaces.
22837         (Check_Aliased_Component_Type): The test applies in the spec of an
22838         instance as well.
22839         (Access_Type_Declaration): Clean up declaration of malformed type
22840         declared as an access to its own classwide type, to prevent cascaded
22841         crash.
22842         (Collect_Interfaces): For private extensions and for derived task types
22843         and derived protected types, the parent may be an interface that must
22844         be included in the interface list.
22845         (Access_Definition): If the designated type is an interface that may
22846         contain tasks, create Master_Id for it before analyzing the expression
22847         of the declaration, which may be an allocator.
22848         (Record_Type_Declaration): Set properly the interface kind, for use
22849         in allocators, the creation of master id's for task interfaces, etc.
22850
22851 2005-11-14  Javier Miranda  <miranda@adacore.com>
22852             Ed Schonberg  <schonberg@adacore.com>
22853
22854         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
22855         omitted in case of stream attribute subprograms.
22856         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
22857         appear immediately after a subprogram body, when there is no previous
22858         subprogram declaration.
22859         Change name Is_Package to Is_Package_Or_Generic_Package
22860         (Process_Formals): A non null qualifier on a non null named access
22861         type is not an error, and is a warning only if Redundant_Constructs
22862         are flagged.
22863
22864 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
22865             Ed Schonberg  <schonberg@adacore.com>
22866
22867         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
22868         nested within Analyze_Package_Specification to install the private
22869         declarations and use clauses within each of the parent units of a
22870         package instance of a generic child package.
22871         (Analyze_Package_Specification): When entering a private part of a
22872         package associated with a generic instance or formal package, the
22873         private declarations of the parent must be installed (by calling new
22874         procedure Install_Parent_Private_Declarations).
22875         Change name Is_Package to Is_Package_Or_Generic_Package
22876         (Preserve_Full_Attributes): For a synchronized type, the corresponding
22877         record is absent in a generic context, which does not indicate a
22878         compiler error.
22879
22880 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22881
22882         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
22883         not try to rewrite a renamed stream attribute, because the operations
22884         on the type may not have been generated.
22885         Handle properly a renaming_as_body generated for a stream operation
22886         whose default is abstract because the object type itself is abstract.
22887         (Find_Type): If the type is incomplete and appears as the prefix of a
22888         'Class reference, it is tagged, and its list of primitive operations
22889         must be initialized properly.
22890         (Chain_Use_Clauses): When chaining the use clauses that appear in the
22891         private declaration of a parent unit, prior to compiling the private
22892         part of a child unit, find on the scope stack the proper parent entity
22893         on which to link the use clause.
22894         (Note_Redundant_Use): Emit a warning when a redundant use clause is
22895         detected.
22896         (Analyze_Object_Renaming): An attribute reference is not a legal object
22897         if it is not a function call.
22898
22899 2005-11-14  Robert Dewar  <dewar@adacore.com>
22900             Ed Schonberg  <schonberg@adacore.com>
22901
22902         * sem_eval.adb: Implement d.f flag
22903         (Subtype_Statically_Match): A generic actual type has unknown
22904         discriminants when the corresponding actual has a similar partial view.
22905         If the routine is called to validate the signature of an inherited
22906         operation in a child instance, the generic actual matches the full view,
22907
22908 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22909             Ed Schonberg  <schonberg@adacore.com>
22910             Robert Dewar  <dewar@adacore.com>
22911             Thomas Quinot  <quinot@adacore.com>
22912
22913         * sem_res.adb (Resolve_Call): Provide a better error message whenever
22914         a procedure call is used as a select statement trigger and is not an
22915         entry renaming or a primitive of a limited interface.
22916         (Valid_Conversion): If the operand has a single interpretation do not
22917         remove address operations.
22918         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
22919         statement to inhibit warning.
22920         (Resolve_Unary_Op): Do not produce a warning when
22921         processing an expression of the form -(A mod B)
22922         Use Universal_Real instead of Long_Long_Float when we need a high
22923         precision float type for the generated code (prevents gratuitous
22924         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22925         (Resolve_Concatenation_Arg): Improve error message when argument is an
22926         ambiguous call to a function that returns an array.
22927         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
22928         there is an implicit operator in the given scope if we are within an
22929         instance: legality check has been performed on the generic.
22930         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
22931         after resolving operand, to avoid false warnings on overloaded calls.
22932
22933 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22934             Javier Miranda  <miranda@adacore.com>
22935
22936         PR ada/15604
22937         * sem_type.adb (Covers): In an inlined body, a composite type matches
22938         a private type whose full view is a composite type.
22939         (Interface_Present_In_Ancestor): Protect the frontend against
22940         previously detected errors to ensure that its compilation
22941         with assertions enabled gives the same output that its
22942         compilation without assertions.
22943         (Interface_Present_In_Ancestor): Add support for private types.
22944         Change name In_Actual to In_Generic_Actual (clean up)
22945         (Disambiguate): New predicate In_Actual, to recognize expressions that
22946         appear in the renaming declaration generated for generic actuals, and
22947         which must be resolved in the outer context.
22948
22949 2005-11-14  Robert Dewar  <dewar@adacore.com>
22950             Thomas Quinot  <quinot@adacore.com>
22951             Hristian Kirtchev  <kirtchev@adacore.com>
22952             Ed Schonberg  <schonberg@adacore.com>
22953
22954         * sem_util.ads, sem_util.adb: Change name Is_Package to
22955         Is_Package_Or_Generic_Package.
22956         (Check_Obsolescent): New procedure.
22957         (Set_Is_Public): Remove obsolete junk test.
22958         (Set_Public_Status): Do not set Is_Public on an object whose declaration
22959         occurs within a handled_sequence_of_statemets.
22960         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
22961         for a parameterless procedure.
22962         (Enter_Name): Recognize renaming declarations created for private
22963         component of a protected type within protected operations, so that
22964         the source name of the component can be used in the debugger.
22965
22966 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
22967             Robert Dewar  <dewar@adacore.com>
22968
22969         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
22970         of a generic subprogram are not visible outside the body.
22971         (Set_Warning_Switch): New procedure (code to set warning mode moved
22972         here from Switch.C so that it can be shared by pragma processing.
22973         (Check_References): Special case warning for non-modified non-imported
22974         volatile objects.
22975         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
22976         form with a string literal argument
22977
22978 2005-11-14  Javier Miranda  <miranda@adacore.com>
22979
22980         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
22981         anonymous access.
22982         (Write): Addition of "not null" to the anonymous access.
22983         (Read): Addition of "not null" to the anonymous access.
22984         (Write): Addition of "not null" to the anonymous access.
22985
22986         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
22987         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
22988         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
22989         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
22990         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
22991         "not null" to the anonymous access.
22992
22993 2005-11-14  Robert Dewar  <dewar@adacore.com>
22994
22995         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
22996         offset values
22997
22998 2005-11-14  Vincent Celier  <celier@adacore.com>
22999
23000         * switch.adb (Bad_Switch): New procedure
23001         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23002         message when in error.
23003
23004         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23005         Too_Many_Output_Files): Remove declarations, no longer used.
23006         (Scan_Nat): New parameter Switch
23007         (Scan_Pos): Ditto
23008         (Bad_Switch): New procedure
23009
23010         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23011         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23012         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23013         to Osint.Fail. Do not handle any exception.
23014
23015 2005-11-14  Vincent Celier  <celier@adacore.com>
23016
23017         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23018         designates a non existent directory.
23019
23020 2005-11-14  Robert Dewar  <dewar@adacore.com>
23021
23022         * xgnatugn.adb: Replace invalid membership test by 'Valid
23023
23024 2005-11-14  Vincent Celier  <celier@adacore.com>
23025
23026         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23027         there is no object directory.
23028
23029 2005-11-14  Robert Dewar  <dewar@adacore.com>
23030
23031         * usage.adb: Minor adjustment to output format, use nn instead of nnn
23032         (so that -gnateInnn does not run into next column)
23033
23034 2005-11-14  Ed Falis  <falis@adacore.com>
23035
23036         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23037         "constrained"
23038
23039 2005-11-14  Cyrille Comar  <comar@adacore.com>
23040
23041         * s-chepoo.ads: Add comments on Dereference.
23042         Remove unnecessary inherited abstract primitives.
23043         Cosmetic cleanup.
23044
23045 2005-11-14  Robert Dewar  <dewar@adacore.com>
23046
23047         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23048         node parameter, not needed, since it is available as Declaration_Node.
23049
23050 2005-11-14  Geert Bosch  <bosch@adacore.com>
23051
23052         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23053         grammatically correct.
23054
23055 2005-11-14  Vincent Celier  <celier@adacore.com>
23056
23057         * s-fileio.ads: Correct spelling error in comment
23058
23059 2005-11-14  Cyrille Comar  <comar@adacore.com>
23060             Robert Dewar  <dewar@adacore.com>
23061             Vincent Celier  <celier@adacore.com>
23062             Ben Brosgol  <brosgol@adacore.com>
23063             Jose Ruiz  <ruiz@adacore.com>
23064             Pascal Obry  <obry@adacore.com>
23065
23066         * gnat_ugn.texi:
23067         Document that -fstack-check is needed for strict compliance with the
23068         Ada 95 Reference Manual.
23069         Correct reference to VAX systems to meet HP guidelines
23070         Add documentation for new gnatmake switches -vl, -vm and -vh
23071         Replace DEC Ada by HP Ada
23072         Replace DIGITAL by HP
23073         Remove empty section on tools in compatibility section
23074         Clarify the Windows convention semantics.
23075         Document the Win32 calling convention.
23076         The Stdcall, Win32 and DLL convention are synonyms.
23077         Add a note in -gnatR description about zero size record components
23078         Note on new >= and <= warnings for -gnatwc
23079         Document that equal sign after -gnatm is optional.
23080         Note that strip is working fine on DLL built with a Library
23081         Project. The restriction apply only to DLL built with gnatdll.
23082         Update section about the way to debug a DLL.
23083         Update information about the DLL convention.
23084         Document -C switch for gnatprep
23085         Document new attribute Library_ALI_Dir
23086         Update elaboration doc to include implicit Elaborate pragmas now
23087         generated for subprogram instantiations.
23088         Document limitation on executable names that include spaces for --GCC,
23089         --GNATBIND, and --GNATLINK switches.
23090         Document that -w causes -gnatws to be added at start of gcc switches
23091
23092         * gnat_rm.texi: Document that -mieee is needed for generating infinite
23093         and NaN values in case of overflow on machines that are not fully
23094         compliant with the IEEE floating-point standard.
23095         Create a section describing the set of compiler options needed for
23096         strict compliance with the Ada 95 Reference Manual.
23097         Add documentation for pragma Obsolescent applied to a package
23098         Clarify potential issues of mixed language programs related to the
23099         I/O buffering enabling in the elaboration of the GNAT runtime.
23100         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23101         This documentation only patch adds extra documentsion for pragma
23102         Restrictions (No_Elaboration_Code), explaining why it is not possible
23103         to document this restriction in terms of allowed source constructs.
23104         Document string literal form of pragma Warnings
23105         Document new attribute Library_ALI_Dir
23106         Add documentation on stable attributes in project files that was missing
23107
23108         * gnat-style.texi: Indicate that paragraphs within a single comment
23109         should be separated by empty comment lines
23110
23111         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23112         /05 respectively)
23113
23114         * bindusg.adb: Minor cleanup, put -m before -M for consistency
23115
23116 2005-11-14  Robert Dewar  <dewar@adacore.com>
23117
23118         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23119         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23120         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23121         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23122         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23123         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23124         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23125         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23126         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23127         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23128         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23129         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23130         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23131         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23132         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23133         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23134         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23135         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23136         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23137         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23138         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23139         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23140         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23141         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23142         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23143         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23144         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23145         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23146         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23147         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23148         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23149         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23150         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23151         system-interix.ads, system-solaris-sparc.ads,
23152         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23153         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23154         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23155         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23156         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23157         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23158         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23159         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23160         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23161         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23162         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23163         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23164         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23165         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23166         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23167         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23168         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23169         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23170         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23171         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23172         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23173         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23174         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23175         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23176         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23177         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23178         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23179         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23180         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23181         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23182         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23183         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23184         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23185         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23186         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23187         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23188         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23189         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23190         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23191         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23192         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23193         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23194         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23195         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23196         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23197         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23198         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23199         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23200         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23201         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23202         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23203         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23204         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23205         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23206         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23207         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23208         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23209         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23210         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23211         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23212         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23213         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23214         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23215         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23216         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23217         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23218         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23219         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23220         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23221         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23222         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23223         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23224         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23225         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23226         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23227         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23228         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23229         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23230         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23231         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23232         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23233         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23234         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23235         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23236         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23237         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23238         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23239         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23240         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23241         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23242         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23243         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23244         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23245         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23246         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23247         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23248         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23249         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23250         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23251         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23252         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23253         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23254         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23255         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23256         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23257         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23258         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23259         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23260         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23261         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23262         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23263         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23264         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23265         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23266         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23267         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23268         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23269         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23270         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23271         a-numaux-darwin.ads, a-numaux-darwin.adb,
23272         a-swuwha.ads, a-stunha.ads: Minor reformatting
23273
23274 2005-11-14  Robert Dewar  <dewar@adacore.com>
23275
23276         PR ada/18434
23277         * osint-m.adb: Add pragma Elaborate_All for Osint
23278
23279 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
23280
23281         PR ada/23995
23282         * trans.c (call_to_gnu): Restore statement lost in translation.
23283
23284 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
23285
23286         * init.c: Use the Linux-specific section for the IA-64/Linux target.
23287         (__gnat_adjust_context_for_raise): Add conditional code so that the
23288         IA-64 is also supported.
23289
23290 2005-11-03  James E Wilson  <wilson@specifix.com>
23291
23292         PR ada/23427
23293         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23294         TREE_OVERFLOW check.
23295
23296 2005-09-21  Olivier Hainque  <hainque@adacore.com>
23297
23298         PR ada/22418
23299         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23300         as we create them to store a size in bits.
23301
23302 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
23303
23304         PR ada/21937
23305         PR ada/22328
23306         PR ada/22381
23307         PR ada/22383
23308         PR ada/22419
23309         PR ada/22420
23310         * utils2.c (build_return_expr): New helper function.
23311         * gigi.h (build_return_expr): Declare it.
23312         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23313         of manually building the RETURN_EXPR tree.
23314         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23315         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23316         build_binary_op for the "target pointer" case.  Use build_return_expr
23317         instead of manually building the RETURN_EXPR tree.
23318
23319 2005-09-16  Laurent Guerby  <laurent@guerby.net>
23320
23321         PR ada/23788
23322         * s-tpinop.ads: Make this unit Preelaborate.
23323
23324 2005-09-16  Andreas Jaeger  <aj@suse.de>
23325
23326         * socket.c: Add string.h for memcpy.
23327
23328 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
23329
23330         * dec-io.ads, dec-io.adb: Removed, no longer used.
23331
23332 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23333
23334         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23335
23336         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23337         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23338         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23339         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23340         dependent units are Preelaborate.
23341         (Initialize): Call Interrupt_Managemeent.Initialize and
23342         OS_Primitives.Initialize to ensure proper initialization of this unit.
23343         Remove use of System.Soft_Links
23344         Make this unit Preelaborate.
23345
23346         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23347         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23348         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23349         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23350         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23351         s-tratas.ads, s-tasinf.ads: Minor reformatting.
23352         Add pragma Preelaborate, since these packages are suitable for this
23353         categorization.
23354         Update comments.
23355
23356         * s-traent-vms.ads, s-intman-dummy.adb,
23357         s-taprop-dummy.adb: Make this unit Preelaborate.
23358
23359         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
23360         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
23361         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23362         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23363         s-intman-solaris.adb, s-intman-irix-athread.adb,
23364         s-intman-irix.adb: Mark this unit Preelaborate.
23365         (Initialize): New procedure.
23366         Update comments.
23367
23368         * s-taspri-linux.ads: Removed.
23369
23370         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23371         as done by other implementations (e.g. posix).
23372
23373         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23374         responsible for deferring abort.
23375         Mark this unit Preelaborate.
23376
23377         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23378         proper initialization of the tasking run-time.
23379
23380         * s-tasdeb.ads: Mark this unit Preelaborate.
23381         (Known_Tasks): Add explicit default value to avoid elaboration code.
23382
23383         * s-inmaop-vms.adb (Elaboration code): Add call to
23384         Interrupt_Management.Initialize since the elaboration code depends on
23385         proper initialization of this package.
23386
23387         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23388         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23389         s-osprim-posix.adb: Make this unit Preelaborate.
23390
23391         * a-calend.adb: Add call to OS_Primitives.Initialize
23392
23393         * a-elchha.adb: Update use of Except.Id.Full_Name.
23394         Minor reformatting.
23395         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23396
23397         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23398         Move with clauses outside Warnings Off now that dependent units are
23399         Preelaborate.
23400         Use raise xxx with "..."; Ada 2005 form.
23401
23402         * a-taside.ads, a-taside.adb:
23403         Remove some dependencies, to make it easier to make this unit truly
23404         Preelaborate.
23405         Rewrite some code to be conformant with Preelaborate rules.
23406
23407         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23408         marked Preelaborate in the future.
23409
23410         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23411         these units Preelaborate.
23412
23413         * s-exctab.adb: Update use of Except.Id.Full_Name.
23414
23415         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23416         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23417         Set_Exc_Stack_Addr): Removed, no longer used.
23418         Remove reference to *Machine_State_Addr*, no longer needed.
23419
23420         * s-stalib.ads: Mark this unit as Preelaborate[_05].
23421         (Exception_Data): Full_Name is now a System.Address so that this unit
23422         can be made Preelaborate.
23423         Clean up/simplify code thanks to Full_Name being a System.Address.
23424         Remove obsolete pragma Suppress (All_Checks), no longer needed.
23425
23426         * s-taskin.ads, s-taskin.adb:
23427         Move with clauses outside Warnings Off now that dependent units are
23428         Preelaborate.
23429         Make this unit Preelaborate.
23430         (Initialize): New proceduure, replace elaboration code and makes the
23431         set up of the tasking run-time cleaner.
23432         (Detect_Blocking): Now a function instead of a deferred boolean, to
23433         obey Preelaborate rules.
23434
23435         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23436         soft links, no longer used.
23437
23438         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23439         packages are suitable for this categorization.
23440
23441         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23442         since we compile run-time sources in Ada 2005 mode.
23443         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23444         avoid having s-taprop*.adb depend on s-soflin and to avoid code
23445         duplication.
23446         Remove reference to *Machine_State_Addr*, no longer needed.
23447
23448 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23449
23450         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23451         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23452         Remove reference to System.Exceptions.
23453
23454         * s-mastop-x86.adb: Removed, no longer used.
23455
23456         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23457
23458         * a-excach.adb: Minor reformatting.
23459
23460         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23461         instead fix new warnings that were hidden by this change.
23462         (AAA, ZZZ): Removed, replaced by...
23463         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23464         are used instead of constants, to help make Ada.Exception truly
23465         preelaborate.
23466         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23467         Raise_Storage_Error): File is now a System.Address, to simplify code.
23468         (Elab code): Removed, no longer used.
23469         (Null_Occurrence): Remove Warnings Off and make this construct
23470         preelaborate.
23471         Remove code related to front-end zero cost exception handling, since
23472         it is no longer used.
23473         Remove -gnatL/-gnatZ switches.
23474
23475         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23476         Update use of Except.Msg.
23477
23478         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23479         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23480         to front-end zero cost exception handling, since it is no longer used.
23481         Remove -gnatL/-gnatZ switches.
23482
23483         * lib-writ.ads: Minor reformatting
23484         Remove doc of UX
23485
23486         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23487
23488         * Make-lang.in: Remove references to s-except.ads
23489
23490         * s-except.ads: Removed, no longer used.
23491
23492         * s-mastop.ads, s-mastop.adb:
23493         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23494         Remove reference to System.Exceptions.
23495
23496         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23497         switch-b.adb: Remove code related to front-end zero cost exception
23498         handling, since it is no longer used.
23499         Remove -gnatL/-gnatZ switches.
23500
23501 2005-09-01  Robert Dewar  <dewar@adacore.com>
23502             Gary Dismukes  <dismukes@adacore.com>
23503             Javier Miranda  <miranda@adacore.com>
23504
23505         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23506         type by valid test and generate warning.
23507         (Tagged_Membership): Generate call to the run-time
23508         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23509         Change formal name Subtype_Mark to Result_Definition in several calls to
23510         Make_Function_Specification.
23511         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23512         check for proper accessibility of the operand of a class-wide allocator.
23513         The check can be left out if checks are suppressed or if the expression
23514         has a specific tagged type whose level is known to be safe.
23515
23516         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23517         generates the run-time check associated with null-excluding entities.
23518         (Expand_N_Return_Statement): Add tests to determine if the accessibility
23519         check on the level of the return expression of a class-wide function
23520         can be elided. The check usually isn't needed if the expression has a
23521         specific type (unless it's a conversion or a formal parameter). Also
23522         add a test for whether accessibility checks are suppressed. Augment
23523         the comments to describe the conditions for performing the check.
23524
23525 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
23526             Javier Miranda  <miranda@adacore.com>
23527             Gary Dismukes  <dismukes@adacore.com>
23528             Ed Schonberg  <schonberg@adacore.com>
23529
23530         * a-tags.adb (IW_Membership): Give support to
23531         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23532         subprogram has been extended to look for the tag in the ancestors tag
23533         table.
23534         Update the structure of the GNAT Dispatch Table to reflect the
23535         additional two tables used in dispatching selects.
23536         Introduce appropriate array types and record components in
23537         Type_Specific_Data to reflect the two tables.
23538         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23539         the TSD of a tag, indexed by position.
23540         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23541         operation kind in the TSD of a tag, indexed by position.
23542
23543         * a-tags.ads: Introduce an enumeration type to capture different
23544         primitive operation kinds. Define a constant reflecting the number of
23545         predefined primitive operations.
23546         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23547         of an entry wrapper.
23548         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23549         callable entity of a primitive operation.
23550
23551         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23552         primitive operations used in dispatching selects for limited
23553         interfaces, limited tagged, task and protected types what implement a
23554         limited interface.
23555         (Freeze_Type): Generate the bodies of the primitive operations used in
23556         dispatching selects for limited tagged, task and protected types that
23557         implement a limited interface. Generate statements to populate the two
23558         auxiliary tables used for dispatching in select statements.
23559         (Freeze_Record_Type): Add call to initialize the dispatch table entries
23560         associated with predefined interface primitive operations.
23561         (Build_Dcheck_Function): Change Set_Subtype_Mark to
23562         Set_Result_Definition.
23563         (Build_Variant_Record_Equality): Change Subtype_Mark to
23564         Result_Definition.
23565         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23566         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23567         (Build_Assignment): Simplify the code that adds the run-time-check.
23568         (Expand_N_Object_Declaration): Code cleanup.
23569
23570         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23571         entries when there is a protected type that implements a limited
23572         interface.
23573
23574         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23575         common routines used in expansion of dispatching selects.
23576         (Add_Private_Declarations): Select the appropriate protection type when
23577         there is a protected type that implements a limited interface.
23578         (Build_Parameter_Block): Generate a wrapped parameter block.
23579         (Build_Protected_Subprogram_Body): Select the appropriate type for
23580         locking entries when there is a protected type that implements a
23581         limited interface.
23582         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23583         classified as entry wrappers.
23584         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23585         asynchronous selects.
23586         (Expand_N_Conditional_Entry_Call): Add support for expansion of
23587         dispatching conditional selects.
23588         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23589         protection when there is a protected type that implements limited
23590         interfaces.
23591         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23592         timed selects.
23593         (Extract_Dispatching_Call): Extract the entity of the name of a
23594         dispatching call, the object parameter, actual parameters and
23595         corresponding formals.
23596         (Make_Initialize_Protection): Correct logic of protection initialization
23597         when there is a protected type that implements a limited interface.
23598         (Parameter_Block_Pack): Populate a wrapped parameter block with the
23599         values of actual parameters.
23600         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23601         block and assign them to the original actual parameters.
23602
23603         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23604         (Build_Protected_Sub_Specification): Change the type and name of the
23605         last formal to account for the increased variety of protection modes.
23606
23607         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23608         entities. Used to save the value of the Is_Hidden attribute when the
23609         limited-view is installed.
23610         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23611         the attribute of procedures classified as entry wrappers.
23612         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23613         entity of a primitive wrapper.
23614         (Write_Entity_Flags): Output the name and value of the
23615         Is_Primitive_Wrapper attribute.
23616         (Write_Field27_Name): Output the name and entity of the field Wrapped_
23617         Entity.
23618         (Underlying_Type): If we have an incomplete entity that comes from
23619         the limited view then we return the Underlying_Type of its non-limited
23620         view if it is already available.
23621         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23622         including operators.
23623         (Write_Field26_Name): Add entry for Overridden_Operation
23624         (Overridden_Operation): New attribute of functions and procedures.
23625
23626         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23627         predefined position in the dispatch table for the primitive operations
23628         used in dispatching selects.
23629         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23630         predefined primitive operations and replace it with
23631         Default_Prim_Op_Count.
23632         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23633         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23634         the names of the generated primitive operations used in dispatching
23635         selects.
23636         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23637         case of abstract interface types. They will be inherit by the objects
23638         implementing the interface.
23639         (Make_DT): There is no need to inherit the dispatch table of the
23640         ancestor interface for the elaboration of abstract interface types.
23641         The dispatch table will be inherited by the object implementing the
23642         interface.
23643         (Copy_Secondary_DTs): Add documentation.
23644         (Validate_Position): Improve this static check in case of
23645         aliased subprograms because aliased subprograms must have
23646         the same position.
23647         (Init_Predefined_Interface_Primitives): New subprogram that initializes
23648         the entries associated with predefined primitives of all the secondary
23649         dispatch tables.
23650         (Build_Anonymous_Access_Type): Removed.
23651         (Expand_Interface_Actuals): With the previous cleanup there is no need
23652         to build an anonymous access type. This allows further cleanup in the
23653         code generated by the expander.
23654         (Expand_Interface_Conversion): If the actual is an access type then
23655         build an internal function to handle the displacement. If the actual
23656         is null this function returns null because no displacement is
23657         required; otherwise performs a type conversion that will be
23658         expanded in the code that returns the value of the displaced actual.
23659         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23660         conversions that have no effect in the generated code because no
23661         displacement is required. Code cleanup; use local variables to
23662         avoid repeated calls to the subprogram directly_designated_type().
23663
23664         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23665         Classify the primitive operations used in dispatching selects as
23666         predefined.
23667         (Implements_Limited_Interface): Determine whether some type either
23668         directly implements a limited interface or extends a type that
23669         implements a limited interface.
23670         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23671         (Expand_Subtype_From_Expr): Do not build actual subtype if the
23672         expression is limited.
23673         (Find_Interface_Tag): Add code to handle class-wide types and
23674         entities from the limited-view.
23675
23676         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23677         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23678         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23679         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23680         Set_Prim_Op_Kind.
23681
23682         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23683         of procedure name or prefix that appears as a trigger in a triggering
23684         alternative.
23685
23686         * uintp.ads: Introduce constants Uint_11 and Uint_13.
23687
23688 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23689
23690         * s-tataat.adb, a-tasatt.adb:
23691         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23692
23693         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23694         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23695         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
23696         longer used.
23697
23698 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23699             Jose Ruiz  <ruiz@adacore.com>
23700
23701         * s-taprop-vxworks.adb:
23702         Move with clauses outside Warnings Off now that dependent units are
23703         Preelaborate.
23704         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
23705         initialization of this unit.
23706         (Specific): Add new procedures Initialize and Delete so that this
23707         package can be used for VxWorks 5.x and 6.x
23708         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
23709         differences between VxWorks 5.x and 6.x
23710         Minor reformatting.
23711         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
23712         caller.
23713         Use only Preelaborate-compatible constructs.
23714
23715         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
23716         Primitives.Operations.
23717         (Delete, Initialize): New procedures.
23718
23719         * s-osinte-vxworks.adb: Body used to handle differences between
23720         VxWorks 5.x and 6.x
23721         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
23722
23723         * s-osinte-vxworks.ads: Minor reformatting.
23724         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
23725         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
23726         and 6.
23727         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
23728         between Vxworks 5 and 6.
23729         (taskLock, taskUnlock): Removeed, no longer used.
23730
23731         * adaint.c: The wait.h header is not located in the sys directory on
23732         VxWorks when using RTPs.
23733         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
23734         using RTPs.
23735         (__gnat_dup): dup is available on Vxworks when using RTPs.
23736         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
23737
23738         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
23739
23740         * expect.c: The wait.h header is not located in the sys directory on
23741         VxWorks when using RTPs.
23742
23743 2005-09-01  Thomas Quinot  <quinot@adacore.com>
23744
23745         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
23746
23747         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
23748
23749         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
23750         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23751         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
23752         g-soccon-freebsd.ads: Add new constants:
23753          IP_MULTICAST_IF
23754          SO_RCVTIMEO/SO_SNDTIMEO
23755          IOV_MAX
23756
23757         * gen-soccon.c:
23758         Move all target-specific file inclusions and macro definitions to
23759         gsocket.h, in order to ensure that any C code in socket.c will see a
23760         set of constants that is consistent with the contents of g-soccon.ads.
23761
23762         * gsocket.h: Code imported from gen-soccon.c:
23763         Move all target-specific file inclusions and macro definitions to
23764         gsocket.h, in order to ensure that any C code in socket.c will see a set
23765         of constants that is consistent with the contents of g-soccon.ads.
23766         This change also makes gen-soccon self-contained (removing dependencies
23767         upon GCC internal headers).
23768
23769         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
23770         iovecs at a time.
23771         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
23772
23773         * socket.c: Minor reformatting.
23774
23775 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23776             Thomas Quinot  <quinot@adacore.com>
23777
23778         * fname-sf.adb, mlib-tgt.ads,
23779         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
23780         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
23781         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
23782         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
23783         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
23784         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
23785         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
23786         makegpr.adb: Remove redundant use_clauses.
23787
23788 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
23789
23790         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
23791         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
23792         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
23793         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
23794         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
23795         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
23796         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
23797         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
23798         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
23799         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
23800         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
23801         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
23802         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
23803         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
23804         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
23805         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
23806         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23807         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23808         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
23809         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
23810         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
23811         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
23812         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
23813         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
23814         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
23815         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
23816         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
23817         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
23818         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
23819         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
23820         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
23821         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
23822         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
23823         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
23824         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
23825         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
23826         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
23827         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
23828         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
23829         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
23830         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
23831         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
23832         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
23833         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
23834         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
23835         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
23836         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
23837         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
23838         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
23839         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
23840         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
23841         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
23842         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
23843         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
23844         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
23845         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
23846         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
23847         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
23848         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
23849         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
23850         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
23851         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
23852         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
23853         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
23854         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
23855         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
23856         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
23857         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
23858         and always use the no parameter form for consistency.
23859
23860         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
23861
23862 2005-09-01  Robert Dewar  <dewar@adacore.com>
23863
23864         * binde.adb: Minor reformatting
23865         (Find_Elab_Order): Output warning if -p used with static elab order
23866
23867 2005-09-01  Robert Dewar  <dewar@adacore.com>
23868
23869         * checks.adb (Check_Needed): New procedure, deals with removing checks
23870         based on analysis of short-circuited forms. Also generates warnings for
23871         improper use of non-short-circuited forms.
23872         Code clean ups.
23873
23874 2005-09-01  Robert Dewar  <dewar@adacore.com>
23875
23876         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
23877         with 'Valid tests.
23878
23879 2005-09-01  Robert Dewar  <dewar@adacore.com>
23880
23881         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
23882         spec.
23883         Implement new insertion char < (conditional warning)
23884         * errutil.adb, erroutc.adb: Implement new insertion char <
23885         (conditional warning).
23886         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
23887         (Error_Msg_Warn): New variable for < insertion char.
23888         * prj-nmsc.adb: Implement new errout insertion char < (conditional
23889         warning).
23890         (Check_For_Source): Change value of Source_Id only after the current
23891         source has been dealt with.
23892
23893 2005-09-01  Robert Dewar  <dewar@adacore.com>
23894             Doug Rupp  <rupp@adacore.com>
23895
23896         * exp_attr.adb: Handle vax fpt for 'Valid attribute
23897         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
23898         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
23899         (Valid_D, Valid_F, Valid_G): New functions
23900
23901 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23902             Hristian Kirtchev  <kirtchev@adacore.com>
23903             Javier Miranda  <miranda@adacore.com>
23904
23905         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
23906         from object notation, the original node is unanalyzed and carries no
23907         semantic information, so that accessiblity checks must be performed on
23908         the type of the actual itself.
23909         (Expand_N_Subprogram_Declaration): Change last actual parameter for
23910         compatibility with Build_Protected_Sub_Specification.
23911         (Check_Overriding_Inherited_Interfaces): Add suport to handle
23912         overloaded primitives.
23913         (Register_Interface_DT_Entry): Use the new name of the formal
23914         the the calls to Expand_Interface_Thunk
23915
23916         * exp_dbug.ads: Augment comments on encoding of protected types to
23917         include the generation of dispatching subprograms when the type
23918         implements at least one interface.
23919
23920         * lib.ads: Extend information in Load_Stack to include whether a given
23921         load comes from a Limited_With_Clause.
23922
23923         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
23924         whether a potential circularity is harmless, because it includes units
23925         loaded through a limited_with clause. Extends previous treatment which
23926         did not handle properly arbitrary combinations of limited and
23927         non-limited clauses.
23928
23929 2005-09-01  Nicolas Setton  <setton@adacore.com>
23930
23931         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
23932         to be encoded as typ___XBLU_lowerbound__upperbound instead of
23933         typ___XB_lowerbound__upperbound.
23934
23935 2005-09-01  Thomas Quinot  <quinot@adacore.com>
23936
23937         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
23938         dummy access formal for RACW/RAS TypeCode TSS.
23939         (Build_TypeCode_Call): Do not generate dummy null access actual for
23940         calls to the TypeCode TSS.
23941
23942 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
23943
23944         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
23945         fully qualified name, to distinguish instances with the same local name.
23946
23947         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
23948         fully qualified.
23949
23950 2005-09-01  Robert Dewar  <dewar@adacore.com>
23951
23952         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
23953         packed arrays.
23954
23955 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
23956
23957         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
23958         (Free): New deallocation procedure for filter elements
23959         (Close): Deallocate any existing filter for the concerned connection
23960
23961 2005-09-01  Laurent Pautet  <pautet@adacore.com>
23962
23963         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
23964         position set is provided, we compute one in order to reduce the maximum
23965         length of the keys.  This computation first selects a character
23966         position between 1 and the minimum length of the keys in order to
23967         avoid reducing one of the keys to an empty string.
23968         (Initialize, Compute): When the ratio V to K is too low, the algorithm
23969         does not converge. The initialization procedure now comes with a
23970         maximum number of iterations such that when exceeded, an exception is
23971         raised in Compute. The user can initialize this ratio to another value
23972         and try again
23973         Reformating and updated headers.
23974
23975 2005-09-01  Javier Miranda  <miranda@adacore.com>
23976
23977         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
23978         that given an entity T creates and returns an Itype that duplicates the
23979         contents of T. The returned Itype has the null-exclusion
23980         attribute set to True, and its Etype attribute references T
23981         to keep the association between the two entities.
23982         Update copyright notice
23983
23984         * sem_aggr.adb (Check_Can_Never_Be_Null,
23985         Aggregate_Constraint_Checks, Resolve_Aggregate,
23986         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
23987
23988         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
23989
23990 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
23991             Robert Dewar  <dewar@adacore.com>
23992             Hristian Kirtchev  <kirtchev@adacore.com>
23993
23994         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
23995         Result_Definition.
23996
23997         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
23998         function specs.
23999         Call Set_Result_Definition instead of Set_Subtype_Mark.
24000         (P_Subprogram_Specification): Add parsing of anonymous access result
24001         plus null exclusions. Call Set_Result_Definition instead of
24002         Set_Subtype_Mark.
24003
24004         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24005         (P_Access_Type_Definition): Add parsing for an anonymous access result
24006         subtype, plus parsing for null exclusions. Call Set_Result_Definition
24007         instead of Set_Subtype_Mark.
24008
24009         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24010         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24011         (Result_Definition): New function for N_Function_Specifications.
24012         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24013         N_Function_Specification.
24014         (Set_Null_Exclusion_Present): Allow this flag for
24015         N_Function_Specification.
24016         (Set_Result_Definition): New procedure for N_Function_Specifications.
24017         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24018         and N_Function_Specification.
24019
24020         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24021         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24022         Add support for LIMITED NEW for Ada 2005 AI-419
24023         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24024         syntax for anonymous access results.
24025         Replace Subtype_Mark field by Result_Definition in
24026         N_Function_Specification and N_Access_Definition specs.
24027         Add Null_Exclusion_Present to spec of N_Function_Specification.
24028         (Result_Definition): New function for N_Function_Specification and
24029         N_Access_Function_Definition.
24030         (Set_Result_Definition): New procedure for N_Function_Specification and
24031         N_Access_Function_Definition.
24032
24033         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24034         Result_Definition for cases of N_Access_Function_Definition and
24035         N_Function_Specification.
24036         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24037
24038 2005-09-01  Vincent Celier  <celier@adacore.com>
24039
24040         * lib-writ.adb: Update Copyright notice
24041         (Write_With_Lines): On platforms where file names are case-insensitive,
24042         record the file names in lower case.
24043         (Write_ALI): For D lines, on platforms where file names are
24044         case-insensitive, record the file names in lower case.
24045
24046 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24047             Emmanuel Briot  <briot@adacore.com>
24048
24049         * lib-xref.adb (Output_Overridden_Op): Display information on
24050         overridden operation.
24051
24052         * lib-xref.ads: Add documentation on overridden operations.
24053
24054         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24055         information.
24056
24057         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24058         overriding entity information.
24059
24060 2005-09-01  Vincent Celier  <celier@adacore.com>
24061
24062         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24063         including those that are inherited.
24064
24065 2005-09-01  Robert Dewar  <dewar@adacore.com>
24066
24067         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24068
24069         * par-prag.adb: Implement new pragma Debug_Policy
24070
24071         * sem_prag.adb Implement new pragma Debug_Policy
24072         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24073         Component_Size attribute specification. Give warning for ignored pragma
24074         Pack.
24075
24076         * snames.h, snames.ads, snames.adb: Introduce entries in
24077         Preset_Names for Name_Disp_Asynchronous_Select,
24078         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24079         Name_Disp_Timed_Select.
24080         New pragma Debug_Policy
24081
24082         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24083         explicitly.
24084         Switch -gnata also sets Debug_Pragmas_Enabled
24085
24086         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24087         handle an explicit -gnata when compiling predefined files.
24088
24089 2005-09-01  Vincent Celier  <celier@adacore.com>
24090
24091         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24092         directories of projects that have no Ada sources.
24093
24094 2005-09-01  Robert Dewar  <dewar@adacore.com>
24095
24096         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24097         (makes a difference for wide characters)
24098
24099         * widechar.adb, widechar.ads:
24100         Add Wide_Char_Byte_Count feature to count chars vs bytes
24101
24102 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24103             Ed Schonberg  <schonberg@adacore.com>
24104             Robert Dewar  <dewar@adacore.com>
24105
24106         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24107         'Address attribute reference with an overloaded prefix, use the
24108         location of the prefix (not the location of the attribute reference) as
24109         the error location.
24110         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24111         a function renaming thereof, is a valid prefix for 'Size (where it is
24112         intepreted as a function call).
24113         (Statically_Denotes_Entity): New predicate to determine whether the
24114         prefix of an array attribute can be considered static.
24115
24116         PR ada/9087
24117         (Eval_Attr): Fix failure to evaluate Component_Size for
24118         unconstrained arrays (resulted in wrong value in packed case, since
24119         back end cannot handle this case)
24120
24121 2005-09-01  Robert Dewar  <dewar@adacore.com>
24122
24123         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24124         error msgs for most common cases.
24125         Use new errout insertion char < (conditional warning)
24126
24127 2005-09-01  Javier Miranda  <miranda@adacore.com>
24128             Ed Schonberg  <schonberg@adacore.com>
24129
24130         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24131         become local to the whole package.
24132         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24133         the package was already analyzed the new algorithm "replaces" the
24134         real entities by the shadow ones. This is required to ensure that
24135         the order of these entities in the homonym chains does not change;
24136         otherwise we can have undefined references at linking time because
24137         in case of conflicts the external name of the entities will have
24138         a suffix that depends on the order of the entities in the chain.
24139         (Remove_Limited_With_Clause): Complementary code that completes the
24140         new algorithm and replaces the shadow entities by the real ones.
24141         (Install_Limited_Withed_Unit): When unchaining entities before the
24142         installation of the shadow entities, only regular entities of the
24143         public part must be taken into account. This is required to
24144         keep this routine in synch with the work done by Remove_Limited_
24145         With_Clause
24146         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24147         even if unit is analyzed, because the analysis of the unit is
24148         idempotent in any case, and the limited view of the unit may have to
24149         be installed for proper visibility.
24150         (Expand_Limited_With_Clause): Even if the unit in the implicit
24151         with_clause has been analyzed already, a limited view of the package
24152         must be built for the current context, if it does not exist yet.
24153
24154 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24155             Javier Miranda  <miranda@adacore.com>
24156             Gary Dismukes  <dismukes@adacore.com>
24157
24158         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24159         defining entity for the instance body, make a new defining identifier
24160         rather than copying the entity of the spec, to prevent accidental
24161         sharing of the entity list.
24162         (Check_Private_View): When exchanging views of private types, build the
24163         list of exchanged views as a stack, to ensure that on exit the exchanges
24164         are undone in the proper order.
24165         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24166         Restore the compilation environment in case of instantiation_error.
24167         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24168         for an anonymous access result.
24169         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24170         (Formal_Entity): Handle properly the case of a formal package that
24171         denotes a generic package renaming.
24172
24173 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24174
24175         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24176         clause if the array aggregate is surrounded by parentheses.
24177
24178 2005-09-01  Cyrille Comar  <comar@adacore.com>
24179             Gary Dismukes  <dismukes@adacore.com>
24180             Ed Schonberg  <schonberg@adacore.com>
24181             Javier Miranda  <miranda@adacore.com>
24182
24183         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24184         underlying type
24185         to check if a type is Constrained in cases related to code generation
24186         (rather than semantic checking) since otherwise we do not generate
24187         similar code for mutable private types depending if their
24188         discriminants are visible or not.
24189         (Check_Abstract_Overriding): Do not complain about failure to override
24190         the primitive operations used in dispatching selects since they will
24191         always be overriden at the freeze point of the type.
24192         (Access_Definition): Separate out handling for resetting the scope
24193         of an anonymous access function result type. Retrieve the scope
24194         of the associated function rather than using Current_Scope, which
24195         does not have a consistent value (depends on whether we're in the
24196         middle of analyzing formal parameters). Add ??? comment about
24197         finding a cleaner way to handle the special cases of scope setting.
24198         (Process_Incomplete_Dependents): A protected operation is never a
24199         dispatching operation (only its wrapper may be).
24200         (Build_Derived_Record_Type): In case of tagged private types that
24201         implement interfaces add derivation of predefined primitive
24202         operations.
24203         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24204         by two parameters that are used in case of derivation from abstract
24205         interface types: No_Predefined_Prims is used to avoid the derivation
24206         of predefined primitives from the interface, and Predefined
24207         Prims_Only is used to complete the derivation predefined primitives
24208         in case of private tagged types implementing interfaces.
24209         Fix typo in comments
24210         (Find_Interface_In_Descendant): Protect the frontend against
24211         wrong code with large circularity chains.
24212         (Is_Private_Overriding): Add support for entities overriding interface
24213         subprograms. The test failed because Entities associated with overriden
24214         interface subprograms are always marked as hidden (and used to build
24215         the secondary dispatch table); in this case the overriden entity is
24216         available through the field abstract_interface_alias (cf. override_
24217         dispatching_operation)
24218         (Access_Definition): Set the scope of the type to Current_Scope for the
24219         case of a function with an anonymous access result type.
24220         (Access_Subprogram_Declaration): Handle creation of the type entity for
24221         an access-to-function type with an anonymous access result.
24222         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24223         in handling for N_Access_Function_Definition.
24224         (Analyze_Subtype_Declaration): Modify the text of error message.
24225         (Derived_Type_Declaration): Modify the text of error message.
24226         (Process_Subtype): Modify the text of error message plus cleanup
24227         of one redundant error message.
24228         (Analyze_Component_Declaration): Code cleanup.
24229         (Analyze_Object_Declaration): Code cleanup.
24230         (Analyze_Subtype_Declaration): Propagate the null-exclusion
24231         attribute in case of access types. Code cleanup.
24232         (Array_Type_Declaration): Code cleanup.
24233         (Process_Discriminants): Create the new null-excluding itype
24234         if required. Code cleanup.
24235         (Process_Subtype): Create the new null-excluding itype if
24236         required. Code cleanup.
24237         (Build_Derived_Record_Type): Code cleanup to avoid calling
24238         twice the subprogram derive_subprograms in case of private
24239         types that implement interfaces. In this particular case the
24240         subprogram Complete_Subprograms_Derivation already does the
24241         job associated with the second call.
24242
24243         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24244         conversion to the full view when generating an operation for a
24245         discriminant whose type may currently be private.
24246
24247 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24248             Javier Miranda  <miranda@adacore.com>
24249
24250         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24251         V (Obj.F), the rewriting does not involve the indexed component, but
24252         only the selected component itself.
24253         Do not apply the transformation if the analyzed node is an actual of a
24254         call to another subprogram.
24255         (Complete_Object_Operation): Retain the entity of the
24256         dispatching operation in the selector of the rewritten node. The
24257         entity will be used in the expansion of dispatching selects.
24258         (Analyze_One_Call): Improve location of the error message associated
24259         with interface.
24260         (Analyze_Selected_Component): No need to resolve prefix when it is a
24261         function call, resolution is done when parent node is resolved, as
24262         usual.
24263         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24264         when attempting to resolve a call transformed from its object notation.
24265         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24266         of the argument list for each interpretation of the operation.
24267         (Try_Object_Operation): The designated type of an access parameter may
24268         be an incomplete type obtained through a limited_with clause, in which
24269         case the primitive operations of the type are retrieved from its full
24270         view.
24271         (Analyze_Call): If this is an indirect call, and the return type of the
24272         access_to_subprogram is incomplete, use its full view if available.
24273
24274 2005-09-01  Javier Miranda  <miranda@adacore.com>
24275             Gary Dismukes  <dismukes@adacore.com>
24276
24277         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24278         access types the null-exclusion and access-to-constant attributes must
24279         also match.
24280         (Analyze_Return_Statement): When the result type is an anonymous access
24281         type, apply a conversion of the return expression to the access type
24282         to ensure that appropriate accessibility checks are performed.
24283         (Analyze_Return_Type): For the case of an anonymous access result type,
24284         generate the Itype and set Is_Local_Anonymous_Access on the type.
24285         Add ??? placeholder for check to disallow returning a limited object
24286         in Ada 2005 unless it's an aggregate or a result of a function call.
24287         Change calls from Subtype_Mark to Result_Definition.
24288         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24289         Result_Definition in call to Make_Function_Specification.
24290         (Build_Body_To_Inline): Change Set_Subtype_Mark to
24291         Set_Result_Definition.
24292         (Make_Inequality_Operator): Change formal Subtype_Mark to
24293         Result_Definition in call to Make_Function_Specification.
24294         (Process_Formals): Create the new null-excluding itype if required.
24295         (New_Overloaded_Entity): For an entity overriding an interface primitive
24296         check if the entity also covers other abstract subprograms in the same
24297         scope. This is required to handle the general case, that is, overriding
24298         other interface primitives and overriding abstract subprograms inherited
24299         from some abstract ancestor type.
24300         (New_Overloaded_Entity): For an overriding entity that comes from
24301         source, note the operation that it overrides.
24302         (Check_Conformance, Type_Conformant): Addition of one new formal
24303         to skip controlling formals in the analysis. This is used to
24304         handle overloading of abstract interfaces.
24305         (Base_Types_Match): Add missing case for types imported from
24306         limited-with clauses
24307         (New_Overloaded_Entity): Add barrier to protect the use of
24308         the "alias" attribute.
24309
24310 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24311
24312         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24313         verify that the procedure and the entry are mode conformant.
24314         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24315         as a different operator, which is often a cut-and-paste error.
24316
24317 2005-09-01  Javier Miranda  <miranda@adacore.com>
24318             Ed Schonberg  <schonberg@adacore.com>
24319
24320         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24321         used in controlling parameters exclude null because it is necessary to
24322         read the tag to dispatch, and null has no tag.
24323         (Override_Dispatching_Operation): If the previous operation is inherited
24324         from an interface, it becomes hidden  and does not participate in later
24325         name resolution.
24326
24327 2005-09-01  Javier Miranda  <miranda@adacore.com>
24328             Ed Schonberg  <schonberg@adacore.com>
24329             Gary Dismukes  <dismukes@adacore.com>
24330
24331         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24332         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24333         the expander will generate the corresponding run-time check to evaluate
24334         the expression.
24335         (Resolve_Call): Check for legal type of procedure name or prefix that
24336         appears as a trigger in a triggering alternative.
24337         (Valid_Conversion): If expression is ambiguous and the context involves
24338         an extension of System, remove System.Address interpretations.
24339         (Resolve_Qualified_Expression): Reject the case of a specific-type
24340         qualification applied to a class-wide argument. Enhance comment
24341         to explain checking of Original_Node.
24342         (Resolve_Type_Conversion): The location of the error message was not
24343         general enough to handle the general case and hence it has been removed.
24344         In addition, this patch improves the text of the message.
24345         (Resolve_Type_Conversion): Add missing support for access to interface
24346         types.
24347         (Resolve_Type_Conversion): If the target is a class-wide interface type,
24348         do not expand if the expression is the actual in a call, because proper
24349         expansion will take place when the call itself is expanded.
24350         (Resolve_Allocator): If the context is an unchecked conversion, the
24351         allocator inherits its storage pool, if any, from the target type of
24352         the conversion.
24353
24354 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24355             Javier Miranda  <miranda@adacore.com>
24356
24357         * sem_type.adb (Add_One_Interp): If a candidate operation is an
24358         inherited interface operation that has an implementation, use the
24359         implementation to avoid spurious ambiguities.
24360         (Interface_Present_In_Ancestor): In case of concurrent types we can't
24361         use the Corresponding_Record_Typ attribute to look for the interface
24362         because it is set by the expander (and hence it is not always
24363         available). For this reason we traverse the list of interfaces
24364         (available in the parent of the concurrent type).
24365         (Interface_Present_In_Ancestor): Handle entities from the limited view
24366
24367 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24368
24369         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24370         from the list of required components.
24371         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24372         primitive procedure of a limited interface with a controlling first
24373         parameter.
24374         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24375         of an entry.
24376         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24377         capture if it is generated in the second operand of a short-circuit
24378         operation.
24379         Do not capture values for variables with address clauses.
24380         (Is_Object_Reference): Treat a function call as an object reference only
24381         if its type is not Standard_Void_Type.
24382
24383 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24384
24385         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24386         to a variable that is statically known to be constant.
24387
24388 2005-09-01  Geert Bosch  <bosch@adacore.com>
24389             Robert Dewar  <dewar@adacore.com>
24390
24391         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24392         (VAXGF_Safe_First): Idem.
24393
24394 2005-09-01  Robert Dewar  <dewar@adacore.com>
24395             Arnaud Charlet  <charlet@adacore.com>
24396
24397         * g-dirope.ads: Minor reformatting
24398         Document that bounds of result of Base_Name match the input index
24399         positions.
24400         Add documentation on environment variable syntax for Expand_Path
24401
24402         * gnat_ugn.texi: Update documentation to include mention of -m switches
24403         Document new treatment of wide characters in max line length
24404         style check.
24405         Remove -gnatL/-gnatZ switches, no longer used.
24406         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24407         of -gnata switch.
24408
24409         * gnat_rm.texi: Add doc for two argument form of pragma
24410         Float_Representation.
24411         Add documentation for pragma No_Strict_Aliasing
24412         Add note that explicit component clause overrides pragma Pack.
24413         Add documentation of pragma Debug_Policy
24414
24415 2005-09-01  Matthew Heaney  <heaney@adacore.com>
24416
24417         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24418         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24419         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
24420         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24421         draft (Draft 13, August 2005) of Ada Amendment 1.
24422
24423 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24424
24425         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24426         Note that the platform-specific version of g-soccon.ads for VMS is now
24427         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24428         really is a package spec).
24429         Replace s-taspri-linux.ads by s-taspri-posix.ads
24430         Remove references to s-mastop-x86.adb
24431
24432         * system-vxworks-xscale.ads: Removed, no longer used.
24433         * s-vxwork-xscale.ads: Removed, no longer used.
24434
24435 2005-09-01  Robert Dewar  <dewar@adacore.com>
24436
24437         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24438         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24439         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24440         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24441         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24442         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24443         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24444         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24445         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24446         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24447         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24448         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24449         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24450         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24451         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24452         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24453         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24454         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24455         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24456         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24457         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24458
24459 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24460
24461         PR ada/23187
24462         * adaint.c
24463         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
24464
24465 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24466             Doug Rupp  <rupp@adacore.com>
24467
24468         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24469         when needed.
24470         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24471         this code in the GNAT run-time.
24472
24473         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24474
24475         PR ada/21053
24476         * init.c (__gnat_error_handler [many]): Mark "msg" as const
24477         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24478
24479         (__gnat_inside_elab_final_code): Moved here from
24480         Standard_Library and only defined for the compiler.
24481         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24482         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24483         using RTPs because directly vectored Interrupt routines are not
24484         supported on this configuration.
24485         (getpid): Do not redefine this function on VxWorks when using RTPs
24486         because this primitive is well supported by the RTP libraries.
24487         (copy_msg): Correct the code that checks for buffer overflow.
24488         Discovered during code reading.
24489
24490 2005-08-29  Olivier Hainque  <hainque@adacore.com>
24491
24492         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24493         a library level mutable variable with an initializer, tell
24494         build_allocator to ignore the initializer's size. It may not be large
24495         enough for all the values that might be assigned to the variable later
24496         on.
24497
24498 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
24499             Eric Botcazou  <ebotcazou@adacore.com>
24500
24501         * trans.c: Protect < in error msg with quote
24502         Replace GCC_ZCX by Back_End_Exceptions.
24503         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24504         has been sufficiently aligned in the record.
24505
24506 2005-08-15  James E. Wilson  <wilson@specifix.com>
24507
24508         * system-linux-alpha.ads: Change ia64 to alpha.
24509
24510 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
24511
24512         * decl.c, utils.c: Fix comment typos.
24513
24514 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
24515
24516         * decl.c, init.c, initialize.c: Fix comment typos.
24517
24518 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
24519
24520         Make CONSTRUCTOR use VEC to store initializers.
24521         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24522         CONSTRUCTOR_ELTS.
24523         * trans.c (extract_values): Likewise.
24524         * utils.c (convert, remove_conversions): Likewise.
24525         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24526         gnat_build_constructor): Likewise.
24527
24528 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24529
24530         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24531         DECL_SECTION_NAME.
24532         (compare_field_bitpos): Likewise.
24533
24534 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
24535
24536         * utils.c (create_var_decl): Only set DECL_COMMON on
24537         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24538         VAR_OR_FUNCTION_DECL_P.
24539
24540 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
24541
24542         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24543         removed.
24544
24545 2005-07-07  Pascal Obry  <obry@adacore.com>
24546
24547         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24548         returned type on Windows.
24549
24550         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24551         routine.
24552
24553         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24554         exception in this case.
24555         Simplify the code as "Image (Image'Range)" = "Image".
24556
24557 2005-07-07  Vincent Celier  <celier@adacore.com>
24558
24559         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24560         the destructor/constructor attributes for <lib>final/<lib>init.
24561
24562         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24563
24564 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
24565
24566         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24567         type if the parameter is not passed by copy but reference by default.
24568
24569 2005-07-07  Javier Miranda  <miranda@adacore.com>
24570
24571         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24572         Reimplementation of the support for abstract interface types in order
24573         to leave the code more clear and easy to maintain.
24574
24575         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24576         abstract interface types in order to leave the code clearer and easier
24577         to maintain.
24578
24579         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24580         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24581         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24582         appropriate entry of the secondary dispatch table.
24583         (Make_DT): Add code to inherit the secondary dispatch tables of
24584         the ancestors.
24585
24586         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24587         implementing both functionalities by means of a common routine, each
24588         routine has its own code.
24589
24590 2005-07-07  Javier Miranda  <miranda@adacore.com>
24591
24592         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24593
24594         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24595         types:
24596         --
24597           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24598         --
24599
24600         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24601         use of tag incomplete types.
24602
24603         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24604         give support to tagged incomplete types.
24605
24606         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24607         expression is a discriminant reference and its type is private, as can
24608         happen within a stream operation for a mutable record, use the full
24609         view of the type to resolve the case alternatives.
24610         (Analyze_Assignment): Check wrong dereference of incomplete types.
24611
24612         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24613         types.
24614
24615         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24616         incomplete types.
24617
24618         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24619         N_Incomplete_Type_Declaration nodes.
24620
24621         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24622         Tag_Present to give support to tagged incomplete types:
24623         --
24624           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24625         --
24626
24627 2005-07-07  Olivier Hainque  <hainque@adacore.com>
24628
24629         PR ada/22301
24630         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24631         definitions for the Unwind wrappers in the compiler case.
24632
24633 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24634             Javier Miranda  <miranda@adacore.com>
24635
24636         * par-load.adb (Load): If a child unit is loaded through a limited_with
24637         clause, each parent must be loaded as a limited unit as well.
24638
24639         * sem_ch10.adb (Previous_Withed_Unit): Better name for
24640         Check_Withed_Unit. Return true if there is a previous with_clause for
24641         this unit, whether limited or not.
24642         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24643         the current unit.
24644         (Is_Visible_Through_Renamings): New local subprogram of install_limited
24645         _withed_unit that checks if some package installed through normal with
24646         clauses has a renaming declaration of package whose limited-view is
24647         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24648         of the current Draft document for Ada 2005.
24649         (Analyze_Context): Complete the list of compilation units that
24650         are allowed to contain limited-with clauses. It also contains
24651         checks that were previously done by Install_Limited_Context_Clauses.
24652         This makes the code more clear and easy to maintain.
24653         (Expand_Limited_With_Clause) It is now a local subprogram of
24654         Install_Limited_Context_Clauses, and contains the code that adds
24655         the implicit limited-with clauses for parents of child units.
24656         This functionality was prevously done by Analyze_Context.
24657
24658         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24659         incomplete type.
24660
24661         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24662         been erroneously named in a limited-with clause of its own context.
24663         In this case the error has been previously notified by Analyze_Context.
24664
24665 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
24666
24667         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24668         generic package that contains local declarations with the same name.
24669         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24670
24671 2005-07-07  Bernard Banner  <banner@adacore.com>
24672
24673         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24674         ia64 platform only on platforms that you the GCC unwind library
24675         rather than the system unwind library.
24676
24677 2005-07-07  Thomas Quinot  <quinot@adacore.com>
24678
24679         * expect.c: Minor reformatting
24680
24681 2005-07-07  Sergey Rybin  <rybin@adacore.com>
24682
24683         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24684         --no-separate-is
24685
24686         * gnat_ugn.texi: Add description for new gnatpp option
24687         (--no-separate-is)
24688
24689 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24690
24691         * g-expect-vms.adb, g-expect.ads, g-expect.adb
24692         (Get_Command_Output): New subprogram to launch a process and get its
24693         standard output as a string.
24694
24695 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
24696             Olivier Hainque  <hainque@adacore.com>
24697
24698         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
24699         fetch a code-range descriptor associated with the machine state. On
24700         failure set the machine state's PC to 0; on success, pass the
24701         descriptor to exc_virtual_unwind.
24702
24703         * init.c (Tru64 section): New function __gnat_set_code_loc.
24704
24705 2005-07-04  Vincent Celier  <celier@adacore.com>
24706
24707         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24708         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24709         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
24710         Remove all auto-initialization code, as this is now done through the
24711         constructor mechanism.
24712
24713         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
24714         __gnat_sals_init_using_constructors): New functions.
24715
24716         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
24717         Linker_Constructor and Linker_Destructor when switch -a is used.
24718
24719         * bindusg.adb: Add line for new switch -a
24720
24721         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
24722         (Gnatbind): When switch -a is used, check if it is allowed
24723
24724         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
24725
24726 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
24727
24728         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
24729         This prevents us from hitting a limitation during the debug info
24730         generation when using stabs.
24731         (Prims_Ptr): Likewise.
24732
24733 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
24734             Ed Schonberg  <schonberg@adacore.com>
24735             Javier Miranda  <miranda@adacore.com>
24736
24737         * checks.adb (Null_Exclusion_Static_Checks): In the case of
24738         N_Object_Declaration, only perform the checks if the Object_Definition
24739         is not an Access_Definition.
24740
24741         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
24742         where the parent of an the access definition is an N_Object_Declaration
24743         when determining the Associated_Node_For_Itype and scope of an
24744         anonymous access-to-subprogram type.
24745
24746         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
24747         Corresponding_Spec on the body created for a null procedure. Add ???
24748         comment. Remove New_Copy_Tree call on body argument to
24749         Set_Body_To_Inline.
24750
24751         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
24752         discriminants, use the type of the actual as well, because the
24753         discriminants may be read by the called subprogram.
24754
24755         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
24756         access type we do not need to handle non-limited views.
24757         (Build_Derived_Record_Type): Additional check to check that in case of
24758         private types, interfaces are only allowed in private extensions.
24759
24760 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
24761
24762         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
24763         <Pragma_Linker_Destructor>: Likewise.
24764
24765         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
24766         Pragma_Linker_Destructor.
24767
24768         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
24769         ATTR_LINK_DESTRUCTOR.
24770         (static_ctors, static_dtors): New variables.
24771
24772         * misc.c (gnat_expand_body): Output current function as constructor
24773         and destructor if requested.
24774
24775         * par-prag.adb: Add processing for pragma Linker_Constructor and
24776         Linker_Destructor.
24777
24778         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
24779         extracted from Check_Interrupt_Or_Attach_Handler.
24780         (Check_Interrupt_Or_Attach_Handler): Invoke it.
24781         Implement pragma Linker_Constructor and Linker_Destructor with the
24782         help of Find_Unique_Parameterless_Procedure.
24783         Replace Name_Alias with Name_Target for pragma Linker_Alias.
24784
24785         * snames.h, snames.ads, snames.adb:
24786         Add Name_Linker_Constructor and Name_Linker_Destructor.
24787         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
24788         * snames.adb: Remove Name_Alias.
24789
24790         * trans.c: Include cgraph.h.
24791         (build_global_cdtor): New function.
24792         (Compilation_Unit_to_gnu): Build global constructor and destructor if
24793         needed.
24794         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
24795         of objects too.
24796         (addressable_p) <COMPONENT_REF>: Unconditionally test
24797         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
24798
24799         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
24800         variable if it is external.
24801
24802         (static_ctors, static_dtors): New global variables.
24803         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
24804         <ATTR_LINK_DESTRUCTOR>: Likewise.
24805         (end_subprog_body): Chain function as constructor and destructor
24806         if requested.
24807
24808         * exp_util.adb (Force_Evaluation): Unconditionally invoke
24809         Remove_Side_Effects with Variable_Ref set to true.
24810         (Remove_Side_Effects): Handle scalar types first. Use a renaming
24811         for non-scalar types even if Variable_Ref is true and for class-wide
24812         expressions.
24813
24814 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24815
24816         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
24817         to prevent spurious warnings.
24818
24819 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24820
24821         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
24822         Itypes. Itypes are really unexpected there.
24823         (Build_TypeCode_Function): Generalise special processing for Itypes to
24824         handle the case of numeric implicit base types as well as enumerated
24825         ones.
24826
24827 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24828
24829         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
24830         controlled, indicate the expected type of the dereference that is
24831         created for the call to Deep_Finalize, to prevent spurious errors when
24832         the designated type is private and completed with a derivation from
24833         another private type.
24834
24835 2005-07-04  Vincent Celier  <celier@adacore.com>
24836
24837         * make.adb (Change_To_Object_Directory): When unable to change the
24838         current dir to the object directory, output the full path of the
24839         directory.
24840
24841 2005-07-04  Matthew Gingell  <gingell@adacore.com>
24842
24843         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
24844
24845         * indepsw-linux.adb: Replace by...
24846
24847         * indepsw-gnu.adb: ...this new file
24848
24849 2005-07-04  Vincent Celier  <celier@adacore.com>
24850
24851         * mlib-prj.adb (Auto_Initialize): New constant String
24852         (SALs_Use_Constructors): New Boolean function
24853         (Build_Library): Call gnatbind with Auto_Initialize switch when
24854         SALs_Use_Constructors returns True.
24855
24856         * mlib-tgt.ads: Minor reformatting
24857
24858         * mlib-utl.ads: Minor reformatting
24859
24860         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
24861
24862 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24863
24864         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
24865         single protected declarations can have an interface list.
24866         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
24867         with seriously malformed entry declarations, and lead to compilation
24868         abandoned messages.
24869
24870 2005-07-04  Javier Miranda  <miranda@adacore.com>
24871
24872         * par-load.adb: Load the context items in two rounds.
24873
24874 2005-07-04  Robert Dewar  <dewar@adacore.com>
24875
24876         * scng.adb: Do not consider Mod used as an attribute to be a keyword
24877
24878 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24879             Javier Miranda  <miranda@adacore.com>
24880
24881         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
24882         type extension needs a limited view.
24883         Remove previous restriction on private types available through the
24884         limited-view (only tagged private types were previously allowed).
24885         (Install_Withed_Unit): In the code that implements the
24886         legality rule given in AI-377, exclude a child unit with the name
24887         Standard, because it is a homonym of the Standard environment package.
24888
24889 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24890
24891         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
24892         overloaded function call, carry interpretations from the original tree
24893         to the copy.
24894
24895 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24896
24897         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
24898         types check whether some designated type is a limited view, and use
24899         the non-limited view if available.
24900
24901 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
24902
24903         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
24904         constraint of full view of a private view T1 if present, when T2 is a
24905         discriminated full view.
24906
24907 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24908
24909         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
24910         actual that is a view conversion of a bit packed array reference.
24911
24912 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24913
24914         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
24915         present before checking whether an interface type covers a synchronized
24916         type.
24917
24918 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
24919
24920         * sem_util.adb (Is_Object_Reference): An indexed or selected component
24921         whose prefix is an implicit dereference is an object reference. Removes
24922         spurious errors when compiling with -gnatc.
24923
24924 2005-07-04  Robert Dewar  <dewar@adacore.com>
24925
24926         PR ada/22039
24927         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
24928
24929 2005-07-04  Matthew Gingell  <gingell@adacore.com>
24930
24931         * tracebak.c: Enable tracebacks on ia64 platforms
24932
24933 2005-07-04  Vincent Celier  <celier@adacore.com>
24934
24935         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
24936         the GNAT BIND command, as gnatbind accepts multiples ALI files with
24937         the -L or -n switches.
24938
24939 2005-07-04  Vincent Celier  <celier@adacore.com>
24940
24941         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
24942         correctly computed and the main project data is not modified while
24943         doing so.
24944         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
24945         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
24946         c++linker as this does not work on some platforms.
24947
24948 2005-07-04  Matthew Heaney  <heaney@adacore.com>
24949
24950         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
24951         was changed.
24952         * a-coinve.adb: Perform constraint checks explicitly.
24953
24954 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24955             Thomas Quinot  <quinot@adacore.com>
24956
24957         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
24958         new target gen-soccon.
24959
24960 2005-07-04  Robert Dewar  <dewar@adacore.com>
24961
24962         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
24963
24964 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24965
24966         * g-socket.ads (Check_Selector): Minor rewording of comment.
24967
24968 2005-07-04  Vincent Celier  <celier@adacore.com>
24969
24970         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
24971
24972 2005-07-04  Thomas Quinot  <quinot@adacore.com>
24973
24974         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
24975
24976 2005-07-04  Sergey Rybin  <rybin@adacore.com>
24977
24978         * gnat_ugn.texi: Add description of --eol gnatpp option
24979
24980 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
24981             Thomas Quinot  <quinot@adacore.com>
24982
24983         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
24984         if the user wants all calls of a subprogram to be flagged,
24985         independently of whether they are made from within the same unit or
24986         another unit.
24987         Mention restriction for pragma Linker_Alias on some platforms.
24988         Document pragma Linker_Constructor and Linker_Destructor.
24989         Rewrite documentation of Weak_External, Linker_Section and
24990         Linker_Alias pragmas.
24991
24992 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
24993
24994         * s-stausa.ads, s-stausa.adb: New files.
24995
24996 2005-06-30  Kelley Cook
24997
24998         * all files:  Update FSF address in copyright headers.
24999         * gen-soccon.co (main): Output new FSF address in generated files.
25000
25001 2005-06-28  Paul Brook  <paul@codesourcery.com>
25002
25003         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25004
25005 2005-06-14  Olivier Hainque  <hainque@adacore.com>
25006             Eric Botcazou  <ebotcazou@adacore.com>
25007
25008         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25009         exc_unwind, now that we are generating proper .debug_frame output for
25010         that target.
25011
25012         * tracebak.c: Remove the mips-irix section, as we are now using the
25013         s-mastop based unwinder again.
25014         Under SPARC/Solaris, take into account the stack bias to compute the
25015         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
25016         ABI.
25017
25018 2005-06-14  Doug Rupp  <rupp@adacore.com>
25019
25020         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25021
25022         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25023
25024 2005-06-14  Pascal Obry  <obry@adacore.com>
25025
25026         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25027         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25028         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25029         package name).
25030
25031         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25032         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25033         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25034         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25035         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25036         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25037         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25038         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25039         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25040         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25041         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25042         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25043         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25044         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25045         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25046         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25047         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25048         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25049         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25050         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25051         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25052         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25053         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25054         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25055         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25056         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25057         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25058         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25059         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25060         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25061         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25062         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25063         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25064         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25065         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25066         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25067         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25068         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25069         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25070         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25071         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25072         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25073         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25074         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25075         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25076         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25077         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25078         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25079         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25080         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25081         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25082         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25083         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25084         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25085         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25086         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25087         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25088         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25089         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25090         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25091         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25092         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25093         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25094         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25095         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25096         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25097         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25098         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25099         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25100         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25101         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25102         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25103         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25104         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25105         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25106         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25107         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25108         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25109         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25110         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25111         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25112         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25113         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25114         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25115         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25116         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25117         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25118         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25119         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25120         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25121         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25122         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25123         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25124         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25125         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25126         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25127         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25128         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25129         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25130         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25131         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25132         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25133         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25134         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25135         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25136         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25137         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25138         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25139         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25140         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25141         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25142         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25143         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25144         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25145         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25146         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25147         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25148         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25149         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25150         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25151         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25152         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25153         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25154         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25155         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25156         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25157         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25158         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25159         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25160         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25161         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25162         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25163         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25164
25165 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
25166             Arnaud Charlet  <charlet@adacore.com>
25167
25168         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25169         longer protected objects. They have been replaced by lower-level
25170         suspension objects made up by a mutex and a condition variable (or
25171         their equivalent given a particular OS) plus some internal data to
25172         reflect the state of the suspension object.
25173         (Initialize, Finalize): Add this initialization procedure for
25174         Suspension_Object, which is a controlled type.
25175         (Finalize): Add the finalization procedure for Suspension_Object,
25176         which is a controlled type.
25177
25178         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25179         Ada.Synchronous_Task_Control because there is no longer a need for a
25180         VxWorks specific version of this package. Target dependencies
25181         has been moved to System.Task_Primitives.Operations.
25182
25183         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25184         longer needed.
25185         (InitializeCriticalSection, EnterCriticalSection,
25186         LeaveCriticalSection, DeleteCriticalSection): Replace the type
25187         pCriticalSection by an anonymous access type so that we avoid problems
25188         of accessibility to local objects.
25189
25190         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25191         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25192         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25193         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25194         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25195         set the environment task mask here.
25196         (Current_State): Add this function that returns the state of the
25197         suspension object.
25198         (Set_False): Add this procedure that sets the state of the suspension
25199         object to False.
25200         (Set_True): Add this procedure that sets the state of the suspension
25201         object to True, releasing the task that was suspended, if any.
25202         (Suspend_Until_True): Add this procedure that blocks the calling task
25203         until the state of the object is True. Program_Error is raised if
25204         another task is already waiting on that suspension object.
25205         (Initialize): Add this procedure for initializing the suspension
25206         object. It initializes the mutex and the condition variable which are
25207         used for synchronization and queuing, and it sets the internal state
25208         to False.
25209         (Finalize): Add this procedure for finalizing the suspension object,
25210         destroying the mutex and the condition variable.
25211
25212         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25213         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25214         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25215         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25216         which provides a low-level abstraction (using operating system
25217         primitives) for Ada.Synchronous_Task_Control.
25218         This object is made up by a mutex (for ensuring mutual exclusion), a
25219         condition variable (for queuing threads until the condition is
25220         signaled), a Boolean (State) indicating whether the object is open,
25221         and a Boolean (Waiting) reflecting whether there is a task already
25222         suspended on this object.
25223
25224         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25225         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25226         s-intman-vms.ads, s-intman-mingw.adb,
25227         (Initialize_Interrupts): Removed, no longer used.
25228
25229         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25230         (Setup_Interrupt_Mask): New procedure.
25231
25232         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
25233
25234         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25235
25236         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25237         this is no longer done in the body of s-taprop
25238         (Server_Task): Explicitely test for Pending_Action in case
25239         System.Parameters.No_Abort is True.
25240
25241         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25242         is no longer done in the body of s-taprop
25243
25244 2005-06-14  Robert Dewar  <dewar@adacore.com>
25245
25246         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25247         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25248         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25249         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25250         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25251         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25252         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25253         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25254         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25255         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25256         system-linux-hppa.ads, system-vms_64.ads,
25257         system-vxworks-alpha.ads: Minor comment update for
25258         AI-362 (unit is Pure).
25259
25260         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25261         Add pragma Pure_05 for AI-362
25262         Make remaining conversion functions obsolescent in Ada 95
25263
25264         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25265         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25266         Add entries for a-wichun and a-zchuni
25267         Add a-widcha a-zchara for AI-395
25268         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25269
25270         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25271         Add entries for a-wichun.o and a-zchuni.o
25272         Entries for a-widcha.o and a-zchara.o
25273         Add entry for a-chacon.o
25274
25275         * a-ztenau.adb: Add with of Ada.Characters.Conversions
25276
25277         * a-chacon.ads, a-chacon.adb: New files.
25278
25279         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25280         categorization violations.
25281
25282         * a-strmap.ads: Add pragma Pure_05 for AI-362
25283         * a-strmap.ads: Add note on implicit categorization for AI-362
25284
25285         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25286
25287         * par-prag.adb: Dummy entry for pragma Persistent_BSS
25288         Set Ada_Version_Explicit, for implementation of AI-362
25289         Add processing for pragma Pure_05 and Preelaborate_05
25290         Add entry for Assertion_Policy pragma
25291
25292         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25293         when needed for proper processing of categorization stuff
25294
25295         * sem_cat.adb:
25296         For several cases, make errors in preealborate units warnings,
25297         instead of errors, if GNAT_Mode is set. For AI-362.
25298
25299         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25300         preelaborate unit is now warning if in GNAT mode
25301
25302         * s-stoele.ads: Document AI-362 for pragma preelaborate
25303
25304 2005-06-14  Doug Rupp  <rupp@adacore.com>
25305
25306         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25307         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25308         Default_Exception_Msg_Max_Length: new parameter.
25309
25310         * a-except.ads: (Exception_Msg_Max_Length): Set to
25311         System.Parameters.Default_Exception_Msg_Max_Length
25312         Add pragma Preelaborate_05 for AI-362
25313         Add warnings off to allow categorization violations for AI-362
25314
25315 2005-06-14  Vincent Celier  <celier@adacore.com>
25316
25317         * gnatsym.adb: Adapt to modification of package Symbols: procedure
25318         Process is now in package Processing.
25319
25320         * symbols.ads, symbols.adb:
25321         (Processing): New package, containing procedure Process
25322
25323         * symbols-vms-alpha.adb:
25324         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25325
25326         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25327         symbols-processing-vms-ia64.adb: New files.
25328
25329 2005-06-14  Pascal Obry  <obry@adacore.com>
25330
25331         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25332         implementation. This new version generates the proper DllMain routine
25333         to initialize the SAL. The DllMain is generated in Ada and compiled
25334         before being added as option to the library build command.
25335
25336 2005-06-14  Doug Rupp  <rupp@adacore.com>
25337             Pascal Obry  <obry@adacore.com>
25338
25339         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25340         call to decc$translate_vms.
25341         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25342         need to remove those quotes before catenating the filename.
25343         (__gnat_locate_exec_on_path): improvements to the Win32 section:
25344         * avoid allocating the memory twice for better efficiency;
25345         * allocate 32K buffer for environment expansion as suggested by MSDN;
25346         * prepend ".;" to the path so that current directory is searched too.
25347
25348 2005-06-14  Robert Dewar  <dewar@adacore.com>
25349
25350         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25351         instead of raising CE (AI-241)
25352         Add warnings off to allow categorization violations for AI-362
25353
25354 2005-06-14  Robert Dewar  <dewar@adacore.com>
25355
25356         * ali-util.adb, gnatbind.adb: Remove references to
25357         Force_RM_Elaboration_Order.
25358
25359         * switch-b.adb: Remove recognition of -f switch
25360
25361 2005-06-14  Pascal Obry  <obry@adacore.com>
25362
25363         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25364         implementation which is slightly more efficient.
25365
25366 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
25367             Javier Miranda  <miranda@adacore.com>
25368             Ed Schonberg  <schonberg@adacore.com>
25369             Hristian Kirtchev  <kirtchev@adacore.com>
25370
25371         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25372         allocator's designated type is a class-wide type, and compiling for
25373         Ada 2005, emit a run-time check that the accessibility level of the
25374         type given in the allocator's expression is not deeper than the level
25375         of the allocator's access type.
25376
25377         (Tagged_Membership): Modified to gives support to abstract interface
25378         types.
25379
25380         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25381         Access_Level.
25382         (Descendant_Tag): New predefined function
25383         (Is_Descendant_At_Same_Level): New predefined function
25384         (Get_Access_Level): New private function
25385         (Set_Access_Level): New private procedure
25386         (IW_Membership): New function. Given the tag of an object and the tag
25387         associated with an interface, evaluate if the object implements the
25388         interface.
25389         (Register_Interface_Tag): New procedure used to initialize the table of
25390         interfaces used by the IW_Membership function.
25391         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25392         of the dispatch table.
25393         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25394         table of interfaces of the parent.
25395         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25396         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25397         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25398         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25399         Ada 2005 semantics for the new predefined function.
25400
25401         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25402         call to Descendant_Tag rather than Internal_Tag.
25403         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25404         the accessibility level of the attribute's Item parameter is not deeper
25405         than the level of the attribute's prefix type. Tag_Error is raised if
25406         the check fails. The check is only emitted for Ada_05.
25407         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25408         requested stream attribute, use it.
25409         (Expand_N_Attribute_Reference): If the designated type is an interface
25410         then rewrite the referenced object as a conversion to force the
25411         displacement of the pointer to the secondary dispatch table.
25412         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25413         is a dereference of an object with a constrained partial view.
25414
25415         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25416         type is a class-wide type, emit a run-time check that the accessibility
25417         level of the returned object is not deeper than the level of the
25418         function's master (only when compiling for Ada 2005).
25419
25420         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25421         Action_Nb_Arg): Add entries for new Get_Access_Level and
25422         Set_Access_Level routines in these tables.
25423         (Make_DT): Generate a call to set the accessibility level of the
25424         tagged type in its TSD.
25425         (Make_DT): Code cleanup. The functionality of generating all the
25426         secondary dispatch tables has been moved to freeze_record_type.
25427         (Make_Abstract_Interface_DT): Minor code cleanup.
25428         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25429         this subprogram implements a new algorithm that provides the
25430         same functionality and it is more clear in case of primitives
25431         associated with abstract interfaces.
25432         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25433         clean up, the functionality of this subprogram is now provided
25434         by Set_All_DT_Position.
25435         (Write_DT): New subprogram: a debugging procedure designed to be called
25436         within gdb to display the dispatch tables associated with a tagged
25437         type.
25438         (Collect_All_Interfaces): New subprogram that collects the whole list
25439         of interfaces that are directly or indirectly implemented by a tagged
25440         type.
25441         (Default_Prim_Op_Position): New subprogram that returns the fixed
25442         position in the dispatch table of the default primitive operations.
25443         (Expand_Interface_Actuals): New subprogram to generate code that
25444         displaces all the actuals corresponding to class-wide interfaces to
25445         reference the interface tag of the actual object.
25446         (Expand_Interface_Conversion): New subprogram. Reference the base of
25447         the object to give access to the interface tag associated with the
25448         secondary dispatch table.
25449         (Expand_Interface_Thunk): New subprogram that generates the code of the
25450         thunk. This is required for compatibility with the C+ ABI.
25451         (Make_Abstract_Interface_DT): New subprogram that generate the
25452         declarations for the secondary dispatch tables associated with an
25453         abstract interface.
25454         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25455         attribute for each primitive operation covering interface subprograms
25456         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25457         These subprograms were upgraded to give support to abstract interfaces
25458
25459         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25460         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25461         RE_Set_Access_Level.
25462         (RE_Unit_Table): Add entries for new Ada.Tags operations.
25463         Add support to call the followig new run-time subprograms:
25464         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25465
25466         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25467         match its full declaration when both have an access definition with
25468         statically matching designated subtypes.
25469         (Analyze_Component_Declaration): Delete commented out code that was
25470         incorrectly setting the scope of an anonymous access component's type.
25471         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25472         an access discriminant when the containing type is nonlimited.
25473         (Make_Incomplete_Type_Declaration): Create an incomplete type
25474         declaration for a record type that includes self-referential access
25475         components.
25476         (Check_Anonymous_Access_Types): Before full analysis of a record type
25477         declaration, create anonymous access types for each self-referential
25478         access component.
25479         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25480         an access component in this context is a Local_Anonymous_Access, for
25481         proper accessibility checks.
25482         (Access_Definition): Set properly the scope of the anonymous access type
25483         created for a stand-alone access object.
25484         (Find_Type_Of_Object): An object declaration may be given with an access
25485         definition.
25486         (Complete_Subprograms_Derivation): New subprogram used to complete
25487         type derivation of private tagged types implementing interfaces.
25488         In this case some interface primitives may have been overriden
25489         with the partial-view and, instead of re-calculating them, they
25490         are included in the list of primitive operations of the full-view.
25491         (Build_Derived_Record_Type): Modified to give support to private
25492         types implemening interfaces.
25493         (Access_Definition): Reject ALL on anonymous access types.
25494         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25495         type derivation to occur at a deeper accessibility level than the
25496         parent type.
25497         For the case of derivation within a generic body however, disallow the
25498         derivation if the derived type has an ancestor that is a formal type
25499         declared in the formal part of an enclosing generic.
25500         (Analyze_Object_Declaration): For protected objects, remove the check
25501         that they cannot contain interrupt handlers if not declared at library
25502         level.
25503         (Add_Interface_Tag_Components): New subprogram to add the tag components
25504         corresponding to all the abstract interface types implemented by a
25505         record type or a derived record type.
25506         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25507         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25508         Process_Full_View, Record_Type_Declaration): Modified to give
25509         support to abstract interface types
25510         (Collect_Interfaces): New subprogram that collects the list of
25511         interfaces that are not already implemented by the ancestors
25512         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25513         when partial view has no discriminants and full view has defaults.
25514         (Constrain_Access): Reject a constraint on a general access type
25515         if the discriminants of the designated type have defaults.
25516         (Access_Subprogram_Declaration): Associate the Itype node with the inner
25517         full-type declaration or subprogram spec. This is required to handle
25518         nested anonymous declarations.
25519         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25520         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25521         Process_Full_View, Record_Type_Declaration): Modified to give
25522         support to abstract interface types
25523         (Derive_Subprograms): Addition of a new formal to indicate if
25524         we are in the case of an abstact-interface derivation
25525         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25526         to the specification because it is requied to analyze all the
25527         identifiers found in a list of interfaces
25528
25529         * debug.adb: Complete documentation of flag "-gnatdZ"
25530
25531         * exp_ch3.adb: Implement config version of persistent_bss pragma
25532         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25533         testing for TSS presence to properly enforce visibility rules.
25534         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25535         Make_Abstract_Interfaces_DT to generate the secondary tables
25536         associated with abstract interfaces.
25537         (Build_Init_Procedure): Modified to initialize all the tags
25538         corresponding.
25539         (Component_Needs_Simple_Initialization): Similar to other tags,
25540         interface tags do not need initialization.
25541         (Freeze_Record_Type): Modified to give support to abstract interface
25542         types.
25543         (Expand_N_Object_Declaration): Do not generate an initialization for
25544         a scalar temporary marked as internal.
25545
25546         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25547         in-out parameter that is a component in an initialization procedure,
25548         whose constraint might depend on discriminants, and that may be
25549         misaligned because of packing or representation clauses.
25550         (Is_Legal_Copy): New predicate to determine whether a possibly
25551         misaligned in-out actual can actually be passed by copy/return. This
25552         is an error in case the type is by_reference, and a warning if this is
25553         the consequence of a DEC import pragma on the subprogram.
25554         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25555         interface types
25556         (Expand_Inlined_Call): Mark temporary generated for the return value as
25557         internal, so that no useless scalar normalization is generated for it.
25558         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25559         null procedure can always be inlined.
25560         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25561         procedure, generate an explicit empty body for it.
25562
25563         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25564         Given a type implementing an interface, returns the corresponding
25565         access_disp_table value.
25566         (Find_Interface_Tag): New subprogram. Given a type implementing an
25567         interface, returns the record component containing the tag of the
25568         interface.
25569         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25570         previous ones that return the corresponding tag and access_disp_table
25571         entities.
25572         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25573         is a predefined primitive operation.
25574         (Expand_Subtype_From_Expr): If the expression is a selected component
25575         within an initialization procedure, compute its actual subtype, because
25576         the component may depend on the discriminants of the enclosing record.
25577
25578         * i-cpp.ads, i-cpp.adb:
25579         This package has been left available for compatibility with previous
25580         versions of the frontend. As part of the new layout this is now a
25581         dummy package that uses declarations available at a-tags.ads
25582
25583         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25584         "constant access" and "aliased [constant] access" when not compiling
25585         with -gnat05.
25586         Suppress Ada 2005 keyword warning if -gnatwY used
25587         (P_Identifier_Declarations): Add support for object declarations with
25588         access definitions.
25589         (Private_Extension_Declaration): Complete the documentation
25590         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25591         attribute in case of private extension declaration
25592         (P_Type_Declaration): Mark as "abstract" the type declarations
25593         corresponding with protected, synchronized and task interfaces
25594         (P_Declarative_Items): "not" and "overriding" are overriding indicators
25595         for a subprogram or instance declaration.
25596
25597         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25598         instantiation that is a dispatching operation has controlling access
25599         parameters that are null excluding.
25600         Save and restore Ada_Version_Explicit, for implementation of AI-362
25601         (Validate_Derived_Type_Instance): Add check for abstract interface
25602         types.
25603         (Analyze_Formal_Package): Establish Instantiation source for the copy of
25604         the generic that is created to represent the formal package.
25605         (Analyze_Package_Instantiation): Instantiate body immediately if the
25606         package is a predefined unit that contains inlined subprograms, and
25607         we are compiling for a Configurable_Run_Time.
25608         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25609         If the program has a null default, generate an empty body for it.
25610
25611         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25612         error message condition, null procedures are correctly detected now.
25613         (New_Overloaded_Entity): Bypass trivial overriding indicator check
25614         for subprograms in the context of protected types. Instead, the
25615         indicator is examined in Sem_Ch9 while analysing the subprogram
25616         declaration.
25617         (Check_Overriding_Indicator): Check consistency of overriding indicator
25618         on subprogram stubs as well.
25619         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25620         the library level.
25621         (Analize_Subprogram_Specification): When analyzing a subprogram in which
25622         the type of the first formal is a concurrent type, replace this type
25623         by the corresponding record type.
25624         (Analyze_Subprogram_Body): Undo the previous work.
25625         (Analyze_Procedure_Call): If the call has the form Object.Op, the
25626         analysis of the prefix ends up analyzing the call itself, after which
25627         we are done.
25628         (Has_Interface_Formals): New subprogram subsidiary to analyze
25629         subprogram_specification that returns true if some non
25630         class-wide interface subprogram is found
25631         (New_Overloaded_Entity): Modified to give support to abstract
25632         interface types
25633         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25634         access to subprograms must be recursive.
25635         (Is_Unchecked_Conversion): Improve the test that recognizes
25636         instantiations of Unchecked_Conversion, and allows them in bodies that
25637         are to be inlined by the front-end. When the body comes from an
25638         instantiation, a reference to Unchecked_Conversion will be an
25639         Expanded_Name, even though the body has not been analyzed yet.
25640         Replace Is_Overriding and Not_Overriding in subprogram_indication with
25641         Must_Override and Must_Not_Override, to better express intent of AI.
25642         (Analyze_Subprogram_Body): If an overriding indicator is given, check
25643         that it is consistent with the overrinding status of the subprogram
25644         at this point.
25645         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25646         always inlined.
25647         If the subprogram is a null procedure, indicate that it does not need
25648         a completion.
25649
25650         * sem_disp.adb (Check_Controlling_Type): Give support to entities
25651         available through limited-with clauses.
25652         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25653         allowed as the last primitive of a tagged type if it has no previous
25654         spec.
25655         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25656         to give support to abstract interface types
25657
25658         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25659         in the case where the target type is an anonymous access type of an
25660         object or component (that is, when Is_Local_Anonymous_Access is true).
25661         Prevent the special checks for conversions of access discriminants in
25662         the case where the discriminant belongs to a nonlimited type, since
25663         such discriminants have their accessibility level defined in the same
25664         way as a normal component of an anonymous access type.
25665         (Resolve_Allocator): When an allocator's designated type is a class-wide
25666         type, check that the accessibility level of type given in the
25667         allocator's expression or subtype indication is not statically deeper
25668         than the level of the allocator's access type.
25669         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25670         name in a discriminant constraint of a record component.
25671         (Resolve_Explicit_Dereference): Do not check whether the type is
25672         incomplete when the dereference is a use of an access discriminant in
25673         an initialization procedure.
25674         (Resolve_Type_Conversion): Handle conversions to abstract interface
25675         types.
25676         (Valid_Tagged_Conversion): The conversion of a tagged type to an
25677         abstract interface type is always valid.
25678         (Valid_Conversion): Modified to give support to abstract interface types
25679         (Resolve_Actuals): Enable full error reporting on view conversions
25680         between unrelated by_reference array types.
25681         The rule for view conversions of arrays with aliased components is
25682         weakened in Ada 2005.
25683         Call to obsolescent subprogram is now considered to be a violation of
25684         pragma Restrictions (No_Obsolescent_Features).
25685         (Check_Direct_Boolean_Operator): If the boolean operation has been
25686         constant-folded, there is nothing to check.
25687         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25688         check on possible violation of restriction No_Direct_Boolean_Operators
25689         until after expansion of operands, to prevent spurious errors when
25690         operation is constant-folded.
25691
25692         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25693         Has_Compatible_Type): Modified to give support to abstract interface
25694         types.
25695         (Interface_Present_In_Ancestor): New function to theck if some ancestor
25696         of a given type implements a given interface
25697
25698         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
25699         prefix is a parameterless function that returns an access_to_procedure.
25700         (Transform_Object_Operation): Handle properly function calls of the
25701         form Obj.Op (X), which prior to analysis appear as indexed components.
25702         (Analyze_One_Call): Complete the error notification to help new Ada
25703         2005 users.
25704         (Analyze_Allocator): For an allocator without an initial value, where
25705         the designated type has a constrained partial view, a discriminant
25706         constraint is illegal.
25707
25708 2005-06-14  Robert Dewar  <dewar@adacore.com>
25709
25710         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
25711         do with treatment of Set_Col when positioned at end of line character.
25712
25713 2005-06-14  Robert Dewar  <dewar@adacore.com>
25714
25715         * atree.adb: (Elist*): Protect against uninitialized field
25716
25717 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25718
25719         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
25720         for an attribute reference that returns an access type.
25721         (Apply_Discriminant_Check): No need for check if (designated) type has
25722         constrained partial view.
25723
25724         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
25725         both bound checks, rather than a conjunction.
25726         (Insert_Valid_Check): If the expression is an actual that is an indexed
25727         component of a bit-packed array, force expansion of the packed element
25728         reference, because it is specifically inhibited elsewhere.
25729
25730 2005-06-14  Vincent Celier  <celier@adacore.com>
25731
25732         * clean.adb (Clean_Project): Correctly delete executable specified as
25733         absolute path names.
25734
25735         * make.adb (Gnatmake): Allow relative executable path names with
25736         directory information even when project files are used.
25737         (Change_To_Object_Directory): Fail gracefully when unable to change
25738         current working directory to object directory of a project.
25739         (Gnatmake): Remove exception handler that could no longer be exercized
25740         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
25741         may be deallocated by Normalize_Arguments.
25742         (Collect_Arguments): Eliminate empty arguments
25743
25744         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
25745         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
25746         (Check_Project): Return False when Project is No_Project. Return True
25747         when All_Projects is True.
25748         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
25749         All_Projects to True.
25750         Minor reformatting
25751
25752 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25753             Javier Miranda  <miranda@adacore.com>
25754             Thomas Quinot  <quinot@adacore.com>
25755             Robert Dewar  <dewar@adacore.com>
25756             Hristian Kirtchev  <kirtchev@adacore.com>
25757             Gary Dismukes  <dismukes@adacore.com>
25758
25759         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
25760         anonymous access types, to indicate that the accessibility level of
25761         the type is determined by that of the enclosing declaration.
25762         (Has_Persistent_BSS): New flag
25763         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
25764         of this attribute with functions.
25765         (Is_Primitive_Wrapper): Remove the barrier.
25766         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
25767         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
25768         New subprograms.
25769         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
25770         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
25771         New subprograms.
25772         (Is_Pure_Unit_Access_Type): New flag
25773         (Abstract_Interfaces): Complete the assertion to cover all usages.
25774         (Set_Is_Interface): Complete the assertion to cover all usages.
25775         (Is_Primitive_Wrapper): New attribute.
25776         (Is_Obsolescent): Now applies to all entities (though it is only set
25777         for subprograms currently)
25778         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
25779         which solves various problems concerning access subtypes.
25780         (Has_Persistent_BSS): New flag
25781         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
25782         Remove these subprograms because this attribute is currently
25783         not used.
25784         New entity flags:
25785         Has_Specified_Stream_Input (Flag190)
25786         Has_Specified_Stream_Output (Flag191)
25787         Has_Specified_Stream_Read (Flag192)
25788         Has_Specified_Stream_Write (Flag193)
25789         Present in all type and subtype entities. Set for a given view if the
25790         corresponding stream-oriented attribute has been defined by an
25791         attribute definition clause. When such a clause occurs, a TSS is set
25792         on the underlying full view; the flags are used to track visibility of
25793         the attribute definition clause for partial or incomplete views.
25794         (Is_Pure_Unit_Access_Type): New flag
25795         Clarify use of Is_Internal.
25796         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
25797         internally generated to wrap the invocation of tasks and protected
25798         types that implement interfaces.
25799         (Implementation_Base_Type): Documentation correction
25800         (Is_Obsolescent): Now applies to all entities (though it is only set
25801         for subprograms currently)
25802         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
25803         which solves various problems concerning access subtypes.
25804
25805         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
25806         for examined parameters. Identify unequal parameter list lengths as
25807         non-conformant parameters.
25808         (Overriding_Possible): Do not check for "All" qualifier in declaration
25809         of controlling access parameter, following prescription of AI-404.
25810         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
25811         that build the procedure body that wraps an entry invocation
25812         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
25813         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
25814         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
25815         give support to abstract interface types
25816
25817         * freeze.adb (Freeze_Entity): Issue error message if
25818         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
25819         type has no storage pool (Ada 2005) AI-366.
25820         Also modified to give support to abstract interface types
25821         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
25822         Inline_Always pragma.
25823
25824         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
25825         now begin an entry declaration.
25826         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
25827         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
25828         a subprogram declaration preceded by an overriding indicator.
25829         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
25830         declarations or subprogram declarations preceded by reserved words
25831         "not" or "overriding".
25832         (P_Entry_Declaration): Update comment. Parse and check overriding
25833         indicator, set semantic flags of entry declarations.
25834         (P_Task): New error message in case of private applied
25835         to a task type declaration.
25836         (P_Protected): New error message in case of private applied
25837         to a task type declaration.
25838
25839         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
25840         in which the full view of a type implementing an interface is a
25841         concurrent type.
25842         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
25843         Declare_Inherited_Private_Subprograms): If an explicit operation
25844         overrides an operation that is inherited in the private part, mark the
25845         explicit one as overriding, to enable overriding indicator checks.
25846         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
25847         full view to partial view, to simplify handling in back-end.
25848
25849         * sprint.adb: Print interface lists where needed: derived types,
25850         protected types, task types.
25851         output "is null" for null procedures. Part of implementation of
25852
25853         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
25854         relaxation of rules for access types in pure, shared passive partitions.
25855
25856         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
25857         first read discriminants into temporary objects, performing checks on
25858         the read values, then possibly performing discriminant checks on the
25859         actual (if it is constrained), and only finally reading the components
25860         into a constrained temporary object.
25861         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
25862         case of reading discriminants of a mutable record type to recognize
25863         the new form of the code generated by
25864         Build_Mutable_Record_Read_Procedure.
25865
25866         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
25867         of a simple call to Make_TSS_Name.
25868         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
25869         buffer, in order for Is_TSS to work correctly on local TSS names.
25870
25871         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
25872         Is_Local_Anonymous_Access to check legaliy of attributes in the
25873         context of  access components and stand-alone access objects.
25874         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
25875         treated as available for a limited private type if there is an
25876         attribute_definition_clause that applies to its full view, but not in
25877         other cases where the attribute is available for the full view
25878         (specifically, the sole fact that the full view is non-limited does not
25879         make the attribute available for the partial view).
25880         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
25881         non-overloaded intrinsic subprogram.
25882         (Check_Stream_Attribute): Reject an attribute reference for an
25883         unavailable stream attribute even if the prefix is not a limited type
25884         (case of a 'Input attribute reference for an abstract, non-classwide
25885         type)
25886         (Stream_Attribute_Available): New function to determine whether a stream
25887         attribute is available at a place.
25888         (Check_Attribute): Use Stream_Attribute_Available instead of just
25889         testing for TSS presence on the implementation base type.
25890         (Analyze_Attribute): Modified to give support to task interfaces.
25891         (Analyze_Access_Attribute): Add error check for use of an Access (or
25892         Unrestricted_Access) attribute with a subprogram marked as
25893         Inline_Always.
25894         (Analyze_Attribute, case Attribute_Address): Add error check for use of
25895         an Address attribute with a subprogram marked as Inline_Always.
25896         Update Eval_Attribute to handle new value of Width from AI-395
25897
25898         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
25899         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
25900         Factor common code across the stream-oriented attribute circcuits into
25901         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
25902         processing is functionally identical to the previous duplicated one,
25903         except that an expression that denotes an abstract subprogram will now
25904         be rejected, as mandated by AI-195 item 5.
25905
25906         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
25907         Is_Local_Anonymous_Access to apply accessibility checks to access
25908         components and stand-alone access objects.
25909         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
25910         elsewhere.
25911         (Is_Potentially_Persistent_Type): New function
25912         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
25913         a heap-object whose type has a constrained partial view, the object is
25914         unconstrained and the component may depend on a discriminant, making its
25915         renaming illegal.
25916
25917         * sinfo.ads, sinfo.adb
25918         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
25919         (Must_Override): Flag applicable to N_Entry_Declaration.
25920         Indicate that interface_list can appear in single task and single
25921         protected declarations.
25922         Replace Is_Overriding and Not_Overriding with Must_Override and
25923         Must_Not_Override, to better express intent of AI.
25924         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
25925         of an overriding indicator in a subprogram or instance.
25926         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
25927         Add the overriding indicator [[not] overriding] construct to the
25928         following grammar productions:
25929          ENTRY_DECLARATION
25930          GENERIC_INSTANTIATION
25931          SUBPROGRAM_SPECIFICATION
25932
25933         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
25934         can start with an overriding indicator.
25935
25936         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
25937         flags accordingly on subrogram specifications or instances.
25938
25939         * sem_ch8.adb:
25940         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
25941         overriding_indicator, if present, is consistent with status of spec.
25942         Improve error message for null-excluding checks on controlling access
25943         parameters.
25944         (Check_In_Previous_With_Clause): Protect the frontend against
25945         previously reported critical errors in the context clauses.
25946         Save and restore Ada_Version_Explicit, for implementation of AI-362
25947         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
25948         operation verify that controlling formals of the renamed entity that
25949         are access parameters are explicitly non-null.
25950         (Find_Expanded_Name): Improve error message when prefix is an illegal
25951         reference to a private child unit.
25952
25953         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
25954         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
25955         Rewrite to correspond to new wide character names in AI-395
25956
25957         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
25958         default procedures.
25959
25960 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25961             Robert Dewar  <dewar@adacore.com>
25962
25963         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
25964         code, not on the bodies of predefined operations, to cut down on
25965         spurious noise.
25966
25967 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25968
25969         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
25970         be expanded in place. The size computation does not require a
25971         subtraction, which would raise an exception on a compiler built with
25972         assertions when the upper bound is Integer'first.
25973         (Flatten): For an array of composite components, take into account the
25974         size of the components to determine whether it is safe to expand the
25975         array into a purely positional representation.
25976
25977 2005-06-14  Thomas Quinot  <quinot@adacore.com>
25978
25979         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
25980         denoting a formal parameter into account.
25981
25982 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
25983
25984         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
25985         the entry_call alternative of a conditional entry call, wrap the
25986         conditional entry call itself.
25987
25988 2005-06-14  Nicolas Setton  <setton@adacore.com>
25989             Ed Schonberg  <schonberg@adacore.com>
25990
25991         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
25992         the "simple_choice" member in a variant record, in accordance with the
25993         description in the package spec: the information output for a constant
25994         should be "S number", not "SS number".
25995         (Get_Encoded_Name): Return at once if not generating code. Avoids name
25996         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
25997
25998 2005-06-14  Thomas Quinot  <quinot@adacore.com>
25999
26000         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26001         RACW without any primitives, do not generate the if statement for
26002         dispatching by name in the PolyORB/DSA case, as it would be malformed
26003         (it would have an Elsif_Parts list that is not No_List, but with a
26004         length of 0).
26005
26006 2005-06-14  Robert Dewar  <dewar@adacore.com>
26007
26008         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26009
26010 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26011
26012         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26013         can determine whether pragma Suppress_Exception_Locations is in effect.
26014
26015         * utils2.c (build_call_raise): Do not pass the file name to the
26016         exception handler if pragma Suppress_Exception_Locations is in effect.
26017         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26018
26019 2005-06-14  Emmanuel Briot  <briot@adacore.com>
26020
26021         * g-debpoo.adb (Deallocate, Dereference): Improve output.
26022
26023 2005-06-14  Nicolas Roche  <roche@adacore.com>
26024
26025         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26026         to ""
26027         (Next_Level): Fix minor bug in handling of ../dir case
26028         (Read): Add dir separator to Directory name so that "" is understood as
26029          "/"
26030
26031 2005-06-14  Pascal Obry  <obry@adacore.com>
26032
26033         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26034         releasing the items.
26035
26036 2005-06-14  Vincent Celier  <celier@adacore.com>
26037             Cyrille Comar  <comar@adacore.com>
26038
26039         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26040         with output file descriptor and with output file name.
26041         (Dup, Dup2): Now global procedures as they are used by two subprograms
26042         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26043
26044 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26045
26046         PR ada/6717
26047         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26048         broadcast address.
26049         (Create_Selector): Bind listening socket used to create the signalling
26050         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26051         Set listen backlog to 1 to ensure that we detect socket theft by a
26052         failure of our own connect(2) call.
26053         (Check_Selector): Improve documentation of the selector mechanism.
26054         (Broadcast_Inet_Addr): New constant.
26055
26056 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26057
26058         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26059         type which turns out to be an incomplete and incorrect fix.
26060         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26061         of the type is declared in a record (for determination of insertion
26062         type).
26063         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26064         a private type and ensure that the primary entity is used for the type
26065         of the newly created function's V formal by taking the Etype of the
26066         view.
26067
26068 2005-06-14  Javier Miranda  <miranda@adacore.com>
26069             Jose Ruiz  <ruiz@adacore.com>
26070             Robert Dewar  <dewar@adacore.com>
26071             Ed Schonberg  <schonberg@adacore.com>
26072
26073         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26074         that indicates if we are parsing a compilation unit found in a
26075         limited-with clause.
26076         It is use to avoid the circularity check.
26077
26078         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26079         we are parsing a compilation unit found in a limited-with clause. This
26080         is use to avoid the circularity check.
26081
26082         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26083         unit as a consequence of parsing a limited-with clause. This is used
26084         to avoid the circularity check.
26085
26086         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26087         (Analyze_Context): Limited-with clauses are now allowed
26088         in more compilation units.
26089         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26090         againts previously reported critical errors in context clauses
26091         (Install_Limited_Withed_Unit): Code cleanup plus static detection
26092         of two further errors: renamed subprograms and renamed packages
26093         are not allowed in limited with clauses.
26094         (Install_Siblings): Do not install private_with_clauses on the package
26095         declaration for a non-private child unit.
26096         (Re_Install_Parents): When a parent of the subunit is reinstalled,
26097         reset visibility of child units properly.
26098         (Install_Withed_Unit): When a child unit appears in a with_clause of its
26099         parent, it is immediately visible.
26100
26101 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26102             Emmanuel Briot  <briot@adacore.com>
26103
26104         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26105         declared within an inlined body as referenced, to prevent spurious
26106         warnings.
26107         (Output_One_Ref): If an entity renames an array component, indicate in
26108         the ALI file that this aliases (renames) the array. Capture as well
26109         function renamings that rename predefined operations.
26110         Add information about generic parent for package and subprogram
26111         instances.
26112         (Get_Type_Reference): For a subtype that is the renaming of an actual in
26113         an instantiation, use the first_subtype to ensure that we don't generate
26114         cross-reference information for internal types.
26115         For objects and parameters of a generic private type, retain the '*'
26116         indicator to distinguish such an entity from its type.
26117
26118         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26119         to store information about instantiated entities.
26120
26121         * ali.adb (Scan_ALI): Add support for parsing the reference to the
26122         generic parent
26123
26124         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26125         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26126         information.
26127
26128 2005-06-10  Doug Rupp  <rupp@adacore.com>
26129             Arnaud Charlet  <charlet@adacore.com>
26130             Olivier Hainque  <hainque@adacore.com>
26131             Jose Ruiz  <ruiz@adacore.com>
26132
26133         * Make-lang.in: Add initialize.o when needed.
26134         Remove obsolete references to RT_FLAGS.
26135         Add missing dependencies for sdefault.o
26136
26137         * initialize.c: New file.
26138
26139         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26140         [VMS] cond_signal_table: Fix problem in declaration.
26141         [VMS] __gnat_error_handler: rewrite.
26142         Move all __gnat_initialize() routines to initialize.c
26143         Specialize the former "hpux" section to "hppa hpux", as this is what the
26144         section really is here for and we now have other hpux ports that need
26145         different contents.
26146         (__gnat_adjust_context_for_raise) i386-linux: First version of this
26147         function for this target. Adjust PC by one in the machine context. This
26148         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26149         it is more reliable to do that in the signal handler itself.
26150         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26151         flags, so that the handler is passed the context structure to adjust
26152         prior to the raise.
26153         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26154         SA_SIGINFO sigaction should look like. Call
26155         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26156         Machine_State_Operations stuff.
26157         Add conditional code so that the x86_64 is also supported.
26158
26159 2005-06-14  Pascal Obry  <obry@adacore.com>
26160
26161         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26162         the library name.
26163
26164 2005-06-14  Robert Dewar  <dewar@adacore.com>
26165
26166         * opt.ads, opt.adb: New flags for persistent_bss mode
26167         Add Ada_Version_Explicit, for implementation of AI-362
26168         Add Assertions_Enabled_Config and associated handling
26169         Needed since setting can be changed with Assertion_Policy pragma
26170         Add new flag Warn_On_Ada_2005_Compatibility
26171
26172         * switch-c.adb: Recognize -gnatwy/Y
26173         Set Ada_Version_Explicit, for implementation of AI-362
26174         The -gnatg switch now includes -gnatyu
26175
26176         * usage.adb: Add -gnatwy/Y
26177         Remove wrong asterisk on -gnatwX line
26178         Add line for -gnatyu switch
26179
26180 2005-06-14  Vincent Celier  <celier@adacore.com>
26181
26182         * osint.adb (Add_Default_Search_Dirs): Put source and object
26183         directories of project files before directories coming from
26184         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26185
26186 2005-06-14  Robert Dewar  <dewar@adacore.com>
26187
26188         PR ada/15613
26189         * par-ch2.adb (Scan_Pragma_Argument): New procedure
26190         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26191
26192 2005-06-14  Vincent Celier  <celier@adacore.com>
26193
26194         * prep.adb (Preprocess): Ignore error when scanning the first token of
26195         a line.
26196
26197 2005-06-14  Vincent Celier  <celier@adacore.com>
26198
26199         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26200         (Check_Stand_Alone_Library): If the specified reference symbol file does
26201         not exist, only issue a warning when the symbol policy is not
26202         Controlled. And, when symbol policy is Compliant, set the symbol
26203         policy to Autonomous.
26204
26205 2005-06-14  Vincent Celier  <celier@adacore.com>
26206
26207         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26208         when the project file in a with clause is not the last one, that is the
26209         project file name is followed by a comma.
26210         * prj-pp.adb: (First_With_In_List): New Boolean global variable
26211         (Print): Issue list of project files separated by commas in with clauses
26212         according to the values returned by Is_Not_Last_In_List.
26213         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26214         (Set_Is_Not_Last_In_List): New procedure
26215
26216 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26217
26218         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26219
26220 2005-06-14  Robert Dewar  <dewar@adacore.com>
26221
26222         * scng.adb: Add call to new Check_EOF routine
26223         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26224         Add some comments regarding wide character handling
26225
26226         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26227
26228         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26229
26230         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26231         characters are now considered graphic characters and hence yield false
26232         in this call.
26233
26234         * nmake.adt: Modify header so that xnmake does not generate output
26235         files with multiple blank lines.
26236
26237         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26238         not have an extra blank line
26239
26240 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26241
26242         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26243         expression when the component type is an anonymous access type to
26244         ensure that appropriate accessibility checks are done.
26245
26246         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26247         expression of an assignment when the target object is of an anonymous
26248         access type. This ensures that required accessibility checks are done.
26249         (One_Bound): Move the check for type Universal_Integer to
26250         Process_Bounds.
26251         (Process_Bounds): Check whether the type of the preanalyzed range is
26252         Universal_Integer, and in that case set Typ to Integer_Type prior
26253         to setting the type of the original range and the calls to One_Bound.
26254
26255 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26256
26257         * sem_case.adb (Expand_Others_Choice): Improve warning.
26258
26259 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26260
26261         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26262         constraint of full view if present, when other type is discriminated.
26263         (Eval_Relational_Op): Recognize tests of pointer values against Null,
26264         when the pointer is known to be non-null, and emit appropriate warning.
26265
26266 2005-06-14  Robert Dewar  <dewar@adacore.com>
26267             Ed Schonberg  <schonberg@adacore.com>
26268
26269         PR ada/10671
26270         * sem_prag.adb: Implement pragma Persistent_BSS
26271         Remove obsolete pragma Persistent_Data, Persistent_Object
26272         Set Ada_Version_Explicit, for implementation of AI-362
26273         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26274         Add processing for pragma Pure_05 and Preelaborate_05
26275         Add processing for Assertion_Policy pragma
26276         Add pragma identifiers for Assert
26277         (Analyze_Pragma, case Assert): Check number of arguments
26278         (Process_Inline): Additional guard against an illegal program, where the
26279         argument of the pragma is undefined, and warnings on redundant
26280         constructs are enabled.
26281         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26282         Ada_05 to this pragma, specifying that the pragma is only active in
26283         Ada_05 mode.
26284         (Check_Arg_Order): New procedure
26285         Add appropriate calls to this procedure throughout
26286         Also throughout, check entity name before doing any other checks
26287
26288         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26289         Remove obsolete pragma Persistent_Data, Persistent_Object
26290         Add entries for pragma Pure_05 and Preelaborate_05
26291         Add entries for Assertion_Policy pragma and associated names
26292         Add some names for pragma argument processing
26293
26294         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26295
26296 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26297
26298         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26299         appears within a negation (either from source or as a rewriting of
26300         inequality) adjust text of warning accordingly.
26301
26302 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26303
26304         * s-strxdr.adb: Follow AI95-00132
26305
26306 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26307
26308         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26309
26310 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26311             Jose Ruiz  <ruiz@adacore.com>
26312
26313         * s-tposen.adb, s-tpobop.adb
26314         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26315         the exception id.
26316         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26317         there is no violation of the Max_Entry_Queue_Length restriction (if it
26318         has been set); Program_Error is raised otherwise.
26319         (Requeue_Call): Before requeuing the task on the target entry queue we
26320         check that there is no violation of the Max_Entry_Queue_Length
26321         restriction (if it has been set); Program_Error is raised otherwise.
26322
26323 2005-06-14  Robert Dewar  <dewar@adacore.com>
26324
26325         * styleg.adb: Fix several remaining problems in -gnatyu switch
26326         Blank line count not reset at start
26327         Scanning outside source buffer in some cases
26328         Confusing message for blanks at end of file
26329         Non-empty blank lines not recognized
26330
26331         * nmake.adt: Modify header so that xnmake does not generate output
26332         files with multiple blank lines.
26333
26334         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26335         not have an extra blank line
26336
26337 2005-06-14  Sergey Rybin  <rybin@adacore.com>
26338
26339         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26340
26341 2005-06-14  Doug Rupp  <rupp@adacore.com>
26342             Vincent Celier  <celier@adacore.com>
26343
26344         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26345         Update copyright.
26346
26347         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26348         Remove "Library" command.
26349         Change keyword for style check -gnatyd from NOCRLF to
26350         DOS_LINE_ENDINGS.
26351         Remove useless second style check keyword NONE
26352         Remove help documentation for inexistent style check keyword
26353         RM_COLUMN_LAYOUT.
26354         Add help documentation for style check keywords DOS_LINE_ENDINGS,
26355         UNNECESSARY_BLANK_LINES and XTRA_PARENS
26356         Add UNNECESSARY_BLANK_LINES for -gnatyu
26357         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26358
26359         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26360
26361 2005-06-14  Vincent Celier  <celier@adacore.com>
26362
26363         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26364         gprmake was invoked with -d.
26365         (Compile_Sources): If -d was used, output the "completed ..." message
26366         for each compilation.
26367         (Scan_Arg): Recognize new switch -d
26368         When -c and at least one main is specified, set
26369         Unique_Compile to True to guarantee that no other sources will be
26370         compiled.
26371
26372 2005-06-14  Matthew Heaney  <heaney@adacore.com>
26373
26374         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26375         * a-swuwha.ads, a-swuwha.adb: New files
26376
26377         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26378         * a-szuzha.ads, a-szuzha.adb: New files.
26379
26380         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26381         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26382         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26383         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26384         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
26385         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
26386         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
26387         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26388         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26389         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26390         Ada 2005 RM.
26391
26392 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
26393             Olivier Hainque  <hainque@adacore.com>
26394             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26395             Pascal Obry  <obry@adacore.com>
26396
26397         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26398
26399         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26400         making a temporary around a procedure call because of non-addressable
26401         actual parameter.
26402         (process_freeze_entity): If entity is a private type, capture size
26403         information that may have been computed for the full view.
26404         (tree_transform, case N_Allocator): If have initializing expression,
26405         check type for Has_Constrained_Partial_View and pass that to
26406         build_allocator.
26407         (tree_transform, case N_Return_Statement): Pass extra arg to
26408         build_allocator.
26409
26410         * decl.c (annotate_value): Remove early return if -gnatR is not
26411         specified.
26412         (gnat_to_gnu_field): Don't make a packable type for a component clause
26413         if the position is byte aligned, the field is aliased, and the clause
26414         size isn't a multiple of the packable alignment. It serves no useful
26415         purpose packing-wise and would be rejected later on.
26416         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26417
26418         PR ada/20515
26419         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26420         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26421         instead.
26422         (create_concat_name): Idem.
26423
26424 2005-06-10  Robert Dewar  <dewar@adacore.com>
26425             Eric Botcazou  <ebotcazou@adacore.com>
26426             Ben Brosgol  <brosgol@adacore.com>
26427             Cyrille Comar  <comar@adacore.com>
26428             Sergey Rybin  <rybin@adacore.com>
26429             Pascal Obry  <obry@adacore.com>
26430
26431         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26432         Document second argument (Ada_05) of pragma Obsolescent
26433         Add note that call to subprogram marked with pragma Obsolescent
26434         is now considered to be a violation of program Restrictions
26435         (No_Obsolescent_Features).
26436         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26437         that only machine-dependent attributes are supported.
26438
26439         * gnat_ugn.texi:
26440         Commented out menu lines and empty section for gnatclean examples
26441         Document -gnatwy/Y
26442         Fix some over long lines
26443         Clarify and enhance documentation of ADA_PROJECT_PATH.
26444         Rework section 2.11.2(3) about linking with a non-GNU compiler.
26445         Mention new switch -fcallgraph-info.
26446         Mention new switch -fstack-usage.
26447         For gnatpp, replace '-notab' with '-N' and add this option to Index
26448         Corrected VMS example.
26449         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26450         Minor reformatting
26451         Add documentation for -gnatyu switch (unnecessary blank lines)
26452         Document new switch -U for GNAT PRETTY and GNAT METRIC
26453         Add note about Stdcall being handled as C convention on non Windows OS.
26454         Remove some junk typo in description of gnatbind -S switch
26455         Remove reference to Extensions_Allowed pragma
26456         Document the new order of the directories to be searched (source and
26457         object directories of project files before directories in ADA_*_PATH
26458         environment variables.
26459
26460         * g-trasym.ads: Document that IRIX is supported
26461
26462 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
26463
26464         * Makefile.in: Add initialize.o when needed.
26465         Adapt to new VMS package body Symbols and subunits
26466         No specialized version of a-sytaco is needed for VxWorks.
26467
26468         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26469         * a-zchara.ads, a-widcha.ads: New files.
26470
26471         * system-hpux-ia64.ads: New file.
26472
26473         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26474         is imported from the VxWorks kernel.
26475
26476 2005-06-14  Robert Dewar  <dewar@adacore.com>
26477
26478         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26479         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26480         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26481         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26482         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26483         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26484         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26485         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26486         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26487         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26488         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26489         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26490
26491 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26492
26493         * xeinfo.adb: Fix typo in comment
26494
26495 2005-06-14  Javier Miranda  <miranda@adacore.com>
26496
26497         * repinfo.ads: Fix typo in comment
26498
26499 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26500
26501         * s-finimp.adb (Parent_Tag): Delete this imported function (function
26502         Parent_Tag is now in the visible part of Ada.Tags).
26503         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26504         using imported function.
26505
26506 2005-06-14  Bernard Banner  <banner@adacore.com>
26507
26508         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26509         also apply for handling support for VxSim 653.
26510
26511 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26512
26513         * xsnames.adb: Add automatic generation of snames.h.
26514
26515 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26516
26517         * gen-soccon.c: Add IP_MULTICAST_IF constant
26518         Minor reformatting and adjustments to prevent warnings.
26519
26520 2005-06-14  Pascal Obry  <obry@adacore.com>
26521
26522         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26523
26524 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
26525
26526         * trans.c (gnat_gimplify_expr): Call
26527         recompute_tree_invarant_for_addr_expr when we change
26528         the operand of the ADDR_EXPR.
26529
26530 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26531
26532         * misc.c: Don't include errors.h.
26533
26534 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26535
26536         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26537
26538 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
26539
26540         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26541         comment typos.
26542         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26543
26544 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
26545
26546         PR ada/20270
26547         * Makefile.in: Make TGT_LIB behave correctly.
26548
26549 2005-04-23  DJ Delorie  <dj@redhat.com>
26550
26551         * misc.c: Adjust warning() callers.
26552
26553 2005-04-16  Laurent Guerby  <laurent@guerby.net>
26554
26555         PR ada/18847
26556         * a-nudira.adb (Value): Check for valid string.
26557         * a-nuflra.adb (Value): Likewise.
26558
26559 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
26560
26561         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26562
26563 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
26564
26565         * adaint.c, init.c, tracebak.c: Fix comment typos.
26566         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26567
26568 2005-04-07  Laurent Guerby  <laurent@guerby.net>
26569             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26570
26571         * Makefile.in: Add make ifeq define for hppa linux tasking support.
26572         * system-hpux.ads: Define Signed_Zeros to be True.
26573         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26574
26575 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
26576
26577         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26578         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26579         typos.
26580
26581 2005-03-30  Tom Tromey  <tromey@redhat.com>
26582
26583         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26584
26585 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
26586
26587         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26588
26589 2005-03-29  Robert Dewar  <dewar@adacore.com>
26590
26591         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26592         fixed-point expression has value that is not a multiple of the Small
26593         value.
26594
26595         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26596
26597         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26598         nanoseconds.
26599
26600         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26601
26602 2005-03-29  Vincent Celier  <celier@adacore.com>
26603
26604         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26605         (Build_Dynamic_Library.Version_String): Return the empty string when
26606         Lib_Version is empty or when the symbol policy is not Autonomous.
26607
26608         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26609         a symbol is not in the reference symbol file, increase the Major ID
26610         and set the Minor ID to 0.
26611         Use gsmatch=lequal instead of gsmatch=equal
26612
26613 2005-03-29  Doug Rupp  <rupp@adacore.com>
26614
26615         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26616         name and translate.
26617
26618 2005-03-29  Javier Miranda  <miranda@adacore.com>
26619
26620         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26621         (Inherit_DT): The first formal has been redefined as a Tag.
26622         This allows us the removal of the subprogram Get_TSD.
26623         (TSD): Replace the call to Get_TSD by the actual code.
26624
26625         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26626         (Make_DT): Upgrade the call to Inherit_TSD according to the
26627         new interface: the first formal is now a Tag.
26628
26629         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26630         redefined as a Tag.
26631         This change allows us to remove the subprogram Get_TSD.
26632         (CPP_Get_TSD): Subprogram removed.
26633         (TSD): Replace the call to CPP_Get_TSD by the actual code.
26634
26635         * rtsfind.ads: Remove support to call the run-time
26636         subprogram Get_TSD
26637
26638 2005-03-29  Robert Dewar  <dewar@adacore.com>
26639
26640         * errutil.adb, errout.adb:
26641         Minor comment updates on Line_Terminator references
26642
26643         * par-ch10.adb: Add ??? comment about line terminator
26644
26645         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26646         (check dos line terminator).
26647         (Check_Line_Max_Length): New procedure, split off from the existing
26648         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26649         be properly recognized.
26650
26651         * styleg.adb: Add ??? comment for line terminator reference
26652
26653         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26654         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26655
26656         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26657         (check dos line terminator).
26658         (Check_Line_Max_Length): New procedure, split off from the existing
26659         Check_Line_Terminator routine. Separating this out allows -gnatyf to
26660         be properly recognized.
26661
26662         * stylesw.ads, stylesw.adb:
26663         Add handling for new -gnatyd switch (check dos line terminator)
26664
26665         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26666         Recognize -gnatwb/-gnatwB switches
26667         Include Warn_On_Bad_Fixed_Value for -gnatg
26668
26669         * usage.adb:
26670         Add line for new -gnatyd switch (check dos line terminator)
26671
26672         * usage.adb: Add lines for -gnatwb/-gnatwB
26673
26674         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26675
26676         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26677
26678         * gnat_ugn.texi: Fix overlong lines
26679         Document new -gnatyd switch
26680         Document new -gnatwb/-gnatwB switches
26681
26682 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26683
26684         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26685         order to retrieve the component list of the type, before examining
26686         individual components.
26687
26688         * sem_type.adb (Covers): Types are compatible if one is the base type
26689         of the other, even though their base types might differ when private
26690         views are involved.
26691
26692 2005-03-29  Thomas Quinot  <quinot@adacore.com>
26693
26694         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26695         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
26696         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
26697         analyzed if expansion is disabled (which could otherwise cause spurious
26698         error messages if expansion has been disabled due to previous
26699         (unrelated) errors).
26700
26701         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
26702         is disabled, the entity denoted by the argument is the access type
26703         itself, not an underlying record type, so there is no need to go back
26704         to the Corresponding_Remote_Type.
26705
26706 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
26707             Robert Dewar  <dewar@adacore.com>
26708
26709         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
26710         expand a call to an instance of
26711         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
26712         Constructor actual of the instance. A class-wide membership
26713         check is also generated, to ensure that the tag passed to the instance
26714         denotes a type in the class.
26715         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
26716         of Name_Generic_Dispatching_Constructor.
26717
26718         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
26719         05 unit for AI-260-02).
26720
26721         * a-tgdico.ads: New file.
26722
26723         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
26724         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
26725
26726         * snames.ads, snames.adb (Preset_Names): Add entry for
26727         Generic_Dispatching_Constructor.
26728
26729         PR ada/20300
26730         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
26731         character type cases.
26732         (Analyze_Subprogram_Renaming): Add special handling for
26733         the case of renaming of stream attributes when the renaming denotes a
26734         generic formal subprogram association for an abstract formal subprogram.
26735         Check that the attribute is a primitive stream attribute (and not
26736         a class-wide stream attribute) and then rewrite the attribute name
26737         as the name of the appropriate compiler-generated stream primitive.
26738
26739 2005-03-29  Robert Dewar  <dewar@adacore.com>
26740
26741         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
26742         recursive calls.
26743         (Is_Possibly_Unaligned_Object): Correct typo that
26744         resulted in inaccurate result for unaligned scalars within records.
26745
26746 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26747
26748         * freeze.adb (Freeze_Record_Type): If the type of the component is an
26749         itype whose parent is controlled and not yet frozen, do not create a
26750         freeze node for the itype if expansion is disabled.
26751
26752 2005-03-29  Vincent Celier  <celier@adacore.com>
26753
26754         * make.adb (Gnatmake): Don't fail if the main project file is declared
26755         as having no Ada sources. Do not display message "no sources to
26756         compile" in quiet output.
26757
26758 2005-03-29  Doug Rupp  <rupp@adacore.com>
26759
26760         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
26761         extra tools.
26762
26763 2005-03-29  Robert Dewar  <dewar@adacore.com>
26764
26765         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
26766         child.
26767
26768 2005-03-29  Robert Dewar  <dewar@adacore.com>
26769
26770         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
26771         missing TYPE Improve the error message generated when compiling a
26772         limited interface in Ada83 or Ada95 mode.
26773
26774 2005-03-29  Robert Dewar  <dewar@adacore.com>
26775
26776         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
26777         rather than proceed ahead using a junk attribute name.
26778
26779 2005-03-29  Vincent Celier  <celier@adacore.com>
26780
26781         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
26782
26783         * prj-part.adb (Parse_Single_Project): Set the location of a project
26784         on its defining identifier, rather than on the reserved word "project".
26785
26786         * prj-proc.adb (Expression): Adapt to the fact that default of external
26787         references may be string expressions, not always literal strings.
26788         (Recursive_Process): Set Display_Name equal to Name
26789         when Location is No_Location, that is when there is no actual file.
26790         Get the Display_Name of the project from the source, when it is not a
26791         virtual project.
26792         (Process): Use the Display_Name in error messages
26793
26794         * prj-strt.adb (External_Reference): Allow default to be string
26795         expressions, not only literal strings.
26796
26797 2005-03-29  Vincent Celier  <celier@adacore.com>
26798
26799         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
26800         file and the reference symbol file to be the same file.
26801
26802 2005-03-29  Thomas Quinot  <quinot@adacore.com>
26803
26804         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
26805         forbid conversion of a local access-to-subprogram type to a remote one.
26806
26807         * sem_util.adb (Wrong_Type): For a record type that is the expanded
26808         equivalent type for a remote access-to-subprogram type, go back to the
26809         original RAS entity when displaying an error message, so the casing is
26810         the original source casing.
26811
26812 2005-03-29  Robert Dewar  <dewar@adacore.com>
26813
26814         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
26815         on param update.
26816
26817 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26818
26819         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
26820         subtype if code is being pre-analyzed, to prevent un-expanded
26821         references to protected formals, among others.
26822         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
26823         interpretation that can be a call, include the result of the call as a
26824         possible interpretation of the dereference.
26825
26826         * sem_ch5.adb (Process_Bounds): Determine type of range by
26827         pre-analyzing a copy of the original range, and then analyze the range
26828         with the expected type.
26829
26830         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
26831         with an overloaded prefix where not all interpretations yield an
26832         access to subprogram, do not rewrite node as a call.
26833         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
26834         the node as a call once the context identifies the interpretation of
26835         the prefix whose call yields the context type.
26836         (Valid_Conversion): For the case of a conversion between
26837         local access-to-subprogram types, check subtype conformance using
26838         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
26839         detailed error message.
26840
26841 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
26842
26843         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
26844         indicator, indicate that the formal can never be null.
26845         (Process_Formals): If a formal has a non_null indicator, insert the
26846         resulting subtype immediately before the enclosing subprogram decl,
26847         and not at the beginning of the corresponding declarative part, to
26848         prevent access before elaboration (Ada2005).
26849
26850 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26851
26852         PR ada/19956
26853         * utils.c (finish_record_type): Use variable_size when setting sizes.
26854
26855 2005-03-29  Robert Dewar  <dewar@adacore.com>
26856
26857         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
26858         guarantee Unix style line terminators for the output files, even when
26859         running on windows.
26860
26861 2005-03-29  Robert Dewar  <dewar@adacore.com>
26862
26863         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
26864         buffer if an exception is raised.
26865
26866 2005-03-29  Ed Falis  <falis@adacore.com>
26867
26868         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
26869         VxWorks 653 1.4
26870
26871 2005-03-29  Robert Dewar  <dewar@adacore.com>
26872
26873         * sem_util.ads: Minor reformatting
26874         * gnat_rm.texi: Minor editing.
26875
26876 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
26877
26878         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
26879         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
26880
26881 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
26882
26883         * adaint.c (__gnat_portable_spawn): Adjust cast.
26884
26885 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
26886
26887         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
26888
26889 2005-03-17  Pascal Obry  <obry@adacore.com>
26890
26891         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
26892         used.
26893
26894         * expect.c (__gnat_waitpid): Moved here from adaint.c.
26895         Reimplement under Win32 using Win32 API.
26896
26897         (__gnat_kill) [Win32]: Properly close the process handle before leaving
26898         this routine.
26899
26900 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
26901
26902         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
26903         (DECL_RENAMED_OBJECT): New accessor macro.
26904         (SET_DECL_RENAMED_OBJECT): New setter macro.
26905
26906         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
26907         object in all cases.  Attach the renamed object to the VAR_DECL.
26908         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
26909         field is not prescribed.
26910
26911         * misc.c (gnat_handle_option): Handle -gnatO separately.
26912         (gnat_print_decl) <VAR_DECL>: New case.
26913         Print the DECL_RENAMED_OBJECT node.
26914
26915         * lang.opt:  Declare separate -gnatO option.
26916
26917         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
26918         pointer, replace it with the renamed object.
26919         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
26920         pointer type if the source is not a fat pointer type whose underlying
26921         array has the same non-zero alias set as that of the destination array.
26922
26923 2005-03-17  Javier Miranda  <miranda@adacore.com>
26924
26925         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
26926         (Get_Inheritance_Depth): Removed.
26927         (Set_Inheritance_Depth): Removed.
26928
26929         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
26930         subprogram Get_Expanded_Name because it is not referenced by the
26931         frontend.
26932
26933         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
26934         (CPP_Get_Inheritance_Depth): Removed.
26935         (CPP_Set_Inheritance_Depth): Removed.
26936
26937         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
26938
26939 2005-03-17  Robert Dewar  <dewar@adacore.com>
26940
26941         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
26942         3, since we now expect GCC 3 to do all the work.
26943
26944 2005-03-17  Javier Miranda  <miranda@adacore.com>
26945
26946         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
26947         of one barrier to avoid wrong usage of this attribute.
26948
26949         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
26950         First_Private_Entity.
26951
26952         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
26953         the subprogram against wrong usage.
26954         Adapt the code to traverse the entities in the
26955         scope of a record_type because in addition to its usage regarding
26956         packages, this subprogram is also called by Expand_N_Freeze_Entity
26957         to install the visible declarations of the enclosing scope of a
26958         record_type_with_private to establish the proper visibility before
26959         freezing the entity and related subprograms.
26960
26961 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
26962
26963         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
26964         entry formals.
26965
26966 2005-03-17  Thomas Quinot  <quinot@adacore.com>
26967
26968         * exp_ch3.adb (Check_Attr): New subprogram.
26969         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
26970         into a new Check_Attr subprogram, in order to provide a more
26971         explanatory error message (including the name of the missing attribute).
26972         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
26973         subprogram determines whether a default implementation exists for a
26974         given stream attribute.
26975         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
26976         Determine whether to generate a default implementation for each stream
26977         attribute separately, as this depends on the specific attribute.
26978
26979         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
26980         limited extension where a stream attribute is missing for a limited
26981         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
26982         generate a bogus reference to the missing attribute to prevent
26983         cascaded errors. Instead, generate a null statement.
26984
26985         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
26986         available for a limited type if it has been specified for an ancestor
26987         of the type.
26988
26989 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
26990
26991         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
26992         entity is an operator.
26993
26994 2005-03-17  Thomas Quinot  <quinot@adacore.com>
26995
26996         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
26997         spec, to make this predicate available to other units.
26998
26999         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27000         reimplementing it.
27001
27002         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27003         when no distribution runtime library is available.
27004
27005         * sem_res.adb, sem_dist.adb: Disable expansion of remote
27006         access-to-subprogram types when no distribution runtime library is
27007         available.
27008         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27009         predicate available to other units.
27010
27011         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27012         spec, to make this predicate available to other units.
27013
27014 2005-03-17  Vincent Celier  <celier@adacore.com>
27015
27016         * make.adb (Insert_Project_Sources): Make sure the Q is always
27017         initialized.
27018
27019         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27020         the default for the tree, not the global default naming.
27021
27022         * prj-proc.adb (Recursive_Process): No need to put the default naming
27023         in the project data, it's already there.
27024
27025 2005-03-17  Doug Rupp  <rupp@adacore.com>
27026
27027         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27028
27029         * 5xcrtl.ads: Renamed to...
27030         * s-crtl-vms64.ads: ...this new file
27031
27032 2005-03-17  Robert Dewar  <dewar@adacore.com>
27033
27034         PR ada/19519
27035         * namet.adb (Copy_One_Character): Set proper wide character encoding
27036         for upper half character if we have upper half encoding.
27037
27038 2005-03-17  Robert Dewar  <dewar@adacore.com>
27039
27040         * par.adb (Par): Improved msg for attempt to recompile predefined unit
27041
27042 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27043
27044         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27045         tagged limited type, the TSS is a newly built renaming declaration:
27046         insert it using Set_TSS, not Copy_TSS.
27047
27048 2005-03-17  Javier Miranda  <miranda@adacore.com>
27049
27050         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27051         Try_Object_Operation): Analyze the object that is accessible
27052         through the prefix of the subprogram call before we apply
27053         the transformation of the object-operation notation.
27054
27055 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
27056
27057         * s-taprob.adb (Initialize_Protection): Initialize the protected
27058         object's owner to Null_Task.
27059         (Lock): If pragma Detect_Blocking is in effect and the caller of this
27060         procedure is already the protected object's owner then Program_Error
27061         is raised. In addition the protected object's owner is updated.
27062         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27063         of this procedure is already the protected object's owner then
27064         Program_Error is raised.
27065         In addition the protected object's owner is updated.
27066         (Unlock): Remove the ownership of the protected object.
27067
27068         * s-taprob.ads (Protection): Add the field Owner, used to store the
27069         protected object's owner.
27070         This component is needed for detecting one type of potentially blocking
27071         operations (external calls on a protected subprogram with the same
27072         target object as that of the protected action). Document the rest of
27073         the components.
27074
27075         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27076         Initialize the protected object's owner to Null_Task.
27077         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27078         caller of this procedure is already the protected object's owner then
27079         Program_Error is raised.
27080         Do not raise Program_Error when this procedure is called from a
27081         protected action.
27082         (Unlock_Entries): Remove the ownership of the protected object.
27083         (Lock_Entries): 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         Do not raise Program_Error when this procedure is called from
27087         a protected action.
27088
27089         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27090         used to store the protected object's owner.
27091
27092         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27093         effect and this procedure (a potentially blocking operation) is called
27094         from whithin a protected action, Program_Error is raised.
27095         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27096         and this procedure (a potentially blocking operation) is called from
27097         whithin a protected action, Program_Error is raised.
27098
27099 2005-03-17  Vincent Celier  <celier@adacore.com>
27100             Nicolas Setton  <setton@adacore.com>
27101
27102         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27103         switch, not supported by the linker on Darwin. Add '_' before
27104         <library>init, as this character is added unconditionally by the
27105         compiler.
27106         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27107         correct one ".dylib". This fixes detection of the archive files when
27108         building library projects.
27109
27110 2005-03-17  Vincent Celier  <celier@adacore.com>
27111
27112         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27113         -gnat83, -gnat95 and -gnat05.
27114
27115 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
27116
27117         * gnat_ugn.texi: Document gnatmem restriction
27118
27119 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27120
27121         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27122         cleanup
27123
27124 2005-03-17  Robert Dewar  <dewar@adacore.com>
27125
27126         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27127         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27128         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27129
27130         * casing.adb: Comment improvements
27131
27132 2005-03-17  Pascal Obry  <obry@adacore.com>
27133
27134         * g-expect.adb: Minor reformatting.
27135
27136 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
27137
27138         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27139         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27140         to dependencies.
27141
27142 2005-03-15  Vincent Celier  <celier@adacore.com>
27143
27144         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27145         Add new parameter In_Tree to specify the project tree: needed
27146         by the project manager. Adapt to changes in project manager
27147         using new parameter In_Tree.
27148
27149 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
27150
27151         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27152         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27153         ada/bldtools to avoid make -jN failures.
27154
27155 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27156
27157         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27158         to NULL_TREE on entry.
27159
27160 2005-03-15  Robert Dewar  <dewar@adacore.com>
27161
27162         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27163         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27164         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27165         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27166         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27167         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27168         system-interix.ads, system-solaris-sparc.ads,
27169         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27170         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27171         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27172         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27173         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27174         Compiler_System_Version to be False.
27175
27176         * opt.ads: Add new flag Opt.Address_Is_Private
27177
27178         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27179         Add new parameter Compiler_System_Version to avoid checking for
27180         completeness of parameters when compiler is compiling itself.
27181         Allows old versions of GNAT to be compiled with new compiler.
27182
27183 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27184
27185         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27186         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27187         calling thread.
27188         (Stack_Base_Available): New flag.
27189         (Get_Page_Size): New overloaded functions imported from C.
27190         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27191         PROT_ON, PROT_OFF): New constants.
27192         (mprotect): New function imported from C.
27193         (pthread_teb_t): New record type.
27194
27195         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27196         (Create_Task): Account for the Yellow Zone and the guard page.
27197
27198 2005-03-15  Vincent Celier  <celier@adacore.com>
27199
27200         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27201         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27202         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27203         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27204         Library_File_Name_For): Add new parameter In_Tree
27205         to specify the project tree: needed by the project manager.
27206         Adapt to changes in project manager using new parameter In_Tree.
27207         Remove local imports, use functions in System.CRTL.
27208
27209         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27210         to use the project manager.
27211
27212         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27213         In_Tree to designate the project tree. Adapt to changes in the project
27214         manager, using In_Tree.
27215
27216         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27217         Copy_Interface_Sources): Add new parameter In_Tree to specify the
27218         project tree: needed by the project manager.
27219         (Build_Library): Check that Arg'Length >= 6 before checking if it
27220         contains "--RTS=...".
27221
27222         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27223         Library_File_Name_For): Add new parameter In_Tree to specify the
27224         project tree: needed by the project manager.
27225
27226         * prj.ads, prj.adb: Major modifications to allow several project trees
27227         in memory at the same time.
27228         Change tables to dynamic tables and hash tables to dynamic hash
27229         tables. Move tables and hash tables from Prj.Com (in the visible part)
27230         and Prj.Env (in the private part). Move some constants from the visible
27231         part to the private part. Make other constants deferred.
27232         (Project_Empty): Make it a variable, not a function
27233         (Empty_Project): Add parameter Tree. Returns the data with the default
27234         naming data of the project tree Tree.
27235         (Initialize): After updating Std_Naming_Data, copy its value to the
27236         component Naming of Project Empty.
27237         (Register_Default_Naming_Scheme): Use and update the default naming
27238         component of the project tree, instead of the global variable
27239         Std_Naming_Data.
27240         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27241         Tree is not defaulted, return the default naming data of the Tree.
27242         (Initial_Buffer_Size): Constant moved from private part
27243         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27244         variables initialized in procedure Initialize.
27245         (Add_To_Buffer): Add two in out parameters to replace global variables
27246         Buffer and Buffer_Last.
27247         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27248         functions.
27249         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27250         hash tables.
27251         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27252         for the project tree.
27253         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27254         constant at the beginning of the package spec, so that they cane be used
27255         in subprograms before their full declarations.
27256         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27257         (Empty_Project): Add parameter of type Project_Node_Ref
27258         (Private_Project_Tree_Data): Add component Default_Naming of type
27259         Naming_Data.
27260         (Buffer, Buffer_Last): remove global variables
27261         (Add_To_Buffer): Add two in out parameters to replace global variables
27262         Buffer and Buffer_Last.
27263         (Current_Packages_To_Check): Remove global variable
27264         (Empty_Name): Move to private part
27265         (No-Symbols): Make it a constant
27266         (Private_Project_Tree_Data): New type for the private part of the
27267         project tree data.
27268         (Project_Tree_Data): New type for the data of a project tree
27269         (Project_Tree_Ref): New type to designate a project tree
27270         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27271         for the project tree.
27272
27273         * prj-attr.ads: Add with Table; needed, as package Prj no longer
27274         imports package Table.
27275
27276         * prj-com.adb: Remove empty, no longer needed body
27277
27278         * prj-com.ads: Move most of the content of this package to package Prj.
27279
27280         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27281         designate the project node tree and Packages_To_Check to replace
27282         global variable Current_Packages_To_Check.
27283         Add new parameters In_Tree and Packages_To_Check to local subprograms,
27284         when needed. Adapt to changes in project manager with project node tree
27285         In_Tree.
27286
27287         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27288         project tree to most subprograms. Move tables and hash tables to
27289         private part of package Prj.
27290         Adapt to changes in project manager using project tree In_Tree.
27291
27292         * prj-makr.adb (Tree): New constant to designate the project node tree
27293         Adapt to change in project manager using project node tree Tree
27294
27295         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27296         display the Library_Src_Dir and the Library_Dir.
27297         Add new parameter In_Tree to designate the project node tree to most
27298         subprograms. Adapt to changes in the project manager, using project tree
27299         In_Tree.
27300         (Check_Naming_Scheme): Do not alter the casing on platforms where
27301         the casing of file names is not significant.
27302         (Check): Add new parameter In_Tree to designate the
27303
27304         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27305         designate the project tree.
27306         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27307
27308         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27309         to replace those that were in the private part of package Prj.
27310         Add new parameter In__Tree to designate the project node tree to most
27311         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27312         (Post_Parse_Context_Clause): When specifying the project node of a with
27313         clause, indicate that it is a limited with only if there is "limited"
27314         in the with clause, not necessarily when In_Limited is True.
27315         (Parse): Add new parameter In_Tree to designate the project node tree
27316
27317         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27318         designate the project node tree. Adapt to change in Prj.Tree with
27319         project node tree In_Tree.
27320
27321         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27322         tree In_Tree in the call to function Empty_Process to give its initial
27323         value to the project data Processed_Data.
27324         Add new parameters In_Tree to designate the project tree and
27325         From_Project_Node_Tree to designate the project node tree to several
27326         subprograms. Adapt to change in project manager with project tree
27327         In_Tree and project node tree From_Project_Node_Tree.
27328
27329         * prj-strt.ads, prj-strt.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
27334         * prj-tree.ads, prj-tree.adb: Add new parameter of type
27335         Project_Node_Tree_Ref to most subprograms.
27336         Use this new parameter to store project nodes in the designated project
27337         node tree.
27338         (Project_Node_Tree_Ref): New type to designate a project node tree
27339         (Tree_Private_Part): Change table to dynamic table and hash tables to
27340         dynamic hash tables.
27341
27342         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27343         the project tree to most subprograms. Adapt to changes in project
27344         manager using project tree In_Tree.
27345
27346         * makegpr.adb (Project_Tree): New constant needed to use project
27347         manager.
27348
27349 2005-03-15  Olivier Hainque  <hainque@adacore.com>
27350
27351         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27352         for sigactions with SA_SIGINFO set. Call
27353         __gnat_adjust_context_for_raise before raising, to perform the
27354         potentially required adjustments to the machine context for the GCC
27355         unwinder.
27356
27357         * raise.h (__gnat_adjust_context_for_raise): New prototype.
27358
27359         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27360         Adjust PC by one in the provided machine context.
27361         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27362         so that the handler is passed the context structure to adjust prior to
27363         the raise.
27364         (__gnat_error_handler) HPUX: Adjust the signature to match what an
27365         SA_SIGINFO sigaction should look like. Call
27366         __gnat_adjust_context_for_raise before actually raising.
27367         (__gnat_adjust_context_for_raise): Default noop to help PC
27368         adjustments before raise from signal handlers.
27369         (__gnat_error_handler): Indirectly call a predicate function to
27370         determine if a condition should be resignaled or not.
27371         (__gnat_set_resignal_predicate): User interface to modify the predicate.
27372         (__gnat_default_resignal_p): Default GNAT predicate.
27373
27374 2005-03-15  Doug Rupp  <rupp@adacore.com>
27375
27376         * adaint.c: Prefix #include of VMS system header files with vms/
27377         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27378         Do not define a dummy function "convert_addresses" under Darwin,
27379         not needed.
27380
27381         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27382         with vms/
27383
27384 2005-03-15  Nicolas Setton  <setton@adacore.com>
27385
27386         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27387         PPC/AIX.
27388
27389 2005-03-15  Robert Dewar  <dewar@adacore.com>
27390
27391         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27392         AI-386.
27393
27394         * a-retide.ads: Minor comment changes
27395
27396 2005-03-15  Robert Dewar  <dewar@adacore.com>
27397
27398         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27399         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27400         Realloc_For_Chunk to private part of package.
27401         New subprograms for AI-301
27402
27403         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27404         Get_Line procedure.
27405         Avoid unnecessary use of Get/Set_Wide_String
27406
27407 2005-03-15  Robert Dewar  <dewar@adacore.com>
27408
27409         PR ada/13470
27410         * a-stunau.ads, a-stunau.adb:
27411         Change interface to allow efficient (and correct) implementation
27412         The previous changes to allow extra space in unbounded strings had
27413         left this interface a bit broken.
27414
27415         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27416
27417         * g-spipat.ads, g-spipat.adb: New interface for Get_String
27418         Minor reformatting (function specs)
27419
27420         * g-spitbo.adb: New interface for Get_String
27421
27422         * g-spitbo.ads: Minor reformatting
27423
27424         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27425
27426         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27427
27428 2005-03-15  Javier Miranda  <miranda@adacore.com>
27429             Robert Dewar  <dewar@adacore.com>
27430             Thomas Quinot  <quinot@adacore.com>
27431             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27432
27433         * atree.ads, atree.adb: Add support for Elist24 field
27434
27435         * atree.h: Fix wrong definition of Field27
27436         Add support for Elist16 field
27437         Add support for Elist24 field
27438
27439         * einfo.ads, einfo.adb (Abstract_Interfaces,
27440         Set_Abstract_Interfaces): New subprograms.
27441         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27442         subprograms.
27443         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27444         entities rather than a single node.
27445         (Is_Interface, Set_Is_Interface): New subprogram
27446         (First_Tag_Component): New syntesized attribute
27447         (Next_Tag_Component): New synthesized attribute
27448         (Write_Entity_Flags): Upgraded to write Is_Interface
27449         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27450         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27451         (Task_Body_Procedure): New subprogram to read this attribute.
27452         (Set_Task_Body_Procedure): New subprogram to set this attribute.
27453         (Has_Controlled_Component): Now applies to all entities.
27454         This is only a documentation change, since it always worked to apply
27455         this to other than composite types (yielding false), but now this is
27456         official.
27457         Update documentation on Must_Be_Byte_Aligned for new spec
27458
27459         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27460         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27461         uses of the Access_Disp_Table attribute to reference the first dispatch
27462         table associated with a tagged type. As
27463         part of the implementation of abstract interface types,
27464         Access_Disp_Table has been redefined to contain a list of dispatch
27465         tables (rather than a single dispatch table).
27466         Similarly, upgrade all the references to Tag_Component by the
27467         new attribute First_Tag_Component.
27468         (Find_Inherited_TSS): Moved to exp_tss.
27469         Clean up test in Expand_N_Object_Declaration for cases
27470         where we need to do a separate assignment of the initial value.
27471         (Expand_N_Object_Declaration): If the expression in the
27472         declaration of a tagged type is an aggregate, no need to generate an
27473         additional tag assignment.
27474         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27475         is to be deleted.
27476         Bit packed array ops are only called if operands are known to be
27477         aligned.
27478         (Component_Equality): When returning an N_Raise_Program_Error statement,
27479         ensure that its Etype is set to Empty to avoid confusing GIGI (which
27480         expects that only expressions have a bona fide type).
27481         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27482         determine the amount of data to be copied.
27483
27484         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27485         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27486             INTERFACE_TYPE_DEFINITION ::=
27487               [limited | task | protected | synchronized] interface
27488                 [AND interface_list]
27489
27490         * par-ch3.adb (P_Type_Declaration): Modified to give support to
27491         interfaces.
27492         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27493         interfaces.
27494         (P_Interface_Type_Definition): New subprogram that parses the new
27495         syntax rule of Ada 2005 interfaces
27496         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27497         messages by the correct RENAMES (quotes removed).
27498
27499         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27500         attribute First_Tag_Component.
27501
27502         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27503         (Interface_List, Set_Interface_List): New subprograms.
27504         (Interface_Present, Set_Interface_Present): New subprograms.
27505         (Limited_Present, Set_Limited_Present): Available also in derived
27506         type definition nodes.
27507         (Protected_Present, Set_Protected_Present): Available also in
27508         record type definition and
27509         derived type definition nodes.
27510         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27511         (Task_Present, Set_Task_Present): New subprogram.
27512         (Task_Body_Procedure): Removed.
27513         (Set_Task_Body_Procedure): Removed.
27514         These subprogram have been removed because the attribute
27515         Task_Body_Procedure has been moved to the corresponding task type
27516         or task subtype entity to leave a field free to store the list
27517         of interfaces implemented by a task (for AI-345)
27518         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27519         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27520         expression flag Do_Range_Check
27521         (Exception_Junk): Change to Flag7 to accomodate above change
27522         (Box_Present, Default_Name, Specification, Set_Box_Present,
27523         Set_Default_Name, Set_Specification): Expand the expression
27524         "X in N_Formal_Subprogram_Declaration" into the corresponding
27525         two comparisons. Required to use the csinfo tool.
27526
27527         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27528         "with string" given.
27529
27530         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27531         expression given.
27532
27533         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27534         in 2005 mode
27535
27536         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27537         attribute Task_Body_Procedure rather than the old semantic field that
27538         was available in the task_type_declaration node.
27539
27540         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27541         interface type definitions.
27542         (P_Formal_Derived_Type_Definition): Modified to handle the list of
27543         interfaces.
27544
27545         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27546         task type declaration.
27547         (P_Protected): Modified to handle the list of interfaces in a
27548         protected type declaration.
27549
27550 2005-03-15  Doug Rupp  <rupp@adacore.com>
27551             Vincent Celier  <celier@adacore.com>
27552
27553         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27554         (Gen_Output_File_C): Likewise.
27555         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27556
27557 2005-03-15  Thomas Quinot  <quinot@adacore.com>
27558
27559         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27560         is an N_Raise_Constraint_Error node, create a new copy of it without
27561         going through a call to Duplicate_Subexpr.
27562
27563 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27564             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27565             Nicolas Setton  <setton@adacore.com>
27566             Ed Schonberg  <schonberg@adacore.com>
27567
27568         PR ada/19900
27569         PR ada/19408
27570         PR ada/19140
27571         PR ada/20255
27572         * decl.c (gnat_to_gnu_field): Reject aliased components with a
27573         representation clause that prescribes a size not equal to the rounded
27574         size of their types.
27575         (gnat_to_gnu_entity, case E_Component): Always look at
27576         Original_Record_Component if Present and not the entity.
27577         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27578         of tagged extension types by not making field for components that are
27579         inside the parent.
27580         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27581         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27582         expression to the type of the object when the object is constant.
27583         Reverse defer_debug_incomplete_list before traversing it, so that trees
27584         are processed in the order at which they were added to the list. This
27585         order is important when using the stabs debug format.
27586         If we are deferring the output of debug information, also defer this
27587         output for a function return type.
27588         When adding fields to a record, prevent emitting debug information
27589         for incomplete records, emit the information only when the record is
27590         complete.
27591         (components_to_record): New parameter defer_debug.
27592         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27593         (gnat_to_gnu_field_decl): New function.
27594         (substitution_list, annotate_rep): Call it.
27595         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27596         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27597         No longer update discriminants to not be a COMPONENT_REF.
27598         (copy_alias_set): Strip padding from input type; also handle
27599         unconstrained arrays properly.
27600
27601         * gigi.h (write_record_type_debug_info): New function.
27602         Convert to use ANSI-style prototypes. Remove unused
27603         declarations for emit_stack_check, elab_all_gnat and
27604         set_second_error_entity.
27605         (gnat_to_gnu_field_decl): New decl.
27606
27607         * utils.c (write_record_type_debug_info): New function.
27608         (finish_record_type): Delegate generation of debug information to
27609         write_record_type_debug_info.
27610         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27611         (update_pointer_to): Fix pasto.
27612         (convert) <UNION_TYPE>: Accept slight type variations when
27613         converting to an unchecked union type.
27614
27615         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27616         replace the N_Freeze_Entity with a null statement.
27617
27618         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27619         within a constrained subcomponent of an enclosing record, place the
27620         freeze nodes in the scope stack entry for the enclosing record.
27621         (Undelay_Type): New Subprogram.
27622         (Set_Small_Size): Pass T, the type to modify; all callers changed.
27623         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27624         within records; allow them to have freeze nodes if their base types
27625         aren't frozen yet.
27626
27627         * exp_util.adb (Remove_Side_Effects): Properly test for
27628         Expansion_Delayed and handle case when it's inside an
27629         N_Qualified_Expression.
27630
27631         * sem_ch3.adb (Derived_Type_Declaration): New predicate
27632         Comes_From_Generic, to recognize accurately that the parent type in a
27633         derived type declaration can be traced back to a formal type, because
27634         it is one or is derived from one, or because its completion is derived
27635         from one.
27636         (Constrain_Component_Type): If component comes from source and has no
27637         explicit constraint, no need to constrain in in a subtype of the
27638         enclosing record.
27639         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27640         Minor change to propagate Is_Ada_2005 flag
27641
27642         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27643         Expansion_Delayed is False.
27644         (assoc_to_constructor): Ignore fields that have a
27645         Corresponding_Discriminant.
27646         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27647         function returns "by target", dereference the target pointer using the
27648         type of the actual return value.
27649         <all>: Be prepared for a null gnu_result.
27650         (processed_inline_subprograms): Check flag_really_no_inline
27651         instead of flag_no_inline.
27652         (set_second_error_entity): Remove unused function.
27653         (gnat_to_gnu, case N_Selected_Component): Call
27654         gnat_to_gnu_field_decl.
27655         (assoc_to_constructor): Likewise.
27656
27657 2005-03-15  Robert Dewar  <dewar@adacore.com>
27658             Ed Schonberg  <schonberg@adacore.com>
27659             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27660
27661         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27662         Must_Be_Byte_Aligned for cases where we do not need to use a
27663         System.Pack_nn unit.
27664
27665         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27666         as procedures.
27667         Needed now that we do some processing for IN parameters as well. This
27668         may well fix some unrelated errors.
27669         (Expand_Call): Handle case of unaligned objects (in particular those
27670         that come from packed arrays).
27671         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27672         renamed entity is an inherited operation, re-expand the call using the
27673         original operation, which is the one to call.
27674         Detect attempt to inline parameterless recursive subprogram.
27675         (Represented_As_Scalar): Fix to work properly with private types
27676         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27677         accurate estimate. Yields True in far fewer cases than before,
27678         improving the quality of code that depends on this test.
27679
27680         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27681         over both visible and private declarations to remove them from tree,
27682         and mark subprograms declared in package as eliminated, to prevent
27683         spurious use in subsequent compilation of generic units in the context.
27684
27685         * exp_util.ads: Minor cleanup in variable names
27686
27687         * sem_eval.ads, sem_eval.adb: Minor reformatting
27688         (Compile_Time_Known_Bounds): New function
27689
27690 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27691
27692         * exp_ch7.adb (Convert_View): Use base types of underlying types when
27693         determining whether an unchecked conversion is needed for the argument
27694         of an initialization call.
27695
27696 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27697
27698         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
27699         that appears in the instantiation rather than the internal subtype
27700         generated in the wrapper package, to avoid anomalies in gigi when the
27701         target is derived from a private type whose full view is an access type.
27702
27703 2005-03-15  Robert Dewar  <dewar@adacore.com>
27704
27705         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
27706         not needed.
27707         Add documentation to replace the use of this flag
27708         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
27709         the x86_64.
27710
27711 2005-03-15  Thomas Quinot  <quinot@adacore.com>
27712
27713         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
27714         here from exp_attr so it can be shared between exp_attr and exp_dist.
27715         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
27716         all TSS names, not a subset thereof, and the previous name introduced
27717         an unnecessarily confusion that a distinction might exist between
27718         "OK" TSS names and some "not OK" TSS names.
27719
27720 2005-03-15  Doug Rupp  <rupp@adacore.com>
27721
27722         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
27723         Command_Name.
27724
27725 2005-03-15  Pascal Obry  <obry@adacore.com>
27726             Eric Botcazou  <ebotcazou@adacore.com>
27727
27728         PR ada/20226
27729         PR ada/20344
27730         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
27731         when IN_RTS. This is to work around a bootstrap path problem.
27732
27733         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
27734         table and pass it to __gnat_install_SEH_handler().
27735         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
27736
27737         * lang.opt: Fix specification of -fRTS=.
27738
27739 2005-03-15  Doug Rupp  <rupp@adacore.com>
27740             Bernard Banner  <banner@adacore.com>
27741             Vincent Celier  <celier@adacore.com>
27742             Arnaud Charlet  <charlet@adacore.com>
27743
27744         PR ada/6852
27745         This change works fine when gnatlib is built from the gcc directory,
27746         but does not work when using the libada Makefile, since GCC_FOR_TARGET
27747         is not passed to ada/Makefile.in, so more work is needed by a
27748         Makefile/configure expert.
27749
27750         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
27751         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
27752         Setup gnatlink switch -M for x86_64 linux, as it is already setup
27753         for Linux x86.
27754         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
27755         Run ranlib on libgccprefix.a
27756         Define PREFIX_OBJS for Darwin, to build libgccprefix.
27757         (ADA_INCLUDE_SRCS): Split Ada packages.
27758
27759 2005-03-15  Robert Dewar  <dewar@adacore.com>
27760
27761         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
27762
27763         * impunit.adb: Add GNAT.UTF_32
27764
27765         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
27766
27767         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
27768         now uses GNAT.UTF_32).
27769
27770         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
27771         capabilities for categorizing characters using Unicode categories
27772
27773 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27774
27775         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
27776         instantiation that has been rewritten as a package body, retrieve spec
27777         to generate proper name for implicit_with_clause.
27778         (Install_Parents): Recognize a parent that is an instantiation but has
27779         been rewritten as a package declaration during analysis.
27780
27781 2005-03-15  Javier Miranda  <miranda@adacore.com>
27782             Ed Schonberg  <schonberg@adacore.com>
27783
27784         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
27785         parameter reported some error we immediately return. This improves the
27786         behaviour of the frontend in case of errors.
27787         (Install_Parent, Remove_Parent): Introduce new flag
27788         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
27789         ancestor of a generic child unit, when the child is being instantiated.
27790         (Inline_Instance_Body): If we are compiling the private
27791         part or the body of a child unit, restore the proper visibility of the
27792         parents after compiling the instance body.
27793
27794 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27795             Javier Miranda  <miranda@adacore.com>
27796
27797         PR ada/15608
27798         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
27799         of a private type, in which case it is underlying_type that denotes
27800         the proper task. Also modified to use the new entity attribute
27801         that is directly available in the task type and task subtype entities
27802         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
27803         arrays when other dimensions than the first are constrained by
27804         discriminants of an enclosing record.
27805         (Insert_Explicit_Dereference): If the prefix is an indexed component or
27806         a combination of indexed and selected components, find ultimate entity
27807         and generate the appropriate reference for it, to suppress spurious
27808         warnings.
27809         (Note_Possible_Modification): If an entity name has no entity, return.
27810         (Is_Variable): A function call never denotes a variable.
27811         (Requires_Transient_Scope): For record types, recurse only on
27812         components, not on internal subtypes that may have been generated for
27813         constrained components.
27814
27815 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27816
27817         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
27818         Eliminated as candidates for resolution. Both efficient, and avoids
27819         anomalies with operators declared in deleted code.
27820         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
27821         expansion is disabled (as when compiling a generic) to prevent spurious
27822         warnings on prefixes of selected components.
27823
27824 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27825
27826         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
27827         attached to a list before checking whether it appears in the private
27828         declarations of the current package.
27829         (Make_Inequality_Operator): Insert declaration in proper declarative
27830         list rather than just setting the Parent field, so that
27831         Is_Private_Declaration can handle it properly.
27832
27833 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
27834
27835         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
27836         a renaming a body, check that the renamed subprogram in not intrinsic.
27837         (Find_Direct_Name): If several use_visible entities hide
27838         each other, and the context is a predefined file compiled through
27839         rtsfind, keep only the entity that comes from a predefined file.
27840
27841 2005-03-15  Geert Bosch  <bosch@adacore.com>
27842
27843         * s-fatgen.adb (Valid): Extend special exceptions to account for long
27844         long float padding to also cover AMD64 and IA64.
27845
27846 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
27847
27848         * s-imgwch.adb: Add with and use of Interfaces.
27849         (Img_Wide_Character): Change type of Val to Unsigned_16.
27850         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
27851
27852 2005-03-15  Matthew Gingell  <gingell@adacore.com>
27853
27854         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
27855
27856 2005-03-15  Robert Dewar  <dewar@adacore.com>
27857
27858         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
27859
27860         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
27861
27862         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
27863
27864 2005-03-15  Robert Dewar  <dewar@adacore.com>
27865
27866         * s-bitops.adb, s-bitops.ads,
27867         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
27868         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
27869         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
27870         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
27871         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
27872         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
27873         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
27874         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
27875         reformatting.
27876
27877 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27878
27879         * utils2.c (build_binary_op): Fix typo.
27880
27881 2005-03-15  Doug Rupp  <rupp@adacore.com>
27882
27883         * s-crtl.ads (popen,pclose): New imports.
27884
27885 2005-03-15  Cyrille Comar  <comar@adacore.com>
27886
27887         * comperr.adb (Compiler_Abort): remove references to obsolete
27888         procedures in the bug boxes for various GNAT builds.
27889
27890 2005-03-15  Vincent Celier  <celier@adacore.com>
27891
27892         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
27893
27894 2005-03-15  Geert Bosch  <bosch@adacore.com>
27895             Arnaud Charlet  <charlet@adacore.com>
27896             Robert Dewar  <dewar@adacore.com>
27897             Cyrille Comar  <comar@adacore.com>
27898             Sergey Rybin  <rybin@adacore.com>
27899
27900         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
27901         too specific and long-winded to be appropriate for the GNAT User's
27902         Guide.
27903         Warn about use of GCC switches not documented in the GNAT User's Guide,
27904         as these may cause generated code to not conform to Ada semantics.
27905         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
27906         Add documentation for -gnat95 and -gnat05 switches
27907         Remove paragraph documenting obsolete way to refer to third party
27908         libraries.
27909         Add a few references to Ada_05 that were missing.
27910         Update documentation on -gnatZ/-gnatL.
27911         Document limitation when using -m64 under Solaris.
27912         Change the "Name Casing" subsection of the pretty-printer section
27913         according to the changes in the dictionary processing.
27914
27915         * gnat_rm.texi: Document the Ada_05 pragma.
27916         Section on record representation clauses describes the new more
27917         relaxed rules about placement of large packed bit array components.
27918         Add documentation of GNAT.UTF_32
27919
27920 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
27921
27922         * misc.c (gnat_post_options): Turn off structural
27923         aliasing for now.
27924
27925 2005-03-08  Laurent Guerby  <laurent@guerby.net>
27926
27927         * system-linux-sparc.ads: Fix typo in previous commit.
27928
27929 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
27930             Laurent Guerby  <laurent@guerby.net>
27931
27932         PR ada/20035
27933         * system-linux-sparc.ads: New.
27934         * Makefile.in: Add sparc linux entry.
27935
27936 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
27937
27938         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
27939         parameters as unused.
27940
27941 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
27942         Partial merge from libada-gnattools-branch:
27943
27944         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
27945         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
27946         into code in gnattools/Makefile.in.  Remove direct dependencies on
27947         stamp-tools by tools clauses.
27948         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
27949         * config-lang.in: Add gnattools to $lang_dirs.
27950
27951 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
27952
27953         PR ada/19942
27954         * utils.c (gnat_type_for_mode): Return null instead of ICE because
27955         we asked for an unknown mode.
27956
27957 2005-02-12  Richard Henderson  <rth@redhat.com>
27958
27959         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
27960         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
27961
27962 2005-02-10  Andreas Jaeger  <aj@suse.de>
27963
27964         * init.c (__gnat_initialize): Mark parameter as unused.
27965
27966 2005-02-09  Doug Rupp  <rupp@adacore.com>
27967
27968         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
27969         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
27970
27971 2005-02-09  Doug Rupp  <rupp@adacore.com>
27972
27973         * gnatchop.adb (dup, dup2),
27974         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
27975
27976         * gnatlbr.adb (mkdir),
27977         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
27978
27979         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
27980
27981 2005-02-09  Doug Rupp  <rupp@adacore.com>
27982
27983         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
27984
27985 2005-02-09  Robert Dewar  <dewar@adacore.com>
27986             Thomas Quinot  <quinot@adacore.com>
27987             Javier Miranda  <miranda@adacore.com>
27988             Pascal Obry  <obry@adacore.com>
27989             Ed Schonberg  <schonberg@adacore.com>
27990             Doug Rupp  <rupp@adacore.com>
27991             Gary Dismukes  <dismukes@adacore.com>
27992             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27993
27994         * g-zstspl.ads: New file.
27995
27996         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
27997
27998         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
27999         Ada 95 mode
28000         Add definition of Wide_Wide_Space for AI-285
28001
28002         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28003         interface (to support Ada 95 and Ada 2005 units).
28004         Add Unbounded_IO files
28005         Add entries for Wide_Wide packages for AI-285
28006         Add list of containers packages to Ada 2005 unit list
28007
28008         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28009         support new Unbounded_IO package cleanly.
28010
28011         * g-utf_32.ads, g-utf_32.adb: New files.
28012
28013         * Makefile.rtl: Add entry for g-utf_32
28014         Add new files for Unbounded_IO
28015         Adjust make file for new AI-285 wide wide packages
28016         Add AI-302 containers to the run time.
28017
28018         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28019         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28020         subprograms for AI-301.
28021
28022         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28023
28024         * a-stunau.ads: Minor comment correction
28025
28026         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28027         etc.
28028         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28029         (Check_RPC): Update to match changes in expanded code.
28030         Clean up unused entity.
28031
28032         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28033         was not taken into account.
28034         This includes proper initialization with Normalize_Scalars.
28035         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28036         normalize scalars cases (particularly the latter) to do a better job
28037         of finding invalid representations.
28038
28039         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28040
28041         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28042         used
28043
28044         * exp_dist.adb: Add support for wide wide character type
28045         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28046         private part, generate stub bodies at the end of the private part,
28047         not the visible part.
28048         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28049         PolyORB support.
28050         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28051         generic wrapper to execute final processing after completing the
28052         expansion of the RPC receiver for an RACW.
28053
28054         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28055         packages and attributes.
28056         (Preset_Names): Addition of the new reserved words of Ada 2005,
28057         that is interface, overriding and synchronized.
28058         (Get_Pragma_Id): Give support to the use of the new reserved word
28059         "interface" as a pragma name.
28060         (Is_Pragma_Name): Give support to the use of the new reserved word
28061         "interface" as a pragma name.
28062         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28063         attribute implementation.
28064
28065         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28066         checks to entities that are output parameters of Asm operations.
28067         Handle the Stream_Size attribute.
28068         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28069
28070         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28071
28072         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28073         for second parameter being 0.0.
28074         Add support for wide wide character type.
28075         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28076
28077         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28078         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28079         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28080         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28081         for wide wide character cases.
28082
28083         * cstand.adb: Create entities for Wide_Wide_Character and
28084         Wide_Wide_String.
28085
28086         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28087         accordance with AI-258.
28088         Add new declarations for 16/32 bit C character types (Part of AI285)
28089
28090         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28091         (Obsolescent_Warning): New field
28092         (Rep_Clause): New local subprogram used to share code. Returns the rep
28093         clause for which the name is given in parameter.
28094         (Has_Stream_Size_Clause): New routine.
28095         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28096         (Address_Clause): Implementation is now using Rep_Clause.
28097         (Alignment_Clause): Idem.
28098         (Size_Clause): Idem.
28099
28100         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28101         entity in non-Ada 2005 mode and generate warning.
28102
28103         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28104         (Prag): Code cleanup. Remove old gnat pragma "overriding"
28105
28106         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28107         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28108         on the named unit if the pragma is not in the current compilation unit,
28109         so that elaboration calls in the current unit can set up an elaboration
28110         dependency on the named unit, as needed.
28111         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28112         subprogram as well as for subprograms declared within a package.
28113         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28114         pragma overriding.
28115
28116         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28117         to z) to avoid some instances of duplication for Wide_Wide packages.
28118
28119         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28120         characters.
28121
28122         * scn.adb: Char_Literal_Value field is now a Uint
28123
28124         * scng.adb: Significant rewrite to handle new Ada 2005 features
28125         allowing wide and wide wide characters in program text, e.g. for
28126         identifiers, as described in AI-285.
28127         (Set_Reserved): New procedure, makes setting up keywords cleaner.
28128         (Initialize_Scanner): Register the new reserved words of Ada 2005.
28129         (Scan): Give support to the new reserved words.
28130
28131         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28132         warning notifying that interface, overriding, and synchronized are
28133         new reserved words.
28134         (P_Pragma): Allow the use of the new reserved word "interface" as
28135         a pragma name.
28136
28137         * gnatls.adb, gnatbind.adb,
28138         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28139         identifiers named "interface" to "SAL_Interface".
28140
28141         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28142         (Structured Exception handling).
28143         (Gen_Main_C): Idem.
28144
28145         * bindgen.adb:
28146         (Gen_Main_Ada): Set the default exit code if specified.
28147         (Gen_Main_C): Likewise.
28148         Part of *DC20-006.
28149         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28150         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28151
28152         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28153         new -Xnnn switch.
28154
28155         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28156         has a collision with the new Ada 2005 "interface" reserved word.
28157
28158         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28159         generate a warning notifying that interface, overriding, and
28160         synchronized are new reserved words.
28161
28162         * scans.ads (Token_Type): Addition of the tokens corresponding to the
28163         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28164         and Tok_Synchronized.
28165
28166         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28167         "dispatching" rather than "primitive" operations, since dispatching
28168         calls are now allowed to abstract formal subprograms (which are not
28169         primitive).
28170         Char_Literal_Value field is now a Uint
28171         (Resolve_Slice): If the prefix is an access to an unconstrained array,
28172         compute the actual subtype of the designated object to impose the proper
28173         index constraints.
28174         (Resolve_Selected_Component): Do not insert an access check if the
28175         prefix is an access type: such a node is expanded into an explicit
28176         dereference, on which the access check is performed anyway. Removes
28177         expensive duplicate checks.
28178         (Resolve_Call): Use new flag Is_Obsolescent and field
28179         Obsolescent_Warning so that pragma Obsolescent works on library
28180         subprograms.
28181         Add support for wide wide character type
28182         (Resolve_Allocator): Replace the error message on wrong null-exclusion
28183         value by a warning message.
28184         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28185         as fixed-point, and one of the operands is non-static and universal, it
28186         can only be an illegal exponentiation operation, in which case there is
28187         no real value to retrieve.
28188
28189         * exp_strm.adb: Add support for wide wide character type
28190         (Build_Elementary_Input_Call): Compute the size of the stream element by
28191         querying the rep chain to find the Stream_Attribute attribute value.
28192         (Build_Elementary_Write_Call): Ditto.
28193
28194         * sem_aggr.adb: Char_Literal_Value field is now a Uint
28195         Add support for wide wide character type
28196         Replace the error messages on wrong null-exclusion value by warnings
28197         as described in Ada 2005.
28198         (Resolve_Extension_Aggregate): Document the fact that the error
28199         message on class-wide expressions in extensions aggregates.
28200
28201         * sem_case.adb: Add support for wide wide character type
28202
28203         * sem_ch13.adb: Add support for wide wide character type
28204         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28205
28206         * sem_ch3.adb: Add support for wide wide character type
28207         (Process_Subtype): If constraint is illegal for the type, set Ekind of
28208         now-useless Itype, to prevent cascaded errors on a compiler built
28209         without -gnatp.
28210
28211         * sem_ch8.adb: Add with and use of Sem_Disp.
28212         (Analyze_Subprogram_Renaming): Replace unclean uses of
28213         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28214         of Corresponding_Spec to Empty).
28215         (Attribute_Renaming): Replace use of Corresponding_Spec with
28216         Corresponding_ Formal_Spec and simplify condition.
28217         (Use_One_Package): Check that scope of homonym of identifier is defined,
28218         before checking whether it is a wrapper package.
28219         Add support for wide wide character type
28220
28221         * sem_eval.adb: Add support for wide wide character type.
28222         (Eval_Arithmetic_Op): Check for compile time known signed integer
28223         overflow in the non-static case.
28224         (Subtypes_Statically_Match): A formal scalar type and its base type do
28225         not statically match.
28226
28227         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28228         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28229         subtype).
28230         (Unit_Declaration_Node): Ditto.
28231         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
28232         has a packed array type, the prefix has been rewritten into a type
28233         conversion. Determine variable-ness from the converted expression.
28234         Handle wide wide character cases.
28235
28236         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28237
28238         * stringt.ads, stringt.adb: Handle full UTF-32 range.
28239         Remove ["0A"] from comment, since it can look like a line terminator.
28240         Currently we don't permit this, but this is under discussion by the
28241         ARG, and it is easy enough to use a different example.
28242
28243         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28244         handling UTF-32 encoding for wide wide character.
28245         Implement new brackets coding ["hhhhhhhh"]
28246         Add UTF-8 encodings for full UTF-32 range
28247
28248         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28249
28250         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28251         bit range Add full UTF-32 support.
28252         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28253         notify that constraint error will be raised at run-time
28254         because a null value is assigned to a null-excluding object.
28255         Remove some obsolete declarations and make Char_Code
28256         unsigned.
28257
28258         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28259         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28260         Rcheck subprograms.
28261
28262         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28263         wrong null-exclusion value by a warning message.
28264         (Enable_Range_Check): Do range check if the prefix is an
28265         explicit dereference whose designated object is an unconstrained array.
28266         Current algorithm for removing duplicate checks is over-eager in this
28267         case.
28268
28269         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28270         null-exclusion value by a warning message
28271
28272         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28273         completely. Add support for Uint2 field
28274
28275         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28276         exp_prag.adb: Char_Literal_Value field is now a Uint.
28277
28278         * exp_util.adb (Insert_Actions): Replace
28279         N_Formal_Subprogram_Declaration by
28280         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28281         Char_Literal_Value field is now a Uint.
28282
28283         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28284         defined for subprogram renaming declarations. When set, the field
28285         indicates the defining entity of a corresponding formal subprogram
28286         when the renaming corresponds to a formal subprogram association in an
28287         instantiation.
28288         (Set_Corresponding_Formal_Spec): New procedure to return
28289         Corresponding_Formal_Spec field.
28290         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28291         (which is now a subtype).
28292         Char_Literal_Value field is now a Uint
28293
28294         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28295         pointer to the base of the dispatch table.
28296         Minor changes to comments.
28297         (Controlling_Type): New function for determining the tagged type
28298         associated with a tagged primitive subprogram.
28299         (Expand_Dispatching_Call): Add support for a controlling actual that is
28300         directly a value of type Ada.Tag rather than a tagged object.
28301
28302         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28303         describing the new layout.
28304         (Dispatch_Table): The expander computes the actual array size, allocates
28305         the Dispatch_Table record accordingly, and generates code that displaces
28306         the base of the record after the Typeinfo_Ptr component. The access to
28307         these components is done by means of local functions.
28308         (Offset_To_Top): New function.
28309         (Typeinfo_Ptr): New function.
28310         (Get_TSD): Modified to access the new position of the TSD.
28311         (Set_TSD): Modified to save the TSD in its new position.
28312
28313         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28314         case of formal abstract subprograms. Add check and message for -gnat05.
28315         Update comments.
28316
28317         * sem_ch12.adb: Add with and use for Sem_Disp.
28318         (Analyze_Associations): Minor change from "=" to "in" for use of
28319         N_Formal_Subtype_Declaration (which is now a subtype).
28320         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28321         N_Formal_Subtype_Declaration (which is now a subtype).
28322         (Analyze_Formal_Subprogram): Add handling for
28323         N_Formal_Abstract_Subprogram, marking the formal as abstract and
28324         dispatching, setting the controlling status of the formal parameters
28325         and result, and issuing an error if there is no controlling type for
28326         the formal subprogram.
28327         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28328         which is an unclean use of that field, we set the new field
28329         Corresponding_Formal_Spec to make the formal subprogram available to
28330         processing in Analyze_Subprogram_Declaration.
28331         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28332         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28333         Constrained, so that it is is does not statically match its anonymous
28334         base type.
28335
28336         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28337         abstract formal subprograms in error check for functions returning
28338         abstract types. Set scope of new designator for
28339         a parameterless subprogram, so that it is available when checking the
28340         body for nested subprograms, before full analysis of said body.
28341         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28342         subprogram only if inner one comes from source.
28343         (Analyze_Function_Call): If the call is given in object notation, the
28344         analysis of the name rewrites the node and analyzes it with the proper
28345         argument list. After analyzing the name, if the call has been rewritten
28346         and the result type is set, no further analysis is needed.
28347         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28348         mark in function specification, in a context where the formals are
28349         visible and hide outer homographs.
28350
28351         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28352         as the tagged type for the cases of abstract formal subprograms and
28353         renamings of those.  Clean up spec comments.
28354         (Check_Dispatching_Context): Add error message to indicate "abstract
28355         procedure", covering the case of a call to a formal abstract procedure
28356         that has statically tagged operands.
28357         (Check_Dispatching_Call): Check for the case of an actual given by
28358         a tag-indeterminate function call whose type is an ancestor of the
28359         containing call's associated tagged type. This situation can occur
28360         for inherited primitives with function defaults. In this case we
28361         use the tagged type's tag directly as the controlling argument for
28362         the calls.
28363         (Expand_Call): Name change on call to Expand_Dispatch_Call.
28364
28365         * sprint.adb (Sprint_Node_Actual): Split
28366         N_Formal_Subprogram_Declaration into two alternatives for the new
28367         cases N_Formal_Abstract_Subprogram_Declaration and
28368         N_Formal_Concrete_Subprogram_Declaration.
28369         Char_Literal_Value field is now a Uint.
28370
28371         * trans.c: Get rid of junk Uint2 reference.
28372         Char_Literal_Value field is now a Uint.
28373         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28374         (gigi): Correct third arg to gimplify_body.
28375
28376         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28377         (TYPE_LANG_FLAG_0): Check for record or union.
28378
28379         * treepr.adb: Char_Literal_Value field is now a Uint
28380
28381         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28382         UI_From_CC.
28383
28384         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28385         Add full UTF-32 support
28386         Char_Code is now 32 bits
28387
28388         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28389         wide character UTF_32 line terminators.
28390         Initialize Main_Source_File to avoid error when no main
28391         source is loaded.
28392
28393         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28394         (Main_Source_File) when no main source has been loaded, to avoid
28395         potential crash.
28396
28397 2005-02-09  Robert Dewar  <dewar@adacore.com>
28398
28399         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28400         Fix name of Set routine
28401
28402         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28403         fixed packages.
28404
28405         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28406         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28407         fixed packages
28408
28409         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28410         forms of Get_Line subprograms for AI-301.
28411
28412         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28413         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28414         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28415         a-stwima.ads: Minor reformatting.
28416
28417 2005-02-09  Doug Rupp  <rupp@adacore.com>
28418             Thomas Quinot  <quinot@adacore.com>
28419
28420         * adaint.c, adaint.h
28421         [VMS] (to_ptr32): New function.
28422         (MAYBE_TO_PTR32): New macro.
28423         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28424         for pointer size.
28425         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28426         [VMS] (#define fork()): Remove since unneccessary.
28427         (__gnat_set_close_on_exec): New routine to support
28428         GNAT.OS_Lib.Set_Close_On_Exec.
28429
28430         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28431         the parent side as close-on-exec so that they are not inherited by the
28432         child.
28433
28434         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28435         set or clear the FD_CLOEXEC flag on a file descriptor.
28436
28437 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
28438             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28439
28440         PR ada/19386
28441         * decl.c:
28442         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28443         on the field if Pragma Component_Alignment (Storage_Unit).
28444         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28445         side-effects as if it were a constant; also make SAVE_EXPR to protect
28446         side-effects.
28447         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28448         UNION_TYPE.
28449         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28450         (components_to_record): Test it.
28451         Fix improper usage of REFERENCE_CLASS_P.
28452
28453         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28454         RECORD_TYPE.
28455
28456         * utils2.c: Minor reformatting.
28457
28458         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28459         handle other cases like RECORD_TYPE.
28460
28461         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28462
28463 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28464
28465         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28466         component of an array of arrays in an assignment context, and the
28467         aggregate has component associations that require sliding on
28468         assignment, force reanalysis of the aggregate to generate a temporary
28469         before the assignment.
28470         (Must_Slide): Make global to the package, for use in Gen_Assign.
28471
28472 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28473
28474         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28475         unchecked union with no inferable discriminants, return a
28476         Raise_Program_Error node, rather than inserting it at the point the
28477         type is frozen.
28478         (Expand_Record_Equality, Component_Equality): Handle properly the case
28479         where some subcomponent is an unchecked union whose generated equality
28480         code raises program error.
28481
28482 2005-02-09  Doug Rupp  <rupp@adacore.com>
28483
28484         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28485         [VMS] (#define exit hack): Remove.
28486
28487 2005-02-09  Pascal Obry  <obry@adacore.com>
28488             Arnaud Charlet  <charlet@adacore.com>
28489
28490         * init.c (__gnat_initialize): Add a new parameter eh which contains the
28491         address of the exception registration. The Win32 version of this
28492         routine calls __gnat_install_SEH_handler() to initialize the SEH
28493         (Structured Exception Handling) handler.
28494         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28495         SEH (Structured Exception Handling) now.
28496         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28497         (__gnat_initialize for ppc-vxworks): Adjust comments and the
28498         preprocessor condition protecting the call to the extra eh setup
28499         subprogram, which is only available for the ppc target.
28500         (__gnat_clear_exception_count): replaced reference to
28501         variable taskIdCurrent by call to taskIdSelf(), cleaner.
28502
28503         * seh_init.c: New file.
28504
28505         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28506         (GNATBIND_OBJS): Idem.
28507
28508         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28509         routine takes a new parameter (a pointer to the exception registration
28510         for the SEH (Structured Exception Handling) support.
28511
28512         * raise.h: (__gnat_install_SEH_handler): New prototype.
28513         Update copyright notice.
28514
28515         * s-tassta.adb (Task_Wrapper): Declare the exception registration
28516         record and initialize it by calling __gnat_install_SEH_handler.
28517
28518 2005-02-09  Vincent Celier  <celier@adacore.com>
28519
28520         * make.adb (Gnatmake): Do not fail when the main project has no object
28521         directory.
28522
28523 2005-02-09  Doug Rupp  <rupp@adacore.com>
28524
28525         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28526         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28527         [VMS]: Add translations for g-enblsp.adb.
28528
28529         * s-asthan-vms.adb: Removed.
28530         * s-asthan-vms-alpha.adb: Added.
28531
28532 2005-02-09  Pascal Obry  <obry@adacore.com>
28533
28534         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28535         (LIBGNAT_OBJS): Add seh_init.o.
28536
28537 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28538
28539         PR ada/16592
28540         * Makefile.in: Link all gnat tools with -static-libgcc, since
28541         -shared-libgcc is now used by default on some systems (e.g. linux with
28542         recent binutils).
28543         Remove references to Makefile.prolog/generic, no longer used.
28544
28545 2005-02-09  Vincent Celier  <celier@adacore.com>
28546
28547         * prj-makr.adb (Process_Directory): Put file name in canonical case
28548         before matching against the patterns.
28549         If gnatname has been invoked as <prefix>-gnatname
28550         then invoke the compiler as <prefix>-gcc, not just "gcc".
28551
28552 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28553
28554         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28555         with expansion disabled. The actual subtype is needed among other
28556         places when the selected component appears in the context of a loop
28557         bound, and denotes a packed array.
28558         (Operator_Check): Always use the first subtype in the
28559         error message, to avoid the appearance of internal base types.
28560         (Transform_Object_Operation): Copy each actual in full
28561         to the parameter associations of the constructed call, rather than
28562         using the shallow copy mechanism of New_Copy_List. This ensures that
28563         the chaining of named associations is done properly.
28564         (Complete_Object_Operation): Rewrite node, rather than
28565         replacing it, so that we can trace back to the original selected
28566         component.
28567
28568         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28569         and calls that use object notation, if the called function is not
28570         declared  in a withed unit, place the elaboration constraint on the
28571         unit in the context that makes the function accessible.
28572         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28573         imposes an elaboration constraint between two packages.
28574
28575 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
28576
28577         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28578         views of a private type after handling its private dependents, to
28579         maintain proper stack discipline between entry and exit from the
28580         package.
28581
28582 2005-02-09  Cyrille Comar  <comar@adacore.com>
28583
28584         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28585         Minor reformatting.
28586
28587 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28588
28589         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28590         fields for foreign threads.
28591
28592 2005-02-09  Doug Rupp  <rupp@adacore.com>
28593
28594         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28595         recursion warnings when compiled with -gnatdm.
28596
28597 2005-02-09  Robert Dewar  <dewar@adacore.com>
28598
28599         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28600         Slight fix to documentation of -gnaty with no parameters
28601
28602         * xr_tabls.ads: Add ??? comment for missing overall comment
28603
28604         * xsinfo.adb: Make default file name be sinfo.h, since this is what
28605         we now use by default.
28606
28607         * xsnames.adb: Adjust end of file test to look for five space followed
28608         by '#' instead of six spaces. The format of xsnames.adb was modified
28609         in the last update.
28610
28611         * a-numeri.ads: Add reference to AI-388 for greek letter pi
28612         identifier.
28613
28614         * clean.adb: Minor reformatting.
28615
28616         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28617         gnatname.adb: Minor reformatting
28618         Add 2005 to copyright output when utility is run
28619
28620         * csets.adb: Eliminate obsolete comment
28621
28622         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28623         Update comments.
28624
28625         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28626
28627 2005-02-09  Sergey Rybin  <rybin@adacore.com>
28628
28629         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28630         the difference between compact and incompact layout and add the record
28631         representation clause to the example illustrating different layouts.
28632         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28633         component clauses").
28634
28635 2005-02-09  Florian Villoing  <villoing@adacore.com>
28636
28637         * gnat_ugn.texi: Fix typos.
28638         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28639         @file.
28640         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28641         in the generated documentation.
28642
28643 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28644
28645         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28646         longer supported.
28647         Update linker wrapper when linking with non GNU C++.
28648
28649 2005-02-09  Pascal Obry  <obry@adacore.com>
28650
28651         * gnat_ugn.texi:
28652         Document the procedure to debug the DllMain routine on Windows.
28653         Add note about -funwind-tables and mixed Ada and C/C++ programming in
28654         ZCX mode.
28655         Document new BIND qualifer /RETURN_CODES=VMS.
28656
28657 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
28658
28659         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28660         Edited gnatmetric chapter
28661
28662 2005-02-09  Robert Dewar  <dewar@adacore.com>
28663
28664         * gnat_rm.texi:
28665         Changes to document new wide wide character support
28666         For AI-285
28667         Update documentation on Normalize_Scalars and Initialize_Scalars
28668
28669 2005-02-09  Pascal Obry  <obry@adacore.com>
28670
28671         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28672
28673 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
28674
28675         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28676         from the VxWorks kernel) that is needed for getting the active
28677         priority of the different tasks.
28678
28679         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28680         Use a pragma Elaborate_Body in the spec file instead.
28681         Noticed by code reading.
28682
28683 2005-02-09  Thomas Quinot  <quinot@adacore.com>
28684
28685         * exp_util.ads: Minor correction in comment.
28686
28687 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28688
28689         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28690         since this procedure is now too complex to be worth inlining.
28691
28692 2005-02-09  Richard Henderson  <rth@redhat.com>
28693
28694         * utils.c (gnat_define_builtin): Remove.
28695         (gnat_install_builtins): Use build_common_builtin_nodes.
28696
28697 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
28698
28699         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
28700         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
28701         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
28702         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
28703         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
28704         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
28705         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
28706         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
28707         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
28708         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
28709         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
28710         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
28711         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
28712         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
28713         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
28714         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
28715         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
28716         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
28717         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
28718         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
28719         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
28720         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
28721         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
28722         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
28723         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
28724         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
28725         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
28726         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
28727         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
28728         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
28729         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
28730         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
28731         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
28732         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
28733         library.
28734
28735 2005-01-27  Laurent Guerby  <laurent@guerby.net>
28736
28737         * Makefile.in: Fix a-intnam.ads from previous commit,
28738         add 2005 to copyright.
28739         * a-intman-rtems.ads: Renamed to...
28740         * a-intnam-rtems.ads:
28741
28742 2005-01-27  Laurent Guerby  <laurent@guerby.net>
28743
28744         * Makefile.in: Rename GNAT RTEMS specific files.
28745         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
28746         5rosinte.ads, 5rparame.adb: Replaced by files below.
28747         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
28748         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
28749
28750 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
28751             Laurent Guerby  <laurent@guerby.net>
28752
28753         PR ada/19488
28754         * 5rosinte.ads: Add No_Key constant.
28755         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
28756         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
28757
28758 2005-01-26  Laurent Guerby  <laurent@guerby.net>
28759
28760         PR ada/19414
28761         * i-cobol.adb (Valid_Numeric): Handle zero length case.
28762
28763 2005-01-20  Richard Henderson  <rth@redhat.com>
28764
28765         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
28766         a-intnam-linux.ads and system-linux-alpha.ads.
28767         * a-intnam-linux-alpha.ads: Remove file.
28768         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
28769         * system-linux-alpha.ads: New file.
28770
28771 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
28772
28773         PR ada/13470
28774         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
28775         set to the new string.
28776
28777 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
28778
28779         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
28780         to True.
28781
28782 2005-01-18  Richard Henderson  <rth@redhat.com>
28783
28784         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
28785         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
28786         for alpha-linux.
28787         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
28788
28789 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
28790
28791         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
28792         (GCC_ZCX_Support): Likewise.
28793
28794 2005-01-11  Bastian Blank  <waldi@debian.org>
28795
28796         * system-linux-s390.ads: Define Preallocated_Stacks.
28797         * system-linux-s390x.ads: Likewise.
28798
28799 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
28800
28801         * gnat_ugn.texi: Fix texi errors with null variables.
28802
28803 2005-01-03  Thomas Quinot  <quinot@adacore.com>
28804
28805         * gen-soccon.c: New utility program to generate g-soccon.ads
28806         automatically.
28807
28808         * socket.c, gsocket.h: Split inclusion of system header files into a
28809         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
28810
28811         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
28812         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28813         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
28814         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
28815         should not be edited by hand anymore, but should be regenerated using
28816         gen-soccon.
28817
28818 2005-01-03  Robert Dewar  <dewar@adacore.com>
28819             Ed Schonberg  <schonberg@adacore.com>
28820             Vincent Celier  <celier@adacore.com>
28821
28822         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
28823         on/off, since this is an obsolescent feature, for which we now generate
28824         a warning.
28825
28826         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
28827         warning mode is set and obsolescent usage of this attribute occurs.
28828         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
28829         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
28830         predates, and partly motivates, the adoption of the AI.
28831         Implement new Ada 2005 attribute Mod
28832
28833         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
28834         attribute Mod.
28835
28836         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
28837
28838         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
28839         pragma restrictions.
28840         New entry for Ada 2005 attribute Mod.
28841
28842         * par-prag.adb:
28843         Add recognition of new pragma Restrictions No_Dependence
28844         Recognize restriction No_Obsolescent_Features at parse time
28845
28846         * bcheck.adb: Add circuitry for checking for consistency of
28847         No_Dependence restrictions.
28848
28849         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
28850         restrictions.
28851
28852         * restrict.ads, restrict.adb: Add subprograms to deal with
28853         No_Dependence restrictions.
28854
28855         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
28856         restrictions.
28857
28858         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
28859         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
28860
28861         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
28862         dummy parameter to scng instantiation.
28863         Needed for new restriction No_Obsolescent_Features
28864
28865         * scn.adb: (Obsolescent_Check): New procedure
28866         Needed for new restriction No_Obsolescent_Features
28867
28868         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
28869         specified by AI-285, needed for implementation of AI-388 (adding greek
28870         pi to Ada.Numerics).
28871         Add new generic formal to scng, needed for new restriction
28872         No_Obsolescent_Features.
28873
28874         * s-rident.ads: Add new restriction No_Obsolescent_Features.
28875
28876         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
28877         restrictions lines.
28878         (Scan_ALI): When finding an unexpected character on an R line, raise
28879         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
28880         Ignore_Errors is True, default restrictions are set and scanning of the
28881         ALI file continues with the next line. Also, when Bad_R_Line is raised
28882         and Ignore_Errors is True, skip to the end of le line.
28883
28884         * sem_ch10.adb: Check that explicit with's do not violate
28885         No_Dependence restrictions.
28886         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
28887         illegal context clauses containing child units of instance.
28888
28889         * sem_prag.adb: Processing and checking for new No_Dependence
28890         restrictions.
28891         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
28892         analyze and check the External argument.
28893
28894         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
28895
28896 2005-01-03  Robert Dewar  <dewar@adacore.com>
28897
28898         * atree.adb: Add a fifth component to entities
28899         This allows us to add 32 flags and four new fields
28900
28901         * atree.ads: Add a fifth component to entities
28902         This allows us to add 32 flags and four new fields
28903
28904         * einfo.ads, einfo.adb: Document new fields and new flags now available
28905         Add routines for printing new fields
28906
28907         * treepr.adb: Call routines to print out additional fields if present
28908
28909 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
28910
28911         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
28912         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
28913
28914         * Makefile.in: Add support to build shared Ada libraries on solaris x86
28915         Remove gpr2make, replaced by gprmake.
28916         Remove references to gnatmem and libaddr2line.
28917         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
28918         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
28919         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
28920         a-numaux-darwin.ads and a-numaux-darwin.adb
28921         Enable mlib-tgt-lynxos.adb on lynxos.
28922
28923         * Make-lang.in: Remove rules for gpr2make.
28924         When generating sdefault.adb, do not call Relocate_Path
28925         on S3 for function Target_Name, as it is not a path.
28926         Remove references to gnatmem and libaddr2line.
28927
28928         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
28929         files.
28930
28931 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
28932
28933         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
28934         address is incompatible with its base type alignment constraints when
28935         this can be decided statically.
28936
28937 2005-01-03  Olivier Hainque  <hainque@adacore.com>
28938
28939         * decl.c (compatible_signatures_p): New function. The intended purpose
28940         is to check if two function signatures for a call-site and a callee are
28941         compatible enough for the call to be valid. The underlying purpose is
28942         to check if a call to a mapped builtin is using the right interface.
28943         The current code actually does not check antyhing - this a placeholder
28944         for future refinements.
28945         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
28946         builtin calls for convention Intrinsic.
28947
28948         * gigi.h (builtin_decl_for): Declare (new function).
28949
28950         * utils.c (gnat_install_builtins): Install the target specific builtins.
28951         (builtin_decl_for): New function, provide a dummy body for now.
28952
28953 2005-01-03  Geert Bosch  <bosch@adacore.com>
28954
28955         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
28956         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
28957         (Pred): Implement in terms of Succ.
28958
28959         * trans.c (convert_with_check): Reimplement conversion of float to
28960         integer.
28961
28962 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
28963             Vincent Celier  <celier@adacore.com>
28964
28965         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
28966         bounds can be negative, and must be declared Int, not Nat.
28967
28968         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
28969         array is checked after using the index in the array.
28970
28971         * makegpr.adb (Add_Switches): Check if there is a package for the
28972         processor. If there is no package, do not look for switches.
28973
28974 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
28975
28976         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
28977         generation of predefined stream operations (specs and bodies) should
28978         proceed. Under various restrictions these subprograms must not be
28979         generated.
28980
28981 2005-01-03  Thomas Quinot  <quinot@adacore.com>
28982
28983         * exp_dist.adb:
28984         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
28985         amount of PCS-specific code in RACW stubs generation.
28986         (Copy_Specification): Set Etype on copied formal parameter entities, as
28987         this information is needed for PolyORB stubs generation.
28988         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
28989         variable Dynamic_Async.
28990         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
28991         (Build_RPC_Receiver_Specification): Make generic again, as recent
28992         changes have allowed RPC receivers to have the same profile for both
28993         variants of the PCS.
28994         Reorganise RPC receiver generation to reduce differences between the
28995         structure of GARLIC and PolyORB RPC receivers.
28996         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
28997         PCS-specific.
28998         Simplify elaboration code for RCI packages.
28999
29000         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29001         generation to reduce differences between the structure of GARLIC and
29002         PolyORB RPC receivers.
29003
29004         * s-stratt.adb: Fix typo in comment.
29005
29006 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29007
29008         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29009         copied from Make_Init_Call).
29010
29011         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29012         reads and assignments on a temporary variable declared with appropriate
29013         discriminants.
29014
29015 2005-01-03  Robert Dewar  <dewar@adacore.com>
29016
29017         * i-c.adb (To_C): Raise CE if string is null and Append_Null
29018
29019 2005-01-03  Robert Dewar  <dewar@adacore.com>
29020
29021         * i-cstrin.adb (Update): Do not append a null in form called with a
29022         String. This avoids unintended behavior.
29023
29024 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29025
29026         PR ada/17527
29027         * init.c: Fix warnings on Free BSD section.
29028
29029 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29030
29031         PR ada/16949
29032         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29033         xsinfo.adb).
29034
29035 2005-01-03  Vincent Celier  <celier@adacore.com>
29036
29037         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29038         libraries when Unique_Compile is True (-u switch).
29039         (Gnatmake): ditto.
29040
29041 2005-01-03  Robert Dewar  <dewar@adacore.com>
29042
29043         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29044         upper case letter or underscore after W, as allowed by spec.
29045
29046 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29047
29048         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29049         darwin port by using proper type definitions from header files.
29050         Use SIGTERM instead of SIGABRT for SIGADAABORT.
29051
29052 2005-01-03  Robert Dewar  <dewar@adacore.com>
29053
29054         * par.adb: Enhance error message handling for configuration file
29055         pragmas.
29056
29057 2005-01-03  Robert Dewar  <dewar@adacore.com>
29058
29059         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29060         removed during the previous update (test properly for case of dividing
29061         largest negative number by -1, which generates overflow).
29062
29063 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29064             Sergey Rybin  <rybin@adacore.com>
29065
29066         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29067         to use as the defining identifier for a formal package.
29068         (Remove_Parent): If the instance takes place within (an instance of)
29069         a sibling, preserve private declarations of common parent.
29070
29071 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29072
29073         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29074         to determine whether one of the operands is a fixed-point type for
29075         which a user-defined multiplication or division operation might be
29076         defined.
29077
29078         * sem_res.adb (Valid_Conversion): The legality rules for conversions
29079         of access types are symmetric in Ada 2005: either designated type can
29080         be unconstrained.
29081
29082 2005-01-03  Vincent Celier  <celier@adacore.com>
29083
29084         * s-fileio.adb (Temp_File_Record): Change length of string component
29085         Name from L_tmpnam + 1 to max_path_len + 1.
29086
29087 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29088
29089         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29090         Self_Id.Deferral_Level = 0.
29091         (Do_Pending_Action): Move this function to the spec.
29092
29093         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29094         Do_Pending_Action explicitely when needed, in case we're using
29095         No_Abort restrictions.
29096
29097         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29098         deferral level since it will not get changed by the generated code.
29099         Keeping a default value of 1 would prevent some operations (e.g.
29100         select or delay) to proceed successfully.
29101
29102 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
29103             Robert Dewar  <dewar@adacore.com>
29104             Cyrille Comar  <comar@adacore.com>
29105
29106         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29107         porting guide chapter (vms version).
29108         Revised doc title (removed "for native platforms") and subtitle.
29109         Add discussion on warning flag for obsolescent features. First we
29110         note that it applies to obsolete GNAT features, which was previously
29111         omitted. Second we contrast the behavior with that of the new
29112         Ada 2005 AI-368 restriction No_Obsolescent_Features.
29113         Preliminary rewriting of GNAT & libraries chapter in order to take
29114         into account default project locations & new project manager
29115         capabilities.
29116
29117 2005-01-03  Robert Dewar  <dewar@adacore.com>
29118
29119         * cstand.adb (Create_Operators): Clean up format and documentation of
29120         unary and binary operator result tables. No change in code, just
29121         reformatting and addition of comments.
29122
29123         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29124         sem_ch2.adb: Minor reformatting
29125
29126         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29127         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29128         comments for Tree_Read and Tree_Write.
29129
29130 2005-01-03  Pascal Obry  <obry@adacore.com>
29131
29132         * exp_attr.ads: Minor reformatting.
29133
29134 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
29135
29136         * comperr.adb (Compiler_Abort): Add specialized message for GAP
29137         versions.
29138
29139 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29140
29141         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29142         whether the ancestor type is private, as may be the case with nested
29143         instantiations.
29144
29145 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
29146
29147         PR ada/19128
29148         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29149
29150 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
29151
29152         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29153         * utils2.c (build_unary_op): Likewise.
29154
29155 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29156
29157         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29158
29159 2004-12-19  Richard Henderson  <rth@redhat.com>
29160
29161         * trans.c (gigi): Update gimplify_body call.
29162
29163 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
29164
29165         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29166
29167 2004-12-07  Ed Falis  <falis@adacore.com>
29168
29169         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29170         current task being suspended.
29171
29172         * init.c (__gnat_clear_exception): added to reset VxWorks exception
29173         count.
29174         (__gnat_map_signal): removed test for current task being suspended.
29175
29176 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29177
29178         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29179         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29180         targets (such as AAMP).
29181
29182 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29183
29184         * atree.adb (Visit_Itype): Create a new name for the generated itype,
29185         because the back-end may otherwise treat it as a redefinition of the
29186         old symbol.
29187
29188 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
29189
29190         * back_end.adb (Scan_Back_End_Switches): Accept --param.
29191
29192         * lang-specs.h: Accept --param.
29193
29194 2004-12-07  Vincent Celier  <celier@adacore.com>
29195
29196         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29197         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29198         Current_Body_Suffix => Ada_Body_Suffix).
29199         Take into account Externally_Built attribute.
29200
29201         * clean.adb (In_Extension_Chain): Always return False when one of the
29202         parameter is No_Project.
29203         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29204         Ada_Language_Index).
29205         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29206         Process_Languages for procedure Parse).
29207
29208         * gnatcmd.adb (Carg_Switches): New table.
29209         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29210         Adapt to name changes in package Prj (Current_Spec_Suffix =>
29211         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29212
29213         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29214         Header_Num and function Hash are now declared in package Prj,
29215         not Prj.Com.
29216
29217         * prj.adb (Suffix_Of): New function.
29218         (Set (Suffix)): New procedure.
29219         (Hash): One function moved from Prj.Com
29220         (Is_Present, Language_Processing_Data_Of): New functions
29221         (Set): Two new procedures
29222         (Add_Language_Name, Display_Language_Name): New procedures
29223
29224         * prj.ads: (Suffix_Of): New function
29225         (Set (Suffix)): New procedure
29226         Add several types and tables for multi-language support.
29227         (Header_Num): Type moved from Prj.Com
29228         (Hash): Two functions moved from Prj.Com
29229         (Is_Present, Language_Processing_Data_Of): New functions
29230         (Set): Two new procedures
29231         (Add_Language_Name, Display_Language_Name): New procedures
29232         (Naming): Component name changes:
29233         Current_Spec_Suffix => Ada_Spec_Suffix,
29234         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29235         Impl_Suffixes, Supp_Suffixes.
29236         (Project_Data): New components: Externally_Built, Supp_Languages,
29237         First_Language_Processing, Supp_Language_Processing, Default_Linker,
29238         Default_Linker_Path.
29239
29240         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29241         new package Language_Processing with its attributes (Compiler_Driver,
29242         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29243         Binder_Driver, Default_Linker).
29244
29245         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29246         (Header_Num): Type moved to package Prj
29247
29248         * prj-env.adb: Adapt to name changes in package Prj
29249         (Current_Spec_Suffix => Ada_Spec_Suffix,
29250         Current_Body_Suffix => Ada_Body_Suffix).
29251
29252         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29253         default to the project path, except the "-" is one of the directories
29254         in env var ADA_PROJECT_PATH.
29255         (Current_Project_Path): Global variable, replacing Project_Path
29256         that was in the body of Prj.Part.
29257         (Project_Path): New function
29258         (Set_Project_Path): New procedure
29259         Initialize Current_Project_Path during elaboration of the package
29260         Remove dependency on Prj.Com, no longer needed
29261
29262         * prj-ext.ads (Project_Path): New function
29263         (Set_Project_Path): New procedure
29264
29265         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29266         suffix is defined for language <lang>.
29267         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29268         accessing directly the components of Naming.
29269         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29270         Reorganise of this package.
29271         Break procedure Check in several procedures.
29272
29273         * prj-nmsc.ads: Replace all procedures (Ada_Check,
29274         Other_Languages_Check and Language_Independent_Check) with a single
29275         procedure Check.
29276
29277         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29278         Process_Languages, no longer needed.
29279
29280         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29281         Current_Project_Path.
29282         Remove elaboration code, moved to the body of Prj.Ext
29283         Use new function Prj.Ext.Project_Path instead of old variable
29284         Project_Path.
29285         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29286         When comparing with project paths on the stack, first put the resolved
29287         path in canonical case.
29288         (Parse_Single_Project): Set the path name of the project file in the
29289         tree to the normalized path.
29290
29291         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29292         parameter Process_Languages, no longer needed.
29293         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29294         Other_Languages_Check.
29295
29296         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29297         to store the resolved canonical path of the project file.
29298         Remove dependency to Prj.Com, no longer needed
29299
29300         * prj-util.adb: Adapt to name changes in package Prj
29301         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29302         Ada_Body_Suffix).
29303
29304         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29305         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29306         Externally_Built, Include_Option, Language_Processing.
29307
29308         * makegpr.adb: Numerous changes due to changes in packages
29309         Prj and Prj.Nmsc.
29310
29311         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29312         default to the project path, except whe "-" is one of the directories
29313         in env var ADA_PROJECT_PATH.
29314         (Gnatls): In verbose mode, add the new section "Project Search Path:"
29315
29316 2004-12-07  Robert Dewar  <dewar@adacore.com>
29317
29318         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29319
29320         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29321         set -gnatR3m mode.
29322
29323         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29324         flag. No longer needed now that we handle this in gnat1drv.adb.
29325
29326         * repinfo.ads: Minor reformatting
29327
29328 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29329             Olivier Hainque  <hainque@adacore.com>
29330             Eric Botcazou  <ebotcazou@adacore.com>
29331
29332         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29333         TYPE_SIZE_UNIT of result type if SIZE is not specified.
29334         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29335         of a bitfield, which we know is useless and causes trouble because of
29336         alignment implications.
29337
29338         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29339         BSS sections.
29340         (process_attributes): Clear DECL_COMMON again when a section attribute
29341         is present.
29342         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29343         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29344         (create_field_decl): Special case ADDRESSABLE negative to mean
29345         "no bitfield creation", to be used by make_aligning_type. Don't
29346         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29347         fields claimed addressable still have to be bitfields. Use
29348         value_factor_p instead of a raw binop construction to check for the
29349         position's alignment.
29350
29351 2004-12-07  Geert Bosch  <bosch@adacore.com>
29352
29353         * eval_fat.adb: Revert previous change.
29354
29355 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29356             Ed Schonberg  <schonberg@adacore.com>
29357
29358         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29359         with an implicit dereference as its prefix, use
29360         Insert_Explicit_Dereference instead of merely rewriting the prefix into
29361         an explicit dereference. This ensures that a reference to the original
29362         prefix is generated, if appropriate.
29363
29364         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29365         dereference is rewritten to an explicit one, generate a reference to
29366         the entity denoted by its prefix using the original prefix node, so
29367         the dereference can be properly recorded as a read of the denoted
29368         access value, if appropriate.
29369
29370         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29371         emitting 'assigned but never read' warning on a variable on the basis
29372         that it has an access type.
29373         (Check_References): Emit unreferenced warning when the scope is a
29374         subprogram body.
29375
29376 2004-12-07  Robert Dewar  <dewar@adacore.com>
29377             Ed Schonberg  <schonberg@adacore.com>
29378
29379         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29380         intrinsic
29381
29382         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29383         leaving call unchanged.
29384         This deals with the case where the pragma Import specified
29385         an external name, to be handled by the back end.
29386
29387         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29388         subprogram which is Imported with convention Intrinsic if an
29389         External_Name argument is specified.
29390         (Process_Import_Or_Interface): Properly diagnose link name argument.
29391         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29392         with Sem_Ch6.Cannot_Inline.
29393         (Process_Inline): Provide separate warning for inapplicable inline
29394         pragma.
29395         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29396         treatment is uniform on different targets.
29397
29398 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29399
29400         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29401         construct is rewritten, preserve end label to permit source navigation.
29402
29403 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29404
29405         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29406         Specific_Build_Stub_Target): New subprograms.
29407         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29408         the PCS implementation used, using the above PCS-customized subprograms.
29409         Minor reformatting.
29410         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29411         for generation of DSA code targeted to the PolyORB PCS.
29412         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29413         implementation of the partition communication subsystem in ancillary
29414         subprograms.
29415         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29416         PolyORB_Support.Build_Stub_Type): New subrograms containing the
29417         PCS-specific part of Add_Stub_Type.
29418         (Insert_Partition_Check): Use runtime library function to perform
29419         E.4(19) check.
29420
29421         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29422         (RE_Same_Partition): New entity, from s-parint.
29423
29424         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
29425
29426 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29427
29428         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29429         Output the copyright message on a separate line from the version
29430         message.
29431
29432 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
29433
29434         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29435         compile-time warning.
29436
29437 2004-12-07  Robert Dewar  <dewar@adacore.com>
29438
29439         * g-regpat.adb: (Match): Change a misuse of or to or else
29440
29441 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29442
29443         * lib-xref.adb:
29444         (Generate_Reference): Handle properly a reference to an entry formal,
29445          when an accept statement has a pragma Unreferenced for it.
29446
29447         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29448         and the Has_Pragma_Unreferenced flag for each formal before analyzing
29449         the body, to ensure that warnings are properly emitted for each accept
29450         statement of a given task entry.
29451
29452 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
29453
29454         * Makefile.in: Add support for foreign threads on VMS.
29455
29456 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29457
29458         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29459         Remove.
29460         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29461
29462         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29463
29464         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29465         exception.
29466         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29467
29468 2004-12-07  Robert Dewar  <dewar@adacore.com>
29469
29470         * nlists.adb (Prepend_Debug): Remove parameters and nest within
29471         Prepend.
29472         (Remove_Next_Debug): Same fix
29473
29474         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29475         maintain back pointers now, though we did not used to, and comments
29476         were out of date).
29477         (Prepend): Remove pragma Inline.
29478         (Remove_Next): Same cleanup
29479
29480 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29481
29482         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29483         used to record an implicit dereference as a read operation on its
29484         prefix when operating under -gnatc. Necessary to avoid spurious
29485         'variable assigned but never read' warnings in that mode.
29486         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29487         is a non-overloaded implicit dereference, call the above subprogram to
29488         ensure proper recording of references.
29489
29490 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29491
29492         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29493         to be resolved later as part of Analyze_Iteration_Scheme's call to
29494         Make_Index.
29495
29496 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29497
29498         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29499         prefix is not a scalar type, place error message on prefix, not on
29500         type entity.
29501
29502 2004-12-07  Bernard Banner  <banner@adacore.com>
29503
29504         * vxaddr2line.adb: Add support for x86 vxworks
29505
29506 2004-12-07  Thomas Quinot  <quinot@adacore.com>
29507
29508         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29509         documentation of the behaviour of these functions when passed an IP
29510         address that has no record in the system hosts database and no reverse
29511         record in the DNS.
29512
29513         * cstand.adb, a-tags.ads: Fix typos in comment.
29514
29515 2004-12-07  Robert Dewar  <dewar@adacore.com>
29516
29517         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29518         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29519         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29520         s-poosiz.ads: Minor reformatting
29521
29522         * make.adb: Minor reformatting
29523         Add some ??? comments asking for more comments
29524
29525         * s-poosiz.adb: Minor reformatting
29526         Add comments on alignment requirement
29527
29528         * sinfo.ads: Remove obsolete comment and fix typo.
29529
29530 2004-12-07  Vincent Celier  <celier@adacore.com>
29531             Sergey Rybin  <rybin@adacore.com>
29532
29533         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29534         Files" with the new tool and package names.
29535         Reformatting to suppress most of the warnings for line too long
29536         Document the new section "Project Search Path:" in the output of
29537         gnatls -v.
29538         Add gnatmetric section
29539
29540 2004-12-07  Vincent Celier  <celier@adacore.com>
29541
29542         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29543         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29544         and -eit to -ept. Added qualifier
29545         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29546
29547 2004-11-27  Andreas Schwab  <schwab@suse.de>
29548
29549         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29550
29551 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29552
29553         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29554         internal implementation unit GNAT.Sockets.Thin,
29555         as their usage for sockets is non-portable (using the read and write
29556         functions from the system runtime library is fine on UNIX but won't
29557         work under Windows).
29558
29559         * mingw32.h: Update copyright notice.
29560
29561 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
29562
29563         * ada-tree.h: Minor reformatting of previous change to avoid lines
29564         longer than 79 characters.
29565
29566 2004-11-25  Olivier Hainque  <hainque@adacore.com>
29567
29568         * tb-gcc.c: GCC infrastructure based implementation of
29569         __gnat_backtrace.
29570
29571 2004-11-24  Steven Bosscher  <stevenb@suse.de>
29572
29573         * misc.c (gnat_post_options): Don't clear
29574         flag_inline_functions.
29575
29576 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
29577
29578         PR ada/17986
29579         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29580         tree.
29581
29582 2004-11-21  Andreas Jaeger  <aj@suse.de>
29583
29584         * stylesw.adb: Change Style_Check_Subprogram_Order to
29585         Style_Check_Order_Subprograms.
29586
29587 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
29588
29589         * adaint.h, adaint.c
29590         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29591         to avoid warnings.
29592         Add also a cast to kill another warning.
29593         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29594         parameter with the priority class of the parent process instead of
29595         always using the NORMAL_PRIORITY_CLASS.
29596         (__gnat_dup): New function.
29597         (__gnat_dup2): New function.
29598         (__gnat_is_symbolic_link): Enable the effective body of this
29599         function when __APPLE__ is defined.
29600
29601         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29602         Update comments.
29603
29604 2004-11-18  Olivier Hainque  <hainque@adacore.com>
29605
29606         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29607         address of which may be used to represent "others" and "all others"
29608         choices in exception tables, instead of the current harcoded
29609         (void *)0 and (void *)1.
29610         (Setup_Exception): Do nothing in the GNAT SJLJ case.
29611
29612         * gigi.h (others_decl, all_others_decl): New decls representing the
29613         new Others_Value and All_Others_Value objects.
29614         (struct attrib): Rename "arg" component as "args", since GCC expects a
29615         list of arguments in there.
29616
29617         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29618         corresponding objects exported by a-exexpr, instead of hardcoded dummy
29619         addresses.
29620
29621         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29622         others_decl and all_others_decl instead of hardcoded dummy addresses
29623         to represent "others" and "all others" choices, which is cleaner and
29624         more flexible with respect to the possible eh pointer encoding policies.
29625
29626         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29627         (process_attributes): Account for the naming change of the "args"
29628         attribute list entry component.
29629
29630         * decl.c (build_attr_list): Rename into prepend_attributes to allow
29631         cumulating attributes for different entities into a single list.
29632         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29633         attributes for the current entity and propagate first subtype
29634         attributes to other subtypes.
29635         <E_Procedure>: Attribute arguments are attr->args and not
29636         attr->arg any more.
29637         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29638         argument provided, as this is what GCC expects. Use NULL_TREE instead
29639         of 0 for trees.
29640
29641 2004-11-18  Robert Dewar  <dewar@adacore.com>
29642
29643         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
29644         Minor reformatting througout (including new function specs)
29645         Add ??? comments asking for clarification.
29646
29647 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29648
29649         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29650         incomplete duplicate implementation of this subprogram from butil.
29651
29652 2004-11-18  Thomas Quinot  <quinot@adacore.com>
29653
29654         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29655         procedures factors the common processing for building an RPC receiver
29656         for an RCI package or an RACW type.
29657         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29658         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29659         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29660         in use.
29661         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29662         Add_RACW_Features.
29663         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29664         Add_RAST_Features.
29665         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29666         distribution subprogram identifiers that are either subprogram numbers
29667         or strings.
29668         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29669         string distribution identifiers assigned to a given subprogram.
29670         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29671         (Add_RAS_Dereference_TSS): Add comments.
29672         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29673         is not referenced yet because it will be used by the PolyORB DSA
29674         implementation.
29675         (Insert_Partition_Check): Remove fossile code.
29676         (First_RCI_Subprogram_Id): Document this constant.
29677         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29678         RAS_Access TSS.
29679         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29680         replaced with calls to Get_Library_Unit_Name_String. Previously there
29681         were several instances of the same code in different locations in the
29682         compiler; this checkin completes the replacement of all of these
29683         instances with calls to a common subprogram.
29684         Minor reformatting.
29685
29686         * sem_dist.adb: Remove comment noting that RPC receiver generation
29687         should be disabled for RACWs that implement RASs.
29688         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29689
29690         * sem_util.ads, sem_util.adb (Has_Stream): New function
29691         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29692         qualified name of a library unit into the name buffer.
29693         (Note_Possible_Modification): Generate a reference only
29694         if the context comes from source.
29695
29696         * snames.ads (PCS_Names): New subtype corresponding to names of
29697         supported implementations of the Partition Communication Subsystem
29698         (PCS) (i.e. the runtime library support modules for the distributed
29699         systems annex).
29700
29701 2004-11-18  Robert Dewar  <dewar@adacore.com>
29702             Ed Schonberg  <schonberg@adacore.com>
29703
29704         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
29705         (Has_Rep_Pragma): New function
29706         (Has_Attribute_Definition_Clause): New function
29707         (Record_Rep_Pragma): Moved here from sem_ch13.adb
29708         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
29709
29710         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
29711
29712         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
29713         (Expand_Pragma_Psect_Object): New procedure
29714         These procedures contain the revised and cleaned up processing for
29715         these two pragmas. This processing was formerly in Sem_Prag, but
29716         is more appropriately moved here. The cleanup involves making sure
29717         that the pragmas are properly attached to the tree, and that no
29718         nodes are improperly shared.
29719
29720         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
29721         pragmas to Exp_Prag, which is more appropriate.
29722         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
29723         check for duplicates Remove use of Is_Psected flag, no longer needed.
29724         Use new Make_String_Literal function with string.
29725
29726         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
29727         that are functions return universal values, that have to be converted
29728         to the context type.
29729         Use new Make_String_Literal function with string.
29730         (Get_Stream_Convert_Pragma): New function, replaces the use of
29731         Get_Rep_Pragma, which had to be kludged to work in this case.
29732
29733         * freeze.adb: Use new Has_Rep_Pragma function
29734
29735         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
29736         function with string.
29737         Use new Has_Rep_Pragma function.
29738
29739         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
29740         string argument.
29741
29742 2004-11-18  Robert Dewar  <dewar@adacore.com>
29743
29744         * errout.ads, errout.adb: (First_Sloc): New function
29745
29746         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
29747         check (-gnatyx) instead of being included as a redundant construct
29748         warning.
29749
29750         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
29751         Style_Check_Order_Subprograms.
29752
29753         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
29754         stylesw.adb: Add Style_Check_Xtra_Parens
29755
29756         * usage.adb: Add line for -gnatyx (check extra parens)
29757
29758         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
29759
29760 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29761             Robert Dewar  <dewar@adacore.com>
29762
29763         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
29764         discriminant of a constrained subtype, analyze the copy of the
29765         corresponding constraint, because in some cases it may be only
29766         partially analyzed.
29767         Removes long-lived ??? comments.
29768
29769         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
29770         handled controlled or secondary-stack expressions within the
29771         iteration_scheme of a loop.
29772
29773         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
29774         bounds that may contain functions calls, to prevent memory leaks when
29775         the bound contains a call to a function that uses the secondary stack.
29776         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
29777         generate temporaries for loop bounds that might contain function calls
29778         that require secondary stack and/or finalization actions.
29779
29780         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
29781         selected component and the selector is overloadable (not just a
29782         function) treat as function call, Analyze_Call will disambiguate if
29783         necessary.
29784         (Analyze_Selected_Component): Do not generate an actual subtype for the
29785         selected component if expansion is disabled. The actual subtype is only
29786         needed for constraint checks.
29787         (Analyze_Allocator): If restriction No_Streams is set, then do
29788         not permit objects to be declared of a stream type, or of a
29789         composite type containing a stream.
29790
29791         * restrict.ads: Remove the a-stream entry from Unit_Array, since
29792         No_Streams no longer prohibits with'ing this package.
29793
29794         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
29795         discriminants, but the parent base has unknown discriminants, there is
29796         no discriminant constraint to inherit. Such a discrepancy can arise
29797         when the actual for a formal type with unknown discriminants is a
29798         similar private type whose full view has discriminants.
29799         (Analyze_Object_Declaration): If restriction No_Streams is set, then
29800         do not permit objects to be declared of a stream type, or of a
29801         composite type containing a stream.
29802
29803 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29804
29805         * exp_dbug.ads: Update documentation to reflect simpler encoding for
29806         protected operations.
29807
29808         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
29809         generated name, it complicates decoding in gdb and hinders debugging
29810         of protected operations.
29811         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
29812         flag for the protected entry barrier function.
29813         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
29814         flag for the protected entry function.
29815
29816 2004-11-18  Nicolas Setton  <setton@adacore.com>
29817
29818         * expect.c: Define __unix__ when __APPLE__ is defined.
29819
29820         * Makefile.in: Inform the value of the variable GMEM_LIB in the
29821         Darwin-specific section.
29822
29823         * lang-specs.h: Change the placement of the %1 marker.
29824         Works around the fact that gcc adds -fPIC by default under Darwin.
29825
29826 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
29827
29828         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
29829         type of the object with the packed array type, set the Analyzed flag
29830         on the object if it is an entity or simple indexed component, to avoid
29831         spurious type errors.
29832
29833 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
29834
29835         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
29836         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
29837         separate line from the version message.
29838
29839 2004-11-18  Ed Falis  <falis@adacore.com>
29840
29841         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
29842         vthreads.
29843         (init_float): Eliminate initialization of floating point status for
29844         AE653. The instructions have no effect for vThreads.
29845
29846 2004-11-18  Vincent Celier  <celier@adacore.com>
29847
29848         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
29849         gnatbind is invoked with -shared.
29850
29851 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
29852
29853         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
29854         for Detect_Blocking which is redundant with the check done within the
29855         procedure Protected_Single_Entry_Call.
29856         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
29857         Detect_Blocking which is redundant with the check done within the
29858         procedure Protected_Single_Entry_Call.
29859
29860 2004-11-18  Vincent Celier  <celier@adacore.com>
29861
29862         * makegpr.adb (Compile): Put the compiling switches (in package
29863         Compiler and on the command line) immediately after "-c", instead of
29864         at the end of the command line invocation of the compiler, when
29865         compiling a non-Ada file.
29866         (Build_Global_Archive): When there is no need to rebuild the archive,
29867         set Global_Archive_Exists, so that the archive is passed to the linker
29868         if one is needed.
29869
29870 2004-11-18  Robert Dewar  <dewar@adacore.com>
29871             Sergey Rybin  <rybin@adacore.com>
29872
29873         * gnat_ugn.texi:
29874         Remove extra paren check from list of checks for redundant constructs
29875         Add documentation of new -gnatyx style check (check extra parens)
29876         Remove paragraph about gnatelim debug options.
29877
29878         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
29879         objects rather than forbidding dependencies on the package Ada.Streams.
29880
29881         * sinfo.ads: Add ??? note that we should document pragmas passed to
29882         back end.
29883
29884         * g-expect.ads: Fix a few typos in the comments.
29885
29886 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
29887
29888         * misc.c (gnat_handle_option): Use %< and %> for quoting in
29889         warning message.
29890
29891 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29892
29893         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
29894
29895 2004-11-07  Andreas Schwab  <schwab@suse.de>
29896
29897         * Makefile.in (install-gnatlib): Remove spurious hyphen.
29898
29899 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
29900
29901         PR ada/18228
29902         * Makefile.in (darwin): Set soext to .dylib.
29903
29904 2004-10-26  Vincent Celier  <celier@gnat.com>
29905             Thomas Quinot   <quinot@act-europe.fr>
29906
29907         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
29908         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
29909         there is no use of GNAT.Sockets.Constants.
29910         Remove remaining pragma Import for C_Write
29911         Remove C_Read and C_Write from internal implementation unit
29912         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
29913         the read and write functions from the system runtime library is fine
29914         on UNIX but won't work under Windows).
29915
29916         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
29917         (Check_Selector): Use C_Recv instead of C_Read.
29918         Selectors are the GNAT.Sockets abstraction to perform a select()
29919         call on a set of descriptors. To allow abortion of an ongoing
29920         select operation, some data is written to a dedicated socket that
29921         is always monitored.
29922         Under Windows, the write and read library functions cannot operate
29923         on sockets, so we need to use send and recv instead, which is portable
29924         across all supported platforms.
29925
29926         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
29927         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
29928         (using the read and write functions from the system runtime library is
29929         fine on UNIX but won't work under Windows).
29930
29931 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
29932
29933         * mlib-tgt-darwin.adb: New file.
29934
29935         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29936         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
29937         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
29938         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
29939         subprogram body.
29940
29941         * Makefile.in: Add support for building shared libraries under Darwin.
29942         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
29943         the low level EH init subprogram to be called from __gnat_initialize.
29944
29945         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
29946         indicates which options to pass to the archive indexer.
29947
29948         * mlib-utl.adb: Add support for calling ranlib with additional
29949         options. This is needed for instance under Mac OS X.
29950         (Ranlib_Options): New global variable, used to store the potential
29951         options to pass to ranlib.
29952         (Ar): Use Ranlib_Options when spawning ranlib.
29953         (Initialize): Set the value of ranlib option.
29954
29955 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
29956
29957         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
29958         instead of 8K, to reflect the real potential needs for stack-checking
29959         in the ZCX case.
29960
29961 2004-10-26  Pascal Obry  <obry@gnat.com>
29962
29963         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
29964
29965         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
29966         Windows only the initial thread stack size can be set so it is good to
29967         start we a low stack size.
29968         The OS will adjust the size as needed.
29969
29970 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
29971             Nicolas Setton  <setton@act-europe.fr>
29972
29973         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
29974         "__unix__" instead of "unix".
29975         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
29976         sections were just mistakenly ignored. The former is
29977         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
29978         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
29979         of hpux. This prevents an unwanted definition of the symbol
29980         convert_addresses in adaint.o.
29981
29982 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
29983
29984         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
29985         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
29986
29987 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
29988
29989         * a-filico.ads, a-filico.adb: fix incorrect header.
29990
29991 2004-10-26  Javier Miranda  <miranda@gnat.com>
29992
29993         * a-ststio.ads: Fix typo in identifier
29994
29995 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
29996
29997         * sem_ch4.adb: Minor reformatting.
29998
29999 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30000
30001         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30002         enabled, check the result of unary and binary operations when the
30003         expression is the right-hand side of an assignment.
30004
30005 2004-10-26  Vincent Celier  <celier@gnat.com>
30006
30007         * clean.adb (Delete): Do not output warnings when in quiet output and
30008         not in verbose mode.
30009         (Force_Deletions): New Boolean flag, defaulted to False
30010         (Delete): Only delete a file if it is writable, and when
30011         Force_Deletions is True.
30012         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30013         (Usage): Line for new switch -f
30014         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30015         own.
30016
30017 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30018
30019         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30020         JM type only if its size matches that of the wrapper.  When a size is
30021         prescribed and the field is not aliased, remove the wrapper of a JM
30022         type only if the size is not greater than that of the packed array.
30023         (gnat_to_gnu_entity): Change the extension of packed array wrappers
30024         from LJM to JM.
30025
30026 2004-10-26  Geert Bosch  <bosch@gnat.com>
30027
30028         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30029         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30030         (Pred): Implement in terms of Succ.
30031
30032 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30033
30034         * exp_aggr.adb (Safe_Component): An aggregate component that is an
30035         unchecked conversion is safe for in-place use if the expression of the
30036         conversion is safe.
30037         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30038         be expandable in place even if the aggregate does not come from source.
30039         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30040         designated object of an allocator in place, rather than building it
30041         first on the stack. The previous scheme forces a full copy of the array,
30042         and may be altogether unsusable if the size of the array is too large
30043         for stack allocation.
30044
30045 2004-10-26  Robert Dewar  <dewar@gnat.com>
30046
30047         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30048         compares if the component is atomic.
30049
30050         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30051         array assignment if the component type is atomic.
30052
30053 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30054             Eric Botcazou  <ebotcazou@act-europe.fr>
30055
30056         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30057         is aliased and is a by_reference type, do not pass by copy.
30058         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30059         detect whether the call is in the right side of an assignment or
30060         the expression of an object declaration.  Recurse on component
30061         association within aggregates.
30062         Call it in the condition that determines whether the temporary is
30063         necessary for correct stack-checking.
30064
30065 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30066
30067         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30068         RACW_Type, used in the PolyORB version.
30069         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30070         version and the GARLIC version.
30071
30072         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30073         Rename RCI_Info to RCI_Locator for better consistency between the
30074         GARLIC and PolyORB versions of the distributed systems annex.
30075         (DSA_Implementation_Name): This enumeration lists the possible
30076         implementations of the Partition Communication Subsystem for the
30077         Distributed Systems Annex (DSA). The three available implementations
30078         are the dummy stub implementation (No_DSA), and two versions based on
30079         two different distribution runtime libraries: GARLIC and PolyORB. Both
30080         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30081         technology.
30082         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30083         that organization.
30084
30085         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30086         between the GARLIC and PolyORB versions of the distributed systems
30087         annex.
30088         Remove RE_Unbounded_Reclaim_Pool since it is unused.
30089
30090 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30091
30092         * gnat1drv.adb: Suppress calling the back end when
30093         Frontend_Layout_On_Target is true.
30094
30095 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30096
30097         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30098         Set_Read_Only): New subprograms.
30099         These new routines allow the user to set or unset the Owner execute
30100         and Owner write permission flags on a file.
30101
30102         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30103         GNAT.OS_Lib.Set_Executable instead of rolling our own.
30104
30105 2004-10-26  Matthew Gingell  <gingell@gnat.com>
30106
30107         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30108
30109 2004-10-26  Pascal Obry  <obry@gnat.com>
30110
30111         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30112         memory before the faulting page we properly test the process read
30113         access for this address using appropriate Win32 routine.
30114         (HPUX sections): guard with "__hpux__" instead of "hpux".
30115
30116 2004-10-26  Robert Dewar  <dewar@gnat.com>
30117
30118         * lib-xref.adb (Generate_Reference): Don't complain about reference to
30119         entry parameter if pragma Unreferenced set, since we do not properly
30120         handle the case of multiple parameters.
30121
30122 2004-10-26  Vincent Celier  <celier@gnat.com>
30123
30124         * prj-env.adb: (Contains_ALI_Files): New Boolean function
30125         (Ada_Objects_Path.Add): For a library project, add to the object path
30126         the library directory only if there is no object directory or if the
30127         library directory contains ALI files.
30128         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30129
30130 2004-10-26  Vincent Celier  <celier@gnat.com>
30131
30132         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30133         extension of library projects.
30134
30135         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30136         path defaults to ".:<prefix>/lib/gnat".
30137         (Parse): For an extending all project, allow direct import of a project
30138         that is virtually extended.
30139
30140         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30141         the specified name is directly imported, return its ID. Otherwise, if
30142         an extension of this project is imported, return the ID of the
30143         extension.
30144
30145 2004-10-26  Robert Dewar  <dewar@gnat.com>
30146
30147         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30148         (Sub3): New procedure, used by Scaled_Divide
30149         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30150         correct more than one instance of failure to propagate carries
30151         correctly.
30152         (Double_Divide): Handle overflow case of largest negative number
30153         divided by minus one.
30154
30155         * s-arit64.ads (Double_Divide): Document that overflow can occur in
30156         the case of a quotient value out of range.
30157         Fix comments.
30158
30159 2004-10-26  Robert Dewar  <dewar@gnat.com>
30160
30161         * s-bitops.adb (Bit_Eq): Remove redundant check.
30162
30163         * s-bitops.ads: Minor comment updates
30164         Change some occurrences of Address to System.Address
30165
30166         * s-carsi8.ads: Fix minor cut-and-paste error in comments
30167
30168 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30169
30170         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30171         accessibility check to prefix that is a protected operation.
30172
30173 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30174
30175         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30176         empty, post message on stub.
30177
30178 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30179             Javier Miranda  <miranda@gnat.com>
30180
30181         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30182         current instance appears within a unit that is directly in the context
30183         of the main unit.
30184         Used to determine whether the body of the instance should be analyzed
30185         immediately after its spec, to make its subprogram bodies available
30186         for front-end inlining.
30187         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30188         constraint is not allowed on the component type (AARM 12.5.3(3))
30189
30190 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30191
30192         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30193         'Storage_Pool): enhance, document & limit detection of non-sharable
30194         internal pools.
30195
30196         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30197
30198         * s-pooglo.ads: Add more documentation now that this pool is properly
30199         documented.
30200
30201 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30202
30203         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30204         or protected type with discriminants, do not constrain the
30205         corresponding record type if the subtype declaration has no
30206         discriminant constraints. This can be the case in source code, or in
30207         the subtype declaration created to rename an actual type within an
30208         instantiation.
30209
30210 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30211
30212         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30213         different kind of stub (possibly wrong name for file), do not check
30214         for conformance.
30215         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30216         includes call to some function that returns an unconstrained type, do
30217         not inline.
30218
30219 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30220
30221         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30222         appear in the code for the main unit. Dependencies among units in the
30223         context of the main unit are established when those other units are
30224         compiled. Otherwise spurious elaboration constraints can generate
30225         incorrect elaboration circularities.
30226
30227 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30228             Ed Schonberg   <schonberg@gnat.com>
30229
30230         * sem_util.adb (Is_Aliased_View): Defend against the case where this
30231         subprogram is called with a parameter that is not an object name. This
30232         situation arises for some cases of illegal code, which is diagnosed
30233         later, and in this case it is wrong to call Is_Aliased, as that might
30234         cause a compiler crash.
30235         (Explain_Limited_Type): Refine previous fix to include
30236         inherited components of derived types, to provide complete information.
30237
30238         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30239         is the prival for a protected object.
30240         It is necessary to mark this entity as a variable, in addition to
30241         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30242         modified to avoid checking the Aliased flag on entities that are not
30243         objects. (Checking that flag for non-objects is erroneous and could
30244         lead to a compiler crash).
30245
30246 2004-10-26  Robert Dewar  <dewar@gnat.com>
30247
30248         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30249         X_Frac = 0.5, then we know that the number X must be positive.
30250         (Succ): Remove the same redundant test, and also fix the primary test
30251         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30252         Minor reformatting
30253         (Decompose): Add fuller comments to spec
30254
30255 2004-10-26  Pascal Obry  <obry@gnat.com>
30256
30257         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30258         validity (process must have read access). Set to 0 in all other cases.
30259         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30260         violation on Win32.
30261         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30262         segmentation violation.
30263
30264 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30265
30266         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30267         whose type is a constructed subtype of an aliased object with an
30268         unconstrained nominal subtype, convert the actual to the constructed
30269         subtype before taking its address.
30270
30271 2004-10-26  Vincent Celier  <celier@gnat.com>
30272
30273         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30274         (Is_Path_Name_Case_Sensitive): New function
30275
30276         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30277         (Base_Name, Simple_Name, Current_Directory, Compose,
30278         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30279         the result.
30280
30281 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
30282             Vasiliy Fofanov  <fofanov@act-europe.fr>
30283             Vincent Celier   <celier@gnat.com>
30284
30285         * gnat_ugn.texi: Generalize "finding memory problems" section into a
30286         "memory management issues" section and document some of the useful
30287         memory pools provided as part of the GNAT library.
30288         Remove "virtual" from declaration of A::method2 in
30289         the simple example of Ada/C++ mixed system.
30290         Library Projects may be virtually extended: their virtual extensions
30291         are not Library Projects.
30292         Added section on extending project hierarchies.
30293
30294 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
30295
30296         * adaint.c (__gnat_get_libraries_from_registry): Cast value
30297         to LPBYTE.
30298         (__gnat_portable_spawn): Remove const.
30299
30300         * mingw32.h (MAXPATHLEN): Check for previous definition.
30301
30302 2004-10-17  Matthias Klose  <doko@debian.org>
30303
30304         * gnatvsn.ads: Set gnat library version to 4.0.
30305
30306 2004-10-05  Vincent Celier  <celier@gnat.com>
30307
30308         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30309
30310 2004-10-04  Laurent Guerby  <laurent@guerby.net>
30311
30312         PR ada/15156
30313         * Makefile.in: Define and use RANLIB_FLAGS.
30314
30315 2004-10-04  Pascal Obry  <obry@gnat.com>
30316
30317         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30318         other x86 platforms).
30319
30320 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30321
30322         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30323         in general and triggers stack alignment adjustment for thread entry
30324         points on targets where this is necessary.
30325
30326 2004-10-04  Bernard Banner  <banner@gnat.com>
30327
30328         PR ada/13897
30329         * Makefile.in: Add section for powerpc linux
30330         Add variant i-vxwork-x86.ads
30331
30332         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30333
30334 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30335
30336         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30337         table registration calls when need be. Ensures no reference to the crt
30338         ctors symbol are issued in the SJLJ case, which avoids possible
30339         undefined symbol errors in the case of modules to be statically linked
30340         with the kernel.
30341
30342 2004-10-04  Javier Miranda  <miranda@gnat.com>
30343
30344         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30345         in-line the code corresponding to subprogram Analyze_Actuals. In
30346         addition, analyze the actuals only in case of subprogram call.
30347
30348 2004-10-04  Ed Falis  <falis@gnat.com>
30349
30350         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30351
30352 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
30353
30354         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30355         in the documentation.
30356
30357 2004-10-04  Robert Dewar  <dewar@gnat.com>
30358
30359         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30360         IF and CASE.
30361         (Analyze_Block_Statement): Add circuitry to detect following dead code
30362         (Check_Unreachable_Code): Handle case of block exit
30363
30364 2004-10-04  Robert Dewar  <dewar@gnat.com>
30365
30366         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30367         (XMatchD): Avoid warning for Logic_Error call
30368
30369 2004-10-04  Robert Dewar  <dewar@gnat.com>
30370
30371         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30372         consider expressions buried within a procedure actual to be an actual.
30373         This caused some blowups with uses of packed slices within a procedure
30374         actual.
30375
30376 2004-10-04  Robert Dewar  <dewar@gnat.com>
30377
30378         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30379         longer need to be initialized to zero.
30380         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30381         initialized to zero.
30382
30383         * checks.adb (Expr_Known_Valid): Packed arrays are now always
30384         considered valid, even if the representation is modular. That's correct
30385         now that we no longer initialize packed modular arrays to zero.
30386
30387         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30388         suffixes. These are now documented as the only cases in which the
30389         debugger ignores outer records.
30390         Previously, the spec allowed arbitrary suffixes for this purpose.
30391         Change name of LJM to JM for packed array pad records
30392         Create separate section on packed array handling, and add a whole new
30393         set of comments to this section describing the situation with packed
30394         modular types and justification requirements depending on endianness.
30395
30396 2004-10-04  Robert Dewar  <dewar@gnat.com>
30397
30398         * a-except.adb: Add a comment for last change
30399
30400         * einfo.ads: Minor spelling correction in comment
30401
30402         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30403
30404         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30405         messages.
30406
30407         * sem_util.ads: Minor comment update
30408
30409 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30410
30411         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30412         Inline_Always when in Configurable_Run_Time mode.
30413
30414         * sem_prag.adb (Process_Convention): If entity is an inherited
30415         subprogram, apply convention to parent subprogram if in same scope.
30416         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30417         when in Configurable_Run_Time mode.
30418
30419 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30420
30421         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30422         class_wide type after component list has been inherited.
30423
30424 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30425
30426         * sem_ch12.adb (Check_Generic_Actuals): New predicate
30427         Denotes_Previous_Actual, to handle properly the case of a private
30428         actual that is also the component type of a subsequent array actual.
30429         The visibility status of the first actual is not affected when the
30430         second is installed.
30431         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30432         make fully recursive the treatment of formals of packages declared
30433         with a box.
30434         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30435         the above on exit from an instantiation.
30436         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30437         current instantiation which is now complete.
30438         (Analyze_Package_Instantiation): No instantiated body is needed if the
30439         main unit is generic. Efficient, and avoid anomalies when a instance
30440         appears in a package accessed through rtsfind.
30441
30442 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30443
30444         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30445         do not generate a declaration for a temporary if the call is part of a
30446         library-level instantiation.
30447
30448 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
30449
30450         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30451         searching for a limited component to flag.
30452
30453         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30454         expansion of Input, to account for the fact that the implicit call
30455         generated by the attribute reference must freeze the user-defined
30456         stream subprogram. This is only relevant to 'Input, because it can
30457         appear in an object declaration, prior to the body of the subprogram.
30458
30459         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30460         expansion can proceed and further errors uncovered.
30461         (Minor clean up): Fix cases of using | instead of \ for continuation
30462         messages.
30463
30464 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30465
30466         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30467
30468         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30469         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30470         Use gcc_assert and gcc_unreachable.
30471
30472         * decl.c (gnat_to_gnu_entity, case object): Check and process a
30473         specified alignment before validating size.
30474         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30475         stripped-down declaration for the type of the inner field when making
30476         a JM type.
30477
30478         * utils.c (finish_record_type): Do not compute the size in units
30479         incrementally. Instead compute it once for the rep clause case.
30480         Use gcc_assert and gcc_unreachable.
30481
30482 2004-10-04  Vincent Celier  <celier@gnat.com>
30483
30484         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30485         in file name.
30486         (Is_Valid_Path_Name): Take '/' as a directory separator.
30487
30488 2004-10-04  Vincent Celier  <celier@gnat.com>
30489
30490         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30491         (Extended_Project) only if Extended_Project is defined, to avoid
30492         assertion error.
30493         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30494         resolved path.
30495         (Parse_Single_Project): Ditto.
30496
30497         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30498         Add_To_Project_Path for virtual projects.
30499
30500 2004-10-04  Vincent Celier  <celier@gnat.com>
30501
30502         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30503         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30504         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
30505         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30506         parameter Options_2.
30507
30508         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30509         Build_Dynamic_Library with an empty Options_2.
30510
30511         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30512         default anymore.
30513
30514         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30515         directory separator, if any.
30516         (Gprmake): Do not allow mains on the command line for library projects.
30517         Do not attempt to link when the project is a library project.
30518         (Library_Opts): New table to store Library_Options.
30519         (Build_Library): If Library_Options is specified, pass these options
30520         when building a shared library.
30521
30522 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30523
30524         * s-tposen.adb (Service_Entry): The object must be always unlocked at
30525         the end of this procedure now that the unlock operation was inserted
30526         by the expander.
30527
30528 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
30529
30530         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30531         corresponding to the Preallocated_Stacks flags in System.
30532         (Get_Target_Parameters): Including the processing for
30533         Preallocated_Stacks.
30534
30535         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30536         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30537         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30538         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30539         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30540         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30541         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30542         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30543         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30544         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
30545         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30546         used to signal whether the compiler creates the required stacks and
30547         descriptors for the different tasks (when True) or it is done by the
30548         underlying operating system at run time (when False).
30549         It is initially set to False in all targets.
30550
30551         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30552         if it is supported by the target.
30553         (Make_Task_Create_Call): Pass the stack address if it has been
30554         previously created. Otherwise pass a Null_Address.
30555
30556         * snames.adb: Add _stack.
30557
30558         * snames.ads: Add Name_uStack. Required to allow the expander to
30559         statically allocated task stacks.
30560
30561         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30562         Stack_Address argument.
30563         Check that its value is equal to Null_Address because this target does
30564         not support the static stack allocation.
30565
30566 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30567
30568         * usage.adb: Change "pragma inline" to "pragma Inline" in information
30569         and error messages
30570
30571 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30572
30573         * exp_dist.adb: Split declaration of asynchronous flag out of
30574         Add_RACW_Read_Attribute.
30575         Minor reformatting for better alignment with PolyORB version.
30576         Store the entity for the asynchronous flag of an RACW, rather than the
30577         expression, in the asynchronous flags table. This will allow this flag
30578         to be used in other subprograms beside Add_RACW_Read_Attribute.
30579
30580 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
30581
30582         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
30583         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30584         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30585         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
30586         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
30587         sockets constant MSG_NOSIGNAL (Linux-specific).
30588         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30589         all Send operations.
30590         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30591         from trigerring SIGPIPE.
30592         Rename components to avoid clash with Ada 2005 possible reserved
30593         word 'interface'.
30594         (Check_Selector): When the select system call returns with an error
30595         condition, propagate Socket_Error to the caller.
30596
30597 2004-10-01  Jan Hubicka  <jh@suse.cz>
30598
30599         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30600
30601 2004-09-23  Robert Dewar  <dewar@gnat.com>
30602
30603         PR ada/17540
30604         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30605         instead do this at freeze time (we won't do it if there is an address
30606         clause).
30607         Change "pragma inline" to "pragma Inline" in information and error
30608         messages.
30609         Minor reformatting.
30610
30611         * freeze.adb (Check_Address_Clause): Remove previous change, not the
30612         right way of doing things after all.
30613         (Freeze_Entity): For object, set Is_Public for imported entities
30614         unless there is an address clause present.
30615
30616 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
30617
30618         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30619         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30620         ensures proper handling of types with rep clauses, which might have
30621         their TYPE_SIZE set already.
30622
30623 2004-09-21  Robert Dewar  <dewar@gnat.com>
30624
30625         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30626         packed array types in both little- and big-endian cases. This change
30627         ensures that we no longer count on the unused bits being initialized
30628         for such types (and in particular ensures that equality testing will
30629         only read the relevant bits).
30630         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30631         These changes mean that we no longer need to initialize small packed
30632         arrays.
30633         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30634         optimization to an LJM field as to its parent field.
30635
30636         * ada-tree.h, trans.c, utils.c, utils2.c:
30637         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30638
30639 2004-09-20  Jan Hubicka  <jh@suse.cz>
30640
30641         * utils.c (gnat_finalize): Remove.
30642         (end_subprog_body): Directly call cgraph_finalize_function;
30643         do not lower the nested functions.
30644
30645 2004-09-20  Robert Dewar  <dewar@gnat.com>
30646
30647         PR ada/17540
30648         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30649         if an address clause is present, since that means that the Import
30650         should be ignored.
30651
30652 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
30653
30654         * 5tsystem.ads: Removed, no longer used.
30655
30656 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
30657             Zack Weinberg  <zack@codesourcery.com>
30658
30659         * ada-tree.def: Use tree_code_class enumeration constants
30660         instead of code letters.
30661         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30662         Update for new tree-class enumeration constants.
30663
30664 2004-09-17  Vincent Celier  <celier@gnat.com>
30665
30666         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30667         capabilities of the general project manager.
30668
30669 2004-09-09  Vincent Celier  <celier@gnat.com>
30670
30671         * a-direct.ads: Add pragma Ada_05
30672         (Directory_Entry_Type): Give default value to component Kind to avoid
30673         not initialized warnings.
30674
30675         * a-direct.adb (Current_Directory): Remove directory separator at the
30676         end.
30677         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30678         an existing directory.
30679         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30680         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30681         Convert the result to File_Size.
30682
30683         * prj.ads: (Project_Error): New exception
30684
30685         * prj-attr.adb: Except in procedure Initialize, Fail comes from
30686         Prj.Com, not from Osint.
30687         (Attrs, Package_Attributes): Tables moved to private part of spec
30688         (Add_Attribute, Add_Unknown_Package): Moved to new child package
30689         Prj.Attr.PM.
30690         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30691         Prj.Project_Error after call to Fail.
30692         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30693         Fail. Check that package name is not already in use.
30694
30695         * prj-attr.ads: Comment updates to indicate that all subprograms may be
30696         used by tools, not only by the project manager, and to indicate that
30697         exception Prj.Prj_Error may be raised in case of problem.
30698         (Add_Unknown_Package, Add_Attribute): Moved to new child package
30699         Prj.Attr.PM.
30700         (Attrs, Package_Attributes): Table instantiations moved from the body to
30701         the private part to be accessible from Prj.Attr.PM body.
30702
30703         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
30704         from new package Prj.Attr.PM.
30705         (Parse_Attribute_Declaration): Call Add_Attribute from new package
30706         Prj.Attr.PM.
30707
30708         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
30709
30710         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
30711         instead of Elaboration_Checks).
30712
30713         * a-calend.adb: Minor reformatting
30714
30715 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30716
30717         * gigi.h (maybe_pad_type): New declaration.
30718         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
30719
30720         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
30721
30722         * cuintp.c: Convert to use buildN.
30723
30724         * decl.c (maybe_pad_type): No longer static.
30725         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
30726         target pointer.
30727         Convert to use buildN.
30728
30729         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
30730         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
30731         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
30732         RHS.
30733         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
30734         (gnat_gimplify_expr, case ADDR_EXPR): New case.
30735         Convert to use buildN.
30736
30737         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
30738         TREE_READONLY for const.
30739         Convert to use buildN.
30740
30741         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
30742         (create_var_decl): Refine when TREE_STATIC is set.
30743         Convert to use buildN.
30744
30745 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
30746
30747         * gnat_ugn.texi: Delete text relating to checking of ali and object
30748         consistency.
30749
30750         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
30751         routines.
30752
30753 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
30754
30755         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
30756         pragmas recognized by GNAT.
30757
30758         * gnat_rm.texi: Document pragma Detect_Blocking.
30759
30760         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
30761         raise Program_Error if called from a protected operation.
30762
30763         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
30764         the protected action nesting level.
30765         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
30766         protected action nesting level.
30767         (Unlock): When pragma Detect_Blocking is active decrease the protected
30768         action nesting level.
30769
30770         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
30771         Protected_Action_Nesting.
30772
30773         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
30774         Common_ATCB record. It contains the dynamic level of protected action
30775         nesting for each task. It is needed for checking whether potentially
30776         blocking operations are called from protected operations.
30777         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
30778         Detect_Blocking is active or not in the partition.
30779
30780         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
30781         raise Program_Error if called from a protected operation.
30782         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
30783         Program_Error if called from a protected operation.
30784         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
30785         Program_Error if called from a protected operation.
30786
30787         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
30788         raise Program_Error if called from a protected operation.
30789
30790         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
30791         raise Program_Error if called from a protected operation, and increase
30792         the protected action nesting level.
30793         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
30794         Program_Error if called from a protected operation, and increase the
30795         protected action nesting level.
30796         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
30797         protected action nesting level.
30798
30799         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
30800         raise Program_Error if called from a protected operation, and increase
30801         the protected action nesting level.
30802         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
30803         Program_Error if called from a protected operation, and increase the
30804         protected action nesting level.
30805         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
30806         raise Program_Error if called from a protected operation.
30807         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
30808         active, raise Program_Error if called from a protected operation.
30809         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
30810         protected action nesting level.
30811
30812         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
30813         insertion of the statement raising Program_Error. The run time
30814         contains the required machinery for handling that.
30815
30816         * sem_util.ads: Change comment associated to procedure
30817         Check_Potentially_Blocking_Operation.
30818         This procedure does not insert a call for raising the exception because
30819         that is currently done by the run time.
30820
30821         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
30822
30823         * init.c: Add the global variable __gl_detect_blocking that indicates
30824         whether pragma Detect_Blocking is active (1) or not (0). Needed for
30825         making the pragma available at run time.
30826         (__gnat_set_globals): Pass and update the detect_blocking parameter.
30827
30828         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
30829         pragma Detect_Blocking is active.
30830
30831         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
30832
30833         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
30834         DB is found in the ali file. Any unit compiled with pragma
30835         Detect_Blocking active forces its effect in the whole partition.
30836
30837         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
30838         Detect_Blocking is active and delay is called from a protected
30839         operation.
30840
30841         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
30842         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
30843         Detect_Blocking is active (0 otherwise).
30844         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
30845         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
30846         otherwise).
30847
30848 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
30849
30850         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
30851         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
30852         package.
30853
30854         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
30855         (Register_Receiving_Stub): Add Subp_Info formal parameter.
30856         Update API in placeholder implemetation of s-parint to reflect changes
30857         in distribution runtime library.
30858
30859         * sem_ch3.adb (Expand_Derived_Record): Rename to
30860         Expand_Record_Extension.
30861
30862         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
30863         primitive operations of potentially distributed object types that have
30864         non-controlling anonymous access formals.
30865
30866         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
30867         subprogram.
30868         New implementation of expansion for remote access-to-subprogram types,
30869         based on the RACW infrastructure.
30870         This version of sem_dist is compatible with PolyORB/DSA as well as
30871         GLADE.
30872
30873         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
30874         Asynchrronous that applies to a remote access-to-subprogram type, mark
30875         the underlying RACW type as asynchronous.
30876
30877         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
30878          __gnat_using_gnu_linker to 1.
30879
30880         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
30881         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
30882         GNAT.Perfect_Hash_Generators, and remove the empty
30883         GNAT.Perfect_Hash package.
30884
30885         * atree.adb: Minor reformatting
30886
30887         * exp_ch3.adb (Expand_Derived_Record): Rename to
30888         Expand_Record_Extension.
30889         (Build_Record_Init_Proc.Build_Assignment): The default expression in
30890         a component declaration must remain attached at that point in the
30891         tree so New_Copy_Tree copies it if the enclosing record type is derived.
30892         It is therefore necessary to take a copy of the expression when building
30893         the corresponding assignment statement in the init proc.
30894         As a side effect, in the case of a derived record type, we now see the
30895         original expression, without any rewriting that could have occurred
30896         during expansion of the ancestor type's init proc, and we do not need
30897         to go back to Original_Node.
30898
30899         * exp_ch3.ads (Expand_Derived_Record): Rename to
30900         Expand_Record_Extension.
30901
30902         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
30903         Returns the RACW type used to implement a remote access-to-subprogram
30904         type.
30905         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
30906         New subprograms. Used to create a proxy tagged object for a remote
30907         subprogram. The proxy object is used as the designated object
30908         for RAS values on the same partition (unless All_Calls_Remote applies).
30909         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
30910         System.Partition_Interface.Get_Unique_Remote_Pointer.
30911         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
30912         Renamed from Add_RAS_*_Attribute.
30913         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
30914         subprograms.
30915         New implementation of expansion for remote access-to-subprogram types,
30916         based on the RACW infrastructure.
30917
30918         * exp_dist.ads (Copy_Specification): Update comment to note that this
30919         function can copy the specification from either a subprogram
30920         specification or an access-to-subprogram type definition.
30921
30922 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
30923
30924         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
30925         in an instance, between an explicit subprogram an one inherited from a
30926         type derived from an actual.
30927
30928         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
30929         add a polling call if the subprogram is to be inlined by the back-end,
30930         to avoid repeated calls with multiple inlinings.
30931
30932         * checks.adb (Apply_Alignment_Check): If the expression in the address
30933         clause is a call whose name is not a static entity (e.g. a dispatching
30934         call), treat as dynamic.
30935
30936 2004-09-09  Robert Dewar  <dewar@gnat.com>
30937
30938         * g-trasym.ads: Minor reformatting
30939
30940         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
30941         packed arrays, since unused bits are expected to be zero for a
30942         comparison.
30943
30944 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
30945
30946         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
30947         comment.
30948
30949 2004-09-09  Pascal Obry  <obry@gnat.com>
30950
30951         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
30952         enable map file generation. Add the right option to generate the map
30953         file if Map_File is set to True.
30954
30955         * gnatdll.adb (Gen_Map_File): New variable.
30956         (Syntax): Add info about new -m (Map_File) option.
30957         (Parse_Command_Line): Add support for -m option.
30958         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
30959         Minor reformatting.
30960
30961 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
30962
30963         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
30964         new gnatdist implementation.
30965         Define a subpackage isolating the output routines specific to this
30966         verbose mode.
30967
30968 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
30969
30970         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
30971
30972         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
30973
30974 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
30975
30976         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
30977         internal unit.
30978
30979         * opt.ads: Add Ada_Version_Runtime constant used to decide which
30980         version of the language is used to compile the run time.
30981
30982 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
30983
30984         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
30985         of variable length temporaries for function return now that the
30986         back-end and gigi support it.
30987
30988 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30989
30990         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
30991
30992         * trans.c (struct stmt_group): Delete field GLOBAL.
30993         (gnat_init_stmt_group): Do not initialize it.
30994         (call_to_gnu): Use save_expr, not protect_multiple_eval.
30995         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
30996         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
30997         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
30998         (start_stmt_group): Likewise.
30999         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31000
31001         * utils2.c (ggc.h): Include.
31002         (build_call_raise): Call build_int_cst, not build_int_2.
31003
31004         * utils.c (gnat_init_decl_processing): Fix arg to
31005         build_common_tree_nodes.
31006         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31007         (gnat_define_builtin): Set built_in_decls.
31008         (init_gigi_decls): Call build_int_cst, not build_int_2.
31009
31010         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31011         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31012         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31013         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31014         SET_TYPE_MODULE): Use them.
31015         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31016         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31017         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31018         SET_TYPE_ADA_SIZE): Likewise.
31019         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31020         (DECL_CONST_CORRESPONDING_VAR,
31021         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31022         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31023         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31024         (TYPE_RM_SIZE_NUM): New macro.
31025         (TYPE_RM_SIZE): Modified to use above.
31026
31027         * cuintp.c: (build_cst_from_int): New function.
31028         (UI_To_gnu): Use it.
31029
31030         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31031         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31032         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31033         MIN_EXPR for the size, copy it into new.
31034
31035 2004-09-01  Robert Dewar  <dewar@gnat.com>
31036
31037         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31038         packed indexed component where array is an IN OUT formal. This
31039         generated garbage code previously.
31040
31041         * gnat_ugn.texi: Document -fverbose-asm
31042
31043         * gnat-style.texi: Minor updates (note that boolean constants and
31044         variables are joined with AND/OR rather than short circuit forms).
31045
31046 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
31047
31048         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31049         it is an upward conversion of an untagged type with no representation
31050         change.
31051
31052 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
31053
31054         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31055         System.Partition_Interface.
31056
31057         * checks.adb (Apply_Access_Checks): Do not generate checks when
31058         expander is not active (but check for unset reference to prefix of
31059         dereference).
31060
31061         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31062         pragma Debug as an if statement with a constant condition, for
31063         consistent treatment of entity references contained within the
31064         enclosed procedure call.
31065
31066 2004-09-01  Vincent Celier  <celier@gnat.com>
31067
31068         * bindgen.adb: (Set_EA_Last): New procedure
31069         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31070         Set_EA_Last.
31071         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31072         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31073         linked without errors.
31074         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31075         ST and EA.
31076         (Gen_Exception_Table_C): Correct same bugs
31077
31078         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31079
31080         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31081         on Windows, make sure that the drive letter is in upper case.
31082
31083         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31084         Windows, when the drive letter is added and Case_Sensitive is True, the
31085         drive letter is forced to upper case.
31086
31087         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31088         to Options_2 for the call to MLib.Utl.Gcc.
31089
31090         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31091         directory separator when defining BASE_DIR.
31092
31093 2004-09-01  Pascal Obry  <obry@gnat.com>
31094
31095         * gprcmd.adb (Extend): Do not output trailing directory separator. This
31096         is not needed and it confuses Windows GNU/make which does not report
31097         directory terminated by a slash as a directory.
31098         (gprcmd): Idem for "pwd" internal command.
31099
31100         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31101         target names rewrite to fix regressions with recent version of
31102         GNU/make. Starting with GNU/make 3.80 the pipe character was not
31103         handled properly anymore.
31104
31105 2004-09-01  Andreas Schwab  <schwab@suse.de>
31106
31107         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31108         * raise.c [!IN_RTS]: Undef abort.
31109
31110 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
31111
31112         * utils2.c (build_allocator): Use ssize_int.
31113
31114         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31115
31116 2004-08-27  Andreas Schwab  <schwab@suse.de>
31117
31118         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31119
31120 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31121             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31122
31123         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31124
31125 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31126
31127         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31128         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31129         * utils.c (init_gigi_decls): Likewise.
31130         * utils2.c (build_call_raise, build_allocator): Likewise.
31131
31132 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
31133
31134         * utils.c (gnat_init_decl_processing): Adjust
31135         build_common_tree_nodes call.
31136
31137 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
31138
31139         * utils2.c (build_allocator): Use build_int_cst for negative
31140         size types.
31141
31142 2004-08-18  Richard Henderson  <rth@redhat.com>
31143
31144         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31145
31146 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
31147
31148         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31149         call.s
31150         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31151         (gnat_to_gnu): Likewise.
31152
31153 2004-08-16  Pascal Obry  <obry@gnat.com>
31154
31155         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31156         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31157         option and not mdll anymore. Update comment.
31158
31159 2004-08-16  Pascal Obry  <obry@gnat.com>
31160
31161         * bld.adb (Put_Include_Project): Properly handle directory separators
31162         on Windows.
31163
31164 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
31165
31166         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31167         decreasing the number of allocated junk nodes while searching for the
31168         appropriate subprogram.
31169
31170 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
31171
31172         * cuintp.c (UI_To_gnu): Use build_int_cst..
31173         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31174         * utils.c (init_gigi_decls): Likewise.
31175         * utils2.c (build_call_raise): Likewise.
31176
31177 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
31178
31179         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31180         for a global aliased object with a variable size and an unconstrained
31181         nominal subtype, pretend there is no initializer if the one we have is
31182         incomplete, and avoid referencing an inexistant component in there. The
31183         part we have will be rebuilt anyway and the reference may confuse
31184         further operations.
31185
31186 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
31187
31188         * einfo.ads: Minor reformatting
31189
31190         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31191         restrictions in the ALI if we only want to warn about violations.
31192
31193 2004-08-13  Vincent Celier  <celier@gnat.com>
31194
31195         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31196         when creating a new Unit_Record in table Units.
31197
31198         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31199         that are violated, if any.
31200
31201         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31202         add directory separator if path already ends with a directory separator.
31203
31204 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31205
31206         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31207         unit, this is an attempt to inline a construct that is not available in
31208         the current restricted mode, so abort rather than trying to continue.
31209
31210         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31211         discriminants that rename those of the parent, recover names of
31212         original discriminants for the constraint on the full view of the
31213         parent.
31214         (Complete_Private_Subtype): Do not create a subtype declaration if the
31215         subtype is an itype.
31216
31217         * gnat_rm.texi: Added section on implementation of discriminated
31218         records with default values for discriminants.
31219
31220 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31221
31222         PR ada/15601
31223         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31224         the second operand is overloaded.
31225
31226 2004-08-10  Richard Henderson  <rth@redhat.com>
31227
31228         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31229         add __builtin_alloca.
31230
31231 2004-08-10  Richard Henderson  <rth@redhat.com>
31232
31233         * config-lang.in (boot_language): Yes.
31234
31235 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
31236
31237         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31238         from complaining on potential uninitialized reference.
31239         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31240         new specification and test explicitly for non-zero return value.
31241
31242         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31243         returning C.int, to avoid using a derived boolean type.
31244
31245         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31246         Duplicate_Subexpr_No_Checks in preference to direct use of
31247         Remove_Side_Effects and New_Copy_Tree.
31248         Clear Comes_From_Source on prefix of 'Size attribute reference.
31249
31250         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31251         g-socthi-vxworks.adb: Change calls to
31252         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31253         and test explicitly for non-zero return value.
31254
31255         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31256         (Is_Socket_In_Set): Declare imported function as returning C.int, to
31257         avoid using a derived boolean type.
31258
31259 2004-08-09  Albert Lee  <lee@gnat.com>
31260
31261         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31262
31263 2004-08-09  Pascal Obry  <obry@gnat.com>
31264
31265         * gnat_ugn.texi: Document new way to build DLLs on Windows using
31266         GCC's -shared option.
31267
31268         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31269         Options_2 parameter (options put after object files).
31270
31271 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
31272
31273         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31274         ignore overflows on low and high bounds of an index to also account for
31275         differences in signedness between sizetype and gnu_index_subtype.
31276         These are as legitimate as the ones caused by a lower TYPE_PRECISION
31277         on sizetype.
31278
31279 2004-08-09  Robert Dewar  <dewar@gnat.com>
31280
31281         * s-solita.ads, s-solita.adb: Minor reformatting
31282
31283         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31284         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31285         obsolescent section
31286         Add note that No_Implicit_Conditionals does not suppress
31287         run time constraint checks.
31288
31289         * vms_conv.ads: Minor reformatting
31290
31291         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31292         and necessary for following change).
31293         (Mark): Return new format Mark_Id containing sec stack address
31294         (Release): Use sec stack address from Mark_Id avoiding Self call
31295
31296         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31297         pointer (cleanup and necessary for following change).
31298         Define Mark_Id as record containing address of secondary stack, that way
31299         Release does not need to find the stack again, decreasing the number of
31300         calls to Self and improving efficiency.
31301
31302         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31303
31304         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31305         case variable into the individual case branches when possible.
31306
31307         * sem_ch11.adb: Minor reformatting
31308
31309         * prj.ads: Correct spelling of suffixs
31310
31311         * prj-nmsc.adb: Minor reformatting
31312         Correct spelling suffixs throughout (also in identifiers)
31313
31314         * freeze.adb: Minor spelling correction
31315
31316         * exp_ch2.adb: Cleanups to handling of Current_Value
31317         (no functional effect).
31318
31319         * bld.adb: Correct spelling of suffixs
31320
31321         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31322
31323 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31324
31325         PR ada/15408
31326         * sem_ch7.adb (Install_Private_Declarations): In the body of the
31327         package or of a child, private entities are both immediately_visible
31328         and not hidden.
31329
31330 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31331
31332         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31333         there are no range checks on the value of the literal.
31334
31335         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31336         wrapped is the triggering alternative of an asynchronous select, action
31337         statements mustbe inserted before the select itself.
31338
31339         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31340         case where the prefix is a protected function call.
31341         (Resolve_Attribute, case 'Access): The attribute reference on a
31342         subprogram is legal in a generic body if the subprogram is declared
31343         elsewhere.
31344
31345 2004-08-09  Vincent Celier  <celier@gnat.com>
31346
31347         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31348         languages, otherwise building the library may fail with unresolved
31349         symbols.
31350         (Compile_Sources): Do not build libraries if -c switch is used
31351
31352         * gnatlink.adb (Process_Args): New switches -M and -Mmap
31353         (Write_Usage): If map file creation is supported, output new switches
31354         -M and -Mmap.
31355         (Gnatlink): When -M is specified, add the necessary switch(es) to the
31356         gcc call, when supported.
31357
31358         * Makefile.in: Added indepsw.o to the object list for gnatlink
31359         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31360
31361         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31362         indepsw.adb, indepsw.ads: New files.
31363
31364 2004-08-09  Bernard Banner  <banner@gnat.com>
31365
31366         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31367
31368         * Makefile.in: add section for vxworks x86
31369
31370 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
31371
31372         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31373         per-object constrained components where the discriminant is of an
31374         Access type.
31375         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31376         the parent initialization procedure for derived Unchecked_Unions.
31377         Instead, derived Unchecked_Unions build their own initialization
31378         procedure.
31379         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31380         Check the body of the subprogram for details.
31381         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31382         functions for derived Unchecked_Union types by introducing a condition.
31383         Allow the creation of TSS equality functions for Unchecked_Unions.
31384         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31385         Add formal parameter Discr to function signature. Discr is used to
31386         control the generated case statement for Unchecked_Union types.
31387         (Make_Eq_If): Rename formal parameter Node to E in function signature.
31388
31389         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31390         Unchecked_Unions.
31391         Check the body of the subprogram for details.
31392         (Expand_Composite_Equality): Augment composite type equality to include
31393         correct handling of Unchecked_Union components.
31394         (Expand_N_In): Add condition to detect illegal membership tests when the
31395         subtype mark is a constrained Unchecked_Union and the expression lacks
31396         inferable discriminants, and build a Raise_Program_Error node.
31397         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31398         to detect types that contain components of unconstrained Unchecked_Union
31399         subtype. Add condition to detect equality between types that have an
31400         unconstrained Unchecked_Union component, and build a Raise_Program_Error
31401         node. Add condition to detect equality between Unchecked_Union types
31402         that lack inferable discriminants, and build a Raise_Program_Error node.
31403         Otherwise build a TSS equality function call.
31404         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31405         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31406         with the operand lacking inferable discriminants, and build a Raise_
31407         Program_Error node.
31408         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31409         composite equality.
31410         (Has_Inferable_Discriminants): Implement new predicate for objects and
31411         expressions of Unchecked_Union type. Check the body of subprogram for
31412         details.
31413         (Has_Unconstrained_UU_Components): Add function
31414         Component_Is_Unconstrained_UU. It is used to detect whether a single
31415         component is of an unconstrained Unchecked_Union subtype. Add function
31416         Variant_Is_Unconstrained_UU. It is used to detect whether a single
31417         component inside a variant is of an unconstrained Unchecked_Union type.
31418
31419         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31420         inferred discriminant values. Add condition to generate a case
31421         statement with an inferred discriminant as the switch.
31422         (Make_Component_List_Assign): Introduce a Boolean flag that determines
31423         the behaviour of the subprogram in the presence of an Unchecked_Union.
31424         Add condition to trigger the usage of the inferred discriminant value
31425         as the generated case statement switch.
31426         (Make_Field_Assign): Introduce a Boolean flag that determines the
31427         behaviour of the subprogram in the presence of an Unchecked_Union. Add
31428         condition to trigger the usage of the inferred discriminant value as
31429         the right-hand side of the generated assignment.
31430
31431         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31432         parameter generation when dealing with Unchecked_Unions.
31433
31434         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31435         checks for Unchecked_Unions.
31436
31437         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31438
31439         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31440         Raise_Program_Error nodes for the execution of Read and Write
31441         attributes of Unchecked_Union types and the execution of Input and
31442         Output attributes of Unchecked_Union types that lack default
31443         discriminant values.
31444
31445         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31446         Unchecked_Union. Add procedure Check_Component. It is used to inspect
31447         per-object constrained components of Unchecked_Unions for being
31448         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31449         check individual components withing a variant.
31450
31451         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31452         comparison of Unchecked_Unions.
31453         (Resolve_Equality_OP): Remove guard that prevents equality between
31454         Unchecked_Unions.
31455
31456         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31457         of component subtypes for Unchecked_Union components.
31458         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31459         since it is the actual subtype.
31460
31461         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31462         pass of Unchecked_Union subtypes as generic actuals to formal types
31463         that lack known_discriminant_parts or that are derived Unchecked_Union
31464         types, and do nothing. In any other case, produce an error message.
31465
31466         * sem_ch3.adb (Analyze_Component_Declaration): Add function
31467         Contains_POC. It determines whether a constraint uses the discriminant
31468         of an enclosing record type.
31469         Add condition to detect per-object constrained component and set the
31470         appropriate flag.
31471         (Derived_Type_Declaration): Remove guard that prevents derivation from
31472         Unchecked_Union types.
31473         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31474         Union subtypes.
31475
31476         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31477         references to Unchecked_Union discriminants.
31478
31479         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31480         formal generation when dealing with Unchecked_Unions.
31481         (Set_Actual_Subtypes): Add condition to prevent generation of actual
31482         subtypes for Unchecked_Unions.
31483
31484         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31485         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31486         completions of discriminated partial views by Unchecked_Unions and
31487         produce an error message.
31488
31489 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31490
31491         * trans.c (struct stmt_group): New field, GLOBAL.
31492         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31493         (struct elab_info): New struct.
31494         (elab_info_list, gnu_elab_proc_stack): New variables.
31495         (Compilation_Unit_to_gnu): New procedure.
31496         (gigi): Call it and also handle elaboration procs we've saved.
31497         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31498         global field from parent.
31499         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31500         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31501         (start_stmt_group): Initialize global field from parent.
31502         (add_decl_expr): Set to global for current statement group.
31503         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31504         post.
31505
31506         * utils.c (global_bindings_p): True when no current_function_decl; no
31507         longer check current_binding_level.
31508
31509 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
31510
31511         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31512         choice.
31513
31514         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31515
31516 2004-08-06  Andreas Schwab  <schwab@suse.de>
31517
31518         * utils.c (gnat_define_builtin): Remove second parameter of
31519         make_decl_rtl.
31520         (begin_subprog_body): Likewise.
31521
31522 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
31523
31524         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31525         optimization, not supported by the tree-ssa back-end.
31526
31527 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
31528
31529         * s-mastop-irix.adb: Update comments.
31530
31531         * a-except.adb (Exception_Information): Raise Constraint_Error if
31532         exception Id is Null_Id.
31533         This is required behavior, which is more reliably and clearly checked
31534         at the top level interface level.
31535
31536 2004-07-26  Javier Miranda  <miranda@gnat.com>
31537
31538         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31539         call if a component has no default_expression and the box is used.
31540
31541         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31542         default_expression and you use box, it behaves as if you had declared a
31543         stand-alone object.
31544         (Resolve_Record_Aggregate): If a component has no default_expression and
31545         you use box, it behaves as if you had declared a stand-alone object.
31546
31547         * sem_ch10.adb (Install_Siblings): Do not make visible the private
31548         entities of private-with siblings.
31549
31550 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31551
31552         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31553         for a component of an itype, set the parent pointer for analysis,
31554         there is no list in which to insert it.
31555
31556         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31557         bona-fide renamings, not for inherited operations.
31558
31559         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31560         actual for a formal that is an access parameter, create local
31561         finalization list even if the expression is not an aggregate.
31562
31563 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31564
31565         PR ada/16213
31566         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31567         Diagnose properly illegal subprogram renamings that are library units.
31568
31569 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
31570
31571         PR ada/15588
31572         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31573         conversion rewritten as an unchecked conversion, check that original
31574         expression is a variable.
31575
31576         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31577         unchecked_conversion, create new node rather than rewriting in place,
31578         to preserve original construct.
31579
31580 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31581
31582         * gigi.h (gnat_expand_body): Deleted.
31583
31584         * Make-lang.in: (trans.o): Depends on function.h.
31585
31586         * misc.c: (gnat_expand_body): Moved to here.
31587
31588         * trans.c (gnat_expand_body_1): Deleted.
31589         (gnat_expand_body): Moved from here.
31590         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31591         (add_stmt): Check for marked visited with global_bindings_p.
31592         (gnat_gimplify_expr, case COMPONENT_REF): New case.
31593         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31594
31595         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31596         VIEW_CONVERT_EXPR if not operation type.
31597
31598         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31599         fat pointer.
31600
31601         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31602         changes: reformatting of negation operators, removing unneeded
31603         inequality comparison with zero, converting equality comparisons with
31604         zero to negations, changing int/0/1 to bool/false/true, replace calls
31605         to gigi_abort with abort, and various other similar changes.
31606
31607 2004-07-26  Vincent Celier  <celier@gnat.com>
31608
31609         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31610         "setup".
31611
31612         * make.adb (Gnatmake): Fail when a library is not present and there is
31613         no object directory.
31614
31615         * mlib-prj.adb (Check_Library): No need to check if the library needs
31616         to be rebuilt if there is no object directory, hence no object files
31617         to build the library.
31618
31619         * opt.ads (Setup_Projects): New Boolean flag.
31620
31621         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31622         Location.
31623         Create directory when Kind /= "" and in "gnat setup". Report error if
31624         directory cannot be created.
31625         (Ada_Check): Create library interface copy dir if it does not exist
31626         and we are in "gnat setup".
31627         (Find_Sources): No error if in "gnat setup" and no Ada sources were
31628         found.
31629         (Language_Independent_Check): Create object directory, exec directory
31630         and/or library directory if they do not exist and we are in
31631         "gnat setup".
31632
31633         * vms_conv.ads: (Command_Type): New command Setup.
31634
31635         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31636
31637         * vms_data.ads: Add qualifiers/switches for new built-in command
31638         "setup".
31639
31640 2004-07-25  Richard Henderson  <rth@redhat.com>
31641
31642         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31643         DECL_IGNORED_P on RESULT_DECL.
31644
31645 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
31646
31647         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31648         allocation and potentially overflowing update with
31649         Tailored_Exception_Information. Use the sec-stack free procedural
31650         interface to output Exception_Information instead.
31651
31652         * a-except.adb (To_Stderr): New subprogram for character, and string
31653         version moved from a-exextr to be visible from other separate units.
31654         (Tailored_Exception_Information): Remove the procedural version,
31655         previously used by the default Last_Chance_Handler and not any more.
31656         Adjust various comments.
31657
31658         * a-exexda.adb: Generalize the exception information procedural
31659         interface, to minimize the use of secondary stack and the need for
31660         local buffers when the info is to be output to stderr:
31661         (Address_Image): Removed.
31662         (Append_Info_Character): New subprogram, checking for overflows and
31663         outputing to stderr if buffer to fill is of length 0.
31664         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31665         (Append_Info_Address, Append_Info_Exception_Name,
31666         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31667         Append_Info_Basic_Exception_Traceback,
31668         Append_Info_Exception_Information): New subprograms.
31669         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31670         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31671         Exception_Info_Maxlength, Exception_Name_Length,
31672         Exception_Message_Length): New subprograms.
31673         (Exception_Information): Use Append_Info_Exception_Information.
31674         (Tailored_Exception_Information): Use
31675         Append_Info_Basic_Exception_Information.
31676         Export services for the default Last_Chance_Handler.
31677
31678         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31679         other separate units.
31680
31681 2004-07-20  Vincent Celier  <celier@gnat.com>
31682
31683         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31684
31685 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31686
31687         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31688         emit itype references for the designated types of component types that
31689         are declared outside of the full record declaration, and that may
31690         denote a partial view of that record type.
31691
31692 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31693
31694         PR ada/15607
31695         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
31696         which is the designated type in an access component declaration, to the
31697         list of incomplete dependents of the parent type, to avoid elaboration
31698         issues with out-of-scope subtypes.
31699         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
31700         full view of the parent.
31701
31702 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
31703
31704         PR ada/15610
31705         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
31706         entities that are hidden, such as references to generic actuals
31707         outside an instance.
31708
31709 2004-07-20  Javier Miranda  <miranda@gnat.com>
31710
31711         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
31712         support to the new notation.
31713         (Analyze_Selected_Component): Add call to Try_Object_Operation.
31714
31715 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
31716
31717         * s-taprob.adb: Adding the elaboration code required for initializing
31718         the tasking soft links that are common to the full and the restricted
31719         run times.
31720
31721         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
31722         restricted run time has been moved to the package
31723         System.Soft_Links.Tasking.
31724
31725         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
31726         restricted run time has been moved to the package
31727         System.Soft_Links.Tasking.
31728
31729         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
31730
31731         * s-solita.ads, s-solita.adb: New files.
31732
31733 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31734
31735         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
31736         Case_Statement_to_gnu): Split off from gnat_to_gnu.
31737         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
31738         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
31739         Exception_Handler_to_gnu_zcx): Likewise.
31740
31741 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
31742
31743         * gigi.h (builtin_function): Declare.
31744
31745 2004-07-15  Robert Dewar  <dewar@gnat.com>
31746
31747         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
31748         reformatting
31749
31750         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
31751         access values as an example of a warning.
31752
31753         * gnat_rm.texi: Document new attribute Has_Access_Values
31754
31755         * gnat-style.texi: Document that box comments belong on nested
31756         subprograms
31757
31758         * sem_util.ads (Has_Access_Values): Improved documentation
31759
31760         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
31761
31762         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
31763         (Process_Interface_Name): Call to this new procedure
31764         (Set_Extended_Import_Export_External_Name): Call to this new procedure
31765
31766         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
31767
31768         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
31769
31770         * einfo.ads: Minor comment typo fixed
31771
31772 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
31773
31774         * snames.adb: Add _atcb.
31775
31776         * snames.ads: Add Name_uATCB.
31777
31778         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
31779         (in the expanded code) when using the restricted run time.
31780
31781         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
31782         a in parameter in order to allow ATCBs to be preallocated (in the
31783         expanded code).
31784
31785         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
31786         order to allow ATCBs to be preallocated. In case of error, the ATCB is
31787         deallocated in System.Tasking.Stages.
31788
31789         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
31790         order to allow ATCBs to be preallocated.
31791
31792         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
31793         here. It was previously done in Initialize_ATCB.
31794
31795         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
31796
31797         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
31798         Restricted run time.
31799
31800         * exp_ch3.adb: When using the Restricted run time, pass the
31801         preallocated Ada_Task_Control_Block when creating a task.
31802
31803 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
31804
31805         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
31806         function call that is itself an actual in an enclosing call, diagnose
31807         problem here rather than assuming that resolution will catch it.
31808
31809         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
31810         the local copy of a generic unit for a formal package, and the generic
31811         is a child unit, install private part of ancestors before compiling
31812         private part of spec.
31813
31814         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
31815         use scope entities rather than tree structures, to handle properly
31816         parent units that are instances rewritten as bodies for inlining
31817         purposes.
31818
31819         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
31820         Remove_Parents): Handle properly a parent unit that is an
31821         instantiation, when the unit has been rewritten as a body for inlining
31822         purposes.
31823
31824         * par.adb (Goto_List): Global variable to collect goto statements in a
31825         given unit, for use in detecting natural loops.
31826
31827         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
31828         use in detecting natural loops.
31829
31830         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
31831         backwards goto's, and rewrite as a infinite loop, to improve locality
31832         of temporaries.
31833
31834         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
31835         subcomponent that includes an indexed reference, to prevent the
31836         generation of copies that would miscompile the desired assignment
31837         statement.
31838         (Build_Task_Image_Decls): Add a numeric suffix to
31839         generated name for string variable, to avoid spurious conflicts with
31840         the name of the type of a single protected object.
31841
31842         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
31843         loop with an explicit exit statement, to avoid generating an
31844         out-of-range value with 'Succ leading to spurious constraint_errors
31845         when compiling with -gnatVo.
31846
31847 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
31848
31849         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
31850         might not be analyzed yet, even if its Etype is already set (case of an
31851         unchecked conversion built using Unchecked_Convert_To, for example).
31852         If the prefix has already been analyzed, this will be a nop anyway.
31853
31854         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
31855         controller type, or an assignment of a record type with controlled
31856         components, copy only user data, and leave the finalization chain
31857         pointers untouched.
31858
31859 2004-07-15  Vincent Celier  <celier@gnat.com>
31860
31861         * make.adb (Collect_Arguments): Improve error message when attempting
31862         to compile a source not part of any project, when -x is not used.
31863
31864         * prj.ads: (Defined_Variable_Kind): New subtype
31865
31866         * prj-attr.adb (Register_New_Package): Two new procedures to register
31867         a package with or without its attributes.
31868         (Register_New_Attribute): Mew procedure to register a new attribute in a
31869         package.
31870         New attribute oriented subprograms: Attribute_Node_Id_Of,
31871         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31872         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31873         Next_Attribute.
31874         New package oriented subprograms: Package_Node_Id_Of,
31875         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31876
31877         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
31878         type.
31879         (Package_Node_Id): Now a private, self initialized type
31880         (Register_New_Package): New procedure to register a package with its
31881         attributes.
31882         New attribute oriented subprograms: Attribute_Node_Id_Of,
31883         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31884         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31885         Next_Attribute.
31886         New package oriented subprograms: Package_Node_Id_Of,
31887         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31888
31889         * prj-dect.adb (Parse_Attribute_Declaration,
31890         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
31891
31892         * prj-makr.adb (Make): Parse existing project file before creating
31893         other files. Fail if there was an error during parsing.
31894
31895         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
31896         new spec of Prj.Attr.
31897
31898         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
31899         to new spec of Prj.Attr.
31900
31901 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31902
31903         * utils2.c: Fix typo in comment.
31904
31905 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31906
31907         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
31908         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
31909
31910 2004-07-14  Andreas Schwab  <schwab@suse.de>
31911
31912         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
31913
31914 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31915
31916         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
31917         object type.
31918         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
31919         TYPE_STUB_DECL.
31920
31921         * misc.c (gnat_types_compatible_p): New function.
31922         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
31923         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
31924
31925         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
31926         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
31927         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
31928         (mark_visited): Don't mark dummy type.
31929         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
31930         parameter, we must remove any LJM building from GNU_NAME.
31931         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
31932         (pos_to_constructor): Use int_const_binop.
31933         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
31934         PARM_DECL.
31935
31936         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
31937         (gnat_pushlevel): Set TREE_USE on BLOCK node.
31938         (gnat_install_builtins): Add __builtin_memset.
31939
31940 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
31941
31942         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
31943         for a renaming, stabilize the initialization expression if we are at a
31944         local level.  At the local level, uses of the renaming may be performed
31945         by a direct dereference of the initializing expression, and we don't
31946         want possible variables there to be evaluated for every use.
31947
31948         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
31949         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
31950         them on the way.  Account for the fact that we may introduce side
31951         effects in the process.
31952
31953 2004-07-13  Richard Henderson  <rth@redhat.com>
31954
31955         * misc.c (default_pass_by_ref): Use pass_by_reference.
31956
31957 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
31958
31959         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
31960         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
31961
31962 2004-07-08  Richard Henderson  <rth@redhat.com>
31963
31964         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
31965         commentary.
31966
31967 2004-07-06  Vincent Celier  <celier@gnat.com>
31968
31969         * vms_conv.ads: Minor reformatting.
31970         Alphabetical order for enumerated values of type Command_Type, to have
31971         the command in alphabetical order for the usage.
31972
31973         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
31974         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
31975
31976         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
31977
31978         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
31979         (Add_Archive_Path): Only add the global archive if there is one.
31980         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
31981         or not any object file to put in the global archive, and don't build
31982         a global archive if there is none.
31983         (X_Switches): New table
31984         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
31985         in the X_Switches table, if any.
31986         (Initialize): Make sure the X_Switches table is empty
31987         (Scan_Arg): Record -X switches in table X_Switches
31988
31989         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
31990
31991         * make.adb: Minor comment fix
31992
31993         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
31994         invoked with directory information, add the directory in front of the
31995         path.
31996
31997         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
31998         invoked with directory information, add the directory in front of the
31999         path.
32000
32001         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32002         when Keep_Temporary_Files is False.
32003         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32004         directory information, add the directory in front of the path.
32005         When not on VMS, handle new switch -dn before the command to set
32006         Keep_Temporary_Files to True.
32007         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32008         everywhere.
32009
32010         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32011         invoked with directory information, add the directory in front of the
32012         path.
32013
32014 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
32015
32016         * snames.ads, snames.adb (Name_Stub): New name for the distributed
32017         systems annex.
32018
32019         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32020         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32021
32022         * g-socket.adb (To_Timeval): Fix incorrect conversion of
32023         Selector_Duration to Timeval for the case of 0.0.
32024
32025         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32026         documentation from Evolve_And_Then.
32027
32028 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
32029
32030         * s-taprop-tru64.adb, s-taprop-os2.adb,
32031         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32032
32033 2004-07-06  Robert Dewar  <dewar@gnat.com>
32034
32035         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32036         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32037         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32038         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32039         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32040         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32041         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32042         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32043         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32044         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32045         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32046         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32047         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32048         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32049         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32050         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32051         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32052         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32053         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32054         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32055         vms_data.ads: Minor reformatting,
32056         Fix bad box comment format.
32057
32058         * gnat_rm.texi: Fix minor grammatical error
32059
32060         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32061
32062         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32063         more cases of discriminated records to be recognized as not needing a
32064         secondary stack.
32065         (Has_Access_Values): New function.
32066
32067         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32068
32069         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32070         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32071         with LRM terminology).
32072         Change terminology in comments primitive type => elementary type.
32073
32074 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32075
32076         PR ada/15602
32077         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32078         parameters do not impose any requirements on the presence of a body.
32079
32080 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32081
32082         PR ada/15593
32083         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32084         compilation unit and is in an open scope at the point of instantiation,
32085         assume that a body may be present later.
32086
32087 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32088
32089         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32090         Improve error message when specified size is not supported.
32091
32092         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32093         is never a primitive operation.
32094
32095 2004-07-05  Andreas Schwab  <schwab@suse.de>
32096
32097         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32098         RECORD_OR_UNION_CHECK.
32099         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32100
32101 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
32102
32103         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32104         dependency on xgnatugn, instead build it via a submake.
32105         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32106
32107 2004-07-04  Richard Henderson  <rth@redhat.com>
32108
32109         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32110
32111 2004-07-01  Richard Henderson  <rth@redhat.com>
32112
32113         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32114         * utils.c (max_size): Likewise.
32115
32116 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32117
32118         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32119         and rest_of_type_compilation; add arg to create_*_decl.
32120         (annotate_decl_with_node): Deleted.
32121         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32122         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32123         (get_current_block_context, gnat_pushdecl): New declarations.
32124         (gnat_init_stmt_group): Likewise.
32125         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32126         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32127         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32128         (gnat_init): Call gnat_init_stmt_group.
32129         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32130         (gnu_pending_elaboration_list): Deleted.
32131         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32132         (gigi): Rearrange initialization calls and move some to last above.
32133         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32134         Delete calls to add_decl_expr; add arg to create_*_decl.
32135         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32136         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32137         begin_subprog_body and call it.
32138         Don't push and pop ggc context.
32139         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32140         (add_stmt): Remove handling of DECL_EXPR from here.
32141         If not in function, mark visited.
32142         (add_decl_expr): Put global at top level.
32143         Check for cases of DECL_INITIAL we have to handle here.
32144         (process_type): Add extra arg to create_type_decl.
32145         (build_unit_elab): Rework to just gimplify.
32146         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32147         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32148         (get_pending_elaborations, pending_elaborations_p): Likewise.
32149         (push_pending_elaborations, pop_pending_elaborations): Likewise.
32150         (get_elaboration_location, insert_elaboration_list): Likewise.
32151         (gnat_binding_level): Renamed from ada_binding_level.
32152         (init_gnat_to_gnu): Don't clear pending_elaborations.
32153         (global_bindings_p): Treat as global if no current_binding_level.
32154         (set_current_block_context): New function.
32155         (gnat_pushdecl): Renamed from pushdecl; major rework.
32156         All callers changed.
32157         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32158         (finish_record_type): Call call pushdecl for stub decl.
32159         (function_nesting_depth): Deleted.
32160         (begin_subprog_body): Delete obsolete code.
32161         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32162
32163 2004-06-28  Robert Dewar  <dewar@gnat.com>
32164
32165         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32166         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32167         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32168         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32169         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32170
32171         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32172         deal with problem of inefficient slices on machines with strict
32173         alignment, when the slice is a component of a composite.
32174
32175         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32176         machines, we need the check there as well.
32177
32178 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32179
32180         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32181         determine safe copying direction for overlapping slice assignments
32182         when component is controlled.
32183
32184         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32185         formal derived type in the actual for a formal package are visible in
32186         the enclosing instance.
32187
32188 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32189
32190         PR ada/15600
32191         * sem_util.adb (Trace_Components): Diagnose properly an illegal
32192         circularity involving a private type whose completion includes a
32193         self-referential component.
32194         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32195         renaming or an instantiation from an implicit derived operation.
32196
32197 2004-06-28  Pascal Obry  <obry@gnat.com>
32198
32199         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32200         DLL.
32201         (Library_File_Name_For): Idem.
32202
32203 2004-06-28  Matthew Gingell  <gingell@gnat.com>
32204
32205         * g-traceb.ads: Add explanatory note on the format of addresses
32206         expected by addr2line.
32207
32208 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
32209
32210         * Makefile.in: Force debugging information on s-tasdeb.adb,
32211         a-except.adb and s-assert.adb needed by the debugger.
32212
32213 2004-06-28  Vincent Celier  <celier@gnat.com>
32214
32215         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32216         Need_To_Build_Lib.
32217         (Gnatmake): Ditto.
32218
32219         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32220
32221         * prj.adb: Minor reformatting
32222         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32223
32224         * prj.ads: Comment updates
32225         Minor reformatting
32226         (Project_Data): Change Flag1 to Need_To_Build_Lib.
32227         Remove Flag2: not used.
32228
32229         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32230         declaration.
32231
32232         * gnat_ugn.texi: Put a "null;" declaration in one project file example
32233
32234         * gnat_rm.texi: Document Empty declarations "null;".
32235
32236         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32237         front of the linker options.
32238         (Link_Foreign): Put the global archives and the libraries in front of
32239         the linker options.
32240
32241 2004-06-28  Javier Miranda  <miranda@gnat.com>
32242
32243         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32244         (RTU_Loaded): Code cleanup
32245         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32246         withed predefined units.
32247
32248         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32249         explicitly withed predefined units.
32250         Fix typo in comment
32251
32252         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32253         explicitly withed predefined units.
32254
32255 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32256
32257         * ada-tree.def (DECL_STMT): Deleted.
32258         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32259         (DECL_STMT_VAR): Deleted.
32260         * decl.c: add_decl_stmt now add_decl_expr.
32261         * gigi.h: Likewise.
32262         * trans.c: Likewise.
32263         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32264         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32265         (add_stmt): Only handle padded type here.
32266         (add_stmt_with_node): Allow gnat_node to not be present.
32267         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32268         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32269         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32270         make a SAVE_EXPR for the entire fat pointer.
32271         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32272         (create_index_type): Make a DECL_EXPR.
32273         (end_subprog_body): Don't call allocate_struct_function here but
32274         do clear cfun.
32275
32276 2004-06-25  Pascal Obry  <obry@gnat.com>
32277
32278         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32279         Relocatable from Build_Dynamic_Library call.
32280
32281         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32282         Relocatable are now synonym.
32283
32284         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32285
32286         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32287         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32288         call.
32289
32290         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32291         Lib_Address and Relocatable.
32292         (Default_DLL_Address): Removed.
32293
32294         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32295         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32296         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32297         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32298         (Default_DLL_Address): Removed.
32299
32300         * mlib-tgt-mingw.adb: Ditto.
32301         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32302
32303         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32304         the initial thread stack size.
32305
32306         * a-strmap.ads: Move package L to private part as it is not used in
32307         the spec. Found while reading code.
32308
32309 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
32310
32311         * tracebak.c: Introduce support for a GCC infrastructure based
32312         implementation of __gnat_backtrace.
32313
32314         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32315         any more. Use accessors instead. This eases maintenance and relaxes
32316         some alignment constraints.
32317         (_GNAT_Exception structure): Remove the Ada specific fields
32318         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32319         a-exexpr.adb.
32320         (is_handled_by, __gnat_eh_personality): Replace component references to
32321         exception structure by use of the new accessors.
32322
32323         * init.c (__gnat_initialize): Adjust comments to match the just
32324         reverted meaning of the -static link-time option.
32325
32326         * adaint.c (convert_addresses): Arrange not to define a stub for
32327         mips-irix any more, as we now want to rely on a real version from a
32328         recent libaddr2line.
32329
32330         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32331         the personality routine can use them and not have to rely on a C
32332         counterpart of the record anymore. This simplifies maintenance and
32333         relaxes the constraint of having Standard'Maximum_Alignment match
32334         BIGGEST_ALIGNMENT.
32335         Update comments, and add a section on the common header alignment issue.
32336
32337 2004-06-25  Geert Bosch  <bosch@gnat.com>
32338
32339         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32340         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32341
32342 2004-06-25  Robert Dewar  <dewar@gnat.com>
32343
32344         * gnat_rm.texi: Fix section on component clauses to indicate that the
32345         restriction on byte boundary placement still applies for bit packed
32346         arrays.
32347         Add comment on stack usage from Initialize_Scalars
32348
32349         * gnat_ugn.texi: Add documentation for -gnatyLnnn
32350
32351         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32352         limiting nesting level.
32353
32354         * usage.adb: Add line for -gnatyLnnn switch
32355
32356         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32357         sem_ch13.adb, exp_aggr.adb: Minor reformatting
32358
32359         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32360         type as well as on the subtype. This corrects a problem in freeze in
32361         setting alignments of atomic types.
32362
32363         * sem_eval.ads: Minor comment typo fixed
32364
32365         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32366         level.  Minor reformatting.
32367
32368         * fname.adb (Is_Predefined_File_Name): Require a letter after the
32369         minus sign. This means that file names like a--b.adb will not be
32370         considered predefined.
32371
32372         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32373         record Test new flag and give diagnostic for bad component clause.
32374         (Freeze_Entity): Set alignment of array from component alignment in
32375         cases where this is safe to do.
32376
32377         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32378         arrays.
32379
32380         * cstand.adb: (Create_Standard): Set alignment of String to 1
32381
32382         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32383
32384         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32385         code in the common constrained array cases.
32386
32387         * a-storio.adb: Change implementation to avoid possible alignment
32388         problems on machines requiring strict alignment (data should be moved
32389         as type Buffer, not type Elmt).
32390
32391         * checks.adb (Apply_Array_Size_Check): Improve these checks by
32392         killing the overflow checks which we really do not need (64-bits is
32393         enough).
32394
32395 2004-06-25  Vincent Celier  <celier@gnat.com>
32396
32397         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32398         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32399         inconditionally for the main project.
32400         (Recursive_Add_Archives.Add_Archive_Path): New procedure
32401         (Link_Executables.Check_Time_Stamps): New procedure
32402         (Link_Executables.Link_Foreign): New procedure
32403         Changes made to reduce nesting level of this package
32404         (Check): New procedure
32405         (Add_Switches): When not in quiet output, check that a switch is not
32406         the concatenation of several valid switches. If it is, issue a warning.
32407         (Build_Global_Archive): If the global archive is rebuilt, linking need
32408         to be done.
32409         (Compile_Sources): Rebuilding a library archive does not imply
32410         rebuilding the global archive.
32411         (Build_Global_Archive): New procedure
32412         (Build_Library): New name for Build_Archive, now only for library
32413         project
32414         (Check_Archive_Builder): New procedure
32415         (Create_Global_Archive_Dependency_File): New procedure
32416         (Gprmake): Call Build_Global_Archive before linking
32417         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32418         throughout.
32419         (Scan_Arg): Display the Copyright notice when -v is used
32420
32421         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32422         for gnatls.
32423
32424         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32425         COMPILE.
32426         Add new GNAT LIST qualifier /FILES=
32427         Added qualifier /DIRECTORY= to GNAT METRIC
32428         Added qualifier /FILES= to GNAT METRIC
32429         Added qualifier /FILES to GNAT PRETTY
32430
32431         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32432         to take into account both versions of the switch.
32433
32434         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32435         always be the last switch to the gcc driver. Disable switch storing so
32436         that switches automatically added by the gcc driver are not put in the
32437         ALI file.
32438
32439         * prj.adb (Project_Empty): Take into account changes in components of
32440         Project_Data.
32441
32442         * prj.ads (Languages_Processed): New enumaration value All_Languages.
32443
32444         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32445         used. Split Boolean component Ada_Sources_Present in two Boolean
32446         components Ada_Sources_Present and Other_Sources_Present.
32447         Minor reformatting
32448
32449         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32450         instead of Sources_Present.
32451         (Set_Ada_Paths.Add.Recursive_Add): Ditto
32452
32453         * prj-nmsc.adb: Minor reformatting
32454         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32455         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32456         Check_Ada_Naming_Scheme.
32457         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32458         throughout.
32459
32460         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32461         In_Limited.
32462         Make sure that all cycles where there is at least one "limited with"
32463         are detected.
32464         (Parse_Single_Project): New Boolean parameter In_Limited
32465
32466         * prj-proc.adb (Recursive_Check): When Process_Languages is
32467         All_Languages, call first Prj.Nmsc.Ada_Check, then
32468         Prj.Nmsc.Other_Languages_Check.
32469
32470         * prj-proc.adb (Process): Use Ada_Sources_Present or
32471         Other_Sources_Present (instead of Sources_Present) depending on
32472         Process_Languages.
32473
32474         * lang-specs.h: Keep -g and -m switches in the same order, and as the
32475         last switches.
32476
32477         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32478         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32479         False.
32480         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32481         False.
32482
32483         * lib.ads (Disable_Switch_Storing): New procedure.
32484
32485         * make.adb: Modifications to reduce nesting level of this package.
32486         (Check_Standard_Library): New procedure
32487         (Gnatmake.Check_Mains): New procedure
32488         (Gnatmake.Create_Binder_Mapping_File): New procedure
32489         (Compile_Sources.Compile): Add switch -gnatez as the last option
32490         (Display): Never display -gnatez
32491
32492         * Makefile.generic:
32493         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32494
32495         * gnatcmd.adb (Check_Project): New function
32496         (Process_Link): New procedure to reduce nesting depth
32497         (Check_Files): New procedure to reduce the nesting depth.
32498         For GNAT METRIC, include the inherited sources in extending projects.
32499         (GNATCmd): When GNAT LS is invoked with a project file and no files,
32500         add the list of files from the sources of the project file. If this list
32501         is too long, put it in a temp text files and use switch -files=
32502         (Delete_Temp_Config_Files): Delete the temp text file that contains
32503         a list of source for gnatpp or gnatmetric, if one has been created.
32504         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32505         in the project file is too large, create a temporary text file that
32506         list them and pass it to the tool with "-files=<temp text file>".
32507         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32508
32509         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32510         generated file is in not in Ada.
32511
32512         * gnatls.adb: Remove all parameters And_Save that are no longer used.
32513         (Scan_Ls_Arg): Add processing for -files=
32514         (Usage): Add line for -files=
32515
32516         * g-os_lib.adb (On_Windows): New global constant Boolean flag
32517         (Normalize_Pathname): When on Windows and the path starts with a
32518         directory separator, make sure that the resulting path will start with
32519         a drive letter.
32520
32521         * clean.adb (Clean_Archive): New procedure
32522         (Clean_Project): When there is non-Ada code, delete the global archive,
32523         the archive dependency files, the object files and their dependency
32524         files, if they exist.
32525         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32526
32527 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
32528
32529         * sinfo.ads: Fix typo in comment.
32530
32531         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32532         the TSS for remote access-to-subprogram types, since these TSS are
32533         always present once the type has been analyzed.
32534         (RAS_E_Dereference): Same.
32535
32536         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32537         reference raises Bad_Attribute, mark the reference as analyzed so the
32538         node (and any children resulting from rewrites that could have occurred
32539         during the analysis that ultimately failed) is not analyzed again.
32540
32541         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32542
32543         * exp_dist.adb: Minor comment fix.
32544
32545         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32546         type is an anonymous access type, no unchecked deallocation of the
32547         allocated object can occur. If the object is controlled, attach it with
32548         a count of 1. This allows attachment to the Global_Final_List, if
32549         no other relevant list is available.
32550         (Get_Allocator_Final_List): For an anonymous access type that is
32551         the type of a discriminant or record component, the corresponding
32552         finalisation list is the one of the scope of the type.
32553
32554 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32555
32556         * sem_ch3.adb (Replace_Type): When computing the signature of an
32557         inherited subprogram, use the first subtype if the derived type
32558         declaration has no constraint.
32559
32560         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32561         before applying previous optimization. Minor code cleanup.
32562
32563         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32564         placed at the beginning of an unpacked record without explicit
32565         alignment, a slice of it will be aligned and does not need a copy when
32566         used as an actual.
32567
32568 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
32569
32570         PR ada/15591
32571         PR ada/15592
32572         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32573         reference is written with expressions mimicking parameters.
32574
32575 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
32576
32577         PR ada/15589
32578         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32579         STEP 2a. The constraints of a full type declaration of a derived record
32580         type are checked for conformance with those declared in the
32581         corresponding private extension declaration. The message
32582         "not conformant with previous declaration" is emitted if an error is
32583         detected.
32584
32585 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
32586
32587         * g-traceb.ads: Document the need for -E binder switch in the spec.
32588
32589         * g-trasym.ads: Document the need for -E binder switch in the spec.
32590
32591 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
32592
32593         * sem_prag.adb: Add handling of pragma Detect_Blocking.
32594
32595         * snames.h, snames.ads, snames.adb: Add entry for pragma
32596         Detect_Blocking.
32597
32598         * s-rident.ads: Change reference to pragma Detect_Blocking.
32599
32600         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32601         system.ads.
32602
32603         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32604         to indicate whether pragma Detect_Blocking is active.
32605
32606         * par-prag.adb: Add entry for pragma Detect_Blocking.
32607
32608         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32609         of not handling WITH.
32610         Note that this replaces the previous update which was incorrect.
32611
32612 2004-06-25  Javier Miranda  <miranda@gnat.com>
32613
32614         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32615         use-clauses to have a clean environment.
32616
32617         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32618         the installation of the use-clauses to stablish a clean environment in
32619         case of compilation of a separate unit; otherwise the call to
32620         use_one_package is protected by the barrier Applicable_Use.
32621
32622         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32623         the installation of the use-clauses to stablish a clean environment in
32624         case of compilation of a separate unit.
32625         (End_Use_Clauses): Minor comment cleanup.
32626
32627 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
32628
32629         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32630
32631 2004-06-23  Richard Henderson  <rth@redhat.com>
32632
32633         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32634
32635 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32636
32637         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32638         now bool instead of int.
32639         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32640         * trans.c (gnu_switch_label_stack): New function.
32641         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32642         elaboration of renamed entity returns.
32643         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32644         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32645         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32646         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32647         DECL_SIZE_UNIT and simplify variable-sized case.
32648         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32649         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32650         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32651         (build_unit_elab): Disable for now.
32652         * utils.c (mark_visited): New function.
32653         (pushdecl): Walk tree to call it for global decl.
32654         (update_pointer_to): Update all variants of pointer and ref types.
32655         Add arg to COMPONENT_REF.
32656         (convert): Likewise.
32657         Move check for converting between variants lower down.
32658         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32659         (build_allocator): Don't force type of MODIFY_EXPR.
32660         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32661         put_var_into_stack.
32662
32663 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32664
32665         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32666         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32667         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32668         subprograms.
32669         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32670         all callers changed.
32671         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32672         the way that EXIT_STMT finds the loop label.
32673         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32674         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32675         (add_stmt): Use annotate_with_locus insted of setting directly.
32676         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32677         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32678         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32679         (build_vms_descriptor): Add extra args to ARRAY_REF.
32680         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32681         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32682         New cases.
32683         (build_binary_op): Don't make explicit CONVERT_EXPR.
32684         Add extra rgs to ARRAY_REF.
32685
32686 2004-06-14  Pascal Obry  <obry@gnat.com>
32687
32688         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32689         Windows.  Fix minor typo.
32690
32691         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32692         which is now supported on Windows. With this implementation using the
32693         Library Project feature is no different on Windows than on UNIX.
32694
32695 2004-06-14  Vincent Celier  <celier@gnat.com>
32696
32697         * makegpr.adb (Compile_Sources): Nothing to do when there are no
32698         non-Ada sources.
32699
32700         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
32701
32702         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
32703         found, show the project name and the path of the previously parsed
32704         project file.
32705
32706 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
32707
32708         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
32709         array, avoid copying the actual before the call.
32710
32711 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
32712
32713         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
32714         Instead, allocate memory on worst-case alignment assumptions, and then
32715         return an aligned address within the allocated zone.
32716
32717 2004-06-14  Robert Dewar  <dewar@gnat.com>
32718
32719         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
32720         elab entities in predefined units in No_Run_Time_Mode.
32721         (Gen_Adainit_C): Same fix
32722         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
32723         units in No_Run_Time_Mode
32724         (Gen_Elab_Calls_C): Same fix
32725
32726         * symbols-vms-alpha.adb: Minor reformatting
32727
32728         * g-debpoo.ads: Minor reformatting
32729
32730         * lib.adb (In_Same_Extended_Unit): Version working on node id's
32731
32732         * lib.ads (In_Same_Extended_Unit): Version working on node id's
32733
32734         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
32735         working on nodes.
32736
32737         * make.adb: Minor reformatting
32738
32739         * par-ch12.adb: Minor reformatting
32740
32741         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
32742
32743         * prj-strt.adb: Minor reformatting
32744
32745         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
32746         be more general.
32747
32748         * sem_attr.adb: Minor reformatting
32749
32750         * sem_ch7.adb: Minor reformatting
32751
32752         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
32753         for type in the same unit as the object declaration.
32754
32755         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
32756         static string expressions and not just string literals.
32757         Minor reformatting
32758         (Set_Warning): Reset restriction warning flag for restriction pragma
32759         Implement pragma Profile_Warnings
32760         Implement pragma Profile (Restricted)
32761         Give obolescent messages for old restrictions and pragmas
32762
32763         * snames.h, snames.ads, snames.adb: Add new entry for pragma
32764         Profile_Warnings.
32765
32766         * s-rident.ads: Add declarations for restrictions required by profile
32767         Restricted and profile Ravenscar.
32768
32769         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
32770
32771         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
32772         configuration pragmas.
32773
32774 2004-06-11  Vincent Celier  <celier@gnat.com>
32775
32776         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
32777         gnatsym, when symbol policy is Restricted.
32778
32779         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
32780         gnatsym, when symbol policy is Restricted.
32781
32782         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
32783         read the symbol file.
32784         (Finalize): Fail in symbol policy Restricted if a symbol in the original
32785         symbol file is not in the object files. Do not create a new symbol file
32786         when symbol policy is Restricted.
32787
32788         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
32789         in Scng.
32790
32791         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
32792         Restricted.
32793         (Usage): Line for new switch -R
32794
32795         * make.adb (Initialize): When the platform is not VMS, add the
32796         directory where gnatmake is invoked in the front of the path, if
32797         gnatmake is invoked with directory information.  Change the Scan_Args
32798         while loop to a for loop.
32799         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
32800         if Depth is equal or greater than the proposed depth, there is nothing
32801         to do.
32802         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
32803         instead of 0.
32804
32805         * prj.ads: Add new symbol policy Restricted.
32806
32807         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
32808         with the new parameters Check_All_Labels and Case_Location.
32809
32810         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
32811         (Library_Symbol_File needs to be defined).
32812
32813         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
32814         and Case_Location If Check_All_Labels is True, check that all values of
32815         the string type are used, and output warning(s) if they are not.
32816
32817         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
32818         and Case_Location.
32819
32820         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
32821
32822         * gnat_ugn.texi: Update documentation about the library directory in
32823         Library Projects.
32824
32825         * makegpr.adb (Display_Command): In verbose mode, also display the
32826         value of the CPATH env var, when the compiler is gcc.
32827         (Initialize): Change the Scan_Args while loop to a for loop
32828         (Compile_Individual_Sources): Change directory to object directory
32829         before compilations.
32830
32831         * symbols.ads: New symbol policy Restricted.
32832
32833 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
32834
32835         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
32836         is now taken care of internally in the Exception_Propagation package
32837         and does not require clients assistance any more.
32838
32839         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
32840         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
32841         functions. Helpers to maintain a predicate required in the handling of
32842         occurrence transfer between tasks.
32843         This is now handled internally and does not require clients assistance
32844         for the setup/propagate separation anymore.
32845         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
32846         allocation strategy, handle the Setup_And_Not_Propagated predicate and
32847         document.
32848
32849         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
32850         raise_after_setup, now that everything is handled internally within the
32851         setup/propagation engine.
32852
32853 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
32854
32855         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
32856         Add additional conditions for the case of an actual being a simple
32857         name or literal. Improve inlining by preventing the generation
32858         of temporaries with a short lifetime (one use).
32859
32860 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
32861
32862         PR ada/15587
32863         * einfo.ads: Minor comment updates for Has_Completion and
32864         E_Constant list of flags.
32865
32866         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
32867         and constant redeclarations now set the Has_Completion flag of their
32868         defining identifiers.
32869
32870         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
32871         Inspect_Deferred_Constant_Completion.
32872         Used to detect private deferred constants that have not been completed
32873         either by a constant redeclaration or pragma Import. Emits error message
32874         "constant declaration requires initialization expression".
32875
32876         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
32877         completes a deferred constant.
32878
32879 2004-06-11  Geert Bosch  <bosch@gnat.com>
32880
32881         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
32882
32883         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
32884         calculating exponent for scaling denormal numbers.
32885         (Leading_Part): Properly raise Constraint_Error for zero or negative
32886         Adjustment.
32887         (Remainder): Properly raise Constraint_Error for zero divisor.
32888
32889 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
32890
32891         * sem_util.adb: Minor reformatting.
32892
32893         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
32894         dereference when accessing the entry parameter record.
32895         (Check_Array_Type): Always check for possible implicit dereference.
32896         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32897         Abort if a pointer is still present (denoting that an implicit
32898         dereference was left in the tree by the front-end).
32899
32900         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
32901         dereference when accessing the entry parameter record.
32902         (Check_Array_Type): Always check for possible implicit dereference.
32903         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32904         Abort if a pointer is still present (denoting that an implicit
32905         dereference was left in the tree by the front-end).
32906
32907 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
32908
32909         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
32910         message, like the compiler itself does. Easier to parse the output.
32911
32912         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
32913
32914         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
32915         be base names, and not includes directories.
32916
32917 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
32918
32919         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
32920         so that dependencies are properly taken into account by make.
32921
32922 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
32923
32924         PR ada/15622
32925         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
32926         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
32927
32928 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
32929
32930         * Makefile.in (install-gnatlib): install target-specific run-time files.
32931
32932         * Make-lang.in: Remove obsolete targets.
32933
32934 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
32935
32936         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
32937         specification, to catch misuses of program unit names.
32938
32939         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
32940         superfluous conversions in an instance.
32941
32942 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
32943
32944         PR ada/15403
32945         * sem_ch12.adb (Save_References): If operator node has been folded to
32946         enumeration literal, associated_node must be discarded.
32947
32948 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
32949
32950         * s-stchop-vxworks.adb: Add required pragma Convention to
32951         Task_Descriptor because it is updated by a C function.
32952
32953 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
32954
32955         PR ada/15568
32956         * Makefile.in: Remove target specific SO_OPT on IRIX
32957
32958 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32959
32960         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
32961         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
32962         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
32963         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
32964         (STMT_STMT, USE_STMT): New statement codes.
32965         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
32966         * ada-tree.h: Reflect above changes.
32967         (struct tree_loop_id): Deleted.
32968         (union lang_tree_node, struct lang_decl, struct lang_type):
32969         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
32970         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
32971         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
32972         (IS_ADA_STMT): New macro.
32973         * decl.c (annotate_decl_with_node): New function.
32974         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
32975         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
32976         Call add_stmt_with_node to do needed assignments.
32977         Add call to update setjmp buffer directly, not via EXPR_STMT.
32978         (maybe_variable): Argment GNAT_NODE deleted.
32979         * gigi.h (maybe_variable): Likewise.
32980         (make_transform, add_stmt_with_node, set_block_for_group): New.
32981         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
32982         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
32983         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
32984         (set_lineno, set_lineno_from_sloc): Likewise.
32985         (record_code_position, insert_code_for): Likewise.
32986         (gnat_poplevel): Now returns void.
32987         (end_subprog_body): Now takes argument.
32988         * misc.c (cgraph.h, tree-inline.h): New includes.
32989         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
32990         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
32991         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
32992         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
32993         (gnat_parse_file): Don't set immediate_size_expand.
32994         Call cgraph functions.
32995         (gnat_expand_expr): Remove most cases.
32996         (record_code_position, insert_code_for): Remove from here.
32997         * trans.c (toplev.h, tree-gimple.h): Now included.
32998         (discard_file_names): Deleted.
32999         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33000         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33001         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33002         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33003         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33004         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33005         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33006         (set_block_for_group, add_stmt_list): Likewise.
33007         (start_stmt_group): Renamed from start_block_stmt.
33008         (end_stmt_group): Likewise, from end_block_stmt.
33009         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33010         (gigi): Don't set discard_file_names or call set_lineno.
33011         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33012         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33013         Numerous changes throughout to reflect new names and complete
33014         function-at-a-time implementation.
33015         (gnat_expand_stmt): Delete or comment out all cases.
33016         (process_inlined_subprograms): Use add_stmt.
33017         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33018         call set_lineno; also remove unneeded block handling.
33019         (process_type): Remove unneeded block handling.
33020         (build_unit_elab): Remove calls to deleted functions.
33021         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33022         (tree-dump.h): Likewise.
33023         (struct ada_binding_level): Add field jmpbuf_decl.
33024         (gnat_define_builtin, gnat_install_builtins): New.
33025         (gnat_gimplify_function, gnat_finalize): Likewise.
33026         (gnat_poplevel): No longer return BLOCK, set it instead.
33027         Remove code dealing with nested functions.
33028         (gnat_init_decl_processing): Also set size_type_node.
33029         Call gnat_install_builtins.
33030         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33031         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33032         Remove special-case for "main".
33033         (end_subprog_body): Add arg and rework for tree-ssa.
33034         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33035         Add case for BOOLEAN_TYPE.
33036         * utils2.c (rtl.h): Now include.
33037         (build_call_raise): Test Debug_Flag_NN directly.
33038         (build_call_alloc_dealloc): Don't use local stack allocation for now.
33039         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33040         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33041
33042 2004-06-07  Robert Dewar  <dewar@gnat.com>
33043
33044         * a-direct.ads, einfo.ads: Minor comment updates
33045
33046         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33047         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33048         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33049         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33050         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33051
33052         * s-interr-sigaction.adb: Remove unreferenced variable
33053         (Attached_Interrupts).  Minor reformatting.
33054         Avoid use of variable I (replace by J).
33055
33056         * par-ch10.adb: Fix text of one error message
33057
33058         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33059         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33060         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33061         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33062         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33063         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33064         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33065         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33066         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33067         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33068         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33069         2005 support.
33070
33071 2004-06-07  Doug Rupp  <rupp@gnat.com>
33072
33073         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33074
33075         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33076
33077         * mlib-tgt-vms-ia64.adb: New file.
33078
33079         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33080         Add mlib-tgt-vms-ia64.adb
33081         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33082         Move to alpha specific ifeq section.
33083         Add VMS specific versions of symbols.adb
33084         Renaming of 5q vms files.
33085
33086         * 5qsystem.ads renamed to system-vms_64.ads.
33087
33088 2004-06-07  Vincent Celier  <celier@gnat.com>
33089
33090         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33091         explain that when a time of day corresponding to the non existing hour
33092         on the day switching to DST is specified, Split may return a different
33093         value for Seconds.
33094
33095         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33096         to GNAT PRETTY.
33097
33098         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33099         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33100
33101         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33102         to False.
33103         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33104         the linking options.
33105         (Build_Library.Check_Libs): On VMS, if there is a dependency on
33106         g-trasym.ads, set Gtrasymobj_Needed to True.
33107
33108         * prj-attr.adb: Add new package Metrics for gnatmetric
33109
33110         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33111         canonical case to take into account files with upper case characters on
33112         Windows.
33113         (Ada_Check): Load the reference symbol file name in the name buffer to
33114         check it, not the symbol file name.
33115
33116         * snames.ads, snames.adb: Add standard name Metrics (name of project
33117         file package for gnatmetric).
33118
33119         * vms_conv.ads: Add Metric to Comment_Type
33120
33121         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33122
33123         * vms_data.ads: Add qualifiers for GNAT METRIC
33124
33125         * makegpr.adb (Link_Executables): Take into account the switches
33126         specified in package Linker of the main project.
33127
33128 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
33129
33130         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33131         the index of the last element is Units.Last, not Units.Table'Last
33132         (which is usually not a valid index within the actually allocated
33133         storage for the table).
33134
33135         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33136         determines whether to generate a call to a checked storage pool
33137         Dereference action.
33138         Generate such a call only for a dereference that either comes from
33139         source, or is the result of rewriting a dereference that comes from
33140         source.
33141
33142 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
33143
33144         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33145
33146 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
33147
33148         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33149         file level, elaborate the stride for inner dimensions in alignment
33150         units, not bytes.
33151
33152         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33153         in a comment.
33154
33155 2004-06-07  Javier Miranda  <miranda@gnat.com>
33156
33157         * exp_ch6.adb: Correct wrong modification in previous patch
33158
33159 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
33160
33161         * g-trasym.ads: Corrected comment to properly reflect level of support
33162         on VMS.
33163
33164 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
33165
33166         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33167         includes case of a variable referenced on the left hand side of an
33168         assignment, therefore remove redundant code. Variables and prefixes of
33169         indexed or selected components are now marked as referenced on left
33170         hand side. Warnings are now properly emitted when variables or prefixes
33171         are assigned but not read.
33172
33173         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33174         left hand side referenced variables. Private access types do not
33175         produce the warning "variable ... is assigned but never read".
33176         Add also additional checks to left hand side referenced variables.
33177         Aliased, renamed objects and access types do not produce the warning
33178         "variable ... is assigned but never read" since other entities may read
33179         the memory location.
33180
33181 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
33182
33183         * Makefile.in: In the powerpc/vxworks-specific section, restore
33184         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33185         by mistake).
33186
33187 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
33188
33189         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33190         predefined operators.
33191         Removes spurious type errors from g-trasym-vms.adb.
33192
33193         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33194         distinct from the operator appearing in the source, call appropriate
33195         routine to insert conversions when needed, and complete resolution of
33196         node.
33197         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33198         interpretations for rewritten right operand.
33199         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33200         the other operand is overloaded and the context is a type conversion.
33201
33202 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33203
33204         * ada-tree.def (BLOCK_STMT): Now has two operands.
33205         (BREAK_STMT): New.
33206
33207         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33208
33209         * gigi.h: (gnat_poplevel): Now returns a tree.
33210
33211         * trans.c (end_block_stmt): Add arg; all callers changed.
33212         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33213         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33214         (add_stmt): Set TREE_TYPE.
33215         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33216         (gnat_expand_stmt, case BREAK_STMT): New case.
33217
33218         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33219
33220 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
33221
33222         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33223         procedure Set_Stack_Size that is not needed.
33224
33225 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
33226
33227         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33228         used for gnatpp input file and for the files upon which it depends
33229
33230 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
33231
33232         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33233
33234 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
33235
33236         * gnatvsn.ads: Bump version numbers appropriately.
33237         Add new build type.
33238
33239 2004-06-07  Pascal Obry  <obry@gnat.com>
33240
33241         * gnat_ugn.texi: Improve comments about imported names and link names
33242         on Windows. Add a note about the requirement to use -k gnatdll's option
33243         when working with a DLL which has stripped stdcall symbols (no @nn
33244         suffix).
33245
33246 2004-05-27  Vincent Celier  <celier@gnat.com>
33247
33248         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33249         COMMENTS_LAYOUT=UNTOUCHED
33250
33251         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33252         symbols-vms-alpha.adb
33253
33254 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
33255
33256         * sem.ads: Clarify documentation on checks suppression.
33257
33258         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33259
33260 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
33261
33262         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33263         the case of multiple derivations.
33264         (Is_Object_Reference): For a selected component, verify that the prefix
33265         is itself an object and not a value.
33266
33267         * sem_ch12.adb (Same_Instantiated_Constant): New name for
33268         Same_Instantiated_Entity.
33269         (Same_Instantiated_Variable): Subsidiary to
33270         Check_Formal_Package_Instance, to recognize actuals for in-out generic
33271         formals that are obtained from a previous formal package.
33272         (Instantiate_Subprogram_Body): Emit proper error when
33273         generating code and the proper body of a stub is missing.
33274
33275         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33276         has a universal interpretation, do the disambiguation here.
33277
33278         * exp_ch4.adb (Expand_N_Type_Conversion,
33279         Expand_N_Unchecked_Type_Conversion): Special handling when target type
33280         is Address, to avoid typing anomalies when Address is a visible integer
33281         type.
33282
33283         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33284         to determine whether a subprogram should not be marked Pure, even when
33285         declared in a pure package.
33286
33287 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
33288
33289         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33290
33291         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33292         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33293         Update the documentation about the Ravenscar profile, following the
33294         definition found in AI-249.
33295
33296         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33297         setting the Profile (Ravenscar). This must be done in addition to
33298         setting the required restrictions.
33299
33300         * rtsfind.ads: Add the set of operations defined in package
33301         Ada.Interrupts.
33302
33303         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33304         restriction.
33305
33306 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
33307
33308         lang-specs.h: Always require -c or -S and always redirect to /dev/null
33309         if -gnatc or -gnats is passed.
33310
33311 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
33312
33313         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33314         a significant reference. Warnings are now properly emitted when a
33315         discriminated type is not referenced.
33316
33317         * lib-xref.adb (Generate_Reference): A deferred constant completion,
33318         record representation clause or record type discriminant does not
33319         produce a reference to its corresponding entity. Warnings are now
33320         properly emitted when deferred constants and record types are not
33321         referenced.
33322
33323 2004-05-27  Geert Bosch  <bosch@gnat.com>
33324
33325         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33326         Fixes ACATS Annex G tests.
33327
33328 2004-05-27  Robert Dewar  <dewar@gnat.com>
33329
33330         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33331         handling WITH
33332
33333 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
33334
33335         * s-interr.adb (Server_Task): Take into account case of early return
33336         from sigwait under e.g. linux.
33337
33338 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
33339
33340         * gnat_ugn.texi: Add description for the new gnatpp options:
33341          -rnb - replace the original source without creating its backup copy
33342          -c0 - do not format comments
33343
33344 2004-05-24  Geert Bosch  <bosch@gnat.com>
33345
33346         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33347         with 192 bits of precision, sufficient to reduce a double-extended
33348         arguments X with a maximum relative error of T'Machine_Epsilon, for X
33349         in -2.0**32 .. 2.0**32.
33350         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
33351         reduction by the processor, which only uses a 68-bit approximation of
33352         Pi.
33353         (Tan): Always reduce arguments and compute function either using
33354         the processor's fptan instruction, or by dividing sin and cos as needed.
33355
33356 2004-05-24  Doug Rupp  <rupp@gnat.com>
33357
33358         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33359         gcc error on 32/64 bit VMS.
33360
33361 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
33362
33363         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33364         since this is what we get for stack overflows although not documented
33365         as such.
33366         Document the issues which may require adjustments to our signal
33367         handlers.
33368
33369 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
33370
33371         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33372         enclosing dynamic scope if the instantiation is within a generic unit.
33373
33374 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33375
33376         * exp_dbug.ads: Fix typo.
33377
33378         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33379         Rename it to its proper name: system-linux-ia64.ads
33380         (stamp-gnatlib1): Remove extra target specific run time files when
33381         setting up the rts directory.
33382
33383 2004-05-24  Javier Miranda  <miranda@gnat.com>
33384
33385         * einfo.ads, einfo.adb (Limited_Views): Removed.
33386         (Limited_View): New attribute that replaces the previous one. It is
33387         now a bona fide package with the limited-view list through the
33388         first_entity and first_private attributes.
33389
33390         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33391         limited-private-with clause.
33392         (Install_Limited_Withed_Unit): Install the private declarations of a
33393         limited-private-withed package. Update the installation of the shadow
33394         entities according to the new structure (see Build_Limited_Views)
33395         (Build_Limited_Views): Replace the previous implementation of the
33396         limited view by a package entity that references the first shadow
33397         entity plus the first shadow private entity (required for limited-
33398         private-with clause)
33399         (New_Internal_Shadow_Entity): Code cleanup.
33400         (Remove_Limited_With_Clause): Update the implementation to undo the
33401         new work carried out by Build_Limited_Views.
33402         (Build_Chain): Complete documentation.
33403         Replace Ada0Y by Ada 0Y in comments
33404         Minor reformating
33405
33406         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33407         types the level of accessibility depends on the enclosing type
33408         declaration.
33409
33410         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33411         entities. Complete documentation of previous change.
33412
33413 2004-05-24  Robert Dewar  <dewar@gnat.com>
33414
33415         * namet.adb: Minor reformatting
33416         Avoid use of name I (replace by J)
33417         Minor code restructuring
33418
33419         * sem_ch6.adb: Minor reformatting
33420
33421         * lib-writ.adb: Do not set restriction as active if this is a
33422         Restriction_Warning case.
33423
33424         * sem_prag.adb: Reset restriction warning flag if real pragma
33425         restriction encountered.
33426
33427         * s-htable.adb: Minor reformatting
33428         Change rotate count to 3 in Hash (improves hash for small strings)
33429
33430         * 5qsystem.ads: Add comments for type Address (no literals allowed).
33431
33432         * gnat_ugn.texi: Add new section of documentation "Code Generation
33433         Control", which describes the use of -m switches.
33434
33435 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
33436
33437         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33438         through the DECL_INITIAL for renamed variables.
33439
33440 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
33441
33442         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33443
33444 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
33445
33446         * exp_dbug.ads: Correct comments concerning handling of overloading,
33447         since we no longer use $ anymore.
33448
33449 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
33450
33451         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33452         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33453         with illegal subunits.
33454
33455 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
33456
33457         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33458         body with front-end inlining enabled, check whether an inline pragma
33459         appears immediately after the body and applies to it.
33460
33461         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33462         enabled and the pragma appears after the body of the subprogram.
33463
33464 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33465
33466         Part of function-at-a-time conversion
33467
33468         * misc.c (adjust_decl_rtl): Deleted.
33469         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33470         Define.
33471
33472         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33473         (add_decl_stmt, add_stmt, block_has_vars): New functions.
33474         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33475
33476         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33477         when making a decl.
33478         (gnat_to_gnu_entity): Likewise.
33479         Use add_stmt to update setjmp buffer.
33480         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33481         flush_addressof.
33482         No longer call adjust_decl_rtl.
33483         (DECL_INIT_BY_ASSIGN_P): New macro.
33484         (DECL_STMT_VAR): Likewise.
33485
33486         * trans.c (gigi): Call start_block_stmt to make the outermost
33487         BLOCK_STMT.
33488         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33489         Call start_block_stmt and end_block_stmt temporarily.
33490         Use gnat_expand_stmt instead of expand_expr_stmt.
33491         (add_decl_stmt): New function.
33492         (tree_transform): Call it.
33493         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33494         (end_block_stmt): Set type and NULL_STMT.
33495         (gnat_expand_stmt): Make recursize call instead of calling
33496         expand_expr_stmt.
33497         (gnat_expand_stmt, case DECL_STMT): New case.
33498         (set_lineno_from_sloc): Do nothing if global.
33499         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33500         (start_block_stmt, add_stmt, end_block_stmt): New functions.
33501         (build_block_stmt): Call them.
33502         (gnat_to_code): Don't expand NULL_STMT.
33503         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33504         args.
33505         (tree_transform): Likewise.
33506         (tree_transform, case N_Null_Statement): Return NULL_STMT.
33507         (gnat_expand_stmt, case NULL_STMT): New case.
33508         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33509         IF_STMT_TRUE.
33510
33511         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33512         TREE_ADDRESSABLE.
33513
33514         * utils.c (create_var_decl): Do not call expand_decl or
33515         expand_decl_init.
33516         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33517         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33518         here.
33519         (struct e_stack): Add chain_next to GTY.
33520         (struct binding_level): Deleted.
33521         (struct ada_binding_level): New struct.
33522         (free_block_chain): New.
33523         (global_binding_level, clear_binding_level): Deleted.
33524         (global_bindings_p): Rework to see if no chain.
33525         (kept_level_p, set_block): Deleted.
33526         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33527         new data structure and work directly on BLOCK node.
33528         (gnat_poplevel): Similarly.
33529         (get_decls): Look at BLOCK_VARS.
33530         (insert_block): Work directly on BLOCK node.
33531         (block_has_var): New function.
33532         (pushdecl): Rework for new binding structures.
33533         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33534         poplevel.
33535         (build_subprog_body): Likewise.
33536         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33537
33538         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33539
33540         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33541         (DECL_STMT_VAR): Likewise.
33542
33543 2004-05-17  Robert Dewar  <dewar@gnat.com>
33544
33545         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33546         procedure
33547
33548         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33549         of restriction synonyums by using
33550         Restrict.Process_Restriction_Synonyms.
33551
33552         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33553
33554         * s-restri.ads (Tasking_Allowed): Correct missing comment
33555
33556         * s-rident.ads: Add entries for restriction synonyms
33557
33558         * ali.adb: Fix some problems with badly formatted ALI files that can
33559         result in infinite loops.
33560
33561         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33562         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33563         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33564         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33565         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33566         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33567         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33568         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33569         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33570         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33571         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33572         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33573         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33574         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33575         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33576         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33577         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33578         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33579         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33580         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33581         to Task_Id (minor cleanup).
33582
33583 2004-05-17  Vincent Celier  <celier@gnat.com>
33584
33585         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33586         directory separator.
33587
33588         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33589         project being extended, if Languages is not declared in extending
33590         project.
33591
33592 2004-05-17  Javier Miranda  <miranda@gnat.com>
33593
33594         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33595         limited view of a visible sibling.
33596
33597 2004-05-14  Robert Dewar  <dewar@gnat.com>
33598
33599         * gnat_ugn.texi: Minor change to -gnatS documentation
33600
33601         * sprint.adb: Remove some instances of Assert (False) and for this
33602         purpose replace them by output of a ??? string.
33603
33604         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33605         Assert (False).
33606
33607         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33608         flag processing. This was suppressing required dependencies in
33609         No_Run_Time mode and is not needed since the binder does not generate
33610         references for things in libgnat anyway.
33611
33612         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33613         warning.
33614
33615 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
33616
33617         * gnat_ugn.texi: Document AIX-specific issue with initialization of
33618         resolver library.
33619
33620         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33621         action for the case of an actual parameter in an init proc call.
33622
33623 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
33624
33625         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33626         subtype, check visible entities in base type.
33627
33628         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33629         actions if the object is a renaming.
33630
33631         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33632         Check_Formal_Package_Instance, to determine more precisely when the
33633         formal and the actual denote the same entity.
33634
33635 2004-05-14  Javier Miranda  <miranda@gnat.com>
33636
33637         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33638
33639         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33640         corresponding to a private_with must be removed from visibility; it
33641         will be made visible later, just before we analyze the private part of
33642         the package.
33643         (Check_Private_Child_Unit): Allow private_with clauses in public
33644         siblings.
33645         (Install_Siblings): Make visible the private entities of private-withed
33646         siblings.
33647         (Install_Withed_Unit): Do not install the private withed unit if we
33648         are compiling a package declaration and the Private_With_OK flag was
33649         not set by the caller. These declarations will be installed later,
33650         just before we analyze the private part of the package.
33651
33652         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33653         during the evaluation of the expression that initializes the object,
33654         decorate it with the expected type to avoid cascade errors.
33655         Code cleanup.
33656
33657         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33658         subprogram we have to install the private_with clauses after its
33659         specification has been analyzed (as documented in AI-262.TXT).
33660
33661         * sem_ch8.adb (Has_Private_With): New function. Determines if the
33662         current compilation unit has a private with on a given entity.
33663         (Find_Direct_Name): Detect the Beaujolais problem described in
33664         AI-262.TXT
33665
33666         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33667         provides the functionality of the function Is_Ancestor that was
33668         previously available in sem_ch10. It has been renamed to avoid
33669         overloading.
33670
33671         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33672
33673 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33674
33675         * utils.c (build_vms_descriptor): Use SImode pointers.
33676
33677 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
33678
33679         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33680
33681 2004-05-14  GNAT Script  <nobody@gnat.com>
33682
33683         * Make-lang.in: Makefile automatically updated
33684
33685 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
33686
33687         Renaming of target specific files for clarity
33688
33689         * Makefile.in: Rename GNAT target specific files.
33690
33691         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33692         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33693         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33694         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33695         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
33696         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
33697         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
33698         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
33699         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
33700         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
33701         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
33702         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
33703         51osinte.adb, 51osinte.ads, 51system.ads,
33704         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33705         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
33706         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
33707         56tpopsp.adb, 57system.ads, 58system.ads,
33708         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
33709         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33710         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
33711         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
33712         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
33713         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33714         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
33715         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33716         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33717         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
33718         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
33719         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
33720         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
33721         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
33722         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
33723         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33724         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33725         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33726         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
33727         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
33728         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
33729         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
33730         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
33731         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33732         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
33733         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
33734         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33735         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
33736         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33737         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
33738         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
33739         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
33740         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
33741         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
33742         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
33743         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
33744         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
33745         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
33746         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
33747         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
33748
33749         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
33750         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
33751         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
33752         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
33753         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
33754         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
33755         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
33756         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
33757         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
33758         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
33759         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
33760         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
33761         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
33762         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
33763         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
33764         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
33765         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
33766         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
33767         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
33768         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
33769         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
33770         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
33771         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
33772         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
33773         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
33774         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
33775         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
33776         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
33777         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
33778         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
33779         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
33780         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
33781         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
33782         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
33783         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
33784         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
33785         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
33786         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
33787         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
33788         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
33789         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
33790         s-osinte-vms.ads, s-osinte-vxworks.adb,
33791         s-osinte-vxworks.ads, s-osprim-mingw.adb,
33792         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
33793         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
33794         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
33795         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
33796         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
33797         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
33798         s-stchop-vxworks.adb, s-taprop-dummy.adb,
33799         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
33800         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
33801         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
33802         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
33803         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
33804         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
33805         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
33806         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
33807         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
33808         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
33809         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
33810         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
33811         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
33812         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
33813         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
33814         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
33815         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
33816         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
33817         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
33818         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
33819         system-irix-o32.ads, system-linux-x86_64.ads,
33820         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
33821         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
33822         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
33823         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
33824         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
33825         system-vxworks-mips.ads, system-vxworks-ppc.ads,
33826         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
33827         above.
33828
33829 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
33830
33831         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
33832
33833 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
33834
33835         Merge from tree-ssa-20020619-branch.
33836
33837         * config-lang.in (boot_language, build_by_default): Set
33838         to no.
33839         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
33840         (max_size): Add static chain op for call_expr.
33841
33842 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
33843
33844         PR target/15331
33845         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
33846
33847 2004-05-11  Roger Sayle  <roger@eyesopen.com>
33848
33849         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
33850         COND_EXPR.
33851
33852 2004-05-10  Doug Rupp  <rupp@gnat.com>
33853
33854         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
33855         system.aux_dec.
33856
33857         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
33858
33859         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
33860
33861         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
33862         Fixes undefined symbols in IA64 gnatlib.
33863
33864         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
33865
33866         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
33867         Short_Address). This will be moved to system.auxdec.
33868
33869 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
33870
33871         * sem_util.adb: Replace test for presence of a node that is always
33872         present with a call to Discard_Node.
33873
33874         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
33875         Analyze on the library unit node after generation of distribution stub
33876         constructs.  The call was a no-op because Unit_Node has already been
33877         Analyzed, and the tree fragments for the distribution stubs are
33878         analyzed as they are inserted in Exp_Dist.
33879         Update comment regarding to distribution stubs to reflect that we
33880         do not generate stub in separate files anymore.
33881
33882         * einfo.ads: Clarify the fact that a tagged private type has the
33883         E_Record_Type_With_Private Ekind.
33884
33885         * erroutc.adb: Minor reformatting
33886
33887         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
33888         values if line length is increased using -gnatyM (noticed during code
33889         reading).
33890
33891         * eval_fat.adb: Minor reformatting
33892         Put spaces around exponentiation operator
33893
33894 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
33895
33896         PR ada/15005
33897         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
33898         has been rewritten as an explicit dereference, retrieve type of
33899         original node to check for possibly unconstrained record type.
33900
33901 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
33902
33903         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
33904         overriding, use the operation of the parent unconditionally.
33905
33906         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
33907         operation when either operand is a literal, to avoid further
33908         ambiguities.
33909
33910         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
33911         overridden by a previous explicit declaration, mark the previous entity
33912         as overriding.
33913
33914         * sem_disp.adb (Check_Dispatching_Operation): New predicate
33915         Is_Visibly_Controlled, to determine whether a declaration of a
33916         primitive control operation for a derived type overrides an inherited
33917         one. Add warning if the explicit declaration does not override.
33918
33919 2004-05-10  Vincent Celier  <celier@gnat.com>
33920
33921         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
33922         some cases when the sources are no longer present.
33923
33924         * make.adb (Collect_Arguments): Fail if an external source, not part
33925         of any project need to be compiled, when switch -x has not been
33926         specified.
33927
33928         * makeusg.adb: Document new switch -x
33929
33930         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
33931         defaulted to False.
33932
33933         * switch-m.adb (Scan_Make_Switches): New switch -x
33934
33935         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
33936         gnatmake switch -x.
33937
33938         * gnat_ugn.texi: Document new gnatmake switch -x
33939
33940 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
33941
33942         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
33943
33944         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
33945         (process_attributes): Likewise.
33946
33947 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
33948
33949         * s-inmaop.ads: Fix spelling mistake in one of the comments.
33950
33951 2004-05-10  Robert Dewar  <dewar@gnat.com>
33952
33953         * gnat_ugn.texi: Document that for config pragma files, the maximum
33954         line length is always 32767.
33955
33956         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
33957         literals is now allowed.
33958
33959         * gnat-style.texi: Remove statement about splitting long lines before
33960         an operator rather than after, since we do not follow this rule at all.
33961         Clarify rule (really lack of rule) for spaces around exponentiation
33962
33963         * sem_elim.adb: Allow concatenation of string literals as well as a
33964         single string literal for pragma arguments.
33965
33966         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
33967
33968         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
33969         written for append case.
33970
33971         * frontend.adb: Changes to avoid checking max line length in config
33972         pragma files.
33973
33974         * g-os_lib.ads: Minor reformatting
33975
33976         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
33977         wrong in any case. Instead use standard value. Noticed during code
33978         reading.
33979
33980         * opt.ads (Max_Line_Length): New field, used to implement removal of
33981         limitation on length of lines when scanning config pragma files.
33982
33983         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
33984         makeutl.ads, makeutl.adb: Minor reformatting
33985
33986         * scn.adb: Do not check line length while scanning config pragma files
33987         Do not check line length while scanning out license information
33988
33989         * scng.adb: Changes to avoid line length checks while parsing config
33990         pragma files.
33991
33992 2004-05-10  GNAT Script  <nobody@gnat.com>
33993
33994         * Make-lang.in: Makefile automatically updated
33995
33996 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
33997
33998         * osint.adb (Find_Program_Name): Fix handling of VMS version
33999         number.
34000
34001 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
34002
34003         * g-os_lib.ads (Invalid_Time): New constant
34004
34005         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34006         return OS_Time instead of time_t to match what is imported by Ada.
34007         Now return -1 if the file doesn't exist, instead of a random value
34008
34009 2004-05-05  Robert Dewar  <dewar@gnat.com>
34010
34011         * usage.adb: Add line for -gnatR?s switch
34012
34013         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34014
34015         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34016         and for Match (Data_First, Data_last)
34017
34018         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34019         written when we are dealing with multi-unit files.
34020
34021 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
34022
34023         * Makefile.in: Remove unused targets and variables.
34024
34025 2004-05-05  Vincent Celier  <celier@gnat.com>
34026
34027         * switch-m.adb: New gnatmake switch -eI
34028
34029         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34030         of new gnatmake switch -eInnn.
34031
34032         * makegpr.adb: Take into account new parameters Index and Src_Index in
34033         Prj.Util.
34034
34035         * clean.adb: Implement support for multi-unit sources, including new
34036         switch -i.
34037
34038         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34039         Src_Index.
34040
34041         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34042         (Extract_From_Q): New out parameter Index
34043         (Mark, Is_Marked): Subprograms moved to Makeutl
34044         (Switches_Of): New parameter Source_Index
34045         (Add_Switch): New parameter Index
34046         (Check): New parameter Source_Index
34047         (Collect_Arguments): New parameter Source_Index
34048         (Collect_Arguments_And_Compile): New parameter Source_Index
34049         (Compile): New parameter Source_Index
34050         Put subprograms in alphabetical order
34051         Add support for multi-source sources, including in project files.
34052
34053         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34054         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34055         Make.
34056
34057         * makeusg.adb: New gnatmake switch -eInnn
34058
34059         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34060         Prj.Util.Value_Of.
34061
34062         * opt.ads (Main_Index): New variable, defaulted to 0.
34063
34064         * osint.ads, osinte.adb (Add_File): New parameter Index
34065         (Current_Source_Index): New function
34066
34067         * prj.adb: Take into account new components Index and Src_Index
34068
34069         * prj.ads (String_Element): New component Index
34070         (Variable_Value): New component Index
34071         (Array_Element): New component Src_Index
34072
34073         * prj-attr.adb: Indicate that optional index may be specified for
34074         attributes Main, Executable, Spec, Body and some of Switches.
34075
34076         * prj-attr.ads (Attribute_Kind): New values for optional indexes
34077         (Attribute_Record): New component Optional_Index
34078
34079         * prj-com.ads (File_Name_Data): New component Index
34080
34081         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34082
34083         * prj-env.adb (Put): Output optional index
34084
34085         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34086         attributes Spec and Body.
34087
34088         * prj-nmsc.adb: Process optional indexes
34089
34090         * prj-pp.adb: Ouput "at" for optional indexes
34091
34092         * prj-proc.adb: Take into account optional indexes
34093
34094         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34095         Optional_Index. For string literal,
34096         process optional index when Optional_Index is True.
34097         (Parse_Expresion): New Boolean parameter Optional_Index
34098
34099         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34100         (Set_Source_Index_Of): New procedure
34101
34102         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34103         index.
34104
34105         * prj-util.ads (Executable_Of): New parameter Index
34106         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34107         New parameter Src_Index, defaulted to 0.
34108
34109 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34110
34111         PR ada/15257
34112         * sem_ch3.adb (Access_Definition): If this is an access parameter
34113         whose designated type is imported through a limited_with clause, do
34114         not add the enclosing subprogram to the list of private dependents of
34115         the type.
34116
34117 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34118
34119         PR ada/15258
34120         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34121         a limited_with clause, and the other is its non-limited view.
34122
34123 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
34124
34125         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34126
34127         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34128         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34129         Stand.Boolean_Literals to produce references to entities
34130         Standard_False and Standard_True from compile-time computed boolean
34131         values.
34132
34133         * stand.ads (Boolean_Literals): New variable, provides the entity
34134         values for False and True, for use by the expander.
34135
34136 2004-05-05  Doug Rupp  <rupp@gnat.com>
34137
34138         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34139         5vinmaop.adb: Unchecked convert Short_Address vice Address
34140
34141         * adaint.c, raise.c: Caste CRTL function return value
34142         to avoid gcc error on 32/64 bit IVMS.
34143
34144         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34145         target = IA64/VMS.
34146
34147         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34148
34149         * 5qsystem.ads (Address): Declare as Long_Integer
34150         (Short_Address): Declare as 32 bit subtype of Address
34151         Declare  abstract address operations to avoid gratuitous ambiguities.
34152
34153 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
34154
34155         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34156         instead of the old Boolean_Entry_Barriers.
34157         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34158
34159 2004-05-05  GNAT Script  <nobody@gnat.com>
34160
34161         * Make-lang.in: Makefile automatically updated
34162
34163 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34164
34165         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34166
34167 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
34168
34169         PR ada/15152
34170         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34171         alone. Replacing object references by literals is inappropriate in a
34172         so low level context.
34173
34174 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34175
34176         * a-exexpr.adb: Add comments
34177
34178 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
34179
34180         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34181         declare the Ancestor_Tags array in Type_Specific_Data with a small size
34182         without risking a bounds check error when accessing one of its
34183         components.
34184         (Type_Specific_Data): Define Ancestor_Tags as a small array.
34185         This prevents us from hitting a limitation during the debug info
34186         generation when using stabs.
34187
34188         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34189         small array.
34190         This prevents us from hitting a limitation during the debug info
34191         generation when using stabs.
34192
34193 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
34194
34195         lang-specs.h: Remove -gnatz* from specs.
34196
34197 2004-05-03  Vincent Celier  <celier@gnat.com>
34198
34199         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34200
34201         * Make-lang.in, Makefile.in: Add gprmake
34202
34203 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
34204
34205         * sem_aggr.adb: Fix typo in comment.
34206
34207 2004-05-03  Robert Dewar  <dewar@gnat.com>
34208
34209         * make.adb: Minor reformatting
34210
34211         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34212
34213         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34214         so that it works when address is not a private type.
34215
34216         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34217         properly with rewritten unchecked conversions. This prevents
34218         order-of-elaboration issues that can otherwise arise.
34219         (Minimum_Size): Don't check size of access types under VMS
34220
34221         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34222         interpretations of integer literals as type System.Address.
34223
34224         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34225         (Is_Descendent_Of): New function
34226
34227 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
34228
34229         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34230         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34231         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34232
34233         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34234         of the old Max_Entry_Queue_Depth.
34235
34236         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34237         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34238         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34239
34240         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34241         New entry for proper handling of Max_Entry_Queue_Depth.
34242         New entry for proper handling of No_Dynamic_Interrupts.
34243
34244         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34245         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34246         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34247         the GNAT specific restriction Max_Entry_Queue_Depth.
34248         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34249         the GNAT specific restriction No_Dynamic_Interrupts.
34250
34251         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34252         instead of the old Boolean_Entry_Barriers.
34253         Use the new restriction No_Dynamic_Attachment instead of the old
34254         No_Dynamic_Interrupts.
34255
34256         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34257         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34258
34259         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34260         of the old Max_Entry_Queue_Depth.
34261
34262 2004-05-03  GNAT Script  <nobody@gnat.com>
34263
34264         * Make-lang.in: Makefile automatically updated
34265
34266 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
34267
34268         * checks.adb (Enable_Range_Check): If the prefix of an index component
34269         is an access to an unconstrained array, perform check unconditionally.
34270
34271 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34272
34273         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34274         Component_Clause.
34275
34276 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
34277
34278         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34279         alternate stack setting. There was no support for the tasking cases
34280         and the changes eventually caused a number of side-effect failures in
34281         the non-tasking case too.
34282
34283 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
34284
34285         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34286         -gnats is passed.
34287
34288 2004-04-29  Vincent Celier  <celier@gnat.com>
34289
34290         * make.adb (Gnatmake): Increase max size of argument array for
34291         gnatbind for the potential addition of -F.
34292         If there are Stand-Alone Library projects, invoke gnatbind with -F to
34293         be sure that elaboration flags will be checked.
34294
34295         * switch-c.adb: Correct call to Scan_Pos for -gnateI
34296
34297 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
34298
34299         * sem_warn.adb (Check_References): Move '<access-variable> may be
34300         null' warning out of under Warn_On_No_Value_Assigned.
34301
34302 2004-04-29  Ed Falis  <falis@gnat.com>
34303
34304         * gnat_ugn.texi: Fixed texi error
34305
34306 2004-04-29  Robert Dewar  <dewar@gnat.com>
34307
34308         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34309         abstract operations if they come from predefined files.
34310
34311         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34312         Dynamic, not RM).
34313
34314         * s-addope.adb: Correct obvious error in mod function
34315
34316 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
34317
34318         * Makefile.in: Add target pairs for powerpc darwin*
34319         tasking support.
34320
34321         * a-intnam-darwin.ads, s-osinte-darwin.adb,
34322         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34323
34324 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34325
34326         * Makefile.in: Add target macro definitions for s390*-linux*.
34327         * system-linux-s390.ads: New file.
34328         * system-linux-s390x.ads: New file.
34329
34330 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
34331
34332         * gnat_ugn.texi: Correct argument to @setfilename.
34333
34334 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34335
34336         * a-exexpr.adb (Unwind_Word): New data type.
34337         (Unwind_Exception): Use it as type of Private1 and Private2.
34338
34339         * raise.c (db_action_for): Fix debug printf.
34340
34341 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
34342
34343         * a-wtmoio.ads: Formal type must be a modular type, not a signed
34344         integer type.
34345
34346 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34347
34348         * decl.c (gnat_to_gnu_entity, case object): Call
34349         __builtin_update_setjmp_buf.
34350
34351         * gigi.h (update_setjmp_buf): Deleted.
34352         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34353
34354         * misc.c: (update_setjmp_buf): Deleted.
34355
34356         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34357         around block of RTL.
34358
34359         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34360
34361 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
34362
34363         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34364         subprogram for which no pragma All_Calls_Remote applies, store the
34365         address of the real subprogram in the underlying record type, so local
34366         dereferences do not go through the PCS.
34367
34368 2004-04-26  Robert Dewar  <dewar@gnat.com>
34369
34370         * i-c.ads: Add some type qualifications to avoid ambiguities when
34371         compiling with s-auxdec.ads and a non-private address type.
34372
34373 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
34374
34375         * Makefile.rtl: Fix error in previous check-in:
34376         Add s-addope.o to non tasking object list (rather than tasking object
34377         list).
34378
34379 2004-04-26  Javier Miranda  <miranda@gnat.com>
34380
34381         * sem_aggr.adb: Fix typo in comments
34382         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34383         Required to check the null-exclusion attribute.
34384
34385         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34386         case of anonymous access types in record and array components. For a
34387         component definition the level is the same of the enclosing composite
34388         type.
34389
34390         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34391         that are anonymous access types the level of accessibility depends on
34392         the enclosing type declaration. In order to have this information, set
34393         the scope of the anonymous access type to the enclosing record type
34394         declaration.
34395         (Array_Type_Declaration): In case of components that are anonymous
34396         access types the level of accessibility depends on the enclosing type
34397         declaration. In order to have this information, set the scope of the
34398         anonymous access type to the enclosing array type declaration.
34399
34400         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34401         access type.
34402
34403         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34404         renaming of anonymous access-to-constant types allowed if and only if
34405         the renamed object is access-to-constant.
34406
34407         * sem_util.adb (Type_Access_Level): In case of anonymous access types
34408         that are component_definition or discriminants of a nonlimited type,
34409         the level is the same as that of the enclosing component type.
34410
34411 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
34412
34413         * sem_elim.adb: Some minor code reorganization from code reading. Fix
34414         misprint in the function name (File_Name_Match).
34415
34416 2004-04-23  Laurent Guerby  <laurent@guerby.net>
34417
34418         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
34419         install.
34420
34421 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
34422
34423         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34424
34425 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
34426
34427         * adaint.c (__gnat_try_lock): No longer requires that the parent
34428         directory be writable, the directory itself is enough.
34429         (gnat_is_absolute_path): Change profile, so that the call from
34430         GNAT.OS_Lib can be made more efficient.
34431
34432         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34433         from GNAT.OS_Lib can be made more efficient.
34434
34435         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34436         one copy of the file name. Found by code reading.
34437
34438 2004-04-23  Vincent Celier  <celier@gnat.com>
34439
34440         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34441         Correct documentation on gnatmake switches transmitted to the compiler
34442
34443         * ali.ads: Minor comment fix
34444
34445 2004-04-23  Javier Miranda  <miranda@gnat.com>
34446
34447         * sem_ch6.adb: (Confirming Types): Code cleanup
34448
34449         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34450         subprogram types: E_Anonymous_Access_Subprogram_Type and
34451         E_Anonymous_Access_Protected_Subprogram_Type.
34452
34453 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
34454
34455         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34456         whether a pragma All_Calls_Remote applies to the subprogram on which
34457         'Access is taken.
34458         No functional change is introduced by this revision; the new parameter
34459         will be used to allow calls to local RCI subprograms to be optimized
34460         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34461         as is already done in the PolyORB implementation of the DSA.
34462
34463         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34464         whether a pragma All_Calls_Remote applies to the subprogram on which
34465         'Access is taken.
34466         No functional change is introduced by this revision; the new parameter
34467         will be used to allow calls to local RCI subprograms to be optimized
34468         to not use the PCS in the case where no pragma All_Calls_Remote applies,
34469         as is already done in the PolyORB implementation of the DSA.
34470
34471 2004-04-23  Robert Dewar  <dewar@gnat.com>
34472
34473         * Makefile.rtl: Add entry for s-addope.o in run time library list
34474         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34475         * s-addope.ads, s-addope.adb: New files.
34476
34477         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34478         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
34479         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34480         System.Address to be non-private and signed.
34481
34482         * sem_elim.adb: Minor reformatting (fairly extensive)
34483         Some minor code reorganization from code reading
34484         Add a couple of ??? comments
34485
34486 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34487
34488         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
34489         (tree_transform, case N_If_Statement): Remove non-determinism.
34490
34491         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34492
34493 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
34494
34495         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34496         Eliminate' section.
34497
34498         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34499         no longer used as a parameter name for Eliminate pragma).
34500
34501 2004-04-22  Laurent Guerby  <laurent@guerby.net>
34502
34503         PR optimization/14984
34504         PR optimization/14985
34505         * trans.c (gigi): Fix non determinism leading to bootstrap
34506         comparison failures.
34507
34508 2004-04-21  Pascal Obry  <obry@gnat.com>
34509
34510         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34511         passed to spawnvp() to properly handle program pathname with spaces on
34512         Win32.
34513
34514 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
34515
34516         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34517         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34518         unlocked in case of exceptions.
34519
34520 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34521
34522         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34523         This function does not exist anymore.
34524
34525 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34526
34527         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34528
34529         * link.c: Move variables to the __gnat name space.
34530
34531         * Makefile.in: list link.o explicitly when needed.
34532
34533         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34534
34535 2004-04-21  Javier Miranda  <miranda@gnat.com>
34536
34537         * einfo.adb (Original_Access_Type): New subprogram
34538         (Set_Original_Access_Type): New subprogram
34539         (Write_Field21_Name): Write the name of the new field
34540
34541         * einfo.ads (Original_Access_Type): New field present in access to
34542         subprogram types.
34543         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34544         E_Anonymous_Access_Protected_Subprogram_Type.
34545
34546         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34547         subprogram types.
34548
34549         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34550         to anonymous access to subprogram types.
34551
34552         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34553         to subprogram types.
34554
34555         * sem_ch3.adb (Access_Definition): Complete decoration of entities
34556         corresponding to anonymous access to subprogram types.
34557         (Analyze_Component_Declaration): Add new actual to the call to
34558         subprogram replace_anonymous_access_to_protected_subprogram.
34559         (Array_Type_Declaration): Add new actual to the call to subprogram
34560         replace_anonymous_access_to_protected_subprogram.
34561         (Process_Discriminants): Add new actual to the call to subprogram
34562         replace_anonymous_access_to_protected_subprogram.
34563         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34564
34565         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34566         formal.
34567
34568         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34569         access to subprogram types.
34570
34571         * sem_util.adb (Has_Declarations): Addition of package_specification
34572         nodes.
34573
34574 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
34575
34576         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34577         inlined flags to renamed entity only if in current unit.
34578
34579 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
34580
34581         * s-parint.ads: Add DSA implementation marker.
34582
34583         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34584         value of System.Partition_Interface.DSA_Implementation to determine
34585         what version of the distributed systems annex is available (no
34586         implementation, GLADE, or PolyORB).
34587
34588 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
34589
34590         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34591
34592 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34593
34594         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34595         with new type if alias sets differ.
34596         Fixes ACATS c41103b.
34597
34598 2004-04-21  Vincent Celier  <celier@gnat.com>
34599
34600         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34601         Add array Lang_Args for the language specific compiling argument
34602         switches.
34603
34604         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34605
34606 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
34607
34608         * gnat_rm.texi: Update the descripton of the Eliminate pragma
34609         according to the recent changes in the format of the parameters of the
34610         pragma (replacing Homonym_Number with Source_Location).
34611
34612 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
34613
34614         * 5isystem.ads: Removed, unused.
34615
34616         * gnat_rm.texi: Redo 1.13 change.
34617
34618 2004-04-19  Robert Dewar  <dewar@gnat.com>
34619
34620         * s-stoele.ads: Clean up definition of Storage_Offset (the new
34621         definition is cleaner, avoids the kludge of explicit Standard operator
34622         references, and also is consistent with a visible System.Address with
34623         no visible operations.
34624
34625         * s-geveop.adb: Add declarations to avoid assumption of visible
34626         operations on type System.Address (since these might not be available
34627         if Address is a non-private type for which the operations
34628         are made abstract).
34629
34630         * sem_eval.adb: Minor reformatting
34631
34632         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34633         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34634         reformatting (new function spec format).
34635
34636         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34637         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34638         s-caun64.adb: Add declarations to avoid assumption of visible
34639         operations on type System.Address (since these might not be available
34640         if Address is a non-private type for which the operations are made
34641         abstract).
34642
34643         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34644
34645         * exp_intr.adb: Minor comment update
34646
34647         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34648
34649         * 5omastop.adb: Add declarations to avoid assumption of visible
34650         operations on type System.Address (since these might not be available
34651         if Address is a non-private type for which the operations
34652         are made abstract).
34653
34654 2004-04-19  Vincent Celier  <celier@gnat.com>
34655
34656         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34657
34658         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34659         defaulted to Ada.
34660
34661         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34662         defaulted to Ada.
34663         Call Check with Process_Languages.
34664         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34665         with Process_Languages.
34666         (Recursive_Check): New Boolean parameter Process_Languages. Call
34667         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34668         Process_Languages.
34669
34670         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34671
34672         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34673         parameter Ada_Main, defaulted to True.
34674         Check for Ada specific characteristics only when Ada_Main is True.
34675
34676         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34677
34678         * prj.adb: (Project_Empty): Add new Project_Data components.
34679
34680         * prj.ads: New types and tables for non Ada languages.
34681         (Project_Data): New components Languages, Impl_Suffixes,
34682         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34683         Include_Path, Include_Data_Set.
34684
34685         * prj-env.ads, prj-env.adb: Minor reformatting
34686
34687         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34688         Put subprograms in alphabetical order
34689
34690         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34691         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34692         Opt.Follow_Links.
34693
34694         * mlib-prj.adb: Back out modification in last version, as they are
34695         incorrect.
34696         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
34697
34698         * make.adb: (Mains): Moved to package Makeutl
34699         (Linker_Opts): Moved to package Makeutl
34700         (Is_External_Assignment): Moved to package Makeutl
34701         (Test_If_Relative_Path): Moved to package Makeutl
34702         (Gnatmake): Move sorting of linker options to function
34703         Makeutl.Linker_Options_Switches.
34704
34705         * makeutl.ads, makeutl.adb: New files.
34706
34707         * Makefile.in: Add makeutl.o to the object files for gnatmake
34708
34709         * makeusg.adb: Add line for new switch -eL.
34710
34711         * gnatls.adb (Image): New function.
34712         (Output_Unit): If in verbose mode, output the list of restrictions
34713         specified by pragmas Restrictions.
34714
34715         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
34716         Text_IO.
34717
34718         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
34719         needed, to put it in the range 1970 (included) - 2026 (excluded).
34720         (Time_Of): Do not shift Unix_Min_Year (1970).
34721         Shift the date by multiple of 56 years, if needed, to put it in the
34722         range 1970 (included) - 2026 (excluded).
34723
34724         * adaint.h, adaint.c (__gnat_set_executable): New function.
34725
34726 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34727
34728         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
34729         and pop GC context.
34730         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
34731         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
34732         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
34733         (tree_transform, case N_Code_Statement): Likewise.
34734         (gnat_expand_stmt, case LABEL_STMT): Don't look at
34735         LABEL_STMT_FIRST_IN_EH.
34736         (gnat_expand_stmt, case ASM_STMT): New case.
34737
34738         * utils2.c (build_unary_op): Properly set TREE_READONLY of
34739         UNCONSTRAINED_ARRAY_REF.
34740
34741         * utils.c (poplevel): Temporarily push/pop GC context around inline
34742         function expansion.
34743
34744         * decl.c (maybe_variable): Properly set TREE_READONLY of
34745         UNCONSTRAINED_ARRAY_REF.
34746         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
34747
34748         * ada-tree.def: (ASM_STMT): New.
34749
34750         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
34751         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
34752         ASM_STMT_INPUT): New.
34753         (ASM_STMT_CLOBBER): Likewise.
34754
34755 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
34756
34757         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
34758         general rcheck mechanism to raise Program_Error for E.4(18), instead
34759         of a custom raiser in System.Partition_Interface.
34760         Part of general cleanup work before PolyORB integration.
34761
34762         * snames.ads, snames.adb: Add new runtime library entities and names
34763         for PolyORB DSA.
34764
34765         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34766         exp_dist.
34767         (Build_Subprogram_Id): New subprogram provided by exp_dist
34768         Code reorganisation in preparation for PolyORB integration.
34769
34770         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34771         exp_dist.
34772         (Build_Subprogram_Id): New subprogram provided by exp_dist
34773
34774         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
34775         actual parameter types for call to dereference of an
34776         access-to-subprogram type.
34777
34778         * rtsfind.ads: Add new runtime library entities and names for PolyORB
34779         DSA.
34780
34781         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
34782         instead, which has the same behaviour here since we never pass it a
34783         NULL pointer.
34784
34785         * link.c (run_path_option, Solaris case): Use -Wl, as for other
34786         platforms.
34787
34788         * Makefile.in: adjust object file lists for gnatlink and gnatmake
34789         to account for new dependency upon Interfaces.C.Strings + link.o
34790         For x86 FreeBSD, use 86numaux.
34791
34792         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
34793         from Mlib.Tgt to Mlib.
34794
34795         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
34796         target-independent.
34797
34798         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
34799         target-specific versions of this subprogram, now implemented as a
34800         target-independent function in Mlib.
34801
34802         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
34803         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
34804         (Linker_Library_Path_Option): Remove target-specific versions of this
34805         subprogram, now implemented as a target-independent function in Mlib.
34806
34807         * atree.adb: (Allocate_Initialize_Node): New subprogram.
34808         Factors out node table slots allocation.
34809         (Fix_Parents): New subprogram.
34810         Encapsulate the pattern of fixing up parent pointers for syntactic
34811         children of a rewritten node.
34812         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
34813         (Rewrite): Use New_Copy when creating saved copy of original node.
34814         (Replace): Use Copy_Node to copy nodes.
34815
34816 2004-04-19  Javier Miranda  <miranda@gnat.com>
34817
34818         * sprint.adb (Sprint_Node_Actual): Give support to the new
34819         Access_To_Subprogram node available in Access_Definition nodes. In
34820         addition, give support to the AI-231 node fields: null-exclusion,
34821         all-present, constant-present.
34822
34823         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
34824
34825         * sinfo.ads, sinfo.adb:
34826         New field Access_To_Subprogram_Definition in Access_Definition nodes
34827
34828         * sem_ch6.adb (Process_Formals): Move here the code that creates and
34829         decorates internal subtype declaration corresponding to the
34830         null-excluding formal. This code was previously in Set_Actual_Subtypes.
34831         In addition, carry out some code cleanup on this code. In case of
34832         access to protected subprogram call
34833         Replace_Anonymous_Access_To_Protected_Subprogram.
34834         (Set_Actual_Subtypes): Code cleanup.
34835
34836         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
34837         Find_Type in case of anonymous access renamings. Add warning in case of
34838         null-excluding attribute used in anonymous access renaming.
34839
34840         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34841         subprogram
34842
34843         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
34844         subprogram.
34845         (Access_Definition): In case of anonymous access to subprograms call
34846         the corresponding semantic routine to decorate the node.
34847         (Access_Subprogram_Declaration): Addition of some comments indicating
34848         some code that probably should be added here. Detected by comparison
34849         with the access_definition subprogram.
34850         (Analyze_Component_Declaration): In case of access to protected
34851         subprogram call Replace_Anonymous_Access_To_Protected.
34852         (Array_Type_Declaration): In case of access to protected subprogram call
34853         Replace_Anonymous_Access_To_Protected_Subprogram.
34854         (Process_Discriminants): In case of access to protected subprogram call
34855         Replace_Anonymous_Access_To_Protected_Subprogram.
34856
34857         * par.adb (P_Access_Definition): New formal that indicates if the
34858         null-exclusion part was present.
34859         (P_Access_Type_Definition): New formal that indicates if the caller has
34860         already parsed the null-excluding part.
34861
34862         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
34863         (P_Identifier_Declarations): Code cleanup and give support to renamings
34864         of anonymous access to subprogram types.
34865         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
34866         (P_Array_Type_Definition): Give support to AI-254.
34867         (P_Component_Items): Give support to AI-254.
34868         (P_Access_Definition): New formal that indicates if the header was
34869         already parsed by the caller.
34870         (P_Access_Type_Definition): New formal that indicates if the caller has
34871         already parsed the null-excluding part.
34872
34873         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
34874         call to P_Access_Definition.
34875
34876 2004-04-19  Geert Bosch  <bosch@gnat.com>
34877
34878         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
34879         the delicate semantics of floating-point to integer conversion.
34880         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
34881
34882         * eval_fat.adb (Machine_Mantissa): Moved to spec.
34883         (Machine_Radix): New function.
34884
34885         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
34886         conversion checks.
34887         (Machine_Radix): New function also for use in conversion checks.
34888
34889 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
34890
34891         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
34892
34893         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
34894         to decorate the access-to-protected subprogram and the equivalent type.
34895
34896         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
34897         to anonymous access to subprogram types.
34898
34899         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
34900         constant-folding, for legality checks in contexts that require an RM
34901         static expression.
34902
34903         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
34904         temporary but stack checking is not enabled, increment serial number
34905         to so that symbol generation is consistent with and without stack
34906         checking.
34907
34908         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
34909         independent on whether stack checking is enabled, caller must check
34910         the corresponding flag.
34911
34912         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
34913         range checks.
34914         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
34915         parent if it has discriminants.
34916         (Build_Derived_Private_Type): Constructed full view does
34917         not come from source.
34918         (Process_Discriminants): Default discriminants on a tagged type are
34919         legal if this is the internal completion of a private untagged
34920         derivation.
34921
34922         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
34923         no constraint checks, because it corresponds to an existing object.
34924
34925         * sem_prag.adb (Process_Convention): Pragma applies
34926         only to subprograms in the same declarative part, i.e. the same unit,
34927         not the same scope.
34928
34929         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
34930         ignore type mismatch on a numeric conversion if expression comes from
34931         expansion.
34932
34933 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
34934
34935         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
34936         Homonym_Number parameter, add processing for Source_Location parameter
34937         corresponding.
34938         (Check_Eliminated): Remove the check for homonym numbers, add the check
34939         for source location traces.
34940
34941         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
34942         with Arg_Source_Location corresponding to the changes in the format of
34943         the pragma.
34944
34945         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
34946         Eliminate pragma corresponding to the changes in the format of the
34947         pragma: Homonym_Number is replaced with Source_Location, two ways of
34948         distinguishing homonyms are mutially-exclusive.
34949
34950 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
34951
34952         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
34953
34954         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
34955         No_Dollar_In_Label, no longer necessary, as it is always True.
34956         (Strip_Suffixes): Likewise.
34957
34958 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
34959
34960         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
34961         modulus for compatibility with size clause on targets with 16-bit
34962         Integer.
34963
34964         * layout.adb (Discrimify): In the case of private types, set Vtyp to
34965         full type to fix type mismatches on calls to size functions for
34966         discriminant-dependent array components.
34967
34968 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
34969
34970         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
34971         lib.
34972
34973 2004-04-19  Pascal Obry  <obry@gnat.com>
34974
34975         * mdll-utl.adb (Locate): New version is idempotent.
34976
34977 2004-04-17  Laurent Guerby  <laurent@guerby.net>
34978
34979         PR ada/14988 (partial)
34980         * impunit.adb: Fix typo.
34981
34982 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
34983
34984         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
34985         and install-rts-cert targets.  Remove all gnatlib and gnattools
34986         targets and all other rts-* targets (moved to libada).  Remove (now)
34987         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
34988         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
34989
34990 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34991
34992         * trans.c (tree_transform): Shortcut returning error_mark_node for
34993         statements in annotate_only_mode.
34994         (tree_transform, case N_Label, case N_Return_Statement,
34995         N_Goto_Statement): Make statement tree instead of generating code.
34996         (tree_transform, case N_Assignment_Statement): No longer check
34997         type_annotate_only.
34998         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
34999         RETURN_STMT): New.
35000         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35001         New fcns.
35002         (gnat_to_gnu): Collect any RTL generated and deal with it.
35003         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35004         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35005         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35006
35007         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35008
35009         * ada-tree.def (EXPR_STMT): Fix typo in name.
35010         (BLOCK_STMT, IF_STMT): New nodes.
35011
35012         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35013         LABEL_STMT_FIRST_IN_EH): New macros.
35014         (RETURN_STMT_EXPR): Likewise.
35015
35016         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35017         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35018
35019 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35020
35021         * atree.ads: Correct documentation on extended nodes.
35022
35023         * link.c: Set run_path_option for FreeBSD.
35024
35025 2004-04-08  Vincent Celier  <celier@gnat.com>
35026
35027         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35028         one of the ALI file, do not link with DEC lib.
35029
35030         * par.adb Remove the last two characters ("%s" or "%b") when checking
35031         if a language defined unit may be recompiled.
35032
35033 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
35034
35035         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35036         removal of abstract operation leaves no possible interpretation for
35037         expression.
35038
35039         * sem_eval.adb (Eval_Qualified_Expression): Use
35040         Set_Raises_Constraint_Error on node when needed, so that it does not
35041         get optimized away by subsequent optimizations.
35042
35043         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35044         operands even when they are not wrapped in a type conversion.
35045
35046 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
35047
35048         * sem_prag.adb (Set_Exported): Warn about making static as result of
35049         export only when the export is coming from source. This may be not
35050         be true e.g. on VMS where we expand export pragmas for exception codes
35051         together with imported or exported exceptions, and we don't want the
35052         user to be warned about something he didn't write.
35053
35054 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35055
35056         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35057         duplication between normal entities and those declared as renamings.
35058         No functional change.
35059
35060         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35061         inline functions returning an unconstrained result.
35062
35063 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
35064
35065         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35066         conform to what other front-ends do.
35067
35068 2004-04-08  Doug Rupp  <rupp@gnat.com>
35069
35070         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35071         libraries.
35072
35073 2004-04-06  Pascal Obry  <obry@gnat.com>
35074
35075         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35076
35077         * osint.adb (Program_Name): Do not look past a directory separator.
35078
35079 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
35080
35081         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35082
35083         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35084         requirement for preserving a copy of the original assignment node.
35085
35086         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35087
35088 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
35089
35090         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35091         when supported.
35092
35093 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
35094
35095         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35096         operator calls in functional notation, and apply
35097         Universal_Interpretation to operands, not to their type.
35098
35099 2004-04-06  Robert Dewar  <dewar@gnat.com>
35100
35101         * 5wdirval.adb: Minor reformatting
35102
35103 2004-04-06  Ed Falis  <falis@gnat.com>
35104
35105         * gnat_rm.texi: Improve a reference to the GCC manual
35106
35107 2004-04-05  Vincent Celier  <celier@gnat.com>
35108
35109         * adaint.h, adaint.c: Add function __gnat_named_file_length
35110
35111         * impunit.adb: Add Ada.Directories to the list
35112
35113         * Makefile.in: Add VMS and Windows versions of
35114         Ada.Directories.Validity package body.
35115
35116         * Makefile.rtl: Add a-direct and a-dirval
35117
35118         * mlib-tgt.ads: Minor comment update.
35119
35120         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35121         a-direct.ads, a-direct.adb: New files.
35122
35123 2004-04-05  Vincent Celier  <celier@gnat.com>
35124
35125         PR ada/13620
35126         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35127         just to the compiler.
35128
35129 2004-04-05  Robert Dewar  <dewar@gnat.com>
35130
35131         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35132         returned string is 1.
35133
35134         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35135
35136         * eval_fat.ads: Minor reformatting
35137
35138         * g-curexc.ads: Document that lower bound of returned string values
35139         is always one.
35140
35141         * gnatlink.adb: Add ??? comment for previous change
35142         (need to document why this is VMS specific)
35143
35144         * s-stoele.ads: Minor reformatting
35145
35146         * tbuild.ads: Minor reformatting throughout (new function specs)
35147
35148         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35149         after WITH.
35150
35151         * scng.adb: Minor reformatting
35152
35153 2004-04-05  Geert Bosch  <bosch@gnat.com>
35154
35155         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35156         (Leading_Part): Still perform truncation to machine number if the
35157         specified radix_digits is greater or equal to machine_mantissa.
35158
35159 2004-04-05  Javier Miranda  <miranda@gnat.com>
35160
35161         * par-ch3.adb: Complete documentation of previous change
35162         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35163         (aliased must appear before constant).
35164
35165         * par-ch4.adb: Complete documentation of previous change.
35166
35167         * par-ch6.adb: Complete documentation of previous change.
35168
35169         * sinfo.ads: Fix typo in commment.
35170
35171 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
35172
35173         * sem_ch3.adb (Inherit_Components): If derived type is private and has
35174         stored discriminants, use its discriminants to constrain parent type,
35175         as is done for non-private derived record types.
35176
35177         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35178         Ada 2005 AI-310: an abstract non-dispatching operation is not a
35179         candidate interpretation in an overloaded call.
35180
35181         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35182         expression is Null and target type is not an access type (e.g. a
35183         non-private address type).
35184
35185 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
35186
35187         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35188         statement whose right-hand side is an inlined call, save a copy of the
35189         original assignment subtree to preserve enough consistency for
35190         Analyze_Assignment to proceed.
35191
35192         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35193         complete assignment subtree which is now unnecessary, as the expansion
35194         of inlined call has been improved to preserve a consistent assignment
35195         tree.  Note_Possible_Modification must be called only
35196         after checks have been applied, or else unnecessary checks will
35197         be generated.
35198
35199         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35200         of explicit dereferences that do not Come_From_Source:
35201          - be selective on cases where we must go back to the dereferenced
35202            pointer (an assignment to an implicit dereference must not be
35203            recorded as modifying the pointer);
35204          - do not rely on Original_Node being present (Analyze_Assignment
35205            calls Note_Possible_Modification on a copied tree).
35206
35207         * sem_warn.adb (Check_References): When an unset reference to a pointer
35208         that is never assigned is encountered, prefer '<pointer> may be null'
35209         warning over '<pointer> is never assigned a value'.
35210
35211 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
35212
35213         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35214         the ABI.
35215
35216 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
35217
35218         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35219         libexc. We currently don't reference anything in this library and
35220         linking it in triggers linker warnings we don't want to see.
35221
35222         * init.c: Update comments.
35223
35224 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35225
35226         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35227         * utils.c (create_field_decl): Likewise.
35228         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35229
35230 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
35231
35232         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35233         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35234         Add info directory entry and category.
35235
35236 2004-04-02  Jan Hubicka  <jh@suse.cz>
35237
35238         * utils.c: Include function.h
35239         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35240
35241 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35242
35243         PR ada/14150
35244         * Make-lang.in: Clean up generation of documentation
35245
35246         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35247
35248         * xgnatug.adb: Removed, replaced by xgnatugn.adb
35249
35250         * xgnatugn.adb: Replaces xgnatug.adb
35251
35252         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35253
35254         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35255
35256         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35257         gnat_ug_wnt.texi: Removed.
35258
35259 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35260
35261         * utils2.c: Update copyright notice.
35262
35263 2004-04-01  Robert Dewar  <dewar@gnat.com>
35264
35265         * checks.adb: Minor reformatting throughout
35266         Note that prev checkin added RM reference to alignment warning
35267
35268 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
35269
35270         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35271         non-static when building aggregate for bit-packed array.
35272
35273         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35274         function call that is itself the actual in a procedure call, build
35275         temporary for it.
35276
35277         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35278         a string literal, create a temporary for it, constant folding only
35279         handles scalars here.
35280
35281 2004-04-01  Vincent Celier  <celier@gnat.com>
35282
35283         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35284         Error_Msg_SP): New empty procedures to instantiate the Scanner.
35285         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35286         tokens.
35287         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35288         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35289         and get the checksum.
35290
35291         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35292         already in the Q.
35293         Increase the Marking_Label at the end of the Multiple_Main_Loop,
35294         instead of at the beginning.
35295
35296         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35297         directly.
35298         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35299         on VMS.
35300
35301         * osint.ads (Multi_Unit_Index_Character): New Character global variable
35302
35303         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35304         not '~' directly.
35305
35306         * par.adb: Remove test on file name to detect language defined units.
35307         Add test on unit name, after parsing, to detect language defined units
35308         that are not compiled with -gnatg (except System.RPC and its children)
35309
35310         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35311         following units without style checking.
35312
35313         * switch-c.adb: Change -gnatC to -gnateI
35314
35315         * usage.adb: Document new switch -gnateInnn
35316
35317         * scng.adb (Accumulate_Token_Checksum): New procedure
35318         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35319         word or literal number.
35320         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35321         numbers.
35322
35323 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
35324
35325         * a-tasatt.adb,
35326         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35327         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35328         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35329         5vtpopde.adb: Add missing 'constant' keywords.
35330
35331 2004-04-01  Javier Miranda  <miranda@gnat.com>
35332
35333         * par-ch4.adb: (P_Allocator): Code cleanup
35334
35335         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35336         attribute.
35337
35338         * sinfo.ads: Complete documentation of previous change
35339
35340 2004-04-01  Pascal Obry  <obry@gnat.com>
35341
35342         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35343         only on VMS.  This special handling was done because an old GNU/ld bug
35344         on Windows which has been fixed.
35345
35346 2004-04-01  GNAT Script  <nobody@gnat.com>
35347
35348         * Make-lang.in: Makefile automatically updated
35349
35350 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35351
35352         * decl.c (gnat_to_gnu_entity, make_type_from_size):
35353         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35354         * trans.c (tree_transform, convert_with_check): Likewise.
35355         * utils.c (gnat_signed_or_unsigned_type): Likewise.
35356         (build_vms_descriptor, unchecked_convert): Likewise.
35357         * utils2.c (nonbinary_modular_operation): Likewise.
35358
35359 2004-03-29  Javier Miranda  <miranda@gnat.com>
35360
35361         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35362         (Install_Null_Excluding_Check): Local subprogram that determines whether
35363         an access node requires a runtime access check and if so inserts the
35364         appropriate run-time check.
35365         (Apply_Access_Check): Call Install_Null_Excluding check if required
35366         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35367
35368         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35369
35370         * einfo.ads: Fix typo in comment
35371
35372         * exp_ch3.adb (Build_Assignment): Generate conversion to the
35373         null-excluding type to force the corresponding run-time check.
35374         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35375         type to force the corresponding run-time check.
35376
35377         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35378         the null-excluding type to force the corresponding run-time check.
35379
35380         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35381         case of access types unless they have the null-excluding attribute.
35382
35383         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35384         part.
35385
35386         * exp_util.ads: Fix typo in comment
35387
35388         * par.adb (P_Null_Exclusion): New subprogram
35389         (P_Subtype_Indication): New formal that indicates if the null-excluding
35390         part has been scanned-out and it was present
35391
35392         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35393
35394         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35395         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35396         type to force the corresponding run-time check
35397         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35398         components
35399         (Resolve_Array_Aggregate): Carry out some static checks
35400         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35401
35402         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35403         attribute must be set only if specified by means of the null-excluding
35404         part. In addition, we must also propagate the access-constant attribute
35405         if present.
35406         (Access_Subprogram_Declaration, Access_Type_Declaration,
35407         Analyze_Component_Declaration, Analyze_Object_Declaration,
35408         Array_Type_Declaration, Process_Discriminants,
35409         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35410         and carry out some static checks.
35411         (Build_Derived_Access_Type): Set the null-excluding attribute
35412         (Derived_Type_Declaration, Process_Subtype): Carry out some static
35413         checks.
35414
35415         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35416
35417         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35418
35419         * sem_ch6.adb (Process_Formals): Carry out some static checks.
35420         (Set_Actual_Subtypes): Generate null-excluding subtype if the
35421         null-excluding part was present; it is not required to be done here in
35422         case of anonymous access types.
35423         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35424         value.
35425
35426         * sem_res.adb (Resolve_Actuals): Carry out some static check
35427         (Resolve_Null): Allow null in anonymous access
35428
35429         * sinfo.adb: New subprogram Null_Exclusion_Present
35430         All_Present and Constant_Present available on access_definition nodes
35431
35432         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35433         object_declaration, derived_type_definition, component_definition,
35434         discriminant_specification, access_to_object_definition,
35435         access_function_definition, allocator, access_procedure_definition,
35436         access_definition, parameter_specification, All_Present and
35437         Constant_Present flags available on access_definition nodes.
35438
35439 2004-03-29  Robert Dewar  <dewar@gnat.com>
35440
35441         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35442         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35443         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35444         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35445         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35446         sem_prag.adb: Updates to handle multiple units/file
35447
35448         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35449
35450         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35451         sem_util.adb: Minor reformatting
35452
35453         * sem_ch12.adb: Add comment for previous change
35454
35455 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
35456
35457         * osint.adb (Executable_Prefix): Set Exec_Name to the current
35458         executable name when not initialized. Otherwise, use its current value.
35459
35460         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35461         initialize it to another executable name than the current one. This
35462         allows to configure paths for an executable name (gnatmake) different
35463         from the current one (gnatdist).
35464
35465 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
35466
35467         * exp_ch6.adb (Expand_Call): A call to a function declared in the
35468         current unit cannot be inlined if it appears in the body of a withed
35469         unit, to avoid order of elaboration problems in gigi.
35470
35471         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35472         information for protected (wrapper) operation as well, to simplify gdb
35473         use.
35474
35475         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35476         protected body, indicate that the entity for the generated spec comes
35477         from source, to ensure that references are properly generated for it.
35478         (Build_Body_To_Inline): Do not inline a function that returns a
35479         controlled type.
35480
35481         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35482         apply convention to homonyms that are declared explicitly.
35483
35484         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35485         that renames an equality operator and the operands are overloaded,
35486         resolve them with the declared formal types, before rewriting as an
35487         operator.
35488
35489 2004-03-29  GNAT Script  <nobody@gnat.com>
35490
35491         * Make-lang.in: Makefile automatically updated
35492
35493 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
35494
35495         * memtrack.adb: Log realloc calls, which are treated as free followed
35496         by alloc.
35497
35498 2004-03-25  Vincent Celier  <celier@gnat.com>
35499
35500         * prj-makr.adb (Process_Directories): Detect when a file contains
35501         several units. Do not include such files in the config pragmas or
35502         in the naming scheme.
35503
35504         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35505         Resolve links only when not in Trusted_Mode.
35506         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35507         Do not resolve links for the display names.
35508
35509         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35510         resolve links when computing the display names.
35511
35512 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
35513
35514         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35515         attribute reference does not denote a subtype, it can be any
35516         expression that has a classwide type, potentially after an implicit
35517         dereference.  In particular, the prefix can be a view conversion for
35518         a classwide type (for which Is_Object_Reference holds), but it can
35519         also be a value conversion for an access-to-classwide type. In the
35520         latter case, there is an implicit dereference, and the original node
35521         for the prefix does not verify Is_Object_Reference.
35522
35523         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35524         conversion of a discriminant-dependent component of a mutable object
35525         is one itself.
35526
35527 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
35528
35529         * freeze.adb (Freeze_Entity): When an inherited subprogram is
35530         inherited, has convention C, and has unconstrained array parameters,
35531         place the corresponding warning on the derived type declaration rather
35532         than the original subprogram.
35533
35534         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35535         indication on renaming declaration, if formal has a box and actual
35536         is absent.
35537
35538         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35539         determine whether to generate an implicit or explicit reference to
35540         the renamed entity.
35541
35542         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35543         subprogram renaming comes from a defaulted formal subprogram in an
35544         instance.
35545
35546 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
35547
35548         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35549         value expressions to ensure that calls within a component definition
35550         will be checked (since those are evaluated during the record type's
35551         elaboration).
35552
35553 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
35554
35555         * s-tpobop.adb: Code clean up:
35556         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35557         code.
35558         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35559
35560 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
35561
35562         * Makefile.in: Clean up in the ravenscar run time.
35563
35564 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35565
35566         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35567         of No_Strict_Aliasing to build_pointer_type_for_mode.
35568         * utils.c (update_pointer_to): Walk pointer and ref chains.
35569
35570 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
35571
35572         * ali.ads: Fix Comment about Dynamic_Elab.
35573
35574         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35575         Has_RACW, Is_Generic, etc.)
35576         (Output_Object, Gnatls): Take into account ALI files not attached to
35577         an object.
35578
35579 2004-03-22  Vincent Celier  <celier@gnat.com>
35580
35581         * gprep.adb: Change all String_Access to Name_Id
35582         (Is_ASCII_Letter): new function
35583         (Double_File_Name_Buffer): New procedure
35584         (Preprocess_Infile_Name): New procedure
35585         (Process_Files): New procedure
35586         (Gnatprep): Check if output and input are existing directories.
35587         Call Process_Files to do the real job.
35588
35589 2004-03-22  Robert Dewar  <dewar@gnat.com>
35590
35591         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35592         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35593
35594 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
35595
35596         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35597         case when the source contains only comments.
35598
35599 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
35600
35601         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35602         declaration for a child subprogram body that acts as a spec, indicate
35603         that the entity in the declaration needs debugging information.
35604
35605         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35606         full view if the subtype is created for a constrained record component;
35607         gigi has enough information to construct the record, and there is no
35608         place in the tree for the declaration.
35609
35610         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35611         serial number for the dummy body that is built for analysis, to avoid
35612         inconsistencies in the generation of internal names when compiling
35613         with -gnatN.
35614
35615 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
35616
35617         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35618         object.
35619
35620 2004-03-22  GNAT Script  <nobody@gnat.com>
35621
35622         * Make-lang.in: Makefile automatically updated
35623
35624 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35625
35626         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35627         * trans.c (tree_transform, emit_index_check): Likewise.
35628         * utils.c (build_template): Likewise.
35629         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35630         (maybe_unconstrained_array, unchecked_convert): Likewise.
35631         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35632         (build_unary_op): Likewise.
35633         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35634         (fill_vms_descriptor): Likewise.
35635         (build_call_alloc_dealloc): Likewise.
35636         ALIGN is unsigned.
35637         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35638
35639 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
35640
35641         PR other/14630
35642         * gnat_ug.texi: Add info directory category and entry.
35643         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35644         gnat_ug_wnt.texi: Regenerate.
35645
35646 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
35647
35648         * ada-tree.h: Update copyright notice.
35649         Minor reformatting.
35650
35651 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
35652
35653         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35654         as regular exception objects and not as mere integers representing the
35655         condition code.  The latter approach required some dynamics to mask off
35656         severity bits, which did not fit well into the GCC table based model.
35657         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35658         exception data objects. We don't it and it would conflict with the other
35659         external symbol we have to generate for such exceptions.
35660
35661         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35662         the special code for VMS exceptions, since these are now represented
35663         as regular exceptions objects.
35664
35665 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35666
35667         * decl.c (debug_no_type_hash): Remove.
35668         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35669         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35670
35671 2004-03-19  Laurent Guerby  <laurent@guerby.net>
35672
35673         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
35674         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
35675
35676 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35677
35678         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35679         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35680         (TYPE_RM_SIZE_INT): Directly use type.values.
35681         (TREE_LOOP_ID): Clean up check.
35682         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35683         TYPE_VALUES, not TYPE_FIELDS.
35684         * trans.c (convert_with_check): Delay access of bounds of basetype
35685         until sure is numeric.
35686
35687 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
35688
35689         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35690
35691         Code clean up:
35692         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35693         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35694         Specific.Set instead of direct call to e.g pthread_setspecific.
35695
35696 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
35697
35698         * adaint.c: Update comments.
35699
35700         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
35701         GNATLIB_SHARED for FreeBSD.
35702
35703 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
35704
35705         * init.c [VxWorks]: Do not fix the stack size for the environment task.
35706         When needed (stack checking) the stack size is retrieved
35707         from the VxWorks kernel.
35708
35709         * Makefile.in: Flag -nostdinc is required when building the run time
35710         for avoiding looking for files in the base compiler.
35711         Add the VxWorks specific version of the package body for
35712         System.Stack_checking.Operations (5zstchop.adb).
35713
35714         * Make-lang.in: Add the object file for
35715         System.Stack_Checking.Operations.
35716
35717         * Makefile.rtl: Add object file for the package
35718         System.Stack_Checking.Operations.
35719
35720         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
35721
35722         * s-stache.ads, s-stache.adb: Move the operations related to stack
35723         checking from this package to package System.Stack_Checking.Operations.
35724         This way, stack checking operations are only linked in the final
35725         executable when using the -fstack-check flag.
35726
35727 2004-03-18  Doug Rupp  <rupp@gnat.com>
35728
35729         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
35730         Reorganize ifeq's.
35731
35732         * 5qsystem.ads, 5xcrtl.ads: New files.
35733
35734 2004-03-18  Vincent Celier  <celier@gnat.com>
35735
35736         * prj.adb (Reset): Reset hash table Files_Htable
35737
35738         * prj-env.adb (Source_Paths, Object_Paths): New tables.
35739         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
35740         the procedures Add_To_Path_File.
35741         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
35742         making sure that each directory is present only once and, for object
35743         dirs, when a directory already present is added, the duplicate is
35744         removed and the directory is always put as the last in the table.
35745         Write the path files at the end of these accumulations.
35746
35747         * prj-nmsc.adb (Record_Source): Add source file name in hash table
35748         Files_Htable for all sources.
35749
35750         * prj-proc.adb (Process): Remove restrictions between not directly
35751         related extending projects.
35752
35753 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
35754
35755         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
35756         (Find_Sources): Minor speed optimization.
35757
35758         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
35759         parameter Trusted_Mode.
35760
35761 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
35762
35763         * scn.adb (Determine_License): Take into account a degenerated case
35764         when the source contains only comments.
35765
35766 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
35767
35768         * sem_warn.adb (Check_References): For a warning on a selected
35769         component that does not come from source, locate an uninitialized
35770         component of the record type to produce a more precise error message.
35771
35772 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
35773
35774         * 3zsoccon.ads: Fix multicast options.
35775
35776         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
35777         in the spec.
35778
35779 2004-03-15  Robert Dewar  <dewar@gnat.com>
35780
35781         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
35782         pragma used for a private type.
35783
35784         * lib-xref.adb (Generate_Reference): Do not generate warning if
35785         reference is in a different unit from the pragma Unreferenced.
35786
35787         * 5vtpopde.adb: Minor reformatting
35788         Fix casing of To_Task_ID
35789
35790         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
35791         flag if we have an unchecked conversion to an access type in the same
35792         unit.
35793
35794 2004-03-15  Geert Bosch  <bosch@gnat.com>
35795
35796         * a-ngcoty.adb (Modulus): In alternate formula for large real or
35797         imaginary parts, use Double precision throughout.
35798
35799         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
35800         we want to be able to compile run-time with -gnata for testing, but
35801         this may also be instantiated in user code that is compiled with -gnata.
35802
35803 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
35804
35805         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
35806         codes. Having a separate type for this is useful to enforce consistency
35807         throughout the various run-time units.
35808         (Exception_Data): Use Exception_Code for Import_Code.
35809
35810         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
35811         Natural and Integer in various places.
35812         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
35813         with the severity bits masked off.
35814         (Register_VMS_Exception): Handle the additional exception data pointer
35815         argument.
35816
35817         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
35818         component, now reflected by an exported accessor.
35819         (is_handled_by): New routine to compute whether the propagated
35820         occurrence matches some handler choice specification. Extracted out of
35821         get_action_description_for, and expanded to take care of the VMS
35822         specifities.
35823         (get_action_description_for): Use is_handled_by instead of an explicit
35824         complex condition to decide if the current choice at hand catches the
35825         propagated occurrence.
35826
35827         * raise.h (Exception_Code): New type for C.
35828
35829         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
35830         System.Standard_Library.Exception_Code, to allow references from the
35831         pragma import/export expander.
35832
35833         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
35834         New accessors to allow easy access to GNAT exception data
35835         characteristics.
35836         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
35837         redundant Handled_By_Others component, helper for the personality
35838         routine which will now be able to call the appropriate exception data
35839         accessor instead.
35840
35841         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
35842         component of Standard_Exception_Type to be the closest possible to
35843         Exception_Code in System.Standard_Library, that we cannot get at this
35844         point. Expand a ??? comment to notify that this type node should
35845         probably be rewritten later on.
35846
35847         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
35848         registration call to include a pointer to the exception object in the
35849         arguments.
35850
35851         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
35852         instead of int and explicit bitmasks.
35853
35854 2004-03-15  Vincent Celier  <celier@gnat.com>
35855
35856         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
35857         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
35858
35859         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
35860         longer needed now that it is in the spec of
35861         System.Tasking.Task_Attributes.
35862
35863         * adaint.h, adaint.c: (__gnat_create_output_file): New function
35864
35865         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
35866
35867         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
35868
35869         * make.adb (Gnatmake): Do not check the executable suffix; it is being
35870         taken care of in Scan_Make_Arg.
35871         (Scan_Make_Arg): Add the executable suffix only if the argument
35872         following -o, in canonical case, does not end with the executable
35873         suffix.  When in verbose mode and executable file name does not end
35874         with executable suffix, output the executable name, in canonical case.
35875
35876         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
35877         to avoid warnings when instantiating Ada.Task_Attributes.
35878         Minor reformating.
35879
35880         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
35881         in the correct order.
35882
35883         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
35884         redirect standard output and error to a file for the invocation of the
35885         compiler, then read the file.
35886
35887         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
35888         directory, instead of the Value.
35889         (Find_Source_Dirs): Remove useless code & comments.
35890
35891 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
35892
35893         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
35894         tagged type is inherited, and the parent operation is not frozen yet,
35895         force generation of a freeze node for the inherited operation, so the
35896         corresponding dispatch entry is properly initialized.
35897         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
35898         when looking for user-defined equality operation.
35899
35900         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
35901         boolean when locating primitive equality of tagged component.
35902
35903         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
35904         bit-aligned field and the right-hand side a string literal, introduce
35905         a temporary before expanding assignment into a loop.
35906
35907         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
35908         priority in full, to ensure that any expanded subepxressions of it are
35909         elaborated in the scope of the init_proc.
35910
35911         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
35912         after object declaration, skipping over code that may have been
35913         generated for validity checks.
35914
35915         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
35916         discriminants, ignore the known discriminants of its full view, if
35917         any, to check legality.
35918
35919         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
35920         component if type has unknown discriminants.
35921         (Analyze_Private_Extension_Declaration): Discriminant constraint is
35922         null if type has unknown discriminants.
35923
35924         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
35925         for end label when present.
35926
35927         * s-fileio.adb (Open): When called with a C_Stream, use given name for
35928         temporary file, rather than an empty string.
35929
35930 2004-03-15  Ed Falis  <falis@gnat.com>
35931
35932         * s-thread.adb: Removed, no longer used.
35933
35934 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35935
35936         * decl.c (target.h): Now include.
35937         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
35938         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
35939         (validate_size): For POINTER_TYPE, get smallest size permitted on
35940         machine.
35941
35942         * fe.h: Sort Einfo decls and add Set_Mechanism.
35943
35944         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
35945         (ada/decl.o): Depends on target.h.
35946
35947         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
35948         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
35949
35950 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
35951
35952         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
35953
35954         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
35955         Insert_Dereference_Action when rewriting an implicit dereference into
35956         an explicit one, this will be taken care of during expansion of the
35957         explicit dereference.
35958         (Expand_N_Slice): Same. Always do the rewriting, even for the case
35959         of non-packed slices, since the dereference action generated by
35960         expansion of the explicit dereference is needed in any case.
35961         (Expand_N_Selected_Component): When rewriting an implicit dereference,
35962         analyze and resolve the rewritten explicit dereference so it is seen
35963         by the expander.
35964         (Insert_Dereference_Action): This procedure is now called only for the
35965         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
35966         dereferences that do not come from source (including explicit
35967         dereferences resulting from rewriting implicit ones), but do not
35968         recursively insert a check for the dereference nodes contained within
35969         the check.
35970         (Insert_Dereference_Action): Clarify and correct comment.
35971
35972 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
35973
35974         PR ada/14131
35975         Move language detection to the top level.
35976         * config-lang.in: Build by default.
35977
35978 2004-03-05  Robert Dewar  <dewar@gnat.com>
35979
35980         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
35981
35982         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
35983         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
35984         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
35985         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
35986         unchecked conversion to spec to avoid warnings.
35987
35988         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
35989         to Task_ID
35990
35991         * 7stpopsp.adb: Correct casing in To_Task_ID call
35992
35993         * a-strsea.ads, a-strsea.adb: Minor reformatting
35994
35995         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
35996
35997         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
35998         Adjust Max_Msg_Length to be clearly large enough.
35999
36000         * fe.h: Define In_Same_Source_Unit
36001
36002         * osint.adb: Add pragma Warnings Off to suppress warnings
36003         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36004         aliasing warnings.
36005
36006         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36007
36008         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36009
36010         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36011
36012         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36013
36014         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36015
36016         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36017         node. We now do generate them for gcc back end.
36018
36019         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36020         warning.
36021
36022         * sinput-c.adb: Fix bad name in header.
36023         Add pragma Warnings Off to suppress aliasing warning.
36024
36025         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36026
36027         * snames.h, snames.ads, snames.adb: Add entry for pragma
36028         No_Strict_Aliasing.
36029
36030 2004-03-05  Vincent Celier  <celier@gnat.com>
36031
36032         * prj-com.ads: Add hash table Files_Htable to check when a file name
36033         is already a source of another project.
36034
36035         * prj-nmsc.adb (Record_Source): Before recording a new source, check
36036         if its file name is not already a source of another project. Report an
36037         error if it is.
36038
36039         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36040         source file name, call gnatpp with all the sources of the main project.
36041
36042         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36043         of file names.
36044
36045         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36046         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36047         /RUNTIME_SYSTEM=, converted to --RTS=
36048         /NOTABS, converted to -notabs
36049
36050 2004-03-05  Pascal Obry  <obry@gnat.com>
36051
36052         * make.adb: Minor reformatting.
36053
36054 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
36055
36056         Part of implemention of AI-262.
36057         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36058
36059         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36060         procedure.
36061
36062         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36063         when component type is a partially constrained class-wide subtype.
36064         (Constrain_Discriminated_Type): If parent type has unknown
36065         discriminants, a constraint is illegal, even if full view has
36066         discriminants.
36067         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36068         with unknown discriminants whose full view is a discriminated record.
36069
36070         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36071         flag, to handle properly derivations of tagged types with unknown
36072         discriminants.
36073         (Analyze_Package_Spec, Analyze_Package_Body): Install
36074         Private_With_Clauses before analyzing private part or body.
36075
36076         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36077         Has_Discriminants can be true for a given type (documentation).
36078
36079 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
36080
36081         * s-restri.ads: Fix license (GPL->GMGPL).
36082
36083         * s-tassta.adb: Minor reformatting.
36084
36085         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36086         by calls to Exit_One_ATC_Level, since additional clean up is performed
36087         by this function.
36088
36089         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36090         by calls to Exit_One_ATC_Level, since additional clean up is performed
36091         by this function.
36092
36093 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36094
36095         * trans.c: Reflect GCC changes to fix bootstrap problem.
36096         Add warning for suspicious aliasing unchecked conversion.
36097
36098 2004-03-05  GNAT Script  <nobody@gnat.com>
36099
36100         * Make-lang.in: Makefile automatically updated
36101
36102 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
36103
36104         * ali.adb (Read_Instantiation_Instance): Do not modify the
36105         current_file_num when reading information about instantiations, since
36106         this corrupts files in later references.
36107
36108 2004-03-02  Vincent Celier  <celier@gnat.com>
36109
36110         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36111         before checking if it is read-only.
36112
36113         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36114         of SRC_DIRS and eliminate duplicates.
36115
36116         * gprcmd.adb: Replace command "path" with command "path_sep" to return
36117         the path separator.
36118         (Usage): Document path_sep
36119
36120         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36121         C++ compiler. No need for a script.
36122         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36123         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36124         subst.
36125
36126         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36127         where there are Ada sources.
36128         (Set_Ada_Paths): Only add to the include path the source dirs of project
36129         with Ada sources.
36130         (Add_To_Path): Add the Display_Values of the directories, not their
36131         Values.
36132
36133         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36134         data.
36135
36136         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36137         is not No_Name.
36138         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36139         Value is canonicalized.
36140         (Language_Independent_Check): Do not copy Value to Display_Value when
36141         canonicalizing Value.
36142
36143         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36144         path to find limited with cycles.
36145         (Parse_Single_Project): Use canonical cased path to find the end of a
36146         with cycle.
36147
36148 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
36149
36150         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36151         and not a child unit.
36152
36153         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36154         appear in a with_clause.
36155
36156         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36157         only happen in type_annotate mode, do not try to elaborate it.
36158
36159         * exp_util.adb (Force_Evaluation): If expression is a selected
36160         component on the left of an assignment, use a renaming rather than a
36161         temporary to remove side effects.
36162
36163         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36164         inlined instance body, which is analyzed before the end of the
36165         enclosing scope.
36166
36167 2004-03-02  Robert Dewar  <dewar@gnat.com>
36168
36169         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36170         sem_ch4.adb: Use new feature for substitution of keywords in VMS
36171
36172         * errout.ads, errout.adb: Implement new circuit for substitution of
36173         keywords in VMS.
36174
36175         * sem_case.adb (Analyze_Choices): Place message properly when case is
36176         a subtype reference rather than an explicit range.
36177
36178         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36179
36180 2004-03-02  Doug Rupp  <rupp@gnat.com>
36181
36182         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36183
36184 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
36185
36186         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36187
36188 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36189
36190         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36191         BLKmode bitfield.
36192
36193 2004-02-25  Robert Dewar  <dewar@gnat.com>
36194
36195         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36196         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36197         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36198         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36199         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36200         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36201         the defining instance of the type to avoid aliasing problems.
36202         Fix copyright header.  Fix bad comments in package header.
36203
36204         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36205
36206 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
36207
36208         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36209         rewritten as references when aliased through an address clause.
36210
36211         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36212         whether call can be interpreted as an indirect call to the result of a
36213         parameterless function call returning an access subprogram.
36214
36215 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
36216
36217         Code clean up:
36218         * exp_ch7.adb (Make_Clean): Remove generation of calls to
36219         Unlock[_Entries], since this is now done by Service_Entries directly.
36220
36221         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36222
36223         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36224         Requeue_Call for better code readability. Change spec and update calls:
36225         PO_Service_Entries now unlock the PO on exit.
36226         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36227         PO_Service_Entries.
36228
36229         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36230
36231         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36232
36233 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
36234
36235         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36236         protected subprogram call and analyzing the result of such expanding
36237         in case when the called protected subprogram is eliminated.
36238
36239         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36240         names.
36241
36242 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
36243
36244         * Makefile.in: Clean ups.
36245
36246 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
36247
36248         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36249         protected operations if original subprogram is flagged as eliminated.
36250         (Expand_N_Subprogram_Body): For a protected operation, create
36251         discriminals for next operation before checking whether the operation
36252         is eliminated.
36253
36254         * exp_ch9.adb (Expand_N_Protected_Body,
36255         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36256         for internal protected operations if the original subprogram is
36257         eliminated.
36258
36259         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36260         declared in a single protected object.
36261
36262 2004-02-23  Vincent Celier  <celier@gnat.com>
36263
36264         * prj-attr.adb: Make attribute Builder'Executable an associative array,
36265         case insensitive if file names are case insensitive, instead of a
36266         standard associative array.
36267
36268         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36269         them as case insensitive on platforms where the file names are case
36270         sensitive.
36271
36272         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36273         project file has already been parsed that canonical path are compared.
36274
36275 2004-02-23  Robert Dewar  <dewar@gnat.com>
36276
36277         * sinput-c.ads: Correct bad unit title in header
36278
36279         * freeze.adb: Minor reformatting
36280
36281 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36282
36283         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36284         nonaddressable COMPONENT_REF that is removing padding that we are
36285         taking the address of, take the address of the padded record instead
36286         if item is variable size.
36287
36288 2004-02-20  Robert Dewar  <dewar@gnat.com>
36289
36290         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36291
36292 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
36293
36294         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36295         itype references for the constrained designated type of a component
36296         whose base type is already frozen.
36297
36298 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
36299
36300         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36301         avoid GCC warnings.
36302
36303 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
36304
36305         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36306         identifier for a phantom package that rewrites the formal package
36307         declaration with a box. The Add semantic decorations for the defining
36308         identifier from the original node (that represents the formal package).
36309
36310 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
36311
36312         * Make-lang.in (ada/stamp-sdefault): Use the top level
36313         move-if-change.
36314
36315 2004-02-19  Richard Henderson  <rth@redhat.com>
36316
36317         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36318
36319 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
36320
36321         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36322         Scan_ALI can be used for multiple ALI files without reinitializing
36323         between calls.
36324
36325 2004-02-18  Robert Dewar  <dewar@gnat.com>
36326
36327         * debug.adb: Minor reformatting.
36328
36329 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36330
36331         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36332         to zero if there is an address clause.
36333
36334 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
36335
36336         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36337
36338 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
36339
36340         * layout.adb (Layout_Component_List): Revise generation of call to
36341         discriminant-checking function to pass selections of all of the type's
36342         discriminants rather than just the variant-controlling discriminant.
36343
36344 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
36345
36346         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36347         fail in the current setup and triggers spurious system error messages.
36348         Pretend it occurred and failed instead.
36349
36350 2004-02-18  Vincent Celier  <celier@gnat.com>
36351
36352         * bld.adb: Mark FLDFLAGS as saved
36353         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36354         it is not the root project.  Put each directory to be
36355         extended between double quotes to prevent it to be expanded on Windows.
36356         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36357         the project file. Set them back to their initial values if they have not
36358         been set in the project file.
36359
36360         * gprcmd.adb: (Gprdebug, Debug): New global variables
36361         (Display_Command): New procedure
36362         (Usage): Document new command "linkopts"
36363         Call Display_Command when env var GPRDEBUG has the value "TRUE"
36364         Implement new command "linkopts"
36365         Remove quotes that may be around arguments for "extend"
36366         Always call Normalize_Pathname with arguments formatted for the platform
36367
36368         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36369         Change @echo to @$(display) in target clean to be able to clean silently
36370
36371         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36372
36373         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36374         canonical case.
36375
36376         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36377         = Extending_All when current project is an extending all project.
36378
36379         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36380         set to True only for LINK command, after Unix switch -o.
36381         (Process_Arguments): Set Output_File_Expected to True for LINK command
36382         after Unix switch -o. When Output_File_Expected is True, never add an
36383         extension to a file name.
36384
36385         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36386         option file name, only to the --for-linker= switch.
36387         (Option_File_Name): If option file name do not end with ".opt", append
36388         "/OPTIONS".
36389
36390 2004-02-18  GNAT Script  <nobody@gnat.com>
36391
36392         * Make-lang.in: Makefile automatically updated
36393
36394 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
36395
36396         * Make-lang.in (stamp-sdefault): Do not depend on
36397         move-if-change.
36398
36399 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
36400
36401         * config-lang.in: Disable Ada by default until probe logic for
36402         a bootstrap Ada compiler can be moved to the top level configure
36403         script.
36404
36405 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
36406
36407         * decl.c (components_to_record): Don't claim that the internal fields
36408         we make to hold the variant parts are semantically addressable, because
36409         they are not.
36410
36411         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36412         adjust the comment describing the modular type form when we can use it.
36413         (Install_PAT): Account for the Esiz renaming.
36414
36415         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36416         sc_onstack context indication before raising the exception to which
36417         the signal is mapped. Allows better handling of later signals possibly
36418         triggered by the resumed user code if the exception is handled.
36419
36420 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
36421
36422         * 5zinit.adb: Removed, no longer used.
36423
36424 2004-02-12  Robert Dewar  <dewar@gnat.com>
36425
36426         * ali.adb: Remove separating space between parameters on R line. Makes
36427         format consistent with format used by the binder for Set_Globals call.
36428
36429         * atree.ads, atree.adb: Minor reformatting (new function header format)
36430
36431         * bindgen.adb: Add Run-Time Globals documentation section containing
36432         detailed documentation of the globals passed from the binder file to
36433         the run time.
36434
36435         * gnatls.adb: Minor reformatting
36436
36437         * init.c (__gnat_set_globals): Add note pointing to documentation in
36438         bindgen.
36439
36440         * lib-writ.ads, lib-writ.adb: Remove separating space between
36441         parameters on R line.
36442         Makes format consistent with format used by the binder for Set_Globals
36443         call.
36444
36445         * osint.ads: Add 2004 to copyright notice
36446         Minor reformatting
36447
36448         * snames.ads: Correct capitalization of FIFO_Within_Priorities
36449         Noticed during code reading, documentation issue only
36450
36451         * usage.adb: Remove junk line for obsolete C switch
36452         Noticed during code reading
36453
36454 2004-02-12  Vincent Celier  <celier@gnat.com>
36455
36456         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36457         extend for each directory, so that multiple /** directories are
36458         extended individually.
36459         (Recursive_Process): Set the default for LANGUAGES to ada
36460
36461         * gprcmd.adb: Define new command "ignore", to do nothing.
36462         Implement new comment "path".
36463
36464         * Makefile.generic: Suppress output when SILENT is set
36465         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36466         used, so that the correct compiler is invoked.
36467         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36468         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36469
36470 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
36471
36472         * Makefile.in: Clean ups and remove obsolete targets.
36473
36474 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
36475
36476         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36477         predicate declared in exp_util.
36478
36479         * exp_util.adb: Add comments.
36480
36481         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36482         visibility before compiling context of the subunit.
36483
36484         * sem_res.adb (Check_Parameterless_Call): If the context expects a
36485         value but the name is a procedure, do not attempt to analyze as a call,
36486         in order to obtain more telling diagnostics.
36487
36488         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36489         'Access on parameterless function calls.
36490         (Normalize_Actuals): For a parameterless function call with missing
36491         actuals, defer diagnostic until resolution of enclosing call.
36492
36493         * sem_util.adb (Wrong_Type): If the context type is an access to
36494         subprogram and the expression is a procedure name, suggest a missing
36495         'attribute.
36496
36497 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
36498             Nathanael Nerode  <neroden@gcc.gnu.org>
36499
36500         PR ada/6637
36501         PR ada/5911
36502         Merge with libada-branch:
36503         * config-lang.in: Build libada only when ada is built.
36504
36505 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36506
36507         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36508         for a tagged type, verify that both formals have the same type.
36509
36510         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36511         temporary when the formal is an in-parameter and the actual a possibly
36512         unaligned slice.
36513
36514         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36515         when expansion is disabled, to ensure proper name capture with
36516         overloaded literals.  Condition can be of any boolean type, resolve
36517         accordingly.
36518
36519         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36520         renaming is for a formal subprogram with a default operator name, and
36521         there is a usable operator that is visible at the point of
36522         instantiation.
36523
36524 2004-02-09  Robert Dewar  <dewar@gnat.com>
36525
36526         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36527         rewrite to ignore errors in ali files, intended to allow tools downward
36528         compatibility with new versions of ali files.
36529
36530         * ali.ads: Add new parameter Ignore_Errors
36531
36532         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36533         duplicating the error message giving the file with restrictions.
36534
36535         * debug.adb: Add debug flag I for gnatbind
36536
36537         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36538         operators for the case where the operator is a defining operator.
36539
36540         * exp_ch3.adb: Minor reformatting (new function spec format).
36541
36542         * exp_ch4.adb: Add comment for previous change, and make minor
36543         adjustment to loop to always check for improper loop termination.
36544         Minor reformatting throughout (new function spec format).
36545
36546         * gnatbind.adb: Implement -di debug flag for gnatbind
36547
36548         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36549
36550         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36551
36552         * lib-load.adb: Fix bad assertion.
36553         Found by testing and code reading.
36554         Minor reformatting.
36555
36556         * lib-load.ads: Minor reformatting.
36557
36558         * lib-writ.adb: There is only one R line now.
36559
36560         * lib-writ.ads: Add documentation on making downward compatible changes
36561         to ali files so old tools work with new ali files.
36562         There is only one R line now.
36563         Add documentation on format incompatibilities (with special GPS note)
36564
36565         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36566
36567         * par-load.adb: Minor reformatting
36568
36569         * sem_ch8.adb: Fix to error message from last update
36570         Minor reformatting and restructuring of code from last update
36571
36572         * par-prag.adb, snames.adb, snames.ads, snames.h,
36573         sem_prag.adb: Implement pragma Profile.
36574
36575         * stylesw.adb: Implement -gnatyN switch to turn off all style check
36576         options.
36577
36578         * usage.adb: Add line for -gnatyN switch
36579
36580         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36581
36582 2004-02-09  Albert Lee  <lee@gnat.com>
36583
36584         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36585
36586 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
36587
36588         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36589         slices.
36590
36591         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36592         is nested in an instance that is not frozen yet, to avoid
36593         order-of-elaboration problems in gigi.
36594
36595         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36596         body the attribute is legal.
36597
36598 2004-02-09  Robert Dewar  <dewar@gnat.com>
36599
36600         * s-rident.ads: Minor comment correction
36601
36602         * targparm.adb: Remove dependence on uintp completely. There was
36603         always a bug in Make in that it called Targparm before initializing
36604         the Uint package. The old code appeared to get away with this, but
36605         the new code did not! This caused an assertion error in gnatmake.
36606
36607         * targparm.ads: Fix bad comment, restriction pragmas with parameters
36608         are indeed fully supported.
36609
36610 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
36611
36612         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36613
36614 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
36615
36616         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36617         with targetm.calls.promote_prototypes.
36618
36619 2004-02-04  Robert Dewar  <dewar@gnat.com>
36620
36621         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36622         ali.ads, gprcmd.adb: Minor reformatting
36623
36624         * bindgen.adb: Output restrictions string for new style restrictions
36625         handling
36626
36627         * impunit.adb: Add s-rident.ads (System.Rident) and
36628         s-restri (System.Restrictions)
36629
36630         * lib-writ.adb: Fix bug in writing restrictions string (last few
36631         entries wrong)
36632
36633         * s-restri.ads, s-restri.adb: Change name Restrictions to
36634         Run_Time_Restrictions to avoid conflict with package name.
36635         Add circuit to read and acquire run time restrictions.
36636
36637 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
36638
36639         * restrict.ads, restrict.adb: Use the new restriction
36640         No_Task_Attributes_Package instead of the old No_Task_Attributes.
36641
36642         * sem_prag.adb: No_Task_Attributes is a synonym of
36643         No_Task_Attributes_Package.
36644
36645         * snames.ads, snames.adb: New entry for proper handling of
36646         No_Task_Attributes.
36647
36648         * s-rident.ads: Adding restriction No_Task_Attributes_Package
36649         (AI-00249) that supersedes the GNAT specific restriction
36650         No_Task_Attributes.
36651
36652 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
36653
36654         * sem_prag.adb:
36655         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36656          body, an identifier may be wrapped in an unchecked conversion.
36657
36658 2004-02-04  Vincent Celier  <celier@gnat.com>
36659
36660         * lib-writ.ads: Comment update for the W lines
36661
36662         * bld.adb: (Expression): An empty string list is static
36663
36664         * fname-uf.adb: Minor comment update
36665
36666         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36667
36668         * gnatbind.adb: Initialize Cumulative_Restrictions with the
36669         restrictions on the target.
36670
36671 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
36672
36673         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36674         gen_rtx.
36675
36676 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
36677
36678         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36679
36680 2004-02-02  Vincent Celier  <celier@gnat.com>
36681
36682         * gprcmd.adb (Check_Args): If condition is false, print the invoked
36683         comment before the usage.
36684         Gprcmd: Fail when command is not recognized.
36685         (Usage): Document command "prefix"
36686
36687         * g-md5.adb (Digest): Process last block.
36688         (Update): Do not process last block. Store remaining characters and
36689         length in Context.
36690
36691         * g-md5.ads (Update): Document that several call to update are
36692         equivalent to one call with the concatenated string.
36693         (Context): Add fields to allow new Update behaviour.
36694
36695         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
36696         defaulted to False.
36697         When May_Fail is True and no existing file can be found, return No_File.
36698
36699         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
36700         functions.
36701
36702         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
36703         spec file name instead on the W line.
36704
36705 2004-02-02  Robert Dewar  <dewar@gnat.com>
36706
36707         * ali.adb: Read and acquire info from new format restrictions lines
36708
36709         * bcheck.adb: Add circuits for checking restrictions with parameters
36710
36711         * bindgen.adb: Output dummy restrictions data
36712         To be changed later
36713
36714         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36715         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
36716         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
36717         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
36718         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
36719
36720         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
36721         the warning message on access to possibly uninitialized variable S)
36722         Minor changes for new restrictions handling.
36723
36724         * gnatbind.adb: Minor reformatting
36725         Minor changes for new restrictions handling
36726         Move circuit for -r processing here from bcheck (cleaner)
36727
36728         * gnatcmd.adb, gnatlink.adb: Minor reformatting
36729
36730         * lib-writ.adb: Output new format restrictions lines
36731
36732         * lib-writ.ads: Document new R format lines for new restrictions
36733         handling.
36734
36735         * s-restri.ads/adb: New files
36736
36737         * Makefile.rtl: Add entry for s-restri.ads/adb
36738
36739         * par-ch3.adb: Fix bad error messages starting with upper case letter
36740         Minor reformatting
36741
36742         * restrict.adb: Major rewrite throughout for new restrictions handling
36743         Major point is to handle restrictions with parameters
36744
36745         * restrict.ads: Major changes in interface to handle restrictions with
36746         parameters. Also generally simplifies setting of restrictions.
36747
36748         * snames.ads/adb: New entry for proper handling of No_Requeue
36749
36750         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
36751         restriction counting.
36752         Other minor changes for new restrictions handling
36753
36754         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
36755         Restriction_Warnings now allows full parameter notation
36756         Major rewrite of Restrictions for new restrictions handling
36757
36758 2004-02-02  Javier Miranda  <miranda@gnat.com>
36759
36760         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
36761         syntax rule for object renaming declarations.
36762         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
36763         component definitions.
36764
36765         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
36766         components.
36767         (Array_Type_Declaration): Give support to access components. In addition
36768         it was also modified to reflect the name of the object in anonymous
36769         array types. The old code did not take into account that it is possible
36770         to have an unconstrained anonymous array with an initial value.
36771         (Check_Or_Process_Discriminants): Allow access discriminant in
36772         non-limited types.
36773         (Process_Discriminants): Allow access discriminant in non-limited types
36774         Initialize the new Access_Definition field in N_Object_Renaming_Decl
36775         node.  Change Ada0Y to Ada 0Y in comments
36776
36777         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
36778         equality operators.
36779         Change Ada0Y to Ada 0Y in comments
36780
36781         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
36782         renamings Change Ada0Y to Ada 0Y in comments
36783
36784         * sem_type.adb (Find_Unique_Type): Give support to the equality
36785         operators for universal access types
36786         Change Ada0Y to Ada 0Y in comments
36787
36788         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
36789
36790         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
36791         field.
36792         (N_Object_Renaming_Declaration): Addition of Access_Definition field
36793         Change Ada0Y to Ada 0Y in comments
36794
36795         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
36796         component definition and object renaming nodes
36797         Change Ada0Y to Ada 0Y in comments
36798
36799 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
36800
36801         * restrict.adb: Use the new restriction identifier
36802         No_Requeue_Statements instead of the old No_Requeue for defining the
36803         restricted profile.
36804
36805         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
36806         No_Requeue_Statements.
36807
36808         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
36809         that supersedes the GNAT specific restriction No_Requeue. The later is
36810         kept for backward compatibility.
36811
36812 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
36813
36814         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
36815         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
36816         pragma and fix incorrect ones.
36817
36818         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
36819         warning if the pragma is redundant.
36820
36821 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
36822
36823         * 5staprop.adb: Add missing 'constant' keywords.
36824
36825         * Makefile.in: use consistent value for SYMLIB on
36826         platforms where libaddr2line is supported.
36827
36828 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36829
36830         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
36831         annotating types.
36832
36833 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
36834
36835         * init.c (__gnat_install_handler): Setup an alternate stack for signal
36836         handlers in the environment thread. This allows proper propagation of
36837         an exception on stack overflows in this thread even when the builtin
36838         ABI stack-checking scheme is used without support for a stack reserve
36839         region.
36840
36841         * utils.c (create_field_decl): Augment the head comment about bitfield
36842         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
36843         here, because the former is not accurate enough at this point.
36844         Let finish_record_type decide instead.
36845         Don't make a bitfield if the field is to be addressable.
36846         Always set a size for the field if the record is packed, to ensure the
36847         checks for bitfield creation are triggered.
36848         (finish_record_type): During last pass over the fields, clear
36849         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
36850         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
36851         from DECL_BIT_FIELD.
36852
36853 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
36854
36855         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
36856         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
36857         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
36858
36859 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
36860
36861         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
36862
36863         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
36864         (ZCX_By_Default): Likewise.
36865         (Front_End_ZCX_Support): Likewise.
36866
36867         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
36868         (Initialize_Lock): Mark Level unreferenced.
36869         (Sleep): Mark Reason unreferenced.
36870         (Timed_Sleep): Likewise.
36871         (Wakeup): Likewise.
36872         (Exit_Task): Use Result.
36873         (Check_No_Locks): Mark Self_ID unreferenced.
36874
36875         * 5gtasinf.adb (New_Sproc): Make Attr constant.
36876         (Bound_Thread_Attributes): Make Sproc constant.
36877         (New_Bound_Thread_Attributes): Likewise.
36878
36879 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
36880
36881         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
36882         one-dimensional array an slice assignments, when component type is
36883         controlled.
36884
36885         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
36886         component type is controlled, and control_actions are in effect, use
36887         TSS procedure rather than generating inline code.
36888
36889         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
36890         arrays with controlled components.
36891
36892 2004-01-26  Vincent Celier  <celier@gnat.com>
36893
36894         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
36895         command line for the non VMS case.
36896
36897         * gnatlink.adb (Process_Binder_File): When building object file, if
36898         GNU linker is used, put all object paths between quotes, to prevent ld
36899         error when there are unusual characters (such as '!') in the paths.
36900
36901         * Makefile.generic: When there are sources in Ada and the main is in
36902         C/C++, invoke gnatmake with -B, instead of -z.
36903
36904         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
36905         from VMS_Conversion.
36906         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
36907         specification of argument file on the command line.
36908
36909 2004-01-26  Bernard Banner  <banner@gnat.com>
36910
36911         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
36912
36913 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
36914
36915         * snames.adb: Update copyright notice.
36916         Add info on slice assignment for controlled arrays.
36917
36918 2004-01-23  Robert Dewar  <dewar@gnat.com>
36919
36920         * exp_aggr.adb: Minor reformatting
36921
36922         * exp_ch9.adb: Minor code clean up
36923         Minor reformatting
36924         Fix bad character in comment
36925
36926         PR ada/13471
36927         * targparm.adb (Get_Target_Parameters): Give clean abort error on
36928         unexpected end of file, along with more detailed message.
36929
36930 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36931
36932         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
36933         PAT.
36934
36935         * decl.c (copy_alias_set): New function.
36936         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
36937
36938 2004-01-23  Doug Rupp  <rupp@gnat.com>
36939
36940         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
36941         lib$${file} in case subsequent character is not a separator.
36942
36943 2004-01-23  Vincent Celier  <celier@gnat.com>
36944
36945         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
36946         when the GCC version is at least 3.
36947
36948         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
36949         Remove all "Opt.", to prepare for opt split
36950
36951         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
36952         Extends_All. Set to True when the project parsed is an extending all
36953         project. Fails for importing an extending all project only when the
36954         imported project is an extending all project.
36955         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
36956         depending on the value of Extends_All returned.
36957
36958         * prj-proc.adb (Process): Check that no project shares its object
36959         directory with a project that extends it, directly or indirectly,
36960         including a virtual project.
36961         Check that no project extended by another project shares its object
36962         directory with another also extended project.
36963
36964         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
36965         Kind = N_With_Clause
36966
36967         * prj-tree.ads: Minor reformatting
36968         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
36969
36970 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
36971
36972         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
36973         applies to a type with an incomplete view, use full view in Name of
36974         clause, for consistency with uses of Get_Attribute_Definition_Clause.
36975
36976 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
36977
36978         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
36979         SCHED_RR, since other values are not supported by this policy.
36980         (Initialize): Move initialization of mutex attribute to package
36981         elaboration, to prevent early access to this variable.
36982
36983         * Makefile.in: Remove mention of Makefile.adalib, unused.
36984
36985         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
36986         1ssecsta.ads: Removed, unused.
36987
36988 2004-01-21  Javier Miranda  <miranda@gnat.com>
36989
36990         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
36991         entity if already built in the current scope.
36992
36993         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
36994         reminder in internal scopes. Required for nested limited aggregates.
36995
36996 2004-01-21  Doug Rupp  <rupp@gnat.com>
36997
36998         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
36999         VMS. Replace all occurences of libgnat- and libgnarl- with
37000         libgnat$(hyphen) and libgnarl$(hyphen).
37001         Fixed shared library build problem on VMS.
37002
37003 2004-01-21  Robert Dewar  <dewar@gnat.com>
37004
37005         * mlib-prj.adb: Minor reformatting
37006
37007 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
37008
37009         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37010         'constant' keywords for declaration of pointers that are not modified.
37011
37012         * exp_pakd.adb: Fix English in comment.
37013
37014 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
37015
37016         PR ada/10889
37017         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37018         copy all attributes of the parent, including the foreign language
37019         convention.
37020
37021 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
37022
37023         PR ada/10565
37024         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37025         for 'delay until' statement.
37026
37027 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
37028
37029         * Make-lang.in: Replace $(docdir) with doc.
37030         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37031         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37032         to use consistent MAKEINFO rule.
37033         (ada.man, ada.srcman): Dummy entry.
37034         (ADA_INFOFILES): Define.
37035         (ada.info, ada.srcinfo): New rules.
37036
37037 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
37038
37039         * utils.c: Update copyright notice, missed in previous change.
37040
37041 2004-01-19  Vincent Celier  <celier@gnat.com>
37042
37043         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37044         args if Bind is True. Set First_ALI, if not already done.
37045         (Build_Library): For Stand Alone Libraries, extract from one ALI file
37046         an eventual --RTS switch, for gnatbind, and all backend switches +
37047         --RTS, for linking.
37048
37049 2004-01-19  Robert Dewar  <dewar@gnat.com>
37050
37051         * sem_attr.adb, memtrack.adb: Minor reformatting
37052
37053 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
37054
37055         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37056         that rename enumeration literals. This is properly done in sem_eval.
37057
37058         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37059         to functions that rename enumeration literals.
37060
37061         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37062         functions that rename enumeration literals.
37063
37064 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
37065
37066         * Make-lang.in (utils.o): Depend on target.h.
37067         * utils.c: Include target.h.
37068         (process_attributes): Use targetm.have_named_sections instead
37069         of ASM_OUTPUT_SECTION_NAME.
37070
37071 2004-01-16  Andreas Jaeger  <aj@suse.de>
37072
37073         * Makefile.in: Add $(DESTDIR).
37074
37075 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
37076
37077         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37078         also when not defining if a Size clause applies. That information is
37079         not to be ignored.
37080
37081 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
37082
37083         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37084         symbolic links for the shared gnat run time when needed.
37085
37086 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
37087
37088         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37089         for writing, and terminate with an error message if not.
37090
37091 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
37092
37093         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37094         warning on an access to subprogram in an instance, when the target
37095         type is declared in the same generic unit.
37096         (Eval_Attribute): If 'access is known to fail accessibility check,
37097         rewrite as a raise statement.
37098
37099 2004-01-15  GNAT Script  <nobody@gnat.com>
37100
37101         * Make-lang.in: Makefile automatically updated
37102
37103 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
37104
37105         * Make-lang.in (ada.srcextra): Dummy entry.
37106
37107 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
37108
37109         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37110
37111 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
37112
37113         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37114         components that are initialized with aggregates.
37115
37116 2004-01-13  Vincent Celier  <celier@gnat.com>
37117
37118         * gnatlink.adb (Process_Binder_File): To find directory of shared
37119         libgcc, if "gcc-lib" is not a subdirectory, look for the last
37120         subdirectory "lib" in the path of the shared libgnat or libgnarl.
37121
37122         * make.adb (Gnatmake): If GCC version is at least 3, link with
37123         -shared-libgcc, when there is at least one shared library project.
37124
37125         * opt.ads (GCC_Version): New integer constant.
37126
37127         * adaint.c (get_gcc_version): New function.
37128
37129 2004-01-13  Robert Dewar  <dewar@gnat.com>
37130
37131         * sem_dist.adb, sem_res.adb, sem_util.adb,
37132         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37133         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37134
37135 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
37136
37137         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37138         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37139         declarations.
37140
37141 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
37142
37143         * misc.c: Remove trailing spaces.
37144         Update copyright notice missed in previous change.
37145
37146         PR ada/13572
37147         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37148         prefix/share/make
37149
37150         * Makefile.generic: Update copyright.
37151         Add license notice.
37152
37153         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37154         of prefix/share/make.
37155
37156         * Makefile.prolog: Update copyright.
37157         Add license notice.
37158
37159 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
37160
37161         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37162         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37163         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37164         instead of String.
37165
37166         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37167         signature.
37168
37169 2004-01-12  Javier Miranda  <miranda@gnat.com>
37170
37171         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37172         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37173         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37174         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37175         Component_Definition node.
37176
37177 2004-01-12  Ed Falis  <falis@gnat.com>
37178
37179         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37180
37181 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
37182
37183         * link.c: Change default libgnat kind to STATIC for FreeBSD.
37184
37185 2004-01-12  Bernard Banner  <banner@gnat.com>
37186
37187         * Makefile.in: map 86numaux to a-numaux for x86_64
37188
37189 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
37190
37191         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37192         generated to rename a generic actual, go to the actual itself, the
37193         subtype is not a user-visible entity.
37194
37195         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37196         part is a private subtype, reset the visibility of its full view, if
37197         any, to be consistent.
37198
37199         PR ada/13417
37200         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37201         to use a generic package G as a formal package for another generic
37202         declared within G.
37203
37204 2004-01-12  Robert Dewar  <dewar@gnat.com>
37205
37206         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37207
37208         * usage.adb: Remove mention of obsolete -gnatwb switch
37209         Noticed during code reading
37210
37211 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
37212
37213         * 1ssecsta.adb: Minor changes for -gnatwa warnings
37214
37215 2004-01-12  GNAT Script  <nobody@gnat.com>
37216
37217         * Make-lang.in: Makefile automatically updated
37218
37219 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
37220
37221         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37222
37223 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37224
37225         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37226
37227 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
37228
37229         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37230         Update comment and copyright date.
37231         * stamp-xgnatug: Delete.
37232
37233 2004-01-05  Robert Dewar  <dewar@gnat.com>
37234
37235         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37236         be modified by the binder generated main program if the -D switch is
37237         used.
37238
37239         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37240         imported functions (since now we expect this to be done for imported
37241         functions)
37242
37243         * 5vtaprop.adb: Add several ??? for sections requiring more comments
37244         Minor reformatting throughout
37245
37246         * 5zinit.adb: Minor reformatting
37247         Add 2004 to copyright date
37248         Minor changes to avoid -gnatwa warnings
37249         Correct some instances of using OR instead of OR ELSE (noted while
37250         doing reformatting)
37251
37252         * sprint.adb: Minor updates to avoid -gnatwa warnings
37253
37254         * s-secsta.ads, s-secsta.adb:
37255         (SS_Get_Max): New function to obtain high water mark for ss stack
37256         Default_Secondary_Stack is not a constant since it may be modified by
37257         the binder generated main program if the -D switch is used.
37258
37259         * switch-b.adb: New -Dnnn switch for binder
37260
37261         * switch-c.adb:
37262         Make -gnatg imply all warnings currently in -gnatwa
37263
37264         * vms_conv.adb: Minor reformatting
37265         Add 2004 to copyright notice
37266         Add 2004 to printed copyright notice
37267
37268         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37269         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37270         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37271         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37272         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37273         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37274         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37275         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37276         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37277         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37278         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37279         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37280         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37281         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37282         checks.adb, clean.adb, cstand.adb, einfo.ads,
37283         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37284         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37285         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37286         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37287         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37288         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37289         Minor reformatting and code clean ups.
37290         Minor changes to prevent -gnatwa warnings
37291
37292         * ali.adb: Minor reformatting and cleanup of code
37293         Acquire new SS indication of secondary stack use from ali files
37294
37295         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37296         (since now we expect this to be done for imported functions)
37297
37298         * bindgen.adb: Generate call to modify default secondary stack size if
37299         -Dnnn switch given
37300
37301         * bindusg.adb: Add line for new -D switch
37302
37303         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37304         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37305         Add circuitry for both records and arrays to avoid gigi
37306         processing if the type involved has non-bit-aligned components
37307
37308         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37309         N_String_Literal node always references an E_String_Literal_Subtype
37310         entity. This may not be true in the future.
37311         (Possible_Bit_Aligned_Component): Move processing of
37312         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37313
37314         * exp_ch6.adb (Expand_Thread_Body): Pick up
37315         Default_Secondary_Stack_Size as variable so that we get value modified
37316         by possible -Dnnn binder parameter.
37317
37318         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37319         (Type_May_Have_Bit_Aligned_Components): New function.
37320
37321         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37322         (Type_May_Have_Bit_Aligned_Components): New function.
37323
37324         * fe.h: (Set_Identifier_Casing): Fix prototype.
37325         Add declaration for Sem_Elim.Eliminate_Error_Msg.
37326         Minor reformatting.
37327
37328         * freeze.adb (Freeze_Entity): Add RM reference to error message about
37329         importing constant atomic/volatile objects.
37330         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37331         unless explicit Pure_Function pragma given, to avoid insidious bug of
37332         call to non-pure imported function getting eliminated.
37333
37334         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37335         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37336         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37337         Add 2004 to printed copyright notice
37338
37339         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37340         stack used.
37341
37342         * Makefile.rtl: Add entry for g-sestin.o
37343         g-sestin.ads: New file.
37344
37345         * mdll.adb: Minor changes to avoid -gnatwa warnings
37346
37347         * mlib-tgt.adb: Minor reformatting
37348
37349         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37350         New switch Sec_Stack_Used (GNAT, GNATBIND)
37351         Make Default_Secondary_Stack_Size a variable instead of a constant,
37352         so that it can be modified by the new -Dnnn bind switch.
37353
37354         * rtsfind.adb (Load_Fail): Give full error message in configurable
37355         run-time mode if all_errors mode is set. This was not done in the case
37356         of a file not found, which was an oversight.
37357         Note if secondary stack unit is used by compiler.
37358
37359         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37360         ineffective elaborate all pragmas on non-visible packages (this
37361         happened when a renamed subprogram was called). Now the elaborate all
37362         always goes on the package containing the renaming rather than the one
37363         containing the renamed subprogram.
37364
37365         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37366         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37367
37368         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37369         has an Etype that references an E_String_Literal.
37370         (Eval_String_Literal): Avoid assumption that N_String_Literal node
37371         always references an E_String_Literal_Subtype entity. This may not
37372         be true in the future.
37373
37374         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37375         pragma location.
37376
37377         * sem_res.adb (Resolve): Specialize msg for function name used in proc
37378         call.
37379
37380 2004-01-05  Ed Falis  <falis@gnat.com>
37381
37382         * g-debuti.adb: Replaced direct boolean operator with short-circuit
37383         form.
37384
37385 2004-01-05  Vincent Celier  <celier@gnat.com>
37386
37387         * bld.adb: Minor comment updates
37388         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37389         of Item_Name).
37390
37391         * make.adb (Gnatmake): Special process for files to compile/check when
37392         -B is specified. Fail when there are only foreign mains in attribute
37393         Main of the project file and -B is not specified. Do not skip bind/link
37394         steps when -B is specified.
37395
37396         * makeusg.adb: Document new switch -B
37397
37398         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37399
37400         * switch-m.adb: (Scan_Make_Switches): Process -B switch
37401
37402         * vms_data.ads: Add new GNAT PRETTY qualifier
37403         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37404
37405 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37406
37407         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37408         case.
37409
37410         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37411         Set_Identifier_Casing.
37412
37413         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37414         has size that overflows.
37415
37416 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
37417
37418         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37419         -gnatwa warning on static condition.
37420
37421 2004-01-05  Doug Rupp  <rupp@gnat.com>
37422
37423         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37424
37425 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
37426
37427         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37428         all attributes, including read-only attribute.
37429
37430 2004-01-05  Pascal Obry  <obry@gnat.com>
37431
37432         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37433         library naming scheme.
37434
37435         * mlib-prj.adb (Build_Library): Generate different names for the static
37436         or dynamic version of the GNAT runtime. This is needed to support the
37437         new shared library naming scheme.
37438         (Process_Binder_File): Add detection of shared library in binder file
37439         based on the new naming scheme.
37440
37441         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37442         scheme for the shared runtime libraries.
37443
37444         * Makefile.in:
37445         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37446         scheme.
37447         (install-gnatlib): Do not create symlinks for shared libraries.
37448         (gnatlib-shared-default): Idem.
37449         (gnatlib-shared-dual-win32): New target. Not used for now as the
37450         auto-import feature does not support arrays/records.
37451         (gnatlib-shared-win32): Do not create copy for the shared libraries.
37452         (gnatlib-shared-vms): Fix shared runtime libraries names.
37453
37454         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37455         dependent runtime shared library name.
37456
37457 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
37458
37459         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37460         than the object.
37461
37462 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
37463
37464         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37465         protected objects when allocator has a subtype indication, not a
37466         qualified expression. Note that qualified expressions may have to be
37467         checked when limited aggregates are implemented.
37468
37469         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37470         pure, emit warning.
37471         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37472         subprogram is imported, remove warning.
37473
37474 2004-01-05  Geert Bosch  <bosch@gnat.com>
37475
37476         * s-poosiz.adb: Update copyright notice.
37477         (Allocate): Use Task_Lock to protect against concurrent access.
37478         (Deallocate): Likewise.
37479
37480 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
37481
37482         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37483         comment.
37484
37485 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
37486
37487         * gnat_ug.texi: Force a CVS commit by updating copyright.
37488         * gnat_ug_vxw.texi: Regenerate.
37489         * gnat_ug_wnt.texi: Regenerate.
37490         * gnat_ug_vms.texi: Regenerate.
37491         * gnat_ug_unx.texi: Regenerate.
37492
37493 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
37494
37495         * trans.c: Remove uses of "register" specifier in
37496         declarations of local variables.
37497
37498 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
37499
37500         * stamp-xgnatug: New stamp file.
37501         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
37502         (ada/doctools/xgnatug): Add $(build_exeext).
37503         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37504         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37505
37506 2003-12-17  Ed Falis  <falis@gnat.com>
37507
37508         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37509         eliminate warning.
37510
37511         * a-exextr.adb: Add context clause for
37512         Ada.Exceptions.Last_Chance_Handler.
37513
37514 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
37515
37516         * cstand.adb (Create_Standard): Change the way how the declaration of
37517         the Duration type is created (making it the same way as it is for all
37518         the other standard types).
37519
37520 2003-12-17  Robert Dewar  <dewar@gnat.com>
37521
37522         * s-crtl.ads: Fix header format
37523         Change Pure to Preelaborate
37524
37525 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
37526
37527         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37528         the expression type only if it is declared in the current unit.
37529
37530         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37531         are universal and already analyzed, as can occur in constrained
37532         subcomponents that depend on discriminants, when one constraint is a
37533         subtype mark.
37534
37535         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37536         type Any_Fixed is legal as the argument of a conversion, if only one
37537         fixed-point type is in context.
37538
37539 2003-12-17  GNAT Script  <nobody@gnat.com>
37540
37541         * Make-lang.in: Makefile automatically updated
37542
37543 2003-12-15  Robert Dewar  <dewar@gnat.com>
37544
37545         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37546         sec stack size.
37547
37548 2003-12-15  Vincent Celier  <celier@gnat.com>
37549
37550         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37551         (Gnatchop): Do not set failure status when reporting the number of
37552         warnings.
37553
37554 2003-12-15  Doug Rupp  <rupp@gnat.com>
37555
37556         * s-ctrl.ads: New file.
37557
37558         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37559
37560         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37561         (GNATBIND_OBJS): Add ada/s-crtl.o.
37562
37563         * Makefile.in [VMS]: Clean up ifeq rules.
37564
37565         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37566         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37567         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37568         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37569         s-tasdeb.adb: Update copyright.
37570         Import System.CRTL.
37571         Make minor modifications to use System.CRTL declared functions instead
37572         of importing locally.
37573
37574 2003-12-15  GNAT Script  <nobody@gnat.com>
37575
37576         * Make-lang.in: Makefile automatically updated
37577
37578 2003-12-11  Ed Falis  <falis@gnat.com>
37579
37580         * 5zinit.adb: Clean up.
37581
37582         * 5zintman.adb (Notify_Exception): replaced case statement with a call
37583         to __gnat_map_signal, imported from init.c to support
37584         signal -> exception mappings that depend on the vxWorks version.
37585
37586         * init.c:
37587         Created and exported __gnat_map_signal to support signal -> exception
37588         mapping that is dependent on the VxWorks version.
37589         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37590
37591 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
37592
37593         * 5wosinte.ads: Link with -mthreads switch.
37594
37595 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
37596
37597         * init.c (__gnat_install_handler [NetBSD]): Set
37598         __gnat_handler_installed, as done on all other platforms.
37599         Remove duplicated code.
37600
37601 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
37602
37603         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37604
37605 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
37606
37607         * sinfo.ads: Fix inconsistent example code in comment.
37608
37609 2003-12-11  Robert Dewar  <dewar@gnat.com>
37610
37611         * a-tiinau.adb: Add a couple of comments
37612
37613         * sem_ch3.adb: Minor reformatting
37614
37615         * sem_prag.adb:
37616         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37617         Minor reformatting throughout
37618
37619 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
37620
37621         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37622         bounds of a loop, create a separate block in order to generate proper
37623         cleanup actions to prevent memory leaks.
37624
37625         * sem_res.adb (Resolve_Call): After a call to
37626         Establish_Transient_Scope, the call may be rewritten and relocated, in
37627         which case no further processing is needed.
37628
37629         * sem_util.adb: (Wrong_Type): Refine previous fix.
37630          Fixes ACATS regressions.
37631
37632         PR ada/13353
37633         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37634         be inlined.
37635
37636 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
37637
37638         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37639         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37640         obsolete files.
37641
37642         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37643         (rts-zfp): Ditto.
37644
37645 2003-12-08  Robert Dewar  <dewar@gnat.com>
37646
37647         * 7sintman.adb: Minor reformatting
37648
37649         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37650         standard linker options to get standard libraries linked. We now plan
37651         to provide dummy versions of these libraries to match the appropriate
37652         configurable run-time (e.g. if a library is not needed at all, provide
37653         a dummy empty library).
37654
37655         * targparm.ads: Configurable_Run_Time mode no longer affects linker
37656         options (-L parameters and standard libraries). What we plan to do is
37657         to provide dummy libraries where the libraries are not required.
37658
37659         * gnatbind.adb: Minor comment improvement
37660
37661 2003-12-08  Javier Miranda  <miranda@gnat.com>
37662
37663         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37664         aggregate in the parent. Otherwise constants with limited aggregates
37665         are not supported. Add new formal to pass the component type (Ctype).
37666         It is required to call the corresponding IP subprogram in case of
37667         default initialized components.
37668         (Gen_Assign): In case of default-initialized component, generate a
37669         call to the IP subprogram associated with the component.
37670         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37671         of aggregate with default initialized components.
37672         (Has_Default_Init_Comps): Improve implementation to recursively check
37673         all the present expressions.
37674
37675         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37676         to indicate that the initialization call corresponds to a
37677         default-initialized component of an aggregate.
37678         In case of default initialized aggregate with tasks this parameter is
37679         used to generate a null string (this is just a workaround that must be
37680         improved later). In case of discriminants, this parameter is used to
37681         generate a selected component node that gives access to the discriminant
37682         value.
37683
37684         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37685         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37686         allocated aggregates with default-initialized components.
37687
37688         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37689         the box notation is used in positional aggregates.
37690
37691 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
37692
37693         * lib.ads: Fix typo in comment
37694
37695 2003-12-08  Vincent Celier  <celier@gnat.com>
37696
37697         * prj.adb (Project_Empty): New component Unkept_Comments
37698         (Scan): Remove procedure; moved to Prj.Err.
37699
37700         * prj.ads (Project_Data): New Boolean component Unkept_Comments
37701         (Scan): Remove procedure; moved to Prj.Err.
37702
37703         * prj-dect.adb: Manage comments for the different declarations.
37704
37705         * prj-part.adb (With_Record): New component Node
37706         (Parse): New Boolean parameter Store_Comments, defaulted to False.
37707         Set the scanner to return ends of line and comments as tokens, if
37708         Store_Comments is True.
37709         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
37710         comments are associated with these nodes. Store the node IDs in the
37711         With_Records.
37712         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
37713         With_Records.
37714         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
37715         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
37716         current project. Call Tree.Restore afterwards. Set the various nodes
37717         for comment storage (Next_End, End_Of_Line, Previous_Line,
37718         Previous_End).
37719
37720         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
37721         defaulted to False.
37722
37723         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
37724         to False. When Truncated is True, truncate the string, never go to the
37725         next line.
37726         (Write_End_Of_Line_Comment): New procedure
37727         (Print): Process comments for nodes N_With_Clause,
37728         N_Package_Declaration, N_String_Type_Declaration,
37729         N_Attribute_Declaration, N_Typed_Variable_Declaration,
37730         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
37731         Process nodes N_Comment.
37732
37733         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
37734         without comments and there are some comments, set the flag
37735         Unkept_Comments to True.
37736         (Scan): If there are comments, set the flag Unkept_Comments to True and
37737         clear the comments.
37738         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
37739         (Next_End_Nodes: New table
37740         (Comment_Zones_Of): New function
37741         (Scan): New procedure; moved from Prj. Accumulate comments in the
37742         Comments table and set end of line comments, comments after, after end
37743         and before end.
37744         (Add_Comments): New procedure
37745         (Save, Restore, Seset_State): New procedures
37746         (There_Are_Unkept_Comments): New function
37747         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
37748         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
37749         procedures.
37750         (First_Comment_After, First_Comment_After_End): New functions
37751         (First_Comment_Before, First_Comment_Before_End): New functions
37752         (Next_Comment): New function
37753         (End_Of_Line_Comment, Follows_Empty_Line,
37754         Is_Followed_By_Empty_Line): New functions
37755         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
37756         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
37757         (Set_Next_Comment): New procedure
37758         (Default_Project_Node): Associate comment before if the node can store
37759         comments.
37760
37761         * scans.ads (Token_Type): New enumeration value Tok_Comment
37762         (Comment_Id): New global variable
37763
37764         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
37765         defaulted to False.
37766         (Scan): Store position of start of comment. If comments are tokens, set
37767         Comment_Id and set Token to Tok_Comment when scanning a comment.
37768         (Set_Comment_As_Token): New procedure
37769
37770         * sinput-p.adb: Update Copyright notice
37771         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
37772         that no longer exists.
37773
37774 2003-12-08  Javier Miranda  <miranda@gnat.com>
37775
37776         * sem_aggr.adb: Add dependence on Exp_Tss package
37777         Correct typo in comment
37778         (Resolve_Aggregate): In case of array aggregates set the estimated
37779         type of the aggregate before calling resolve. This is needed to know
37780         the name of the corresponding IP in case of limited array aggregates.
37781         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
37782         in case of default initialized array components.
37783
37784         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
37785         types. Required to give support to limited aggregates in generic
37786         formals.
37787
37788 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
37789
37790         * sem_ch3.adb (Check_Initialization): For legality purposes, an
37791         inlined body functions like an instantiation.
37792         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
37793         until bounds are analyzed, to diagnose premature use of type.
37794
37795         * sem_util.adb (Wrong_Type): Improve error message when the type of
37796         the expression is used prematurely.
37797
37798 2003-12-08  GNAT Script  <nobody@gnat.com>
37799
37800         * Make-lang.in: Makefile automatically updated
37801
37802 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
37803
37804         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
37805         they are automatically generated by Make-lang.in and cause nothing but
37806         maintenance troubles.
37807
37808 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
37809
37810         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
37811         version of this unit).
37812
37813 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
37814
37815         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
37816         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
37817         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
37818         the body of System.Interrupt_Management common to several targets.
37819         Update copyright notice when appropriate.
37820
37821         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
37822         constant.
37823
37824         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
37825         to ensure that the kernel fills in the interrupted context structure
37826         before calling a signal handler, which is necessary to be able to
37827         unwind past it. Update the copyright notice.
37828
37829 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
37830
37831         * a-elchha.ads: New file.
37832
37833         * a-elchha.adb: New default last chance handler. Contents taken from
37834         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
37835
37836         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
37837         is moved to a-elchha.adb to provide a target-independent default last
37838         chance handler.
37839
37840         * Makefile.rtl: Add a-elchha.o
37841
37842         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
37843
37844 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
37845
37846         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
37847         declared in an instance, do not inline the call if the instance is not
37848         frozen yet, to prevent order of elaboration problems.
37849
37850         * sem_prag.adb: Add comments for previous fix.
37851
37852 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
37853
37854         * g-table.adb: Use the right variable in Set_Item.
37855         Update copyright notice.
37856
37857 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
37858
37859         * Makefile.in: Remove unused rules.
37860
37861 2003-12-05  Vincent Celier  <celier@gnat.com>
37862
37863         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
37864         -nostdlib. Not needed here after all.
37865
37866 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
37867
37868         PR ada/11724
37869         * adaint.h, adaint.c, g-os_lib.ads:
37870         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
37871         on some platforms (including FreeBSD), it is a 64 bit value.
37872         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
37873
37874 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
37875
37876         * gnatvsn.ads (Library_Version): Now contain only the relevant
37877         version info.
37878         (Verbose_Library_Version): New constant.
37879
37880         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
37881         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
37882         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
37883
37884         * gnatlbr.adb: Clean up: replace Library_Version by
37885         Verbose_Library_Version.
37886
37887         * make.adb, lib-writ.adb, exp_attr.adb:
37888         Clean up: replace Library_Version by Verbose_Library_Version.
37889
37890         * 5lintman.adb: Removed.
37891
37892         * Makefile.in:
37893         Update and simplify computation of LIBRARY_VERSION.
37894         Fix computation of GSMATCH_VERSION.
37895         5lintman.adb is no longer used: replaced by 7sintman.adb.
37896
37897 2003-12-03  Robert Dewar  <dewar@gnat.com>
37898
37899         * exp_ch5.adb:
37900         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
37901         name. Modified to consider small non-bit-packed arrays as troublesome
37902         and in need of component-by-component assigment expansion.
37903
37904 2003-12-03  Vincent Celier  <celier@gnat.com>
37905
37906         * lang-specs.h: Process nostdlib as nostdinc
37907
37908         * back_end.adb: Update Copyright notice
37909         (Scan_Compiler_Arguments): Process -nostdlib directly.
37910
37911 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
37912
37913         * Makefile.in:
37914         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
37915         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
37916         included in HIE_NONE_TARGET_PAIRS.
37917
37918 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
37919
37920         * sem_attr.adb:
37921         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
37922         is legal in an instance, because legality is cheched in the template.
37923
37924         * sem_prag.adb:
37925         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
37926         appplied to an unchecked conversion of a formal parameter.
37927
37928         * sem_warn.adb:
37929         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
37930         variables.
37931
37932 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
37933
37934         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
37935         routines. The second one is new functionality to deal with backtracing
37936         through signal handlers.
37937         (unwind): Split into the two separate subroutines above.
37938         Update the documentation, and deal properly with sizeof (REG) different
37939         from sizeof (void*).
37940
37941 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
37942
37943         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
37944         so that the debugger can reliably access the value of the parameter,
37945         and therefore is able to display the exception name when an exception
37946         breakpoint is reached.
37947
37948 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
37949
37950         * fmap.adb: Fix typo in warning message.
37951
37952         * g-socket.ads, g-socket.adb: Make Free a visible instance of
37953         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
37954
37955 2003-12-01  Vincent Celier  <celier@gnat.com>
37956
37957         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
37958         ther is no Afile.
37959         (Build_Library): Get the switches only if Default_Switches is declared
37960         in package Binder.
37961
37962 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
37963
37964         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
37965         actuals that are indexed components, reanalyze actual to ensure that
37966         packed array references are properly expanded.
37967
37968         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
37969         attempted assignment to a discriminant.
37970
37971 2003-12-01  Robert Dewar  <dewar@gnat.com>
37972
37973         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
37974         reformatting.
37975
37976         * switch-c.adb: Minor reformatting of comments
37977
37978 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
37979
37980         * Makefile.in: Clean ups.
37981
37982 2003-12-01  GNAT Script  <nobody@gnat.com>
37983
37984         * Make-lang.in: Makefile automatically updated
37985
37986 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
37987
37988         * 5wsystem.ads: Disable zero cost exception, not ready yet.
37989
37990 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
37991
37992         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
37993         to force serialization.
37994
37995 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
37996
37997         * g-socket.ads, g-socket.adb:
37998         Clarify documentation of function Stream. Introduce a Free procedure
37999         to release the returned Stream once it becomes unused.
38000
38001         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38002
38003 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
38004
38005         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38006         since NT 4 cannot handle timeout values that are too large,
38007         e.g. DWORD'Last - 1.
38008
38009 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
38010
38011         * exp_ch4.adb:
38012         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38013         in procedure calls and whose expansion must be deferred.
38014
38015         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38016         is in exp_ch4.
38017
38018         * sem_ch3.adb:
38019         (Build_Derived_Array_Type): Create operator for unconstrained type
38020         if ancestor is unconstrained.
38021
38022 2003-11-26  Vincent Celier  <celier@gnat.com>
38023
38024         * make.adb (Project_Object_Directory): New global variable
38025         (Change_To_Object_Directory): New procedure
38026         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38027         of Change_Dir directly. Do not change working directory to object
38028         directory of main project after each compilation.
38029         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38030         directly.
38031         Change to object directory of main project before binding step.
38032         (Initialize): Initialize Project_Object_Directory to No_Project
38033
38034         * mlib-prj.adb:
38035         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38036         binding a Stand-Alone Library.
38037
38038         * output.adb: Update Copyright notice
38039         (Write_Char): Output buffer when full
38040
38041 2003-11-26  Robert Dewar  <dewar@gnat.com>
38042
38043         * sem_ch13.adb: (Check_Size): Reset size if size is too small
38044
38045         * sem_ch13.ads:
38046         (Check_Size): Fix documentation to include bit-packed array case
38047
38048         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38049
38050         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38051
38052         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38053
38054 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
38055
38056         PR ada/13142
38057         * utils.c (init_gigi_decls): Change name of built-in setjmp to
38058         __builtin_setjmp, since this is apparently needed by recent
38059         non Ada changes.
38060
38061 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38062
38063         * adadecode.c: Only include ctype.h if not IN_GCC.
38064         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38065
38066 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
38067
38068         * Makefile.in:
38069         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38070         signals and interrupts.
38071
38072         * 5zintman.ads: New File.
38073
38074         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38075         add exception signals to the set of unmasked signals.
38076
38077         * 5ztaprop.adb:
38078         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38079         between signals and interrupts.
38080         Add to Unblocked_Signal_Mask the set of signals that are in
38081         Keep_Unmasked.
38082
38083         * 7sinmaop.adb:
38084         Adding a check to see whether the Interrupt_ID we want to unmask is in
38085         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38086         reason is that the index type of the Keep_Unmasked array is not always
38087         Interrupt_ID; it may be a subtype of Interrupt_ID.
38088
38089 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
38090
38091         * exp_util.adb:
38092         (Remove_Side_Effects): Condition constantness of object created for a
38093          an unchecked type conversion on the constantness of the expression
38094          to ensure the correct value for 'Constrained when passing components
38095          of view-converted class-wide objects.
38096
38097 2003-11-24  Robert Dewar  <dewar@gnat.com>
38098
38099         * par-load.adb (Load): Improve handling of misspelled and missing units
38100         Removes several cases of compilation abandoned messages
38101
38102         * lib.adb: (Remove_Unit): New procedure
38103
38104         * lib.ads: (Remove_Unit): New procedure
38105
38106         * lib-load.adb: Minor reformatting
38107
38108 2003-11-24  Vincent Celier  <celier@gnat.com>
38109
38110         * make.adb:
38111         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38112         (Marking_Label): Label to mark processed source files. Incremented for
38113         each executable.
38114         (Gnatmake): Increase Marking_Labet for each executable
38115         (Is_Marked): Compare against marking label
38116         (Mark): Mark with marking label
38117
38118 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
38119
38120         * s-thread.ads:
38121         Move the declaration of the TSD for System.Threads to System.Soft_Links.
38122         Add some comments.
38123
38124         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38125         (rts-cert): build a single relocatable object for the run-time lib.
38126         Fix perms.
38127
38128 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
38129
38130         * Make-lang.in:
38131         Use gnatls rather than gcc to obtain the location of GNAT RTL for
38132         crosstools build.
38133
38134 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
38135
38136         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38137         can not use it as before (that is, as a variable) when dumping it into
38138         the tree file. Add a local variable to store the result of this
38139         function and to be used as the string to be written into the tree.
38140
38141         * scn.adb (Initialize_Scanner): Add comments explaining the recent
38142         changes.
38143
38144         * sinput.adb (Source_First, Source_Last): In case of
38145         Internal_Source_File, replace returning attributes of
38146         Internal_Source_Ptr (which is wrong) with returning attributes of
38147         Internal_Source.
38148
38149 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
38150
38151         * sem_ch3.adb:
38152         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38153         used for implicit concatenation operators.
38154         Code cleanup.
38155
38156         * sem_elab.adb:
38157         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38158         task bodies that are in the scope of a Suppress pragma.
38159         (Check_A Call): Use the flag to prevent spurious elaboration checks.
38160
38161         * sinfo.ads, sinfo.adb:
38162         New flag No_Elaboration_Check on function/procedure calls, to properly
38163         suppress checks on calls in task bodies that are within a local suppress
38164         pragma.
38165
38166         * exp_ch4.adb:
38167         (Expand_Concatenate_Other): Use the proper integer type for the
38168         expression for the upper bound, to avoid universal_integer computations
38169         when possible.
38170
38171 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
38172
38173         * .cvsignore: Delete.
38174
38175 2003-11-21  Andreas Schwab  <schwab@suse.de>
38176
38177         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38178
38179 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
38180
38181         * 5wsystem.ads: Enable zero cost exception.
38182
38183 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
38184
38185         * 5ztiitho.adb: Remove an unreferenced variable.
38186
38187 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
38188
38189         * adaint.c: For FreeBSD, use mkstemp.
38190
38191 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
38192
38193         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38194
38195 2003-11-21  Robert Dewar  <dewar@gnat.com>
38196
38197         * bld.adb: Remove useless USE of gnatvsn
38198
38199         * gnatchop.adb: Minor reformatting
38200         Clean up version handling to be more consistent
38201
38202         * gnatxref.adb: Minor reformatting
38203
38204         * gprcmd.adb: Minor reformatting
38205         Fix output of copyright to be more consistent with other tools
38206
38207 2003-11-21  Vincent Celier  <celier@gnat.com>
38208
38209         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38210
38211 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
38212
38213         * atree.adb (Initialize): Add initializations for global variables
38214         used in New_Copy_Tree.
38215
38216         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38217         Internal_Source_File as the actual).
38218         Put the set of statements creating Any_Character before the set of
38219         statements creating Any_Array to have Any_Character fully initialized
38220         when it is used in creating Any_Array.
38221
38222         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38223         not call Scan in case if the actual is Internal_Source_File
38224         Add 2003 to copyright note.
38225
38226         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38227         processing Internal_Source_File.
38228
38229         * types.ads: Add the constant Internal_Source_File representing the
38230         source buffer for artificial source-code-like strings created within
38231         the compiler (the definition of Source_File_Index is changed).
38232
38233 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
38234
38235         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38236         56system.ads: New file, FreeBSD version.
38237
38238 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
38239
38240         * Make-lang.in (ada.extraclean): Delete.
38241
38242 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
38243
38244         * gnatmem.adb: Clean up verbose output.
38245
38246         * gprcmd.adb: Change copyright to FSF.
38247
38248 2003-11-19  Vincent Celier  <celier@gnat.com>
38249
38250         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38251         and Version (ignored).
38252
38253         * symbols.ads: (Policy): New type
38254         (Initialize): New parameter Reference, Symbol_Policy and
38255         Library_Version.
38256         Remove parameter Force.
38257         Minor reformatting.
38258
38259         * snames.ads, snames.adbadb: New standard names
38260         Library_Reference_Symbol_File and Library_Symbol_Policy
38261
38262         * mlib-prj.adb:
38263         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38264         project.
38265
38266         * mlib-tgt.adb:
38267         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38268
38269         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38270
38271         * prj.adb: (Project_Empty): New component Symbol_Data
38272
38273         * prj.ads: (Policy, Symbol_Record): New types
38274         (Project_Data): New component Symbol_Data
38275
38276         * prj-attr.adb:
38277         New attributes Library_Symbol_File, Library_Symbol_Policy and
38278         Library_Reference_Symbol_File.
38279
38280         * prj-nmsc.adb:
38281         (Ada_Check): When project is a Stand-Alone library project, process
38282         attribute Library_Symbol_File, Library_Symbol_Policy and
38283         Library_Reference_Symbol_File.
38284
38285         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38286         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38287         5sml-tgt.adb (Build_Dynamic_Library): New parameter
38288         Symbol_Data (ignored).
38289
38290         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38291         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38292         functions Option_File_Name and Version_String. Set new options of
38293         gnatsym related to symbol file, symbol policy and reference symbol
38294         file.
38295
38296         * 5vsymbol.adb:
38297         Extensive modifications to take into account the reference symbol file,
38298         the symbol policy, the library version and to put in the symbol file the
38299         minor and major IDs.
38300
38301         * bld.adb (Process_Declarative_Items): Put second argument of
38302         gprcmd to_absolute between single quotes, to avoid problems with
38303         Windows.
38304
38305         * bld-io.adb: Update Copyright notice.
38306         (Flush): Remove last character of a line, if it is a back slash, to
38307         avoid make problems.
38308
38309         * gnatsym.adb:
38310         Implement new scheme with reference symbol file and symbol policy.
38311
38312         * g-os_lib.ads: (Is_Directory): Clarify comment
38313
38314 2003-11-19  Robert Dewar  <dewar@gnat.com>
38315
38316         * atree.adb: Move New_Copy_Tree global variables to head of package
38317
38318         * errout.adb: Minor reformatting
38319
38320 2003-11-19  Javier Miranda  <miranda@gnat.com>
38321
38322         * sem_ch4.adb: (Diagnose_Call): Improve error message.
38323         Add reference to Ada0Y (AI-50217)
38324
38325         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38326         sem_util.adb: Add reference to AI-50217
38327
38328         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38329
38330         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38331
38332         * sem_aggr.adb: Complete documentation of AI-287 changes
38333
38334         * par-ch4.adb: Document previous changes.
38335
38336         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38337         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38338         Ada0Y (AI-50217)
38339
38340         * exp_aggr.adb: Add references to AI-287 in previous changes
38341
38342 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
38343
38344         * exp_ch6.adb:
38345         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38346         in the rewriting is the result of an inlined call.
38347
38348         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38349         parameter is a type conversion, use original node to construct the
38350         post-call assignment, because expression may have been rewritten, e.g.
38351         if it is a packed array.
38352
38353         * sem_attr.adb:
38354         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38355         body, just as it is in an instance.
38356         Categorization routines
38357
38358         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38359         Instantiate_Object): Set proper sloc reference for message on missing
38360         actual.
38361
38362 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
38363
38364         * Makefile.in: Add FreeBSD libgnat pairs.
38365
38366         * usage.adb: Fix typo in usage message.
38367
38368 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
38369
38370         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38371         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38372         pragma Thread_Body.
38373         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38374
38375         * s-thread.adb: This file is now a dummy implementation of
38376         System.Thread.
38377
38378 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
38379
38380         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38381
38382 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
38383
38384         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38385         instanciation references in the parent type description.
38386
38387 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38388
38389         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38390
38391         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38392         TYPE_PRECISION directly from esize.
38393
38394 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
38395
38396         * cstreams.c:
38397         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38398
38399         * init.c: Initialization routines for FreeBSD
38400
38401         * link.c: Link info for FreeBSD
38402
38403         * sysdep.c: Add the case of FreeBSD
38404
38405 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
38406
38407         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38408         already called in System.Threads.
38409
38410         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38411         environment task, as it has been moved to System.Threads.Initialization.
38412
38413 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
38414
38415         * adaint.c (__gnatlib_install_locks): Only reference
38416         __gnat_install_locks on VMS, since other platforms can avoid using
38417         --enable-threads=gnat
38418
38419 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38420
38421         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38422
38423         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38424         TYPE_PACKED_ARRAY_TYPE_P.
38425         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38426
38427         Part of PR ada/12806
38428         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38429         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38430
38431 2003-11-17  Vincent Celier  <celier@gnat.com>
38432
38433         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38434         to False.
38435         Do not set exit status to Failure when Warning is True.
38436         (Gnatchop): Make errors "no compilation units found" and
38437         "no source files written" warnings only.
38438
38439         * make.adb (Gnatmake): When using a project file, set
38440         Look_In_Primary_Dir to False.
38441         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38442         and Local_Configuration_Pragmas in the project where they are declared
38443         not an extending project which might have inherited them.
38444
38445         * osint.adb (Locate_File): If Name is already an absolute path, do not
38446         look for a directory.
38447
38448         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38449         -gnats (Check_Syntax) is used, issue only a warning, not an error.
38450
38451         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38452         in objects of type Variable_Value.
38453
38454         * prj.ads: (Variable_Value): New component Project
38455
38456         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38457         is in a project extended by Project.
38458
38459         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38460         Project of Variable_Values to this new parameter value.
38461         (Expression): Set component Project of Variable_Values.
38462         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38463         Set the component Project in array elements.
38464
38465 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
38466
38467         * errout.adb: (Initialize): Add initialization for error nodes.
38468
38469         * sem_ch12.adb (Initialize): Add missing initializations for
38470         Exchanged_Views and Hidden_Entities.
38471
38472 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
38473
38474         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38475         already instantiated tree for use in subsequent inlining.
38476         (Analyze_Associations, Instantiate_Formal_Subprogram,
38477         Instantiate_Object): improve error message for mismatch in
38478         instantiations.
38479
38480         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38481         instantiations of subprograms declared in instances.
38482
38483 2003-11-17  Javier Miranda  <miranda@gnat.com>
38484
38485         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38486         executed only under the Extensions_Allowed flag.
38487
38488 2003-11-17  Robert Dewar  <dewar@gnat.com>
38489
38490         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38491         zeroes suppressed.
38492         (Address_Image): Fix bug of returning 0x instead of 0x0
38493         Minor reformatting (function specs).
38494
38495         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38496         (missed case of 33-63)
38497
38498         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38499
38500         * s-thread.adb: Add comments for pragma Restriction
38501
38502         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38503         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38504
38505 2003-11-17  Ed Falis  <falis@gnat.com>
38506
38507         * s-thread.adb: Added No_Tasking restriction for this implementation.
38508
38509 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
38510
38511         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38512         instanciation references in the parent type description.
38513
38514 2003-11-17  GNAT Script  <nobody@gnat.com>
38515
38516         * Make-lang.in: Makefile automatically updated
38517
38518 2003-11-16  Jason Merrill  <jason@redhat.com>
38519
38520         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38521         and TAGS files that include them for each front end.
38522
38523 2003-11-14  Andreas Jaeger  <aj@suse.de>
38524
38525         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
38526         is the canonical version.
38527         * misc.c (gnat_handle_option): Likewise.
38528
38529         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38530
38531         * 5nsystem.ads: New file for x86_64-linux-gnu.
38532
38533 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
38534
38535         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
38536
38537         * comperr.adb: Fix logic in previous change.
38538
38539 2003-11-13  Vincent Celier  <celier@gnat.com>
38540
38541         * 5bml-tgt.adb (Build_Dynamic_Library): Use
38542         Osint.Include_Dir_Default_Prefix instead of
38543         Sdefault.Include_Dir_Default_Name.
38544
38545         * gnatlbr.adb: Update Copyright notice
38546         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38547         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38548         instead of Sdefault.Object_Dir_Default_Name
38549
38550         * gnatlink.adb:
38551         (Process_Binder_File): Never suppress the option following -Xlinker
38552
38553         * mdll-utl.adb:
38554         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38555         Sdefault.Object_Dir_Default_Name.
38556
38557         * osint.ads, osint.adb:
38558         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38559         Minor reformatting.
38560
38561         * vms_conv.ads: Minor reformating
38562         Remove GNAT STANDARD and GNAT PSTA
38563
38564         * vms_conv.adb:
38565         Allow GNAT MAKE to have several files on the command line.
38566         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38567         Sdefault.Object_Dir_Default_Name.
38568         Minor Reformating
38569         Remove data for GNAT STANDARD
38570
38571         * vms_data.ads:
38572         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38573         Remove data for GNAT STANDARD
38574         Remove options and documentation for -gnatwb/-gnatwB: these warning
38575         options no longer exist.
38576
38577 2003-11-13  Ed Falis  <falis@gnat.com>
38578
38579         * 5zthrini.adb: (Init_RTS): Made visible
38580
38581         * 5zthrini.adb:
38582         (Register): Removed unnecessary call to taskVarGet that checked whether
38583          an ATSD was already set as a task var for the argument thread.
38584
38585         * s-thread.adb:
38586         Updated comment to reflect that this is a VxWorks version
38587         Added context clause for System.Threads.Initialization
38588         Added call to System.Threads.Initialization.Init_RTS
38589
38590 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
38591
38592         * 5zthrini.adb:
38593         (Init_RTS): New procedure, for the initialization of the run-time lib.
38594
38595         * s-thread.adb:
38596         Remove dependancy on System.Init, so that this file can be used in the
38597         AE653 sequential run-time lib.
38598
38599 2003-11-13  Robert Dewar  <dewar@gnat.com>
38600
38601         * bindgen.adb: Minor reformatting
38602
38603 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
38604
38605         * checks.adb:
38606         (Apply_Discriminant_Check): Do no apply check if target type is derived
38607         from source type with no applicable constraint.
38608
38609         * lib-writ.adb:
38610         (Ensure_System_Dependency): Do not apply the style checks that may have
38611         been specified for the main unit.
38612
38613         * sem_ch8.adb:
38614         (Find_Selected_Component): Further improvement in error message, with
38615         RM reference.
38616
38617         * sem_res.adb:
38618         (Resolve): Handle properly the case of an illegal overloaded protected
38619         procedure.
38620
38621 2003-11-13  Javier Miranda  <miranda@gnat.com>
38622
38623         * exp_aggr.adb:
38624         (Has_Default_Init_Comps): New function to check the presence of
38625         default initialization in an aggregate.
38626         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38627         extension aggregate of a limited record. In addition, a new formal
38628         was added to do not initialize the record controller (if any) during
38629         this recursive expansion of ancestors.
38630         (Init_Controller): Add support for limited record components.
38631         (Expand_Record_Aggregate): In case of default initialized components
38632         convert the aggregate into a set of assignments.
38633
38634         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38635         describing the new syntax.
38636         Nothing else needed to be done because this subprogram delegates part of
38637         its work to P_Precord_Or_Array_Component_Association.
38638         (P_Record_Or_Array_Component_Association): Give support to the new
38639         syntax for default initialization of components.
38640
38641         * sem_aggr.adb:
38642         (Resolve_Aggregate): Relax the strictness of the frontend in case of
38643         limited aggregates.
38644         (Resolve_Record_Aggregate): Give support to default initialized
38645         components.
38646         (Get_Value): In case of default initialized components, duplicate
38647         the corresponding default expression (from the record type
38648         declaration). In case of default initialization in the *others*
38649         choice, do not check that all components have the same type.
38650         (Resolve_Extension_Aggregate): Give support to limited extension
38651         aggregates.
38652
38653         * sem_ch3.adb:
38654         (Check_Initialization): Relax the strictness of the front-end in case
38655         of aggregate and extension aggregates. This test is now done in
38656         Get_Value in a per-component manner.
38657
38658         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38659         expression corresponds to a limited aggregate. This test is now done
38660         in Get_Value.
38661
38662         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38663         Box_Present flag.
38664
38665         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38666         present in an N_Component_Association node
38667
38668 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
38669
38670         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38671         type-conformant entry only if they are homographs.
38672
38673 2003-11-13  GNAT Script  <nobody@gnat.com>
38674
38675         * Make-lang.in: Makefile automatically updated
38676
38677 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38678
38679         * adadecode.c: Use <> form of include for ctype.h.
38680         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38681
38682 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38683
38684         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38685         Works around PR middle-end/6552.
38686
38687 2003-11-10  Ed Falis  <falis@gnat.com>
38688
38689         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38690
38691         * 5zinit.adb: (Install_Handler): Moved back to spec
38692         (Install_Signal_Handlers): Deleted
38693
38694         * 5zthrini.adb: Added context clause for System.Storage_Elements
38695         (Register): Only handles creation of taskVar; initialization moved to
38696         Thread_Body_Enter.
38697         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
38698         Added declaration of environment task secondary stack and
38699         initialization.
38700
38701         * s-thread.adb: Implement bodies for thread body processing
38702
38703         * s-thread.ads:
38704         Added comment identifying supported targets for pragma Thread_Body.
38705
38706 2003-11-10  Pascal Obry  <obry@gnat.com>
38707
38708         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
38709         GNAT_MAX_PATH_LEN.
38710
38711         * s-fileio.adb:
38712         (Open): Properly check for string length before copying into the buffer.
38713         Raises Name_Error if buffer is too small. Note that this was a potential
38714         buffer overflow.
38715
38716 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
38717
38718         * bindgen.adb, comperr.adb: Code clean ups.
38719         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
38720
38721 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
38722
38723         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
38724
38725 2003-11-10  Vincent Celier  <celier@gnat.com>
38726
38727         * gprcmd.adb:
38728         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
38729         installation.
38730
38731         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
38732
38733         * prj.adb: (Project_Empty): Add new boolean component Virtual
38734
38735         * prj.ads: (Virtual_Prefix): New constant string
38736         (Project_Data): New boolean component Virtual
38737
38738         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
38739         a library project is extended by a virtual extending project.
38740
38741         * prj-part.adb:
38742         Modifications throughout to implement extending-all project, including:
38743         (Virtual_Hash, Processed_Hash): New hash tables
38744         (Create_Virtual_Extending_Project): New procedure
38745         (Look_For_Virtual_Projects_For): New procedure
38746
38747         * prj-proc.adb:
38748         (Process): After checking the projects, if main project is an
38749         extending-all project, set the object directory of all virtual extending
38750         project to the object directory of the main project.
38751         Adjust error message when a virtual extending project has the same
38752         object directory as an project being extended.
38753         (Recursive_Process): If name starts with the virtual prefix, set Virtual
38754         to True in the project data.
38755
38756         * prj-tree.adb:
38757         (Default_Project_Node): Add new boolean component Extending_All
38758         (Is_Extending_All): New function
38759         (Set_Is_Extending_All): New procedure
38760
38761         * prj-tree.ads: (Is_Extending_All): New function
38762         (Set_Is_Extending_All): New procedure
38763         (Project_Node_Record): New boolean component Extending_All
38764
38765         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
38766
38767         * vms_data.ads:
38768         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
38769
38770         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
38771         "gprcmd prefix" to define it.
38772
38773 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
38774
38775         * einfo.ads: Fix a typo and remove an extraneous word in comments.
38776
38777         * lib-load.adb:
38778         (Create_Dummy_Package_Unit): Set the scope of the entity for the
38779         created dummy package to Standard_Standard, not to itself, to
38780         defend other parts of the front-end against encoutering a cycle in
38781         the scope chain.
38782
38783         * sem_ch10.adb:
38784         (Analyze_With_Clause): When setting the entities for the successive
38785         N_Expanded_Names that constitute the name of a child unit, do not
38786         attempt to go further than Standard_Standard in the chain of scopes.
38787         This case arises from the placeholder units created by
38788         Create_Dummy_Package_Unit in the case of a with_clause for a
38789         nonexistent child unit.
38790
38791 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
38792
38793         * exp_ch6.adb:
38794         (Expand_Thread_Body): Place subprogram on scope stack, so that new
38795         declarations are given the proper scope.
38796
38797         * sem_ch13.adb:
38798         (Check_Expr_Constants): Reject an expression that contains a constant
38799         created during expansion, and that appears after the object to which
38800         the address clause applies.
38801
38802         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
38803         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
38804         that uses 'Range of a function call with controlled components, so
38805         that the function result can be finalized before starting the loop.
38806
38807         * sem_ch8.adb:
38808         (Find_Selected_Component): Improve error message when prefix is
38809         an implicit dereference of an incomplete type.
38810
38811 2003-11-10  Robert Dewar  <dewar@gnat.com>
38812
38813         * opt.ads: New Print_Standard flag for -gnatS switch
38814
38815         * sem_ch13.adb: Remove some additional checks for unaligned arrays
38816
38817         * cstand.adb (Create_Standard): Print out package standard if -gnatS
38818         switch set
38819
38820         * debug.adb: Update doc for -gnatds to discuss relationship with new
38821         -gnatS flag
38822
38823         * sinfo.adb: Add new field Entity_Or_Associated_Node
38824
38825         * sinfo.ads: Add new field Entity_Or_Associated_Node
38826         Update documentation for Associated_Node and Entity fields to clarify
38827         relationship and usage.
38828
38829         * sprint.adb:
38830         (Write_Id): Properly process Associated_Node field in generic template
38831
38832         * switch-c.adb:
38833         Recognize new -gnatS switch for printing package Standard
38834         This replaces gnatpsta
38835
38836         * usage.adb:
38837         Add line for  new -gnatS switch for printing package Standard
38838         This replaces gnatpsta
38839
38840 2003-11-10  Andreas Jaeger  <aj@suse.de>
38841
38842         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
38843         integer.
38844
38845 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38846
38847         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
38848         by gnat1.
38849
38850 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38851
38852         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
38853         no longer needed.
38854
38855         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
38856
38857         * sysdep.c: Add handling of cygwin.
38858
38859 2003-11-10  GNAT Script  <nobody@gnat.com>
38860
38861         * Make-lang.in: Makefile automatically updated
38862
38863 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
38864
38865         PR 12950
38866         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
38867         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
38868         Replace GNAT_ROOT by GCC_ROOT.
38869
38870         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
38871
38872 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
38873
38874         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
38875         and update for changed meaning of GET_MODE_BITSIZE.
38876
38877 2003-11-04  Doug Rupp  <rupp@gnat.com>
38878
38879         * sysdep.c: Problem discovered during IA64 VMS port.
38880         [VMS] #include <unixio.h> to get proper prototypes.
38881
38882         * adaint.c:
38883         Issues discovered/problems fixed during IA64 VMS port.
38884         [VMS] #define _POSIX_EXIT for proper semantics.
38885         [VMS] #include <unixio.h> for proper prototypes.
38886         [VMS] (fork): #define IA64 version.
38887         (__gnat_os_exit): Remove unnecessary VMS specific code.
38888
38889 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38890
38891         Part of PR ada/12806
38892         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
38893         tree, not integer.
38894
38895         * decl.c:
38896         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
38897         not integer.
38898
38899         * targtyps.c, decl.c, misc.c,
38900         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
38901         routines to work around change in FP sizing semantics in GCC.
38902
38903         * utils.c:
38904         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
38905
38906         * gigi.h: (enumerate_modes): New function.
38907
38908         * Make-lang.in: (ada/misc.o): Add real.h.
38909
38910         * misc.c: (enumerate_modes): New function.
38911
38912 2003-11-04  Robert Dewar  <dewar@gnat.com>
38913
38914         * 3vtrasym.adb: Minor reformatting
38915         Use terminology encoded/decoded name, rather than C++ specific notion
38916         of mangling (this is the terminology used throughout GNAT).
38917
38918         * einfo.h: Regenerated
38919
38920         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
38921
38922         * exp_ch6.adb:
38923         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
38924
38925         * par-prag.adb: Add dummy entry for Thread_Body pragma
38926
38927         * rtsfind.ads:
38928         Add entries for System.Threads entities for thread body processing
38929
38930         * sem_attr.adb:
38931         (Analyze_Pragma, Access attributes): Check these are not applied to a
38932         thread body, since this is not permitted
38933
38934         * sem_prag.adb: Add processing for Thread_Body pragma.
38935         Minor comment fix.
38936
38937         * sem_res.adb:
38938         (Resolve_Call): Check for incorrect attempt to call a thread body
38939          procedure with a direct call.
38940
38941         * snames.ads, snames.adb: Add entry for Thread_Body pragma
38942         Add names associated with thread body expansion
38943
38944         * snames.h: Add entry for Thread_Body pragma
38945
38946         * s-thread.adb: Add entries for thread body processing
38947         These are dummy bodies so far
38948
38949         * s-thread.ads: Add documentation on thread body handling.
38950         Add entries for thread body processing.
38951
38952 2003-11-04  Javier Miranda  <miranda@gnat.com>
38953
38954         * sem_ch10.adb:
38955         (Build_Limited_Views): Return after posting an error in case of limited
38956         with_clause on subprograms, generics, instances or generic renamings
38957         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
38958         on subprograms, generics, instances or generic renamings
38959
38960 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
38961
38962         * raise.c (setup_to_install): Correct mistake in last revision; two
38963         arguments out of order.
38964
38965         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
38966         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
38967         notice, missed in previous change.
38968         Remove trailing blanks and other style errors introduced in previous
38969         change.
38970
38971 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
38972
38973         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
38974         rid of the wrapper for a LJM type, ensuring we don't do that if the
38975         field is addressable.  This avoids potential low level type view
38976         mismatches later on, for instance in a by-reference argument passing
38977         process.
38978
38979 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38980
38981         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
38982         aligned at byte boundary.
38983
38984 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
38985
38986         * decl.c (components_to_record): Do not delete the empty variants from
38987         the end of the union type.
38988
38989 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
38990
38991         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
38992         operation for a derived type, an explicit declaration may use a local
38993         subtype of Boolean.
38994
38995 2003-11-04  Vincent Celier  <celier@gnat.com>
38996
38997         * make.adb (Gnatmake): Allow main sources on the command line with a
38998         library project when it is only for compilation (no binding or
38999         linking).
39000
39001 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39002
39003         * Makefile.in: Remove many duplicate variables.
39004
39005 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
39006
39007         * Make-lang.in (dvi): Move targets to $(docobjdir).
39008         (gnat_ug_vms.dvi): Simplify rule and adjust target.
39009         (gnat_ug_wnt.dvi): Likewise.
39010         (gnat_ug_unx.dvi): Likewise.
39011         (gnat_ug_vxw.dvi): Likewise.
39012         (gnat_rm.dvi): Likewise.
39013         (gnat-style.dvi): Likewise.
39014
39015 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39016
39017         * gigi.h: Missed commit from update for C90.
39018
39019 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39020
39021         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39022
39023 2003-10-31  Andreas Schwab  <schwab@suse.de>
39024
39025         * raise.c (get_action_description_for): Fix typo in last change.
39026
39027 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
39028
39029         PR ada/12761
39030         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39031         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39032
39033 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
39034
39035         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39036         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39037         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39038         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39039         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39040
39041 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
39042
39043         * 3vtrasym.adb:
39044         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39045         numbers when symbol name is too long.
39046
39047 2003-10-30  Ed Falis  <falis@gnat.com>
39048
39049         * g-signal.ads, g-signal.adb: New files
39050
39051         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39052
39053         * Makefile.rtl: Introduce GNAT.Signals
39054
39055 2003-10-30  Robert Dewar  <dewar@gnat.com>
39056
39057         * freeze.adb: Minor reformatting
39058
39059         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39060
39061         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39062         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39063         New handling of Id_Check parameter to improve recognition of keywords
39064         used as identifiers.
39065         Update copyright notice to include 2003
39066
39067 2003-10-29  Robert Dewar  <dewar@gnat.com>
39068
39069         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39070         sem_ch10.adb: Minor reformatting
39071
39072         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39073         (Expand_Assign_Record): Test right hand side for bit unaligned as well
39074
39075 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
39076
39077         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39078         Support for TBK$SYMBOLIZE-based symbolic traceback.
39079
39080 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
39081
39082         * exp_disp.adb:
39083         Revert previous change, that did not work well when pragma No_Run_Time
39084         was used in conjunction with a run-time other than ZFP.
39085
39086 2003-10-29  Vincent Celier  <celier@gnat.com>
39087
39088         * make.adb:
39089         (Gnatmake): When there are no Ada mains in attribute Main, disable the
39090          bind and link steps only is switch -z is not used.
39091
39092 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
39093
39094         * Makefile.generic: Remove duplicated setting of CC.
39095
39096         * Makefile.prolog: Set CC to gcc by default, to override make's
39097         default (cc).
39098
39099         * einfo.h: Regenerated.
39100
39101 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
39102
39103         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39104         current body, after compiling subunit.
39105
39106         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39107         when in deleted code, because gigi needs properly ordered freeze
39108         actions to annotate types.
39109
39110         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39111         prevent the premature freezing of record type that contains
39112         subcomponents with a private type that does not yet have a completion.
39113
39114 2003-10-29  Javier Miranda  <miranda@gnat.com>
39115
39116         * sem_ch12.adb:
39117         (Analyze_Package_Instantiation): Check that instances can not be used in
39118         limited with_clauses.
39119
39120         * sem_ch8.adb:
39121         (Analyze_Package_Renaming): Check that limited withed packages cannot
39122         be renamed. Improve text on error messages related to limited
39123         with_clauses.
39124
39125         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39126
39127         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39128         Update copyright notice.
39129
39130         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39131         (Install_Limited_Context_Clauses): New subprogram that isolates all the
39132         checks required for limited context_clauses and installs the limited
39133         view.
39134         (Install_Limited_Withed_Unit): Complete its documentation.
39135         (Analyze_Context): Check that limited with_clauses are only allowed in
39136         package specs.
39137         (Install_Context): Call Install_Limited_Context_Clauses after the
39138         parents have been installed.
39139         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39140         package as 'From_With_Type'; this mark indicates that the limited view
39141         is installed. Used to check bad usages of limited with_clauses.
39142         (Build_Limited_Views): Do not add shadow entities to the scope's list
39143         of entities. Do not add real entities to the Non_Limited_Views chain.
39144         Improve error notification.
39145         (Remove_Context_Clauses): Remove context clauses in two phases:
39146         limited views first and regular views later (to maintain the
39147         stack model).
39148         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39149         its visible entities.
39150
39151 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
39152
39153         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39154         with any type that Is_Fixed_Point_Type.
39155
39156         * sinfo.ads: Fix documentation for Associated_Node attribute.
39157
39158 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
39159
39160         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39161         both '-gnatc' and '-gnatt' are specified.
39162
39163         * atree.adb (Initialize): Add initialization for Node_Count (set to
39164         zero).
39165
39166 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39167
39168         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39169         do not consider as Pure.
39170
39171         Part of implementation of function-at-a-time:
39172
39173         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39174         (tree_transform): Add new argument to build_component_ref.
39175         (tree_transform, case N_Assignment_Statement): Make and return an
39176         EXPR_STMT.
39177         (tree_transform): If result IS_STMT, set flags and return it.
39178         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39179
39180         * utils2.c (build_simple_component_ref, build_component_ref): Add new
39181         arg, NO_FOLD_P.
39182         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39183         (build_allocator): Likewise.
39184
39185         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39186         Add new arg to build_component_ref.
39187         (maybe_unconstrained_array, unchecked_convert): Likewise.
39188
39189         * ada-tree.def (EXPR_STMT): New code.
39190
39191         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39192
39193         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39194         build_component_ref calls.
39195
39196         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39197
39198         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39199         (build_component_ref): Add new argument, NO_FOLD_P.
39200
39201 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
39202
39203         * Makefile.generic: Add missing substitution on object_deps handling.
39204
39205         PR ada/5909
39206         * Make-lang.in (check-ada): Enable ACATS test suite.
39207
39208 2003-10-27  Robert Dewar  <dewar@gnat.com>
39209
39210         * exp_ch3.adb:
39211         (Freeze_Array_Type): We do not need an initialization routine for types
39212         derived from String or Wide_String. They should be treated the same
39213         as String and Wide_String themselves. This caused problems with the
39214         use of Initialize_Scalars.
39215
39216         * exp_ch5.adb:
39217         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39218         composites. This allows use of component clauses that are not byte
39219         aligned.
39220
39221         * sem_prag.adb:
39222         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39223         is an attempt to pack an array of atomic objects.
39224
39225         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39226
39227 2003-10-27  Pascal Obry  <obry@gnat.com>
39228
39229         * g-dirope.adb:
39230         (Basename): Check for drive letters in a pathname only on DOS based OS.
39231
39232 2003-10-27  Vincent Celier  <celier@gnat.com>
39233
39234         * make.adb:
39235         (Gnatmake): When unable to change dir to the object dir, display the
39236         content of the parent dir of the obj dir, to try to understand why this
39237         happens.
39238
39239 2003-10-27  GNAT Script  <nobody@gnat.com>
39240
39241         * Make-lang.in: Makefile automatically updated
39242
39243 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
39244
39245         * sem_ch12.adb:
39246         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39247         should not be done in Save/Restore_Scope_Stack, because it is performed
39248         locally.
39249
39250         * sem_ch8.adb:
39251         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39252         whether use clauses should be removed/restored.
39253
39254         * sem_ch8.ads:
39255         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39256         whether use clauses should be removed/restored.
39257
39258 2003-10-26  Andreas Jaeger  <aj@suse.de>
39259
39260         * Makefile.in: Remove duplicated lines.
39261
39262 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39263
39264         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39265         minimize the differences with ACT tree.
39266
39267         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39268         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39269         Gnatvsn.Gnat_Static_Version_String to reduce differences between
39270         ACT and FSF trees.
39271
39272 2003-10-24  Pascal Obry  <obry@gnat.com>
39273
39274         PR ada/12014
39275         * adadecode.c (ostrcpy): New function.
39276         (__gnat_decode): Use ostrcpy of strcpy.
39277         (has_prefix): Set first parameter a const.
39278         (has_suffix): Set first parameter a const.
39279         Update copyright notice. Fix source name in header.
39280         Removes a trailing space.
39281
39282 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
39283
39284         * exp_disp.adb:
39285         Remove the test against being in No_Run_Time_Mode before generating a
39286         call to Register_Tag. It is redundant with the test against the
39287         availability of the function Register_Tag.
39288
39289 2003-10-24  Vincent Celier  <celier@gnat.com>
39290
39291         * g-catiio.adb: (Month_Name): Correct spelling of February
39292
39293         * make.adb: (Mains): New package
39294         (Initialize): Call Mains.Delete
39295         (Gnatmake): Check that each main on the command line is a source of a
39296         project file and, if there are several mains, each of them is a source
39297         of the same project file.
39298         (Gnatmake): When a foreign language is specified in attribute Languages,
39299         no main is specified on the command line and attribute Mains is not
39300         empty, only build the Ada main. If there is no Ada main, just compile
39301         the Ada sources and their closure.
39302         (Gnatmake): If a main is specified on the command line with directory
39303         information, check that the source exists and, if it does, that the path
39304         is the actual path of a source of a project.
39305
39306         * prj-env.adb:
39307         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39308         Full_Path is True, return the full path instead of the simple file name.
39309         (Project_Of): New function
39310
39311         * prj-env.ads:
39312         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39313         defaulted to False.
39314         (Project_Of): New function
39315
39316 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39317
39318         * Makefile.generic:
39319         Ensure objects of main project are always checked and rebuilt if needed.
39320         Set CC to gcc by default.
39321         Prepare new handling of link by creating a global archive (not activated
39322         yet).
39323
39324         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39325         stringt.h: Update copyright notice. Remove trailing blanks.
39326         Fix source name in header.
39327
39328 2003-10-24  Robert Dewar  <dewar@gnat.com>
39329
39330         * sem_ch12.adb: Minor reformatting
39331
39332         * sem_ch3.adb:
39333         Minor reformatting (including new function return style throughout)
39334
39335         * sem_ch3.ads:
39336         Minor reformatting (including new function return style throughout)
39337
39338 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39339
39340         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39341         stringt.h: Update copyright notice. Remove trailing blanks.
39342         Fix source name in header.
39343
39344 2003-10-24  GNAT Script  <nobody@gnat.com>
39345
39346         * Make-lang.in: Makefile automatically updated
39347
39348 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
39349
39350         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39351         stringt.h: Convert to ISO C90 declarations and definitions.
39352
39353 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
39354
39355         PR ada/11978
39356         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39357         External_Tag attribute definition clauses.
39358
39359 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
39360
39361         PR ada/7613
39362         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39363         child unit, generate a fully qualified name to avoid spurious errors
39364         when the context contains renamings of different child units with
39365         the same simple name.
39366
39367         * exp_dbug.ads: Add documentation on name qualification for renamings
39368         of child units.
39369
39370 2003-10-23  Robert Dewar  <dewar@gnat.com>
39371
39372         * g-regpat.ads, g-regpat.adb: Minor reformatting
39373
39374 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
39375
39376         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39377
39378 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39379
39380         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39381         Machine call.
39382
39383         * urealp.h: (Machine): Update to proper definition.
39384
39385 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
39386
39387         * init.c, adaint.c: Minor reformatting.
39388
39389 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
39390
39391         * adaint.c (w32_epoch_offset): Define static const at file level.
39392         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39393         rather than t_create, t_access in call to GetFileTime. Use union
39394         to convert between FILETIME and  unsigned long long.
39395         (__gnat_file_time_name): Test for invalid file handle.
39396         (__gnat_set_filetime_name): Support win32 targets using
39397         w32api SetFileTime.
39398
39399 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
39400
39401         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39402
39403         * ctrl_c.c (__gnat_int_handler): Remove declaration.
39404
39405         * decl.c (creat_concat_name):  Const-ify prefix.
39406
39407         * adaint.c: Include ctype.h if __MINGW32__.
39408         (__gnat_readlink): Mark arguments as possibly unused.
39409         (__gnat_symlink): Likewise.
39410         (__gnat_is_symbolic_link): Likewise.
39411         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
39412         declaration
39413         (__gnat_file_time_name): Don't declare struct stat statbuf when
39414         not needed.
39415         (__gnat_is_absolute_path): Add parenthesis around condition of
39416         'if' statement to avoid warning.
39417         (__gnat_plist_init): Specify void as parameter.
39418         (plist_enter): Likewise.
39419         (plist_leave): Likewise.
39420         (remove_handle): Make static. Initialize prev.
39421
39422 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39423
39424         PR ada/10110
39425         * Makefile.in: Disable build of gnatpsta.
39426         * cstreams.c (__gnat_full_name): Minor improvements and clean up
39427         of previous change.
39428
39429 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39430
39431         * tracebak.c (MAX): Avoid redefinition warning.
39432
39433         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39434         Change msg to const char *.
39435         (__gnat_install_handler): Remove ss, unused.
39436         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39437         to const char *.
39438         * cstreams.c (__gnat_full_name): Declare p only when used.
39439         (__gnat_full_name) [sgi] Return buffer.
39440
39441 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
39442
39443         * mingw32.h: New file.
39444         * gnat_wrapper.adb: New file.
39445
39446 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
39447
39448         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39449         string match a pre compiled regular expression (the corresponding
39450         version of the function working on a raw regular expression)
39451         Fix typos in various comments
39452         Update copyright notice in spec
39453
39454 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
39455
39456         * exp_ch3.adb:
39457         (Component_Needs_Simple_Initialization): Return False when the type is a
39458         packed bit array. Revise spec comments to document this case.
39459
39460         * exp_prag.adb:
39461         (Expand_Pragma_Import): Set any expression on the imported object to
39462         empty to avoid initializing imported objects (in particular this
39463         covers the case of zero-initialization of bit arrays).
39464         Update copyright notice.
39465
39466 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
39467
39468         * sem_ch12.adb:
39469         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39470         a subunit is missing.
39471         (Instantiate_Subprogram_Body): If body of function is missing, set type
39472         of return expression explicitly in dummy body, to prevent cascaded
39473         errors when a subunit is missing.
39474         Fixes PR 5677.
39475
39476         * sem_ch3.adb:
39477         (Access_Subprogram_Declaration): Verify that return type is valid.
39478         Fixes PR 8693.
39479
39480         * sem_elab.adb:
39481         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39482         generic.
39483         Fixes PR 12318.
39484
39485         * sem_util.adb:
39486         (Corresponding_Discriminant): If the scope of the discriminant is a
39487         private type without discriminant, use its full view.
39488         Fixes PR 8247.
39489
39490 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
39491
39492         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39493         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39494         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39495         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39496         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39497         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39498         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39499         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39500         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39501         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39502         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39503         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39504         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39505         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39506         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39507         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39508         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39509         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39510         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39511         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39512         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39513         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39514         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39515         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39516         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39517         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39518         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39519         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39520         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39521         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39522         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39523         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39524         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39525         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39526         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39527         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39528         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39529         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39530         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39531         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39532         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39533         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39534         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39535         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39536         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39537         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39538         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39539         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39540         vms_conv.ads, vms_conv.adb, vms_data.ads,
39541         vxaddr2line.adb: Files added. Merge with ACT tree.
39542
39543         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39544         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39545         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39546         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39547         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39548         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39549         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39550         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39551         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39552         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39553
39554         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39555         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39556         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39557         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39558         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39559         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39560         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39561         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39562         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39563         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39564         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39565         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39566         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39567         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39568         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39569         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39570         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39571         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39572         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39573         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39574         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39575         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39576         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39577         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39578         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39579         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39580         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39581         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39582         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39583         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39584         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39585         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39586         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39587         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39588         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39589         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39590         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39591         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39592         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39593         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39594         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39595         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39596         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39597         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39598         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39599         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39600         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39601         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39602         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39603         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39604         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39605         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39606         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39607         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39608         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39609         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39610         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39611         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39612         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39613         checks.adb, checks.ads, cio.c, comperr.adb,
39614         comperr.ads, csets.adb, cstand.adb, cstreams.c,
39615         debug_a.adb, debug_a.ads, debug.adb, decl.c,
39616         einfo.adb, einfo.ads, errout.adb, errout.ads,
39617         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39618         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39619         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39620         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39621         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39622         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39623         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39624         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39625         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39626         fe.h, fmap.adb, fmap.ads, fname.adb,
39627         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39628         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39629         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39630         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39631         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39632         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39633         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39634         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39635         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39636         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39637         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39638         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39639         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39640         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39641         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39642         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39643         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39644         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39645         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39646         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39647         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39648         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39649         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39650         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39651         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39652         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39653         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39654         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39655         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39656         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39657         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39658         layout.adb, lib.adb, lib.ads, lib-list.adb,
39659         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39660         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39661         link.c, live.adb, make.adb, make.ads,
39662         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39663         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39664         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39665         misc.c, mkdir.c, mlib.adb, mlib.ads,
39666         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39667         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39668         namet.adb, namet.ads, namet.h, nlists.ads,
39669         nlists.h, nmake.adt, opt.adb, opt.ads,
39670         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39671         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39672         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39673         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39674         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39675         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39676         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39677         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39678         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39679         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39680         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39681         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39682         prj-util.adb, prj-util.ads, raise.c, raise.h,
39683         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39684         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39685         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39686         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39687         scans.ads, scn.adb, scn.ads, s-crc32.adb,
39688         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39689         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39690         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39691         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39692         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39693         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39694         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39695         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
39696         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
39697         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
39698         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
39699         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
39700         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
39701         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
39702         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
39703         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
39704         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
39705         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
39706         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
39707         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
39708         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
39709         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
39710         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
39711         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
39712         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
39713         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
39714         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
39715         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
39716         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
39717         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
39718         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
39719         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
39720         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
39721         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
39722         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
39723         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
39724         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
39725         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
39726         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
39727         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
39728         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39729         stringt.adb, stringt.ads, stringt.h, style.ads,
39730         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
39731         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
39732         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
39733         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
39734         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
39735         table.adb, table.ads, targparm.adb, targparm.ads,
39736         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
39737         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
39738         ttypes.ads, types.ads, types.h, uintp.adb,
39739         uintp.ads, uintp.h, uname.adb, urealp.adb,
39740         urealp.ads, urealp.h, usage.adb, utils2.c,
39741         utils.c, validsw.adb, validsw.ads, widechar.adb,
39742         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
39743         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
39744         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
39745         gnatvsn.ads: Merge with ACT tree.
39746
39747         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
39748
39749 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
39750
39751         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
39752         (gnat_ug_vmx.info): Likewise.
39753         (gnat_ug_vxw.info): Likewise.
39754         (gnat_ug_wnt.info): Likewise.
39755         (gnat_rm.info): Likewise.
39756         (gnat-style.info): Likewise.
39757
39758         * Make-lang.in (ada.install-info): Remove target.
39759         (info): New target.
39760         (install-info): Likewise.
39761         (gnat_ug_unx.info): Simplify rule.
39762         (gnat_ug_vmx.info): Likewise.
39763         (gnat_ug_vxw.info): Likewise.
39764         (gnat_ug_wnt.info): Likewise.
39765         (gnat_rm.info): Likewise.
39766         (gnat-style.info): Likewise.
39767
39768 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
39769
39770         * Make-lang.in: Replace uses of $(target_alias) with
39771         $(target_noncanonical).
39772         * ada/Makefile.in: Remove unused mention of $(target_alias).
39773
39774 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
39775
39776         * Make-lang.in (ada.info): Replace with ...
39777         (info): ... this.
39778         (ada.dvi): Replace with ...
39779         (dvi): ... this.
39780
39781 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
39782
39783         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
39784         initialize dconstp5 and dconstmp5.
39785
39786 2003-09-28  Richard Henderson  <rth@redhat.com>
39787
39788         * trans.c (tree_transform): Update call to expand_asm_operands.
39789
39790 2003-09-21  Richard Henderson  <rth@redhat.com>
39791
39792         * trans.c, utils.c: Revert.
39793
39794 2003-09-21  Richard Henderson  <rth@redhat.com>
39795
39796         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
39797         change to const.
39798
39799 2003-09-04  Michael Matz  <matz@suse.de>
39800
39801         * misc.c: Include "target.h".
39802         * Make-lang.in (misc.o): Add dependency on target.h.
39803
39804 2003-09-03  DJ Delorie  <dj@redhat.com>
39805
39806         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
39807         hook.
39808
39809 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
39810
39811         * Makefile.in: Update substitutions to match changes to
39812         configure.  Use include directives instead of @-insertions
39813         to read in host and target fragments.  Add a rule to
39814         regenerate ada/Makefile.
39815
39816 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
39817
39818         * lang-options.h: Remove.
39819         * lang.opt: Add help text.
39820
39821 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
39822
39823         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
39824         calls.
39825
39826 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
39827
39828         * misc.c (gnat_handle_option): Don't handle filenames.
39829
39830 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
39831
39832         * Make-lang.in: Replace PWD with PWD_COMMAND.
39833         * Makefile.adalib: Likewise.
39834         * Makefile.in: Likewise.
39835
39836 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
39837
39838         * misc.c (gnat_argv): Revert last change.
39839         (gnat_handle_option, gnat_init_options): Copy arguments.
39840
39841 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
39842
39843         * misc.c (gnat_argv): Make const.
39844
39845 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
39846
39847         * misc.c (save_argc, save_argv): Keep non-static!
39848
39849 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
39850
39851         * misc.c (save_argc, save_argv): Make static.
39852         (gnat_init_options): New prototype.
39853         (gnat_init_options): Update.
39854
39855 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
39856
39857         * gnat_ug.texi: Remove unlikely characters from @vars.
39858         * gnat_ug_vms.texi: Regenerate.
39859
39860 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
39861
39862         * misc.c (record_code_position): Adjust emit_note call.
39863
39864 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
39865
39866         * misc.c (gnat_handle_option): Don't check for missing arguments.
39867
39868 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
39869
39870         * utils.c (end_subprog_body): Adjust expand_function_end call.
39871
39872 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
39873
39874         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
39875         Bind_Main_Program.
39876
39877 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
39878
39879         * lang.opt: Declare Ada.
39880         * misc.c (gnat_init_options): Update.
39881
39882 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
39883
39884         * utils.c (begin_subprog_body): Adjust init_function_start call.
39885
39886 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
39887
39888         * Make-lang.in: Update to use options.c and options.h.
39889         * misc.c: Include options.h not aoptions.h.
39890         (gnat_handle_option): Abort on unrecognized switch.
39891         (gnat_init_options): Request Ada switches.
39892
39893 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
39894
39895         * lang.opt: Add -Wall.
39896         * misc.c (gnat_handle_option): Handle it.
39897
39898 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
39899
39900         * misc.c (gnat_handle_option): Fix warnings.
39901
39902 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
39903
39904         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
39905
39906 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
39907
39908         * Make-lang.in: Update to handle command-line options.
39909         * lang.opt: New file.
39910         * misc.c: Include aoptions.h.
39911         (cl_options_count, cl_options): Remove.
39912         (gnat_handle_option): New.
39913         (gnat_decode_option): Remove.
39914         (LANG_HOOKS_DECODE_OPTION): Remove.
39915         (LANG_HOOKS_HANDLE_OPTION): Override.
39916
39917 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
39918
39919         * init.c, misc.c, trans.c, utils.c: Remove dead code.
39920
39921 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
39922
39923         * Makefile.in: Replace "host_canonical" with "host" for autoconf
39924         substitution.
39925
39926 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
39927
39928         * Make-lang.in: Update.
39929         * misc.c: Include opts.h. Define cl_options_count and cl_options.
39930
39931 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
39932
39933         * misc.c (gnat_init_options): Update.
39934
39935 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
39936
39937         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
39938         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
39939         __attribute__ ((__unused__)).
39940
39941 2003-06-05  Jan Hubicka  <jh@suse.cz>
39942
39943         * Make-lang.in:  Add support for stageprofile and stagefeedback
39944
39945 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
39946
39947         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
39948         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
39949
39950 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
39951
39952         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
39953         Remove non-VMS directive.
39954         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
39955         alternatives.
39956         (Examples of gnatls Usage): Remove VMS alternative.
39957
39958 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
39959
39960         PR ada/9953
39961         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
39962         and turn ZCX_By_Default back to False since the underlying support
39963         is not quite there yet.
39964
39965 2003-06-01  Andreas Jaeger  <aj@suse.de>
39966
39967         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
39968         and ROUND_TYPE_SIZE_UNIT.
39969
39970 2003-05-22   Geert Bosch  <bosch@gnat.com>
39971
39972         * gnat_rm.texi : Remove reference to Ada Core Technologies.
39973
39974 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
39975
39976         * trans.c (tree_transform): Use location_t and input_location
39977         directly.
39978         (build_unit_elab): Likewise.
39979         * utils.c (create_label_decl): Likewise.
39980
39981 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
39982
39983         * trans.c (tree_transform, build_unit_elab,
39984         set_lineno): Rename lineno to input_line.
39985         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
39986         end_subprog_body): Likewise.
39987         * utils2.c (build_call_raise): Likewise.
39988
39989 2003-05-01  Laurent Guerby  <guerby@acm.org>
39990
39991         PR ada/10546
39992         * 5iosinte.ads: Increase pthread_cond_t size to match recent
39993         LinuxThread and NPTL version, merge from ACT.
39994
39995 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
39996
39997         * utils.c (convert): No need to clear TREE_CST_RTL.
39998
39999 2003-04-23   Geert Bosch  <bosch@gnat.com>
40000
40001         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40002         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40003         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40004         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40005         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40006         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40007         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40008         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40009         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40010         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40011         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40012         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40013         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40014         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40015         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40016         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40017         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40018         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40019         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40020         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40021         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40022         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40023         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40024         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40025         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40026         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40027         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40028         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40029         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40030         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40031         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40032         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40033         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40034         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40035         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40036         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40037         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40038         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40039         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40040         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40041         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40042         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40043         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40044         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40045         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40046         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40047         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40048         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40049         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40050         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40051         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40052         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40053         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40054         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40055         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40056         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40057         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40058         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40059         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40060         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40061         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40062         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40063         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40064         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40065         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40066         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40067         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40068         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40069         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40070         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40071         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40072         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40073         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40074         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40075         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40076         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40077         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40078         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40079         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40080         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40081         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40082         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40083         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40084         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40085         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40086         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40087         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40088         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40089         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40090         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40091         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40092         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40093         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40094         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40095         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40096         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40097         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40098         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40099         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40100         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40101         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40102         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40103         ali.adb, ali.ads, alloc.ads, argv.c,
40104         atree.adb, atree.ads, atree.h, aux-io.c,
40105         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40106         binde.adb, binde.ads, binderr.adb, binderr.ads,
40107         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40108         butil.adb, butil.ads, cal.c, calendar.ads,
40109         casing.adb, casing.ads, ceinfo.adb, checks.adb,
40110         checks.ads, cio.c, comperr.adb, comperr.ads,
40111         config-lang.in, csets.adb, csets.ads, csinfo.adb,
40112         cstand.adb, cstand.ads, cuintp.c, debug.adb,
40113         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40114         dec-io.ads, dec.ads, deftarg.c, directio.ads,
40115         einfo.adb, einfo.ads, elists.adb, elists.ads,
40116         elists.h, errno.c, errout.adb, errout.ads,
40117         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40118         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40119         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40120         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40121         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40122         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40123         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40124         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40125         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40126         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40127         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40128         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40129         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40130         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40131         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40132         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40133         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40134         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40135         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40136         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40137         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40138         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40139         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40140         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40141         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40142         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40143         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40144         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40145         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40146         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40147         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40148         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40149         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40150         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40151         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40152         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40153         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40154         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40155         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40156         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40157         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40158         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40159         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40160         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40161         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40162         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40163         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40164         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40165         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40166         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40167         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40168         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40169         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40170         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40171         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40172         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40173         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40174         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40175         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40176         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40177         lib.adb, lib.ads, live.adb, live.ads,
40178         machcode.ads, make.adb, make.ads, makeusg.adb,
40179         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40180         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40181         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40182         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40183         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40184         mlib.ads, namet.adb, namet.ads, nlists.adb,
40185         nlists.ads, opt.adb, opt.ads, osint-b.adb,
40186         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40187         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40188         osint.ads, output.adb, output.ads, par-ch10.adb,
40189         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40190         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40191         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40192         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40193         par-tchk.adb, par-util.adb, par.adb, par.ads,
40194         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40195         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40196         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40197         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40198         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40199         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40200         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40201         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40202         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40203         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40204         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40205         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40206         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40207         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40208         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40209         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40210         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40211         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40212         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40213         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40214         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40215         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40216         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40217         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40218         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40219         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40220         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40221         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40222         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40223         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40224         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40225         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40226         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40227         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40228         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40229         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40230         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40231         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40232         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40233         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40234         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40235         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40236         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40237         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40238         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40239         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40240         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40241         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40242         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40243         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40244         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40245         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40246         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40247         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40248         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40249         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40250         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40251         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40252         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40253         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40254         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40255         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40256         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40257         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40258         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40259         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40260         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40261         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40262         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40263         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40264         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40265         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40266         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40267         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40268         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40269         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40270         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40271         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40272         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40273         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40274         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40275         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40276         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40277         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40278         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40279         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40280         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40281         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40282         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40283         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40284         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40285         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40286         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40287         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40288         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40289         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40290         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40291         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40292         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40293         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40294         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40295         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40296         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40297         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40298         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40299         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40300         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40301         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40302         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40303         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40304         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40305         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40306         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40307         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40308         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40309         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40310         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40311         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40312         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40313         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40314         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40315         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40316         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40317         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40318         snames.ads, sprint.adb, sprint.ads, stand.adb,
40319         stand.ads, stringt.adb, stringt.ads, style.adb,
40320         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40321         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40322         switch-m.ads, switch.adb, switch.ads, system.ads,
40323         table.adb, table.ads, targparm.adb, targparm.ads,
40324         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40325         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40326         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40327         ttypef.ads, ttypes.ads, types.adb, types.ads,
40328         uintp.adb, uintp.ads, uname.adb, uname.ads,
40329         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40330         usage.adb, usage.ads, validsw.adb, validsw.ads,
40331         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40332         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40333         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40334         formatting and other trivial changes from ACT.
40335
40336 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
40337
40338         * gigi.h, utils2.c (build_constructor):
40339         Rename gnat_build_constructor. Use build_constructor.
40340         * decl.c (gnat_to_gnu_entity)
40341         * trans.c (tree_transform, pos_to_constructor, extract_values)
40342         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40343         (unchecked_convert)
40344         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40345         (fill_vms_descriptor):
40346         Update to match.
40347
40348 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
40349
40350         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40351         * misc.c (gnat_tree_size): New function.
40352         (LANG_HOOKS_TREE_SIZE): Override.
40353
40354 2003-04-03  Jason Merrill  <jason@redhat.com>
40355
40356         * misc.c (gnat_adjust_rli): #if 0.
40357
40358 2003-03-31   Geert Bosch  <bosch@gnat.com>
40359
40360         PR ada/10020
40361         * link.c : Fix misspelled "const" keyword
40362
40363 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
40364
40365         PR c++/7086
40366         * utils2.c: Adjust calls to put_var_into_stack.
40367
40368 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
40369
40370         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40371
40372 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
40373
40374         * misc.c (gnat_init): Update for new prototype.
40375
40376 2003-03-05  Olivier Hainque  <hainque@gnat.com>
40377
40378         ada/9961
40379         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40380         warning, and fix return type for the IN_RTS && !SJLJ case.
40381
40382 2003-03-04  Tom Tromey  <tromey@redhat.com>
40383
40384         * Make-lang.in (ada.tags): New target.
40385
40386 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
40387
40388         ada/9911
40389         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40390         wrapper, which name remains constant whatever underlying GCC
40391         scheme.
40392
40393         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40394         the stable interface needed for a-except.
40395
40396 2003-03-02  Andreas Jaeger  <aj@suse.de>
40397
40398         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40399         gnat_ug_wnt.texi: Regenerate.
40400
40401 2003-03-02  Laurent Guerby  <guerby@acm.org>
40402
40403         * Makefile.in (install-gnatlib): Match previous change there
40404         so it works.
40405
40406 2003-02-28  Andreas Schwab  <schwab@suse.de>
40407
40408         * Make-lang.in (install-gnatlib): Change to ada directory before
40409         running make instead of using ada/Makefile directly.
40410
40411 2003-02-18  Ben Elliston  <bje@redhat.com>
40412
40413         Part of PR ada/9406
40414         * gnat_ug.texi (Binder output file): Grammar fix.
40415
40416 2003-02-18  Ben Elliston  <bje@redhat.com>
40417
40418         PR other/7350
40419         * 5qtaprop.adb (Sleep): Fix typo in comment.
40420
40421 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
40422
40423         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40424         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40425         gnat_ug_wnt.texi: Regenerate.
40426
40427 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40428
40429         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40430         be created if necessary.
40431         (ada.install-common): Let $(DESTDIR)$(bindir) be created
40432         if necessary.  Remove erroneous and redundant gnatchop
40433         installation commands.  Test for gnatdll before attempting
40434         to install it.
40435         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40436         and gnatdll from all plausible locations.
40437
40438 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
40439
40440         * utils2.c (build_unary_op): Don't check flag_volatile.
40441         * gnat_ug.texi: Remove -fvolatile from example.
40442         * gnat_ug_vxw.texi: Likewise.
40443
40444 2003-01-29  Laurent Guerby  <guerby@acm.org>
40445
40446         PR ada/8344
40447         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40448         * Makefile.in: match previous change.
40449         * Make-lang.in: match previous change.
40450
40451 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
40452
40453         * 5rosinte.ads: Add SIGXCPU.
40454         * 5rtpopsp.adb: New file.
40455         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40456         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40457         specific file 5rtpopsp.adb.
40458         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
40459         is likely needed for all newlib targets.
40460         * init.c: Add RTEMS specific version of __gnat_initialize().
40461
40462 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40463
40464         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40465
40466 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40467
40468         * init.c (__gnat_error_handler): Make msg const.
40469
40470         * gmem.c (convert_addresses): Move declaration ...
40471         * adaint.h: ... here.
40472         * adaint.c (convert_addresses): Adapt addrs type to match
40473         prototype.
40474
40475         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40476
40477 2003-01-24  Andreas Schwab  <schwab@suse.de>
40478
40479         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40480         size_t to avoid warning.
40481
40482 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
40483
40484         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
40485
40486 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
40487
40488         * gnat_rm.texi: Remove RCS version number.
40489
40490         * ada-tree.h (union lang_tree_node): Add chain_next option.
40491
40492 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
40493
40494         * Make-lang.in (ada.install-info, ada.install-common,
40495         ada.uninstall): Prepend $(DESTDIR) to the destination
40496         directory in all (un)installation commands.
40497         * Makefile.in (install-gnatlib, install-rts): Ditto.
40498
40499 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
40500
40501         * gnat_rm.texi, gnat_ug.texi: Use @copying.
40502         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40503         gnat_ug_wnt.texi: Regenerate.
40504
40505 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
40506
40507         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
40508         only.
40509         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40510         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40511         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40512         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40513         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40514         $(srcdir)/doc/include/gcc-common.texi.
40515
40516 2002-12-15   Geert Bosch  <bosch@gnat.com>
40517
40518         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40519
40520 2002-12-14   Geert Bosch  <bosch@gnat.com>
40521
40522         PR ada/5690
40523         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40524         case of a body created for a Renaming_As_Body, on which
40525         conformance checks are not performed.
40526
40527 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
40528
40529         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40530         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40531         not already included.
40532         * Make-lang.in: Update dependencies.
40533
40534 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
40535         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
40536         solution to buffer overflow bug on GNU/Linux.
40537
40538 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40539
40540         PR ada/5856
40541         PR ada/6919
40542         * bindgen.adb: Remove all references to Public_Version.
40543         * comperr.adb: Remove all references to Public_Version and
40544         GNATPRO_Version; correct bug reporting instructions.
40545         * comperr.ads: Change to match bug box.
40546         * gnatvsn.ads: Remove all references to Public version and
40547         GNATPRO version.
40548
40549 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
40550
40551         PR ada/6919
40552         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40553         GNU/Linux.
40554
40555         PR ada/6558
40556         * config-lang.in: Remove diff_excludes.
40557
40558 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
40559
40560         PR ada/8358
40561         * trans.c (gnu_pending_elaboration_lists): New GC root.
40562         (build_unit_elab): Use..
40563
40564 2002-10-30   Geert Bosch  <bosch@gnat.com>
40565
40566         PR ada/6558
40567         * misc.c : Include optabs.h
40568
40569         * Make-lang.in (misc.o): Add dependency on optabs.h
40570
40571 2002-10-29   Geert Bosch  <bosch@gnat.com>
40572
40573         PR ada/6558
40574         * Make-lang.in (gnatbind): Depend on CONFIG_H
40575
40576 2002-10-29  Geert bosch  <bosch@gnat.com>
40577
40578         PR ada/6558
40579         * misc.c: Unrevert misc.c (1.13)
40580
40581 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
40582
40583         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40584         maintainership comments.
40585
40586 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
40587
40588         PR ada/5904
40589         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40590         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40591         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40592         7staprop.adb: Correct statements in comments about
40593         maintainership of GNAT.
40594
40595         PR ada/5904
40596         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40597         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40598         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40599         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40600         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40601         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40602         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
40603         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40604         comments about maintainership of GNAT.
40605
40606         PR ada/6919 (forward port of patch for PR ada/5904)
40607         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40608         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40609         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40610         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40611         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40612         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40613         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40614         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40615         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40616         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40617         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40618         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40619         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40620         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40621         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40622         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40623         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40624         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40625         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40626         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40627         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40628         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40629         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40630         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40631         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40632         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40633         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40634         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40635         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40636         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40637         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40638         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40639         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40640         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40641         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40642         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40643         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40644         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40645         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40646         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40647         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40648         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40649         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40650         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40651         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40652         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40653         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40654         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40655         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40656         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40657         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40658         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40659         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40660         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40661         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40662         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40663         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40664         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40665         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40666         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40667         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40668         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40669         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40670         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40671         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40672         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40673         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40674         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40675         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40676         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40677         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40678         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40679         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40680         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40681         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40682         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40683         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40684         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40685         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40686         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40687         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40688         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40689         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40690         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40691         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40692         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40693         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40694         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40695         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
40696         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
40697         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
40698         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
40699         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
40700         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
40701         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
40702         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
40703         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
40704         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
40705         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
40706         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
40707         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
40708         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
40709         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
40710         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
40711         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
40712         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
40713         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
40714         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
40715         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
40716         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
40717         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
40718         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
40719         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
40720         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
40721         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
40722         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
40723         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
40724         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
40725         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
40726         par-endh.adb par-labl.adb par-load.adb par-prag.adb
40727         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
40728         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
40729         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
40730         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
40731         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
40732         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
40733         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
40734         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
40735         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
40736         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
40737         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
40738         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
40739         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
40740         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
40741         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
40742         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
40743         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
40744         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
40745         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
40746         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
40747         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
40748         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
40749         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
40750         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
40751         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
40752         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
40753         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
40754         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
40755         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
40756         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
40757         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
40758         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
40759         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
40760         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
40761         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
40762         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
40763         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
40764         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
40765         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
40766         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
40767         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
40768         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
40769         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
40770         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
40771         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
40772         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
40773         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
40774         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
40775         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
40776         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
40777         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
40778         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
40779         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
40780         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
40781         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
40782         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
40783         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
40784         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
40785         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
40786         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
40787         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
40788         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
40789         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
40790         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
40791         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
40792         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
40793         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
40794         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
40795         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
40796         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
40797         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
40798         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
40799         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
40800         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
40801         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
40802         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
40803         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
40804         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
40805         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
40806         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
40807         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
40808         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
40809         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
40810         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
40811         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
40812         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
40813         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
40814         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
40815         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
40816         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
40817         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
40818         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
40819         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
40820         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
40821         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
40822         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
40823         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
40824         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
40825         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
40826         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
40827         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
40828         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
40829         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
40830         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
40831         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
40832         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
40833         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
40834         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
40835         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
40836         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
40837         stringt.ads stringt.h style.adb style.ads stylesw.adb
40838         stylesw.ads switch.adb switch.ads sysdep.c system.ads
40839         table.adb table.ads targparm.adb targparm.ads targtyps.c
40840         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
40841         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
40842         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
40843         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
40844         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
40845         usage.ads utils.c utils2.c validsw.adb validsw.ads
40846         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
40847         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
40848         xtreeprs.adb: Correct statements in comments about maintainership
40849         of GNAT.
40850
40851 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
40852
40853         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
40854         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
40855         * gnatvsn.ads: Gnat_Version_String is now a function.
40856         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
40857         copy the C version_string into a String and return it.
40858         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
40859         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
40860         Remove pragma Ident (Gnat_Version_String).  If this was the
40861         sole use of package Gnatvsn, remove the with statement too.
40862         * gnat1drv.adb: Tweak -gnatv output.
40863
40864 2002-09-17  Richard Henderson  <rth@redhat.com>
40865
40866         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
40867         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
40868         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
40869         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
40870         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
40871         and real_2expN instead of a loop.
40872         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
40873         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
40874
40875 2002-08-25  Andre Leis  <a.leis@gmx.net>
40876             David Billinghurst  <David.Billinghurst@riotinto.com>
40877
40878         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
40879
40880 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40881
40882         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
40883         Remove $(CONFIG_H) dependency.
40884
40885 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
40886
40887         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
40888
40889 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40890
40891         * adadecode.c (ada_demangle): Use xstrdup in lieu of
40892         xmalloc/strcpy.
40893         * misc.c (gnat_decode_option): Likewise.
40894
40895 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
40896
40897         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
40898         function approach did not work well because of a side effect (the
40899         function call could reallocate the table which was being indexed
40900         using its result). Fixes ada/4851. [RESURRECTED]
40901
40902 2002-07-01  Roger Sayle  <roger@eyesopen.com>
40903
40904         * ada/utils.c (builtin_function): Accept an additional parameter.
40905
40906 2002-06-28  Andreas Jaeger  <aj@suse.de>
40907
40908         PR ada/7144
40909         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
40910         <adi@thur.de>.
40911
40912 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40913
40914         * Makefile.in (SHELL): Set to @SHELL@.
40915
40916 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40917
40918         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
40919         array size calculation.
40920
40921 2002-06-04  Andreas Jaeger  <aj@suse.de>
40922
40923         * Make-lang.in (gnatbind): Readd rule that has been lost in last
40924         patch.
40925
40926 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
40927
40928         Merge from pch-branch:
40929
40930         * config-lang.in (gtfiles): Add ada-tree.h.
40931         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
40932         (SET_TYPE_MODULUS): New.
40933         (SET_TYPE_INDEX): New.
40934         (SET_TYPE_DIGITS_VALUE): New.
40935         (SET_TYPE_RM_SIZE): New.
40936         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
40937         (SET_TYPE_ADA_SIZE): New.
40938         (SET_TYPE_ACTUAL_BOUNDS): New.
40939         (SET_DECL_CONST_CORRESPONDING_VAR): New.
40940         (SET_DECL_ORIGINAL_FIELD): New.
40941         (TREE_LOOP_ID): Correct typo.
40942         * decl.c: Use new macros.
40943         * utils.c: Include debug.h, use new macros.
40944         * utils2.c: Use new macros.
40945
40946         * ada-tree.h: Update all macros for new tree description.
40947         (struct tree_loop_id): New.
40948         (union lang_tree_node): New.
40949         (struct lang_decl): New.
40950         (struct lang_type): New.
40951         * misc.c (gnat_mark_tree): Delete.
40952         (LANG_HOOKS_MARK_TREE): Delete.
40953         * trans.c (tree_transform): No longer any need to cast
40954         for TREE_LOOP_ID.
40955
40956         * utils.c (struct language_function): New dummy structure.
40957
40958         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
40959         (misc.o): Likewise.
40960         (utils.o): Likewise; also gtype-ada.h.
40961         * Make-lang.in (gnat1): Add dependency on s-gtype.
40962         (gnatbind): Add dependency on $(CONFIG_H).
40963         * utils.c: Correct last #include.
40964         (stuct e_stack): Remove unnecessary 'static'.
40965         (mark_e_stack): Remove unused prototype.
40966
40967         * scn-nlit.adb: Remove whitespace after version number to
40968         keep lines under 80 chars.
40969         * snames.adb: Likewise.
40970         * treepr.ads: Likewise.
40971
40972         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
40973         (misc.o): Likewise.
40974         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
40975         * config-lang.in (gtfiles): New.
40976         * decl.c: Use gengtype for roots.
40977         * gigi.h: Use gengtype for roots.
40978         * trans.c: Use gengtype for roots.
40979         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
40980
40981 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
40982
40983         * misc.c (gnat_init): Adjust setting of internal_error_function.
40984
40985 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
40986
40987         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
40988         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40989         gnat_ug_wnt.texi: Regenerate.
40990
40991 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
40992
40993         * 5ntaprop.adb (with System.OS_Primitives): Remove.
40994
40995         * cstreams.c (max_path_len): Move from here ...
40996         * adaint.c (__gnat_max_path_len): ... to here.
40997         * adaint.c (__gnat_max_path_len): Declare.
40998         * g-dirope.adb (Max_Path): Adjust.
40999         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41000         * i-cstrea.ads (max_path_len): Adjust.
41001         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41002         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41003
41004         * Makefile.in, Make-lang.in: Documentation is now built in
41005         Make-lang.in.  Store Info and generated Texinfo files in the
41006         source directory.
41007         * gnat_ug.texi: Remove CVS keywords, correct version number.
41008         Set file name correctly.
41009
41010         * gnat_ug_*.texi: Add.
41011         * .cvsignore: Ignore generated Texinfo files.
41012
41013 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
41014
41015         * ada.h: Add MI guard macro.
41016         (SUBTYPE): Define constants with an anonymous enum, not static
41017         const variables.
41018         (IN): Cast constants to appropriate type before use.
41019
41020 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
41021
41022         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41023         (experimental)".
41024
41025 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41026
41027         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41028         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41029         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41030         (ALL_ADA_CFLAGS): Likewise.
41031         (ADA_INCLUDES): Likewise.
41032         Adapt for new working dir.
41033         (GNATBIND): Use Makefile.in version.
41034         (.SUFFIXES): Copy from Makefile.in.
41035         (ada-warn): Define.
41036         (.adb.o, .ads.o): Copy from Makefile.in.
41037         Added $(OUTPUT_OPTION).
41038         (GNAT1_C_OBJS): Moved from Makefile.in.
41039         Prefix with ada subdir.
41040         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41041         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41042         Adapt for new working dir.
41043         (EXTRA_GNATBIND_OBJS): Likewise.
41044         (ADA_BACKEND): Moved from Makefile.in.
41045         Renamed to avoid conflict with global BACKEND.
41046         Use that one.
41047         (TARGET_ADA_SRCS): Moved from Makefile.in.
41048         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41049         Use ADA_BACKEND.
41050         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41051         (ada_extra_files): Moved from Makefile.in.
41052         Prefix with ada subdir.
41053         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41054         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41055         (ada/nmake.ads): Likewise.
41056         (update-sources): Moved from Makefile.in.
41057         Prefix with ada subdir.
41058         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41059         (ADA_TREE_H): Likewise.
41060         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41061         (ada/memtrack.o): Likewise.
41062         (ada/adadecode.o): Likewise.
41063         Update dependencies.
41064         (ada/adaint.o): New.
41065         (ada/argv.o): Moved from Makefile.in.
41066         Prefix with ada subdir.
41067         Update dependencies.
41068         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41069         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41070         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41071         Prefix with ada subdir.
41072         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41073         (GNAT DEPENDENCIES): Regenerate.
41074         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41075         toplevel Makefile.in.
41076         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41077         (TARGET_ADA_SRCS): Removed.
41078         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41079         (GNATBIND_OBJS): Likewise.
41080         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41081         (BACKEND): Removed.
41082         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41083         (TREE_H): Likewise.
41084         (ada_extra_files): Likewise.
41085         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41086         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41087         (update-sources): Likewise.
41088         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41089         (ADA_TREE_H): Likewise.
41090         (adadecoce.o): Likewise.
41091         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41092         (GNAT DEPENDENCIES): Likewise.
41093
41094 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41095
41096         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41097         * Makefile.in: Likewise.
41098
41099 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41100
41101         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41102         Restore $(CONFIG_H) and prefix.o dependencies.
41103         (ada.stage[1-4]): Depend on stage?-start.
41104
41105         * Makefile.in (b_gnatb.c): Depend on interfac.o.
41106
41107 2002-05-02  Jim Wilson  <wilson@redhat.com>
41108
41109         * utils.c (finish_record_type): Change record_size to record_type.
41110
41111 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
41112
41113         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41114         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41115         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41116
41117 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41118
41119         * misc.c (gnat_parse_file): Update.
41120
41121 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41122
41123         * misc.c (gnat_init): Don't set lang_attribute_common.
41124
41125 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
41126
41127         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41128
41129 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
41130
41131         * gnat_ug.texi: New file.
41132
41133         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
41134         instead of gfdl.texi
41135
41136         * xgnatug.adb, ug_words: New files.
41137
41138         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
41139         gnat_rm and gnat-style manuals.
41140
41141 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
41142
41143         * gigi.h (incomplete_type_error): Remove.
41144         * utils.c (incomplete_type_error): Remove.
41145
41146 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
41147
41148         * trans.c (tree_transform): Add has_scope argument to
41149         expand_start_stmt_expr.
41150
41151 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41152
41153         * gigi.h (truthvalue_conversion): Rename.
41154         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41155         * trans.c (tree_transform): Update.
41156         * utils2.c (truthvalue_conversion): Rename, update.
41157         (build_binary_op, build_unary_op): Update.
41158
41159 2002-04-04  Laurent Guerby  <guerby@acm.org>
41160
41161         * make.adb: Implement -margs, remove restriction about file name placement.
41162         * makeusg.adb: Documentation update.
41163         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41164         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41165
41166 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41167
41168         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41169         (builtin_function): Similarly.
41170
41171 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41172
41173         * decl.c (gnat_to_gnu_entity): Update.
41174         * gigi.h (mark_addressable): Rename.
41175         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41176         * trans.c (tree_transform): Update.
41177         * utils.c (create_var_decl): Update.
41178         * util2.c (build_binary_op, build_unary_op,
41179         fill_vms_descriptor): Update.
41180         (mark_addressable): Rename, update.
41181
41182 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41183
41184         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41185         Rename.
41186         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41187         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41188         * trans.c (tree_transform, convert_with_check): Update.
41189         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41190         Rename.
41191
41192 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
41193
41194         * gigi.h (finish_incomplete_decl): Rename.
41195         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41196         * utils.c (gnat_init_decl_processing): Don't set hook.
41197         (finish_incomplete_decl): Rename.
41198
41199 2002-03-29  Andreas Schwab  <schwab@suse.de>
41200
41201         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41202         directory.
41203
41204 2001-03-28  Robert Dewar  <dewar@gnat.com>
41205
41206         * checks.ads:
41207         (Remove_Checks): New procedure
41208
41209         * checks.adb:
41210         (Remove_Checks): New procedure
41211
41212         * exp_util.adb:
41213         Use new Duplicate_Subexpr functions
41214         (Duplicate_Subexpr_No_Checks): New procedure
41215         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41216         (Duplicate_Subexpr): Restore original form (checks duplicated)
41217         (Duplicate_Subexpr): Call Remove_Checks
41218
41219         * exp_util.ads:
41220         (Duplicate_Subexpr_No_Checks): New procedure
41221         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41222         Add 2002 to copyright notice
41223
41224         * sem_util.adb: Use new Duplicate_Subexpr functions
41225
41226         * sem_eval.adb:
41227         (Eval_Indexed_Component): This is the place to call
41228         Constant_Array_Ref and to replace the value. We simply merge
41229         the code of this function in here, since it is now no longer
41230         used elsewhere. This fixes the problem of the back end not
41231         realizing we were clever enough to see that this was
41232         constant.
41233         (Expr_Val): Remove call to Constant_Array_Ref
41234         (Expr_Rep_Val): Remove call to Constant_Array_Ref
41235         Minor reformatting
41236         (Constant_Array_Ref): Deal with string literals (patch
41237         suggested by Zack Weinberg on the gcc list)
41238
41239 2001-03-28  Ed Schonberg  <schonber@gnat.com>
41240
41241         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41242         Duplicate_Subexpr_Move_Checks.
41243
41244         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41245         Duplicate_Subexpr_Move_Checks.
41246
41247         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41248         value of array exists before retrieving it (it may a private
41249         protected component in a function).
41250
41251 2002-03-28   Geert Bosch  <bosch@gnat.com>
41252
41253         * prj-pp.adb : New file.
41254
41255         * prj-pp.ads : New file.
41256
41257 2002-03-28  Andreas Jaeger  <aj@suse.de>
41258
41259         * Makefile.in (stamp-sdefault): Fix path for Makefile.
41260
41261 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41262
41263         * misc.c (gnat_expand_expr): Move prototype.
41264
41265 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41266
41267         * misc.c (insert_default_attributes): Remove.
41268
41269 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41270
41271         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41272         (gnat_init): Don't set hook.
41273         (gnat_expand_expr): Fix prototype.
41274
41275 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41276
41277         * misc.c (ggc_p): Remove.
41278
41279 2002-03-27  Geert Bosch  <bosch@gnat.com>
41280
41281         * prj-makr.ads, prj-makr.adb : New files.
41282
41283 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
41284
41285         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41286         (lang_mark_tree): Make static, rename.
41287
41288 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41289
41290         * misc.c (maybe_build_cleanup): Remove.
41291
41292 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41293
41294         * gigi.h (yyparse): Remove.
41295
41296 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
41297
41298         From Ben Brosgol  <brosgol@gnat.com>
41299         * gnat_rm.texi: Sync with ACT version.
41300
41301 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
41302
41303         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41304         (gnat_init): Remove old hook.
41305
41306 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
41307
41308         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41309         (yyparse): Rename gnat_parse_file.
41310
41311 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
41312
41313         Delete all lines containing "$Revision:".
41314         * xeinfo.adb: Don't look for revision numbers.
41315         * xnmake.adb: Likewise.
41316         * xsinfo.adb: Likewise.
41317         * xsnames.adb: Likewise.
41318         * xtreeprs.adb: Likewise.
41319
41320 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41321
41322         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41323         gnat_tree_code_name): Delete.
41324         (tree_code_type, tree_code_length, tree_code_name): Define.
41325         (gnat_init): Don't try to copy into the various tree_code
41326         arrays.
41327
41328 2002-03-11  Richard Henderson  <rth@redhat.com>
41329
41330         * Makefile.in (.NOTPARALLEL): Add fake tag.
41331
41332 2002-03-07  Geert Bosch  <bosch@gnat.com>
41333
41334         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41335         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41336         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
41337         switch-m.adb, switch-m.ads : New files.
41338
41339 2002-03-07  Geert Bosch  <bosch@gnat.com>
41340
41341         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41342         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41343         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41344         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41345         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41346         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41347         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41348         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41349         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41350         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41351         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41352         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41353         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41354         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41355         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41356         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41357         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41358         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41359         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41360         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41361         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41362         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41363         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41364         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41365         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41366         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41367         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41368         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41369         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41370         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41371         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41372         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41373         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41374         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41375         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41376         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41377         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41378         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41379         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41380         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41381         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41382         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41383         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41384         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41385         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41386         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41387         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41388         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41389         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41390         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41391         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41392         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41393         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41394         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41395         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41396         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41397         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41398         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41399         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41400         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41401         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41402         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41403         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41404         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41405         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41406         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41407         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41408         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41409         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41410         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41411         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41412         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41413         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41414         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41415         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41416         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41417         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41418         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41419         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41420         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41421         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41422         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41423         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41424         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41425         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41426         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41427         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41428         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41429         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41430         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41431         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41432         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41433         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41434         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41435         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41436         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41437         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41438
41439         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41440         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41441         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41442         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41443
41444         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41445         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41446
41447         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41448         to mdll-fil.ad[bs] and mdll-util.ad[bs]
41449
41450         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41451         from mdllfile.ad[bs] and mdlltool.ad[bs]
41452
41453 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41454
41455         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41456         lieu of explicit sizeof/sizeof.
41457
41458 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41459
41460         * misc.c (copy_lang_decl): Remove.
41461
41462 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
41463
41464         * misc.c: Delete traditional-mode-related code copied from the
41465         C front end but not used, or used only to permit the compiler
41466         to link.
41467
41468 2002-02-07  Richard Henderson  <rth@redhat.com>
41469
41470         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41471         * adaint.h (__gnat_to_gm_time): Update prototype.
41472
41473 2002-01-30  Richard Henderson  <rth@redhat.com>
41474
41475         * trans.c (tree_transform) [N_Loop_Statement]: Use
41476         expand_exit_loop_top_cond.
41477
41478 2001-12-23  Richard Henderson  <rth@redhat.com>
41479
41480         * utils.c (end_subprog_body): Push GC context around
41481         rest_of_compilation for nested functions.
41482
41483 2001-12-23  Richard Henderson  <rth@redhat.com>
41484
41485         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41486
41487 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
41488
41489         * gnat-style.texi (Declarations and Types): Remove ancient style
41490         rule which was mandated by code generation issues.
41491
41492         * gnat-style.texi (header): Add @dircategory, @direntry.
41493         (title page): Remove date.
41494         (general) Add @./@: where approriate, and two spaces after the
41495         full stop at the end of a sentence.  Use @samp markup when
41496         referring concrete lexical entities (keywords, attribute names
41497         etc.), and @syntax for ARM grammar elements. Use @r for English
41498         text in comments.  Use @emph for emphasis.  Change "if-statements"
41499         etc. to "if statements" (without @samp). Break long lines.  Make
41500         casing of section names consistent.
41501         (Identifiers): Use @samp markup for variable names.
41502         (Comments): Use @samp markup for comment characters. Line-end
41503         comments may follow any Ada code, not just statements.  Fix
41504         misspelling of "Integer" as "integer".
41505         (Loop statements): Do not use variable name "I", use "J".
41506         (Subprogram Declarations): Document alignment.
41507         (Subprogram Bodies, Block statements): Document empty line before
41508         "begin".
41509
41510 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
41511
41512         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41513         function approach did not work well because of a side effect (the
41514         function call could reallocate the table which was being indexed
41515         using its result). Fixes ada/4851.
41516
41517 2001-12-19  Robert Dewar  <dewar@gnat.com>
41518
41519         * bindgen.adb: Minor reformatting
41520
41521         * cstand.adb: Minor reformatting
41522
41523         * fmap.adb: Minor reformatting
41524         Change name from Add for Add_To_File_Map (Add is much too generic)
41525         Change Path_Name_Of to Mapped_Path_Name
41526         Change File_Name_Of to Mapped_File_Name
41527         Fix copyright dates in header
41528
41529         * fmap.ads:
41530         Change name from Add for Add_To_File_Map (Add is much too generic)
41531         Change Path_Name_Of to Mapped_Path_Name
41532         Change File_Name_Of to Mapped_File_Name
41533         Fix copyright dates in header
41534
41535         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
41536         Add use clause for Fmap.
41537
41538         * make.adb: Minor reformatting
41539
41540         * osint.adb: Minor reformatting.  Change of names in Fmap.
41541         Add use clause for Fmap.
41542
41543         * prj-env.adb: Minor reformatting
41544
41545         * prj-env.ads: Minor reformatting
41546
41547         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
41548         error found (there were odd exceptions to this general rule in
41549         -gnatec/-gnatem processing)
41550
41551 2001-12-19  Olivier Hainque  <hainque@gnat.com>
41552
41553         * raise.c (__gnat_eh_personality): Exception handling personality
41554         routine for Ada.  Still in rough state, inspired from the C++ version
41555         and still containing a bunch of debugging artifacts.
41556         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
41557         inspired from the C++ library.
41558
41559         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
41560         exception handling integration.
41561
41562 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41563
41564         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41565         (HIE_SOURCES): Add s-secsta.ad{s,b}.
41566         (HIE_OBJS): Add s-fat*.o
41567         (RAVEN_SOURCES): Remove files that are no longer required. Add
41568         interrupt handling files.
41569         (RAVEN_MOD): Removed, no longer needed.
41570
41571 2001-12-19  Robert Dewar  <dewar@gnat.com>
41572
41573         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41574         Add 2001 to copyright date
41575
41576         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
41577         need to force universal inlining for these cases.
41578
41579 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
41580
41581         * s-taprob.adb: Minor clean ups so that this unit can be used in
41582         Ravenscar HI.
41583
41584         * exp_ch7.adb: Allow use of secondary stack in HI mode.
41585         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
41586
41587 2001-12-19  Vincent Celier  <celier@gnat.com>
41588
41589         * prj-tree.ads (Project_Node_Record): Add comments for components
41590         Pkg_Id and Case_Insensitive.
41591
41592 2001-12-19  Pascal Obry  <obry@gnat.com>
41593
41594         * g-socket.adb: Minor reformatting. Found while reading code.
41595
41596 2001-12-19  Robert Dewar  <dewar@gnat.com>
41597
41598         * prj-tree.ads: Minor reformatting
41599
41600 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
41601
41602         * config-lang.in (diff_excludes): Remove.
41603
41604 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41605
41606         * sem_res.adb (Resolve_Selected_Component): do not generate a
41607         discriminant check if the selected component is a component of
41608         the argument of an initialization procedure.
41609
41610         * trans.c (tree_transform, case of arithmetic operators): If result
41611         type is private, the gnu_type is the base type of the full view,
41612         given that the full view itself may be a subtype.
41613
41614 2001-12-17  Robert Dewar  <dewar@gnat.com>
41615
41616         * sem_res.adb: Minor reformatting
41617
41618         * trans.c (tree_transform, case N_Real_Literal): Add missing third
41619         parameter in call to Machine (unknown horrible effects from this
41620         omission).
41621
41622         * urealp.h: Add definition of Round_Even for call to Machine
41623         Add third parameter for Machine
41624
41625 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41626
41627         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
41628         predefined units in No_Run_Time mode.
41629
41630 2001-12-17  Richard Kenner  <kenner@gnat.com>
41631
41632         * misc.c (insn-codes.h): Now include.
41633
41634 2001-12-17  Olivier Hainque  <hainque@gnat.com>
41635
41636         * a-except.adb: Preparation work for future integration of the GCC 3
41637         exception handling mechanism
41638         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41639         to factorize previous code sequences and make them externally callable,
41640         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41641         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41642         Use the new notification routines.
41643
41644 2001-12-17  Emmanuel Briot  <briot@gnat.com>
41645
41646         * prj-tree.ads (First_Choice_Of): Document the when others case
41647
41648 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41649
41650         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
41651         HI-E mode, in order to support Ravenscar profile properly.
41652
41653         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
41654         mode on 32 bits targets.
41655
41656 2001-12-17  Vincent Celier  <celier@gnat.com>
41657
41658         * fmap.adb: Initial version.
41659
41660         * fmap.ads: Initial version.
41661
41662         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41663         If search is successfully done, add to mapping.
41664
41665         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
41666
41667         * make.adb:
41668         (Gnatmake): Add new local variable Mapping_File_Name.
41669          Create mapping file when using project file(s).
41670          Delete mapping file before exiting.
41671
41672         * opt.ads (Mapping_File_Name): New variable
41673
41674         * osint.adb (Find_File): Use path name found in mapping, if any.
41675
41676         * prj-env.adb (Create_Mapping_File): New procedure
41677
41678         * prj-env.ads (Create_Mapping_File): New procedure.
41679
41680         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
41681         (Mapping_File)
41682
41683         * usage.adb: Add entry for new switch -gnatem.
41684
41685         * Makefile.in: Add dependencies for fmap.o.
41686
41687 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41688
41689         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
41690         is a package instantiation rewritten as a package body.
41691         (Install_Withed_Unit): Undo previous change, now redundant.
41692
41693 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
41694
41695         * layout.adb:
41696         (Compute_Length): Move conversion to Unsigned to callers.
41697         (Get_Max_Size): Convert Len expression to Unsigned after calls to
41698         Compute_Length and Determine_Range.
41699         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
41700         Compute_Length and Determine_Range.
41701         Above changes fix problem with length computation for supernull arrays
41702         where Max (Len, 0) wasn't getting applied due to the Unsigned
41703         conversion used by Compute_Length.
41704
41705 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41706
41707         * rtsfind.ads:
41708         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
41709          System.Secondary_Stack.
41710         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
41711          in HI-E mode.
41712         Remove unused entity RE_Exception_Data.
41713
41714         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
41715
41716         * rident.ads (No_Secondary_Stack): New restriction.
41717
41718 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
41719
41720         * gnat_rm.texi: Fix minor typos. Found while reading the section
41721         regarding "Bit_Order Clauses" that was sent to a customer.
41722         Very interesting documentation!
41723
41724 2001-12-17  Robert Dewar  <dewar@gnat.com>
41725
41726         * sem_case.adb (Choice_Image): Avoid creating improper character
41727         literal names by using the routine Set_Character_Literal_Name. This
41728         fixes bombs in certain error message cases.
41729
41730 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41731
41732         * a-reatim.adb: Minor reformatting.
41733
41734 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41735
41736         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
41737         case where the formal is an extension of another formal in the current
41738         unit or in a parent generic unit.
41739
41740 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
41741
41742         * s-tposen.adb: Update comments.  Minor reformatting.
41743         Minor code clean up.
41744
41745         * s-tarest.adb: Update comments.  Minor code reorganization.
41746
41747 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
41748
41749         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
41750         when Java_VM.
41751
41752 2001-12-17  Robert Dewa  <dewar@gnat.com>
41753
41754         * exp_attr.adb: Minor reformatting
41755
41756 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41757
41758         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
41759         derivations nested within a child unit: verify that the parent
41760         type is declared in an outer scope.
41761
41762 2001-12-17  Robert Dewar  <dewar@gnat.com>
41763
41764         * sem_ch12.adb: Minor reformatting
41765
41766 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41767
41768         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
41769         warning if current unit is a predefined one, from which bodies may
41770         have been deleted.
41771
41772 2001-12-17  Robert Dewar  <dewar@gnat.com>
41773
41774         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
41775         Fix header format. Add 2001 to copyright date.
41776
41777         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
41778         which caused CE during compilation if checks were enabled.
41779
41780 2001-12-17  Vincent Celier  <celier@gnat.com>
41781
41782         * make.adb:
41783         (Switches_Of): New function
41784         (Test_If_Relative_Path): New procedure
41785         (Add_Switches): Use new function Switches_Of
41786         (Collect_Arguments_And_Compile): Use new function Switches_Of.
41787         When using a project file, test if there are any relative
41788         search path. Fail if there are any.
41789         (Gnatmake): Only add switches for the primary directory when not using
41790         a project file. When using a project file, change directory to the
41791         object directory of the main project file. When using a project file,
41792         test if there are any relative search path. Fail if there are any.
41793         When using a project file, fail if specified executable is relative
41794         path with directory information, and prepend executable, if not
41795         specified as an absolute path, with the exec directory.  Make sure
41796         that only one -o switch is transmitted to the linker.
41797
41798         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
41799
41800         * prj-nmsc.adb:
41801         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
41802         when using a non standard naming scheme.
41803         (Check_Ada_Naming_Scheme): Make sure that error messages
41804         do not raise exceptions.
41805         (Is_Illegal_Append): Return True if there is no dot in the suffix.
41806         (Language_Independent_Check): Check the exec directory.
41807
41808         * prj.adb (Project_Empty): Add new component Exec_Directory
41809
41810         * prj.ads:
41811         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
41812         (Project_Data): Add component Exec_Directory
41813
41814         * snames.adb: Updated to match snames.ads revision 1.215
41815
41816         * snames.ads: Added Exec_Dir
41817
41818 2001-12-17  Robert Dewar  <dewar@gnat.com>
41819
41820         * make.adb: Minor reformatting
41821
41822         * prj-nmsc.adb: Minor reformatting
41823
41824         * snames.adb: Updated to match snames.ads
41825
41826         * snames.ads: Alphebetize entries for project file
41827
41828 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41829
41830         * trans.c (process_freeze_entity): Do nothing if the entity is a
41831         subprogram that was already elaborated.
41832
41833 2001-12-17  Richard Kenner  <kenner@gnat.com>
41834
41835         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
41836         and Esize if object is referenced via pointer.
41837
41838 2001-12-17  Ed Schonberg  <schonber@gnat.com>
41839
41840         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
41841         is discrete before analyzing choices.
41842
41843 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
41844
41845         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
41846         containing the name of the Ada Main Program. This string is mainly
41847         intended for the debugger.
41848         (Gen_Output_File_C): Do the equivalent change when generating a C file.
41849
41850 2001-12-17  Robert Dewar  <dewar@gnat.com>
41851
41852         * ali.adb: Set new Dummy_Entry field in dependency entry
41853
41854         * ali.ads: Add Dummy_Entry field to source dependency table
41855
41856         * bcheck.adb (Check_Consistency): Ignore dummy D lines
41857
41858         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
41859
41860         * lib-writ.ads: Document dummy D lines for missing files.
41861
41862         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
41863
41864 2001-12-17  Robert Dewar  <dewar@gnat.com>
41865
41866         * ali.adb: Type reference does not reset current file.
41867
41868         * ali.adb: Recognize and scan renaming reference
41869
41870         * ali.ads: Add spec for storing renaming references.
41871
41872         * lib-xref.ads: Add documentation for handling of renaming references
41873
41874         * lib-xref.adb: Implement output of renaming reference.
41875
41876         * checks.adb:
41877         (Determine_Range): Document local variables
41878         (Determine_Range): Make sure Hbound is initialized. It looks as though
41879          there could be a real problem here with an uninitialized reference
41880          to Hbound, but no actual example of failure has been found.
41881
41882 2001-12-17  Laurent Pautet  <pautet@gnat.com>
41883
41884         * g-socket.ads:
41885         Fix comment of Shutdown_Socket and Close_Socket. These functions
41886         should not fail silently because if they are called twice, this
41887         probably means that there is a race condition in the user program.
41888         Anyway, this behaviour is consistent with the rest of this unit.
41889         When an error occurs, an exception is raised with the error message
41890         as exception message.
41891
41892 2001-12-17  Robert Dewar  <dewar@gnat.com>
41893
41894         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
41895         that it happens before modification of Sloc values for -gnatD.
41896
41897         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
41898         so that it happens before modification of Sloc values for -gnatD.
41899
41900         * switch.adb: Minor reformatting
41901
41902 2001-12-15  Richard Henderson  <rth@redhat.com>
41903
41904         * sem_ch7.adb: Wrap comment.
41905
41906 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
41907
41908         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
41909         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
41910         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
41911         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
41912         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
41913         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
41914         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
41915         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
41916         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
41917         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
41918         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
41919         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
41920         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
41921         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
41922         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
41923         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
41924         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
41925         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
41926         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
41927         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
41928         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
41929         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
41930         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
41931         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
41932         spelling errors.
41933
41934 2001-12-14  Vincent Celier  <celier@gnat.com>
41935
41936         * osint.adb(Create_Debug_File): When an object file is specified,
41937         put the .dg file in the same directory as the object file.
41938
41939 2001-12-14  Robert Dewar  <dewar@gnat.com>
41940
41941         * osint.adb: Minor reformatting
41942
41943         * lib-xref.adb (Output_Instantiation): New procedure to generate
41944         instantiation references.
41945
41946         * lib-xref.ads: Add documentation of handling of generic references.
41947
41948         * ali.adb (Read_Instantiation_Ref): New procedure to read
41949         instantiation references
41950
41951         * ali.ads: Add spec for storing instantiation references
41952
41953         * bindusg.adb: Minor reformatting
41954
41955         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41956
41957         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41958
41959         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41960
41961         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
41962
41963         * csets.ads:
41964         Fix header format
41965         Add 2001 to copyright date
41966         Add entry for Latin-5 (Cyrillic ISO-8859-5)
41967
41968 2001-12-14  Matt Gingell  <gingell@gnat.com>
41969
41970         * adaint.c: mktemp is a macro on Lynx and can not be used as an
41971         expression.
41972
41973 2001-12-14  Richard Kenner  <kenner@gnat.com>
41974
41975         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
41976         if operand is CONSTRUCTOR.
41977
41978 2001-12-14  Ed Schonberg  <schonber@gnat.com>
41979
41980         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
41981         before emiting check on right-hand side, so that exception information
41982         is correct.
41983
41984 2001-12-14  Richard Kenner  <kenner@gnat.com>
41985
41986         * utils.c (create_var_decl): Throw away initializing expression
41987         if just annotating types and non-constant.
41988
41989 2001-12-14  Vincent Celier  <celier@gnat.com>
41990
41991         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
41992         Default_Ada_...
41993
41994         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
41995         Remove functions.
41996         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
41997
41998         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
41999         Remove functions.
42000         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42001
42002 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42003
42004         * ChangeLog: Remove piece of diff output.
42005
42006 2001-12-14  Geert Bosch  <bosch@gnat.com>
42007
42008         * config-lang.in: Update copyright notice
42009
42010         * layout.adb: Remove commented out code.
42011
42012         * mdllfile.ads: Update copyright notice. Fix header format.
42013
42014         * sem_case.ads: Likewise.
42015
42016         * sem_ch3.adb: Minor reformatting.
42017
42018 2001-12-12  Geert Bosch  <bosch@gnat.com>
42019
42020         * freeze.ads: Update copyright date.
42021
42022         * g-comlin.ads: Minor reformatting.
42023
42024         * gnat-style.texi: Fix typo.
42025
42026 2001-12-12  Geert Bosch  <bosch@gnat.com>
42027
42028         *  einfo.h: Regenerate.
42029
42030 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42031
42032         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42033         on known node types, rather than untyped fields. Further cleanups.
42034
42035 2001-12-12  Robert Dewar  <dewar@gnat.com>
42036
42037         * sem_ch12.adb:
42038         (Save_Entity_Descendant): Minor comment update.
42039         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42040          of an N_Attribute_Reference node. As per note below, this does not
42041         eliminate need for Associated_Node in attribute ref nodes.
42042         (Associated_Node): Documentation explicitly mentions attribute
42043         reference nodes, since this field is used in such nodes.
42044
42045         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42046
42047 2001-12-12  Robert Dewar  <dewar@gnat.com>
42048
42049         * s-stalib.adb: Add more comments on with statements being needed
42050
42051         * par-ch12.adb: Minor reformatting
42052
42053         * prj-dect.ads: Fix copyright header
42054
42055         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42056         inputs fit in 32 bits, but the result still overflows.
42057
42058         * s-fatgen.ads: Minor comment improvement
42059
42060 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42061
42062         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42063         formal derived type, look for an inherited component from the full
42064         view of the parent, if any.
42065
42066 2001-12-12  Robert Dewar  <dewar@gnat.com>
42067
42068         * checks.ads (Apply_Alignment_Check): New procedure.
42069
42070         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42071         ensure that the alignment of objects with address clauses is
42072         appropriate, and raise PE if not.
42073
42074         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42075         Exp_Pakd.Known_Aligned_Enough
42076
42077         * mdllfile.ads: Minor reformatting
42078
42079         * mlib-fil.ads: Minor reformatting
42080
42081 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42082
42083         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42084         fix to any component reference if enclosing record has non-standard
42085         representation.
42086
42087 2001-12-12  Vincent Celier  <celier@gnat.com>
42088
42089         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42090         Iteration
42091
42092 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42093
42094         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42095         sem_attr.
42096
42097 2001-12-12  Robert Dewar  <dewar@gnat.com>
42098
42099         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42100
42101 2001-12-12  Emmanuel Briot  <briot@gnat.com>
42102
42103         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42104         and it adds dependencies to system.io.
42105
42106 2001-12-12  Pascal Obry  <obry@gnat.com>
42107
42108         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42109         variable name.
42110
42111 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42112
42113         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42114         that is the parent of other generics, the instance body replaces the
42115         instance node.  Retrieve the instance of the spec, which is the one
42116         that is visible in clients and within the body.
42117
42118 2001-12-11  Vincent Celier  <celier@gnat.com>
42119
42120         * gnatmain.adb: Initial version.
42121
42122         * gnatmain.ads: Initial version.
42123
42124         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42125
42126         * snames.adb: Updated to match snames.ads.
42127
42128         * snames.ads: Added Gnatstub.
42129
42130 2001-12-11  Vincent Celier  <celier@gnat.com>
42131
42132         * prj-attr.adb (Initialization_Data): Change name from
42133         Initialisation_Data.
42134
42135 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42136
42137         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42138         + and * applied to backslashed expressions like \r.
42139
42140 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
42141
42142         * g-os_lib.ads: String_List type added, Argument_List type is now
42143         subtype of String_List.
42144
42145 2001-12-11  Robert Dewar  <dewar@gnat.com>
42146
42147         * g-os_lib.ads: Change copyright to FSF
42148         Add comments for String_List type
42149
42150 2001-12-11  Vincent Celier  <celier@gnat.com>
42151
42152         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42153         string to the buffer).
42154
42155 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42156
42157         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42158         sem_attr.
42159
42160         * sem_attr.adb: Simplify previous fix for Address.
42161         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42162         to avoid anomalies where the bound of the type appears to raise
42163         constraint error.
42164
42165 2001-12-11  Robert Dewar  <dewar@gnat.com>
42166
42167         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42168         handled.
42169
42170 2001-12-11  Ed Schonber   <schonber@gnat.com>
42171
42172         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42173         renamed unit before checking for recursive instantiations.
42174
42175 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42176
42177         * prj.ads: Add comments for some of the fields.
42178
42179 2001-12-11  Robert Dewar  <dewar@gnat.com>
42180
42181         * lib-xref.adb (Output_Refs): Don't output type references outside
42182         the main unit if they are not otherwise referenced.
42183
42184 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42185
42186         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42187         code and diagnose additional illegal uses
42188
42189         * sem_util.adb (Is_Object_Reference): An indexed component is an
42190         object only if the prefix is.
42191
42192 2001-12-11  Vincent Celier  <celier@gnat.com>
42193
42194         * g-diopit.adb: Initial version.
42195
42196         * g-diopit.ads: Initial version.
42197
42198         * g-dirope.adb:
42199         (Expand_Path): Avoid use of Unbounded_String
42200         (Find, Wildcard_Iterator): Moved to child package Iteration
42201
42202         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42203
42204 2001-12-11  Robert Dewar  <dewar@gnat.com>
42205
42206         * sem_attr.adb: Minor reformatting
42207
42208 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42209
42210         * sem_ch3.adb: Clarify some ???.
42211
42212 2001-12-11  Robert Dewar  <dewar@gnat.com>
42213
42214         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42215         Exp_Pakd.Known_Aligned_Enough
42216
42217         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42218         version is moved to Exp_Ch13.
42219
42220 2001-12-11  Robert Dewar  <dewar@gnat.com>
42221
42222         * einfo.ads: Minor reformatting
42223
42224         * exp_ch5.adb: Add comment for previous.change
42225
42226         * ali.adb: New interface for extended typeref stuff.
42227
42228         * ali.ads: New interface for typeref stuff.
42229
42230         * checks.adb (Apply_Alignment_Check): New procedure.
42231
42232         * debug.adb: Add -gnatdM for modified ALI output
42233
42234         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42235
42236         * lib-xref.adb: Extend generation of <..> notation to cover
42237         subtype/object types. Note that this is a complete rewrite,
42238         getting rid of the very nasty quadratic algorithm previously
42239         used for derived type output.
42240
42241         * lib-xref.ads: Extend description of <..> notation to cover
42242         subtype/object types. Uses {..} for these other cases.
42243         Also use (..) for pointer types.
42244
42245         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42246
42247         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
42248         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42249
42250 2001-12-11  Vincent Celier  <celier@gnat.com>
42251
42252         * gnatcmd.adb:
42253         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42254         Changed /BIND_ONLY to /ACTIONS=BIND
42255         Changed /LINK_ONLY to /ACTIONS=LINK
42256
42257 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42258
42259         * sem_ch8.adb (Find_Selected_Component): improved search for a
42260         candidate package in case of error.
42261
42262         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42263         chain back on scope stack before reinstalling use clauses.
42264
42265         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42266         is enabled, do not kill the code for the condition, to preserve
42267         warning.
42268
42269 2001-12-11  Robert Dewar  <dewar@gnat.com>
42270
42271         * checks.adb (Insert_Valid_Check): Apply validity check to expression
42272         of conversion, not to result of conversion.
42273
42274 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42275
42276         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42277         before freezing parent. If the declarations are mutually recursive,
42278         an access to the current record type may be frozen before the
42279         derivation is complete.
42280
42281 2001-12-05  Vincent Celier  <celier@gnat.com>
42282
42283         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42284         -c /COMPILE_ONLY, -l /LINK_ONLY
42285
42286         * opt.ads:
42287         (Bind_Only): New Flag
42288         (Link_Only): New flag
42289
42290         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42291         and -l (Link_Only)
42292
42293         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42294
42295         * make.adb:
42296         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42297         (Gnatmake): Set the step flags. Only perform a step if the
42298         corresponding step flag is True.
42299         (Scan_Make_Arg): Reset the bind and link step flags when -u
42300         or -gnatc has been specified.
42301
42302 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42303
42304         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42305         get bounds from right operand.
42306
42307         * sem_eval.adb: Minor reformatting
42308
42309         * exp_util.adb (Make_Literal_Range): use bound of literal rather
42310         than Index'First, its lower bound may be different from 1.
42311
42312         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42313         and C48009J
42314
42315 2001-12-05  Vincent Celier  <celier@gnat.com>
42316
42317         * prj-nmsc.adb Minor reformatting
42318
42319         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42320         set and libraries are not supported.
42321
42322 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42323
42324         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42325         private view explicitly, so the back-end can treat as a global
42326         when appropriate.
42327
42328 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42329
42330         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42331          unit, always replace instance node with new body, for ASIS use.
42332
42333 2001-12-05  Vincent Celier  <celier@gnat.com>
42334
42335         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42336         libraries are not supported and both attributes Library_Name and
42337         Library_Dir are specified.
42338
42339         * prj-proc.adb (Expression): Set location of Result to location of
42340         first term.
42341
42342         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42343         (prj-nmsc is now importing MLib.Tgt)
42344
42345         * prj-proc.adb: Put the change indicated above that was forgotten.
42346
42347 2001-12-05  Robert Dewar  <dewar@gnat.com>
42348
42349         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42350
42351 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42352
42353         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42354         constraint, introduce explicit subtype declaration and derive from it.
42355
42356         * sem_ch3.adb: Minor reformatting
42357
42358 2001-12-05  Robert Dewar  <dewar@gnat.com>
42359
42360         * checks.adb (Determine_Range): Increase cache size for checks.
42361         Minor reformatting
42362
42363         * exp_ch6.adb: Minor reformatting
42364         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42365         a parameter whose root type is System.Address, since treating such
42366         subprograms as pure in the code generator is almost surely a mistake
42367         that will lead to unexpected results.
42368
42369         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
42370         change handling of conversions.
42371
42372         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42373
42374 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42375
42376         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42377         aggregate with static wrong size, attach generated Raise node to
42378         declaration.
42379
42380 2001-12-05  Robert Dewar  <dewar@gnat.com>
42381
42382         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
42383         Fixes compilation abandoned bomb in B24009B.
42384
42385 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42386
42387         * sem_ch12.adb:
42388         Document use of Associated_Node on Selected_Components.
42389         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42390         to clarify use of untyped descendant fields.
42391
42392 2001-12-05  Robert Dewar  <dewar@gnat.com>
42393
42394         * prj-dect.ads: Add ??? comment
42395         Add 2001 to copyright notice (was not done in after all)
42396
42397         * prj-part.adb: Minor reformatting. Reword one awkward error message.
42398
42399         * prj.ads: Minor reformatting throughout, and add some ??? comments
42400
42401         * snames.ads: Minor reformatting
42402
42403 2001-12-05  Geert Bosch  <bosch@gnat.com>
42404
42405         * snames.adb: Autoupdate
42406
42407 2001-12-05  Vincent Celier  <celier@gnat.com>
42408
42409         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
42410
42411         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
42412
42413         * prj-env.adb: Minor comment changes (modifying -> extends).
42414
42415         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
42416
42417         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
42418         Tok_Extends.
42419
42420         * prj.adb (Initialize): Change Modifying to Extends.
42421
42422         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
42423
42424         * prj.ads: Minor comment change (Modifying -> extending).
42425
42426         * snames.ads: Change modifying to extends.
42427
42428 2001-12-05  Robert Dewar  <dewar@gnat.com>
42429
42430         * sem_warn.adb: Remove stuff for conditionals, we are not going to
42431         do this after all.
42432
42433         * sem_warn.ads: Remove stuff for conditionals, we are not going to
42434         do this after all.  Add 2001 to copyright notice
42435
42436 2001-12-04  Geert Bosch  <bosch@gnat.com>
42437
42438         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
42439
42440 2001-12-04  Robert Dewar  <dewar@gnat.com>
42441
42442         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42443         location if we already have errors. Stops some cases of cascaded
42444         errors.
42445
42446         * errout.adb: Improve comment.
42447
42448 2001-12-04  Robert Dewar  <dewar@gnat.com>
42449
42450         * sem_ch12.adb:
42451         (Analyze_Formal_Type_Definition): Defend against Error.
42452         (Analyze_Formal_Subprogram): Defend against Error.
42453
42454         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
42455         remove following semicolon if present. Removes cascaded error.
42456
42457 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42458
42459         * bindgen.adb:
42460         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42461          exceptions equals 0.
42462         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42463         Fixes PIWG E tests (which have to be run with -gnatL).
42464
42465 2001-12-04  Robert Dewar  <dewar@gnat.com>
42466
42467         * einfo.ads: Minor reformatting
42468
42469 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42470
42471         * einfo.ads: Block_Node points to the identifier of the block, not to
42472         the block node itself, to preserve the link when the block is
42473         rewritten, e.g. within an if-statement with a static condition.
42474
42475         * inline.adb (Cleanup_Scopes): recover block statement from block
42476         entity using new meaning of Block_Node.
42477
42478         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
42479         identifier of block node, rather than to node itself.
42480
42481 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
42482
42483         * layout.adb:
42484         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42485         (Discrimify): Go back to setting the Etypes of the selected component
42486         because the Vname component does not exist at this point and will
42487         fail name resolution. Also set Analyzed.
42488         Remove with and use of Sem_Res.
42489
42490 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42491
42492         * Makefile.in: (HIE_SOURCES): add s-fat*.
42493
42494 2001-12-04  Robert Dewar  <dewar@gnat.com>
42495
42496         * sem_attr.adb:
42497         (Compile_Time_Known_Attribute): New procedure.
42498         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42499          proper range check.
42500
42501 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42502
42503         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
42504         processing discriminants to diagnose illegal default values.
42505
42506 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42507
42508         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42509         access discriminant within a type extension that constrains its
42510         parent discriminants.
42511
42512 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42513
42514         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
42515         is malformed, use instance of Any_Id to allow analysis to proceed.
42516
42517         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
42518         type definition is illegal.
42519         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42520         misplaced.
42521
42522 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42523
42524         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
42525         constants.
42526
42527 2001-12-04  Robert Dewar  <dewar@gnat.com>
42528
42529         * errout.adb: Minor reformatting
42530
42531 2001-12-04  Robert Dewar  <dewar@gnat.com>
42532
42533         * exp_util.adb: Minor reformatting from last change
42534
42535         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42536         which is a rewriting of an expression, traverse the original
42537         expression to remove warnings that may have been posted on it.
42538
42539 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42540
42541         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
42542         record that has other packed components.
42543
42544 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42545
42546         * adaint.c: Minor cleanups.
42547
42548 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
42549
42550         * adaint.c: Do not use utime.h on vxworks.
42551
42552 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
42553
42554         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
42555         more confusion than it solves.
42556
42557 2001-12-04  Geert bosch  <bosch@gnat.com>
42558
42559         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42560
42561 2001-12-04  Geert Bosch  <bosch@gnat.com>
42562
42563         * Makefile.in (update-sources): New target.
42564         For use by gcc_release script.
42565
42566 2001-12-04  Ed Schonberg  <schonber@gnat.com>
42567
42568         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
42569         a configuration pragma, it is now legal wherever a pragma can appear.
42570
42571 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
42572
42573         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
42574         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
42575         is now @CROSS@ -DIN_GCC; update comment.
42576
42577 2001-12-04  Robert Dewar  <dewar@gnat.com>
42578
42579         * einfo.adb (Has_Pragma_Pure_Function): New flag.
42580         Fix problem that stopped ceinfo from working
42581
42582         * einfo.ads (Has_Pragma_Pure_Function): New flag.
42583
42584         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42585
42586 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
42587
42588         * gnatchop.adb:
42589         (File_Time_Stamp): New procedure.
42590         (Preserve_Mode): New boolean.
42591         (Write_Unit): Pass time stamp.
42592         Implement -p switch (preserve time stamps).
42593
42594         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
42595
42596         * gnatchop.adb: Do usage info for -p switch
42597
42598         * adaint.h (__gnat_set_file_time_name): New function
42599
42600         * adaint.c (__gnat_set_file_time_name): Implement
42601
42602         * adaint.h: Fix typo
42603
42604 2001-12-03  Robert Dewar  <dewar@gnat.com>
42605
42606         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
42607         have Associated_Node.
42608
42609 2001-12-03  Robert Dewar  <dewar@gnat.com>
42610
42611         * prj-proc.adb: Minor reformatting
42612
42613         * make.adb: Minor reformatting
42614
42615 2001-12-03  Geert Bosch  <bosch@gnat.com>
42616
42617         * make.adb: Minor reformatting.
42618
42619 2001-12-03 Robert Dewar  <dewar@gnat.com>
42620
42621         * sem_ch12.adb: Minor reformatting
42622
42623 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42624
42625         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42626         push Standard on the stack before analyzing the instance body,
42627         in order to have a clean visibility environment.
42628
42629         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
42630
42631 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42632
42633         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
42634         instantiation of a body that contains an inlined body.
42635
42636 2001-12-03  Ed Schonberg  <schonber@gnat.com>
42637
42638         * sem_ch12.adb:
42639         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42640         to prevent freezing within formal packages.
42641         (Freeze_Subprogram_Body): If body comes from another instance that
42642         appeared before its own body, place freeze node at end of current
42643         declarative part, to prevent a back-end crash.
42644         (Inline_Instance_Body): Handle properly a package instance within
42645         a subprogram instance that is a child unit.
42646
42647 2001-12-01  Graham Stott  <grahams@redhat.com>
42648
42649         * Makefile.in (misc.o): Add missing $(srcdir) prefix
42650         and add optabs.h dependency.
42651
42652         * misc.c: Include optabs.h
42653         (gnat_tree_code_type): Make static and const.
42654         (gnat_tree_code_length): Likewise.
42655         (gnat_tree_code_name): Likewise.
42656         (update_setjmp_buf): Obtain operands mode from insn_data.
42657
42658 2001-11-29  Richard Henderson  <rth@redhat.com>
42659
42660         * init.c: Remove obsolete dwarf2 frame.h section.
42661
42662 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
42663
42664         * Make-lang.in (ada.generated-manpages): New dummy target.
42665
42666 2001-11-29  Ed Schonberg  <schonber@gnat.com>
42667
42668         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42669         into Command, an array conversion is illegal here. Uncovered by
42670         ACATS B460005.
42671
42672 2001-11-28  Geert Bosch  <bosch@gnat.com>
42673
42674         * init.c: Minor whitespace changes.
42675
42676 2001-11-28  Doug Rupp  <rupp@gnat.com>
42677
42678         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
42679         signal stack.
42680
42681 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
42682
42683         * misc.c (gnat_expand_constant): Move declaration above
42684         definition of lang_hooks.
42685         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42686         (gnat_init): lang_expand_constant no longer exists.
42687
42688         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
42689         always have vprintf.
42690         (gnat_init): Always call set_internal_error_function.
42691
42692 2001-11-27  Andreas Jaeger  <aj@suse.de>
42693
42694         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42695
42696 2001-11-27  Laurent Guerby  <guerby@acm.org>
42697
42698         * Makefile.in: Regenerate Ada dependencies.
42699
42700 2001-11-26  Richard Henderson  <rth@redhat.com>
42701
42702         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
42703         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
42704         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
42705
42706 2001-11-25  Laurent Guerby  <guerby@acm.org>
42707
42708         * sysdep.c (rts_get_*): Fix style.
42709
42710 2001-11-19  Laurent Guerby  <guerby@acm.org>
42711
42712         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
42713         since it is of no apparent use and cause warnings.
42714
42715 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
42716
42717         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
42718         static too.
42719         (gnat_init): Don't return NULL.
42720         (finish_parse): Remove.
42721
42722 2001-11-17  Laurent Guerby  <guerby@acm.org>
42723
42724         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
42725         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
42726         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
42727         * lang-spec.h: Add missing struct field to silence warnings.
42728         * sysdep.c (rts_get_*): Provide K&R prototype.
42729         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
42730         * traceback.c (Unlock_Task, Lock_Task): Likewise.
42731         * tracebak.c (__gnat_backtrace): Remove unused variable.
42732         * utils.c (end_subprog_body): Move to K&R style.
42733
42734 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
42735
42736         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
42737
42738 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
42739
42740         * misc.c (gnat_init): Change prototype.  Include the
42741         functionality of the old init_parse and init_decl_processing.
42742         (gnat_init_decl_processing): New prototype.
42743         (init_parse): Remove.
42744         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
42745
42746 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
42747
42748         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
42749         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
42750         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
42751         set_yydebug): Remove.
42752
42753 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
42754
42755         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
42756         (struct lang_hooks): Constify.
42757         (language_string, lang_identify): Remove.
42758         * utils.c (init_decl_processing): Update.
42759
42760 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
42761
42762         * misc.c: Include langhooks-def.h.
42763         * Makefile.in: Update.
42764
42765 2001-10-30  Robert Dewar  <dewar@gnat.com>
42766
42767         * style.adb:
42768         (Check_Identifier): Rewrite circuit to be compatible with use of letters
42769         in the upper half of ASCII.
42770         (Check_Identifier): Minor reformatting
42771
42772 2001-10-30  Geert Bosch  <bosch@gnat.com>
42773
42774         * (Associated_Node, Set_Associated_Node): Do not check for
42775         Freeze_Entity.
42776
42777 2001-10-30  Robert Dewar  <dewar@gnat.com>
42778
42779         * a-reatim.ads: Minor reformatting
42780
42781 2001-10-30  Robert Dewar  <dewar@gnat.com>
42782
42783         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
42784         undocumented declarations.
42785
42786 2001-10-30  Pascal Obry  <obry@gnat.com>
42787
42788         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
42789         to the binder and linker.
42790         Minor style fix.
42791
42792         * mdll.ads: Fix layout.  Update copyright notice.
42793
42794         * mdll.adb: Fix layout.  Update copyright notice.
42795
42796 2001-10-30  Robert Dewar  <dewar@gnat.com>
42797
42798         * usage.adb: Minor fix to output for -gnaty.
42799
42800 2001-10-30  Ed Schonberg  <schonber@gnat.com>
42801
42802         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
42803         to accommodate all its possible values.
42804
42805         * a-reatim.adb (Split): Special-case handling of Time_Span_First
42806         and of small absolute values of T.
42807
42808 2001-10-30  Richard Kenner  <kenner@gnat.com>
42809
42810         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
42811         set_mem_attributes since not needed and wrong if RESULT if a REG;
42812         fixes ACATS failures.
42813
42814 2001-10-30  Geert Bosch  <bosch@gnat.com>
42815
42816         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
42817         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
42818
42819 2001-10-30  Robert Dewar  <dewar@gnat.com>
42820
42821         * bindusg.adb: Undocument -f switch.
42822
42823         * gnatcmd.adb: Remove /FULL_ELABORATION.
42824
42825         * opt.ads (Force_RM_Elaboration_Order): Document that this is
42826         obsolescent.
42827
42828         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
42829
42830         * gnatbind.adb: Minor update of warning msg.
42831
42832 2001-10-30  Vincent Celier  <celier@gnat.com>
42833
42834         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
42835         for project file switches (-P (/PROJECT_FILE=),
42836          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
42837         or MEDIUM or HIGH)
42838
42839 2001-10-30  Geert Bosch  <bosch@gnat.com>
42840
42841         * decl.c: Minor whitespace fixes.
42842
42843 2001-10-30  Richard Kenner  <kenner@gnat.com>
42844
42845         * utils2.c (build_allocator): Test for SIZE overflow in array case too
42846
42847 2001-10-30  Geert Bosch  <bosch@gnat.com>
42848
42849         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
42850         Found due to GCC 3.0 warning of using uninitialized value.
42851
42852         * layout.adb:
42853         (Get_Max_Size): Use variant record for tracking value/expression.
42854          Makes logic clearer and prevents warnings for uninitialized variables.
42855         (Layout_Array_Type): Use variant record for tracking value/expression.
42856          Makes logic clearer and prevents warnings for uninitialized variables.
42857
42858 2001-10-30  Robert Dewar  <dewar@gnat.com>
42859
42860         * lib.adb: Minor reformatting
42861
42862         * s-taprop.ads: Minor reformatting
42863
42864 2001-10-29  Laurent Guerby  <guerby@acm.org>
42865
42866         * init.c:
42867         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
42868         const.
42869         (_gnat_error_handler): Make MSG const.
42870
42871 2001-10-29  Richard Kenner  <kenner@gnat.com>
42872
42873         * sysdep.c: Fix localtime_r problem on LynxOS.
42874         Also remove #elif to avoid warnings.
42875
42876         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
42877         used by this.
42878
42879         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
42880
42881 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
42882
42883         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
42884         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
42885         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
42886         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
42887         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
42888         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
42889         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
42890         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
42891         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
42892         types.ads, urealp.adb: Fix spelling errors.
42893
42894 2001-10-27  Laurent Guerby  <guerby@acm.org>
42895
42896         * trans.c (gigi): Fix non determinism leading to bootstrap
42897         comparison failures for debugging information.
42898
42899 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
42900
42901         * gnat_rm.texi: Use @./@: where appropriate.
42902
42903 2001-10-26  Robert Dewar  <dewar@gnat.com>
42904
42905         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
42906
42907 2001-10-26  Richard Kenner  <kenner@gnat.com>
42908
42909         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
42910
42911 2001-10-26  Richard Kenner  <kenner@gnat.com>
42912
42913         * decl.c (validate_size): Modify message for bad size to avoid
42914         implication that compiler is modifying the size.
42915
42916 2001-10-26  Robert Dewar  <dewar@gnat.com>
42917
42918         * prj-util.adb: Minor reformatting. Fix bad header format.
42919
42920 2001-10-26  Robert Dewar  <dewar@gnat.com>
42921
42922         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
42923
42924         * sinfo.ads: Clarify use of Associated_Node (documentation only).
42925
42926         * sem_ch12.adb: Change Node4 to Associated_Node. Change
42927         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
42928         much more narrowly in places where needed. These are cleanups.
42929
42930 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
42931
42932         * 5zosinte.ads (null_pthread): new constant.
42933
42934         * 5ztaprop.adb:
42935         (Initialize_TCB): Initialize thread ID to null, to be able to verify
42936          later that this field has been set.
42937         (Finalize_TCB): ditto.
42938         (Suspend_Task): Verify that the thread ID is not null before using it.
42939         (Resume_Task): ditto.
42940
42941         * s-tasdeb.adb:
42942         (Resume_All_Tasks): Lock the tasks list before using it.
42943         (Suspend_All_Tasks): ditto.
42944
42945 2001-10-26  Richard Kenner  <kenner@gnat.com>
42946
42947         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
42948         Make constant variant of designated type for Is_Access_Constant.
42949         Call update_pointer_to with main variant.
42950
42951         * trans.c (process_freeze_entity, process_type):
42952         Call update_pointer_to on main variant.
42953
42954         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
42955         If main variant, update all other variants.
42956
42957         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
42958         TREE_STATIC.
42959
42960 2001-10-26  Robert Dewar  <dewar@gnat.com>
42961
42962         * prj-util.adb: Minor reformatting
42963
42964 2001-10-26  Robert Dewar  <dewar@gnat.com>
42965
42966         * prj-util.adb: Minor reformatting
42967
42968 2001-10-26  Robert Dewar  <dewar@gnat.com>
42969
42970         * prj-attr.adb: Minor reformatting throughout
42971
42972 2001-10-26  Robert Dewar  <dewar@gnat.com>
42973
42974         * prj-attr.ads: Minor reformatting
42975         Add ??? comment (this whole spec has almost no comments)
42976
42977 2001-10-26  Vincent Celier  <celier@gnat.com>
42978
42979         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
42980         ("//") that precede the drive letter on Interix.
42981
42982 2001-10-26  Geert Bosch  <bosch@gnat.com>
42983
42984         * gnat_rm.texi: Add GNAT Reference Manual.
42985
42986 2001-10-25  Robert Dewar  <dewar@gnat.com>
42987
42988         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
42989         is Error. Similar change for other renaming cases.
42990
42991 2001-10-25  Robert Dewar  <dewar@gnat.com>
42992
42993         * s-atacco.ads: Add pragma Inline_Always for functions.
42994         Fix header format. Add copyright 2001
42995
42996 2001-10-25  Ed Schonberg  <schonber@gnat.com>
42997
42998         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
42999         return Error rather than Empty so that analysis can proceed.
43000
43001 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43002
43003         * sem_util.adb (Enter_Name): better handling of cascaded error
43004         messages when a unit appears in its own context.
43005
43006 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43007
43008         * sem_util.adb (Defining_Entity): in case of error, attach created
43009         entity to specification, so that semantic analysis can proceed.
43010
43011 2001-10-25  Robert Dewar  <dewar@gnat.com>
43012
43013         * sem_util.adb
43014         (Defining_Entity): Deal with Error.
43015         (Process_End_Label): Deal with bad end label for.
43016
43017 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43018
43019         * sem_elab.adb (Check_A_Call): refine message when call is in an
43020         instance but callee is not declared in the generic unit.
43021
43022 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43023
43024         * sem_elab.adb (Check_A_Call): check for renaming before finding the
43025         enclosing unit, which may already be different from the calling unit.
43026
43027 2001-10-25  Geert Bosch  <bosch@gnat.com>
43028
43029         * 4gintnam.ads: fix header format.
43030
43031 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43032
43033         * sem_res.adb (Resolve_Call): if the call is actually an indexing
43034         operation on the result of a parameterless call, perform elaboration
43035         check after the node has been properly rewritten.
43036
43037         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43038         inlined within the generic tree, the defining identifier is not a
43039         compilation_unit.
43040
43041 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43042
43043         * sem_res.adb (Resolve): special-case resolution of Null in an
43044          instance or an inlined body to avoid view conflicts.
43045
43046         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43047          compatibility by retrieving the access type of the generic copy.
43048
43049 2001-10-25  Robert Dewar  <dewar@gnat.com>
43050
43051         * sem_ch3.adb:
43052         (Analyze_Number_Declaration): Handle error expression.
43053         (Signed_Integer_Type_Declaration): Handle error bound.
43054         (Analyze_Subtype_Indication): Handle error range.
43055
43056         * sem_util.adb (Get_Index_Bounds): Check for Error.
43057
43058 2001-10-25  Robert Dewar  <dewar@gnat.com>
43059
43060         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43061         in no run time mode.
43062
43063 2001-10-25  Pascal Obry  <obry@gnat.com>
43064
43065         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43066         mode case for ALLOC case.
43067
43068         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43069         all platforms. Improvement of last change.
43070
43071 2001-10-25  Robert Dewar  <dewar@gnat.com>
43072
43073         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43074
43075 2001-10-25  Geert Bosch  <bosch@gnat.com>
43076
43077         * osint.adb (Is_Relative): Remove duplicate.
43078
43079 2001-10-25  Pascal Obry  <obry@gnat.com>
43080
43081         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43082         pathnames in UNIX and DOS style with drive letter.
43083         (Is_Relative): new routine.
43084
43085         * osint.adb: Minor reformatting
43086
43087         * osint.adb (Is_Relative): implementation using
43088         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43089
43090 2001-10-25  Pascal Obry  <obry@gnat.com>
43091
43092         * g-dirope.adb (Basename): correctly compute offset between the
43093         original Path and the translated one.
43094
43095         * g-dirope.adb: (Base_Name): add some comments.
43096
43097 2001-10-25  Robert Dewar  <dewar@gnat.com>
43098
43099         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43100         in HIE mode, avoids compilation abandoned message
43101
43102         * exp_imgv.adb: Correct typo in previous change
43103
43104         * exp_imgv.adb: Correct typo in previous change (not my day!)
43105
43106 2001-10-25  Robert Dewar  <dewar@gnat.com>
43107
43108         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43109
43110 2001-10-25  Pascal Obry  <obry@gnat.com>
43111
43112         * g-awk.ads: Move all pragma inlines next to the routine
43113          declarations. This is more uniform with other GNAT spec.
43114
43115 2001-10-22  Geert Bosch  <bosch@gnat.com>
43116
43117         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43118
43119 2001-10-19  Geert Bosch  <bosch@gnat.com>
43120
43121         * Makefile.in (tools, gnattools): Remove gnatmem.
43122
43123 2001-10-17  Richard Henderson  <rth@redhat.com>
43124
43125         * Makefile.in (misc.o): Depend on langhooks.h.
43126         * misc.c: Include it.
43127         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43128         (LANG_HOOKS_DECODE_OPTION): New.
43129         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43130
43131 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
43132
43133         * trans.c (tree_transform): Adjust to recent change in
43134         expand_asm_operands to implement named asm operands.
43135
43136 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43137
43138         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43139         renaming of discriminant for mutable record type.
43140
43141 2001-10-11  Robert Dewar  <dewar@gnat.com>
43142
43143         * validsw.adb: Properly save -gnatVn status.
43144
43145 2001-10-11  Robert Dewar  <dewar@gnat.com>
43146
43147         * usage.adb: Add lines for V switch.
43148
43149         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43150         (/VALIDITY_CHECKING).
43151
43152 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43153
43154         * sem_type.adb (Add_One_Interp): an operator for a type declared in
43155         an extension of System is known to be visible.
43156
43157 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43158
43159         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43160         properly. Fixes regression on ACATS C34005G.
43161
43162 2001-10-11  Robert Dewar  <dewar@gnat.com>
43163
43164         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43165         loop in generic instance, since this is likely not very useful.
43166
43167 2001-10-11  Robert Dewar  <dewar@gnat.com>
43168
43169         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43170         the error message for high integrity mode.
43171
43172         * rtsfind.adb (RTE): Give message if we try to find an entity that
43173         is not available in high integrity mode.
43174
43175         * rtsfind.ads:
43176         (OK_To_Use_In_HIE_Mode): New array.
43177         (RTE): May return Empty in high integrity mode.
43178
43179         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43180         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43181
43182         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43183         unit if not inlined always and in no runtime mode. Fixes problem
43184         caused by new Rtsfind changes.
43185
43186         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43187         body is deleted.
43188
43189         * rtsfind.adb (RTE): Make sure we do not try to load unit after
43190         giving message for entity not available in high integrity mode.
43191
43192 2001-10-11  Pascal Obry  <obry@gnat.com>
43193
43194         * impunit.adb: Add GNAT.CRC32.
43195
43196 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43197
43198         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43199         properly the case where one universal operand in a non-static
43200         exponentiation of a real literal.
43201
43202 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43203
43204         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43205         clause, return the gobal finalization list, for lack of anthing else.
43206
43207 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43208
43209         * exp_ch7.adb (Make_Transient_Block): if statement is within
43210         exception handler, always use new transient scope to place Clean
43211         procedure.
43212
43213 2001-10-11  Pascal Obry  <obry@gnat.com>
43214
43215         * Makefile.in:
43216         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43217         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43218         (GNATLS_RTL_OBJS): add g-crc32.o
43219         (GNATMAKE_RTL_OBJS): add g-crc32.o
43220
43221         * ali-util.adb:
43222         (CRC_Match): new function.
43223         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43224         instead of the previous simple checksum algorithm.
43225         (Time_Stamp_Mismatch): use CRC_Match for comparison.
43226         (Set_Source_Table): idem.
43227
43228         * ali-util.ads:
43229         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43230         instead of simple checksum.
43231         (CRC_Match): new function.
43232         (CRC_Error): new constant.
43233
43234         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43235         a CRC now and not a simple checksum. A CRC uses lower-case hex
43236         letters, fixes ambiguity in parsing.
43237
43238         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43239         is what this variable will store.
43240
43241         * bcheck.adb: Change reference to chechsum in comments by CRC.
43242         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43243         rename All_Checksum_Match to All_CRC_Match. Change due to API
43244         renaming since now GNAT does not use a simple checksum but a
43245         CRC using GNAT.CRC32.
43246
43247         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43248         now and not anymore a simple checksum.
43249
43250         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43251         places.
43252
43253         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43254
43255         * scans.adb:
43256         (Restore_Scan_State): rename Checksum to CRC.
43257         (Save_Scan_State): idem.
43258
43259         * scans.ads:
43260         With GNAT.CRC32.
43261         (Checksum): rename to CRC.
43262         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43263
43264         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43265         GNAT.CRC32).  Update copyright notice.
43266
43267         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43268         GNAT.CRC32).  Update copyright notice.
43269
43270         * scn.adb:
43271         (Accumulate_Checksum): removed.
43272         (Update): new procedure. Add a wide-character into the CRC.
43273
43274         * sinput-l.adb:
43275         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43276         (Load_File): fix initialization of S (change Source_Checksum to
43277         Source_CRC)
43278
43279         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43280         Source_CRC in S initialization.
43281
43282         * sinput.adb (Source_Checksum): renamed to Source_CRC.
43283
43284         * sinput.ads (Source_Checksum): renamed to Source_CRC.
43285         Update comments for the CRC.
43286
43287         * types.adb (Hex): Use lowercase for the letter part.
43288
43289         * types.ads (Get_Hex_String): Returns the hexadecimal representation
43290         for a word. This is currently used only for CRC. In previous version,
43291         the checksum was using a representation with all letter being
43292         upper-case. With the new implementation (using CRC) we do not remove
43293         the 32th bit of the CRC, so we can have an upper-case starting letter
43294         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43295         It is ambigous since the CRC was optional and could be followed by
43296         options like EB, EE. So now this routines uses lower-case letter for
43297         the hexadecimal representation. Strange enough only lower case letters
43298         where checked in Scan_ALI (even if this was not a possible case).
43299
43300         * gnatvsn.ads (Library_Version): changed to 3.15a.
43301
43302         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43303         for the compiler.
43304
43305         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43306         for the compiler.
43307
43308         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43309         Add 2001 to copyright notice
43310         (Accumulate_Checksum): Modify to use System.CRC32.
43311
43312         * ali-util.ads: Redo changes of previous revision to continue to use
43313         the word Checksum. Add 2001 to copyright notice.
43314
43315         * ali.adb: Undo some of previous changes, not needed.
43316         Keep the change for lower case letters in the checksum.
43317
43318         * ali.ads: Undo previous change not needed.
43319
43320         * bcheck.adb: Undo most of previous change, not needed.
43321         But do use Checksums_Match for checksum comparison.
43322
43323         * gnatls.adb: Undo most of previous change, not needed.
43324         But do use Checksums_Match for comparing checksums.
43325
43326         * lib-load.adb: Undo previous change, not needed.
43327
43328         * lib-writ.adb: Undo previous change, not needed.
43329
43330         * lib-writ.ads: Document that checksums use lower case,
43331         not upper case letters.
43332
43333         * scans.adb: Undo previous change, not needed
43334
43335         * scans.ads: Undo previous change, not needed.
43336
43337         * scn-nlit.adb: Undo previous changes, not needed.
43338
43339         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
43340
43341         * scn.adb:
43342         (Accumulate_Checksum): Use System.CRC32.
43343         (Initialize_Checksum): New procedure.
43344         Remove other changes of previous revision.
43345
43346         * sinput-p.adb: Undo previous change, not needed.
43347
43348         * sinput.adb: Undo previous change, not needed.
43349
43350         * sinput-l.adb: Undo previous change, not needed.
43351
43352         * sinput.ads: Undo previous change, not needed.  Keep only comment
43353         on new checksum algorithm
43354
43355         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43356         Also remove a-tags and a-stream from GNAT sources.
43357
43358         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
43359
43360         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43361
43362 2001-10-11  Geert Bosch  <bosch@gnat.com>
43363
43364         * einfo.h: Regenerate.
43365
43366         * nmake.ads: Regenerate.
43367
43368         * nmake.adb: Regenerate.
43369
43370         * sinfo.h: Regenerate.
43371
43372         * treeprs.adb: Regenerate.
43373
43374 2001-10-10  Geert Bosch  <bosch@gnat.com>
43375
43376         * gnat-style.texi: New file describing coding guidelines for Ada.
43377
43378 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43379
43380         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
43381         is Flag174.
43382
43383 2001-10-10  Geert Bosch  <bosch@gnat.com>
43384
43385         * snames.ads: Add new names for project facility.
43386
43387         * snames.adb: Update to reflect snames.ads changes.
43388
43389         * snames.h: Update to reflect snames.ads changes.
43390
43391 2001-10-10  Vincent Celier  <celier@gnat.com>
43392
43393         * make.adb:
43394         (Add_Switches): reflect the changes for the switches attributes
43395         Default_Switches indexed by the programming language,
43396         Switches indexed by the file name.
43397         (Collect_Arguments_And_Compile): Idem.
43398         Reflect the attribute name changes.
43399
43400         * prj-attr.adb:
43401         (Initialisation_Data): Change the names of some packages and
43402         attributes.
43403         (Initialize): process case insensitive associative arrays.
43404
43405         * prj-attr.ads:
43406         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
43407
43408         * prj-dect.adb:
43409         (Parse_Attribute_Declaration): For case insensitive associative
43410          arrays, set the index string to lower case.
43411
43412         * prj-env.adb:
43413         Reflect the changes of the project attributes.
43414
43415         * prj-nmsc.adb:
43416         Replace Check_Naming_Scheme by Ada_Check and
43417         Language_Independent_Check.
43418
43419         * prj-nmsc.ads:
43420         Replaced Check_Naming_Scheme by 2 procedures:
43421         Ada_Check and Language_Independent_Check.
43422
43423         * prj-proc.adb:
43424         (Process_Declarative_Items): For case-insensitive associative
43425         arrays, set the index string to lower case.
43426         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43427         Prj.Nmsc.Check_Naming_Scheme.
43428
43429         * prj-tree.adb:
43430         (Case_Insensitive): New function
43431         (Set_Case_Insensitive): New procedure
43432
43433         * prj-tree.ads:
43434         (Case_Insensitive): New function
43435         (Set_Case_Insensitive): New procedure
43436         (Project_Node_Record): New flag Case_Insensitive.
43437
43438         * prj-util.adb:
43439         (Value_Of): new function to get the string value of a single
43440         string variable or attribute.
43441
43442         * prj-util.ads:
43443         (Value_Of): new function to get the string value of a single
43444         string variable or attribute.
43445
43446         * prj.adb:
43447         (Ada_Default_Spec_Suffix): New function
43448         (Ada_Default_Impl_Suffix): New function
43449         Change definitions of several constants to reflect
43450         new components of record types.
43451
43452         * prj.ads:
43453         (Naming_Data): Change several components to reflect new
43454         elements of naming schemes.
43455         (Project_Data): New flags Sources_Present and
43456         Language_Independent_Checked.
43457         (Ada_Default_Spec_Suffix): New function.
43458         (Ada_Default_Impl_Suffix): New function.
43459
43460         * snames.ads:
43461         Modification of predefined names for project manager: added
43462         Implementation, Specification_Exceptions, Implementation_Exceptions,
43463         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43464         Default_Switches, _Languages, Builder, Cross_Reference,
43465         Finder. Removed Body_Part, Specification_Append, Body_Append,
43466         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43467         Gnatlink.
43468
43469         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43470         Add comments.
43471
43472         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43473         not that it is Nil_Variable_Value.
43474
43475         * prj.ads: Add ??? for uncommented declarations
43476
43477 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43478
43479         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43480         constant, do not indicate possible modification, so that gigi can
43481         treat it as a bona fide constant.
43482
43483 2001-10-10  Robert Dewar  <dewar@gnat.com>
43484
43485         * sem_prag.adb: Add processing for pragma External.
43486
43487         * snames.ads: Add entry for pragma External.
43488
43489         * par-prag.adb: Add pragma External.
43490
43491         * snames.adb: Updated to match snames.ads.
43492
43493 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43494
43495         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43496         a dynamic task if the allocator appears in an indexed assignment
43497         or selected component assignment.
43498
43499         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43500         For a dynamic task in an assignment statement, use target of
43501         assignment to generate meaningful name.
43502
43503 2001-10-10  Ed Schonberg  <schonber@gnat.com>
43504
43505         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
43506         a generic package.
43507
43508         * einfo.ads: Body_Entity is also defined for generic package.
43509         Documentation change only
43510
43511         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43512         others_choice for a discriminated component initialization,
43513         convert discriminant references into the corresponding discriminals.
43514
43515         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43516         only if original type is private and expression has to be wrapped
43517         in a conversion.
43518
43519         * checks.adb:
43520         (Apply_Constraint_Check): Do not perform length check
43521         if expression is an aggregate with only an others_choice.
43522         (Length_N_Cond): two references to the same in_parameter
43523         (typically the discriminal in an init_proc) denote the same value.
43524         Two useful optimization uncovered by bugfixes above.
43525
43526 2001-10-10  Robert Dewar  <dewar@gnat.com>
43527
43528         * xeinfo.adb: Change int to char in translation of enumeration types.
43529         This fixes a problem in the C representation of component alignment.
43530         Add 2001 to copyright notice
43531
43532 2001-10-10  Richard Kenner  <kenner@gnat.com>
43533
43534         * decl.c: (validate_size): Do check size of object of integral type
43535         if it is a packed array type.
43536
43537 2001-10-10  Richard Kenner  <kenner@gnat.com>
43538
43539         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
43540         VAR_DECL for constant if not Is_Public but -O0.
43541
43542 2001-10-10  Richard Kenner  <kenner@gnat.com>
43543
43544         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43545
43546 2001-10-10  Geert Bosch  <bosch@gnat.com>
43547
43548         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
43549         use '/' as switch character, allowing for absolute file names.
43550
43551 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
43552
43553         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43554         FSF address.
43555
43556 2001-10-08  Geert Bosch  <bosch@gnat.com>
43557
43558         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43559         Automatically build utilities when files need to be regenerated.
43560
43561 2001-10-08  Geert Bosch  <bosch@gnat.com>
43562
43563         * xsnames.adb: New utility for updating snames.ads and snames.adb
43564
43565 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
43566
43567         * Make-lang.in (ADAFLAGS): Add -W -Wall.
43568         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43569         (gnat1): Also depend on attribs.o.
43570         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43571         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43572         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43573         (ADAFLAGS): Add -W -Wall.
43574         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43575         take out CFLAGS.
43576
43577         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43578         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43579         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43580         Use $(ADAC), not $(CC), as compilation command.
43581
43582         (gnattools): Depend directly on tools to build, don't use
43583         recursive make.
43584         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43585
43586         * einfo.h, sinfo.h: New files (autogenerated).
43587
43588 2001-10-08  Richard Henderson  <rth@redhat.com>
43589
43590         * comperr.adb (Abort_In_Progress): New.
43591         (Compiler_Abort): Use it to prevent recursion.
43592
43593 2001-10-08  Robert Dewar  <dewar@gnat.com>
43594
43595         * atree.adb: Set Error_Posted in Error node, helps error recovery.
43596
43597         * par-endh.adb (Output_End_Expected): We should also not test
43598         Error_Posted on the Error node, since now it is always set.
43599
43600         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
43601         to help error recovery. Part of general work on 9407-004.
43602
43603         * par.adb: Add ??? for misuse of error
43604
43605         * sem_res.adb:
43606         (Resolve): Defend against Error, fixes 9407-003.
43607         (Resolve_Discrete_Subtype_Indication): Defend against Error.
43608
43609         * sinfo.ads (N_Error): Now has Etype field (which will be set
43610         to Any_Type to help error recovery).
43611
43612 2001-10-08  Richard Kenner  <kenner@gnat.com>
43613
43614         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43615         Consistently set MEM attributes from expression; fixes
43616         bootstrap failure on x86.
43617
43618 2001-10-08  Geert Bosch  <bosch@gnat.com>
43619
43620         * 5oosinte.adb: Add 2001 to copyright notice.
43621
43622 2001-10-08  Geert Bosch  <bosch@gnat.com>
43623
43624         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43625
43626         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43627
43628 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
43629
43630         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43631
43632 2001-10-05  Geert Bosch  <bosch@gnat.com>
43633
43634         * adaint.h: Small formatting fix.
43635
43636 2001-10-04  Geert Bosch  <bosch@gnat.com>
43637
43638         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43639         Arg is int, not FILE *, in dummy version of functions.
43640
43641         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43642         Arg is int, not FILE *.
43643
43644 2001-10-04  Geert Bosch  <bosch@gnat.com>
43645
43646         * 3lsoccon.ads: Added file, missed with initial check ins.
43647
43648         * 4lintnam.ads: Fix header format.
43649         Change Linux to GNU/Linux.
43650
43651         * 5iosinte.adb: Change Linux to GNU/Linux.
43652
43653         * 5iosinte.ads: Change Linux to GNU/Linux.
43654
43655         * 5itaprop.adb: Change Linux to GNU/Linux.
43656
43657         * 5itaspri.ads: Change Linux to GNU/Linux.
43658         Update copyright notice.
43659
43660         * 5lintman.adb: Change Linux to GNU/Linux.
43661
43662         * 5lml-tgt.adb: Change Linux to GNU/Linux.
43663
43664         * 5losinte.ads: Change Linux to GNU/Linux.
43665
43666         * 5lsystem.ads: Change Linux to GNU/Linux.
43667
43668         * 5qosinte.adb: Change Linux to GNU/Linux.
43669
43670         * 5qosinte.ads: Change Linux to GNU/Linux.
43671
43672         * 5qparame.ads: Change Linux to GNU/Linux.
43673
43674         * 5qtaprop.adb: Change Linux to GNU/Linux.
43675
43676         * 5qtaspri.ads: Change Linux to GNU/Linux.
43677         Add 2001 to copyright notice.
43678
43679         * 5vintman.ads: Change Linux to GNU/Linux.
43680         Fix header format.  Add 2001 to copyright notice.
43681
43682         * g-soccon.ads: Change Linux to GNU/Linux.
43683
43684         * g-trasym.ads: Change Linux to GNU/Linux.
43685         Add 2001 to copyright notice.
43686
43687         * memtrack.adb: Change Linux to GNU/Linux.
43688
43689         * s-intman.ads: Change Linux to GNU/Linux.
43690         Add 2001 to copyright notice.  Fix header format.
43691
43692         * s-stache.adb: Change Linux to GNU/Linux.
43693
43694         * adaint.c: Change Linux to GNU/Linux.
43695
43696         * cio.c: Change Linux to GNU/Linux.
43697
43698         * cstreams.c: Change Linux to GNU/Linux.
43699
43700         * init.c: Change Linux to GNU/Linux.
43701
43702         * gmem.c: Change Linux to GNU/Linux.
43703
43704         * tracebak.c: Change Linux to GNU/Linux.
43705
43706
43707 2001-10-02  Geert Bosch  <bosch@gnat.com>
43708
43709         * misc.c (insert_default_attributes): Add dummy version.