]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
iinline-1.C: Remove -c flag, add -fpie for PIC targets.
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
6818f0fc
EB
12008-11-06 Eric Botcazou <ebotcazou@adacore.com>
2
3 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
4 files for the target-dependent part of the runtime.
5 (SPARC/Linux): Likewise.
6
8d3323de
EB
72008-11-06 Eric Botcazou <ebotcazou@adacore.com>
8
9 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
10 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
11 purposes.
12
baf6e6a8
EB
132008-11-06 Eric Botcazou <ebotcazou@adacore.com>
14
15 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
16 in GC memory.
17
8b659f79
EB
182008-11-06 Eric Botcazou <ebotcazou@adacore.com>
19
20 PR ada/19419
21 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
22 Generate a call to memmove for an assignment between overlapping
23 array slices.
24
358ef7fb
AK
252008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26
27 PR target/37977
28 * gcc-interface/Makefile.in: Add multilib handling for
29 s390-linux and s390x-linux.
30
7134e605
JJ
312008-10-24 Jakub Jelinek <jakub@redhat.com>
32
33 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
34 check-acats-subtargets and check-gnat-subtargets.
35 (check_acats_targets): New variable.
36 (check-acats-subtargets, check-acats%): New targets.
37 (check-acats): If -j is used and CHAPTERS is empty, run the testing
38 in multiple make goals, possibly parallel, and afterwards run
39 dg-extract-results.sh to merge the sum and log files.
40
82f7c45f
GB
412008-10-17 Geert Bosch <bosch@adacore.com>
42
43 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
44 to use only a single check instead of three, and avoid unnecessary
45 COMPOUND_EXPR.
46 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
47 creating more opportunities for optimizations.
48
0adef32b
JJ
492008-10-13 Jakub Jelinek <jakub@redhat.com>
50
51 PR middle-end/37601
52 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
53 NULL TYPE_DOMAIN.
54
9cf18af8
EB
552008-10-07 Eric Botcazou <ebotcazou@adacore.com>
56
57 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
58 dealing with volatileness to after code dealing with renaming.
59
e84319a3
EB
602008-10-06 Eric Botcazou <ebotcazou@adacore.com>
61
62 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
63 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
64
afcea859
EB
652008-10-06 Eric Botcazou <ebotcazou@adacore.com>
66
67 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
68 (unchecked_convert): Use it to disable problematic folding with
69 VIEW_CONVERT_EXPR in the general case. Always disable it for the
70 special VIEW_CONVERT_EXPR built for integral types and cope with
71 its addressability issues by preserving the first conversion.
72
9e81dbc7
AS
732008-10-01 Andreas Schwab <schwab@suse.de>
74
75 * system-linux-ppc64.ads: New file.
76 * gcc-interface/Makefile.in: Add multilib handling for
77 powerpc-linux.
78
bb3da4f2
EB
792008-09-26 Eric Botcazou <ebotcazou@adacore.com>
80
81 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
82 to that of ptr_mode instead of word_mode.
83
8f5730b9
EB
842008-09-26 Eric Botcazou <ebotcazou@adacore.com>
85
86 PR ada/5911
87 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
88
3ca37eb7
ST
892008-09-25 Samuel Tardieu <sam@rfc1149.net>
90
91 PR ada/37641
92 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
93 instead of deprecated FILE_WRITE_PROPERTIES.
94
22868cbf
OH
952008-09-22 Olivier Hainque <hainque@adacore.com>
96
97 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
98 are never assigned, volatile entities are not constant for code
99 generation purposes.
100
7193e639
LG
1012008-09-21 Laurent Guerby <laurent@guerby.net>
102
9e81dbc7 103 PR ada/5911
7193e639
LG
104 * gcc-interface/Makefile.in: Add multilib handling for x86_64
105 and sparc.
106 * system-linux-sparcv9.ads: New file.
9e81dbc7 107
7fda1596
EB
1082008-09-20 Eric Botcazou <ebotcazou@adacore.com>
109
110 * exp_dbug.ads: Document new convention for the XVZ variable.
111 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
112 debug info if necessary for the type padding the component type.
113 <E_Array_Subtype>: Likewise.
114 (maybe_pad_type): Emit the XVZ variable in units.
115 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
116 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
117 on statements generated to initialize the parameter attributes cache.
118 Set the source line of the end label of the body on the special return
119 statement built for a procedure with copy-in copy-out parameters.
120
d84b344a
EB
1212008-09-20 Eric Botcazou <ebotcazou@adacore.com>
122
123 PR ada/37585
124 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
125 inlined external functions if they contain a nested function not
126 declared inline.
127
4db26d6c
JH
1282008-09-18 Jan Hubicka <jh@suse.cz>
129
130 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
131 (end_subprog_body): Do not set DECL_INLINE.
132
03e74118
PR
1332008-09-17 Pascal Rigaux <pixel@mandriva.com>
134
135 PR ada/21327
136 * gnat_ugn.texi: Use proper format in direntry.
137
6a7a3f31
EB
1382008-09-15 Eric Botcazou <ebotcazou@adacore.com>
139
140 * gcc-interface/trans.c (gigi): Declare the name of the compilation
141 unit as the first global name.
142
f67894ed
JH
1432008-09-14 Jan Hubicka <jh@suse.cz>
144
6a7a3f31 145 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
f67894ed 146
16b05213
RW
1472008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
148
149 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
150 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
151 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
152 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
153 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
154 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
155 gcc-interface/gigi.h, gcc-interface/trans.c,
156 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
157 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
158 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
159 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
160 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
161 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
162 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
163 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
164 comments.
165 * gnathtml.pl: Fix typos.
166
1011d8a2
JS
1672008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
168
169 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
170 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
171 layer. RTEMS binds to OS provided adapter routines so there are
172 no modifications to s-osinte-rtems.adb.
173
e5c73177
AC
1742008-09-09 Arnaud Charlet <charlet@adacore.com>
175 Joel Sherrill <joel.sherrill@oarcorp.com>
176
177 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
178
179 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
180
181 * s-interr-hwint.adb: New file.
182
183 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
184 needed by s-interr-hwint.adb.
185
186 * s-osinte-vxworks-kernel.adb: New file.
187
56cc5928
JS
1882008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
189
190 * s-stchop-rtems.adb: Add file missed in early commit. Already
191 referenced in gcc-interface/Makefile.in.
192
21bacb7e
TQ
1932008-08-30 Thomas Quinot <quinot@adacore.com>
194
195 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
196 be built even without a separate libada directory.
197
5b2da948
AC
1982008-08-22 Arnaud Charlet <charlet@adacore.com>
199
200 * lib-xref.ads: Fix typo in subprogram reference definition.
201
2022008-08-22 Robert Dewar <dewar@adacore.com>
203
c9f1fdfe
RD
204 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
205 to avoid warning.
5b2da948 206
c9f1fdfe 207 * g-trasym.adb: Ditto
5b2da948
AC
208
209 * s-utf_32.adb (Get_Category): Fix obvious typo
210
211 * s-wwdcha.adb: Minor code reorganization
212 Remove dead code
213
4351c21b
AC
2142008-08-22 Robert Dewar <dewar@adacore.com>
215
216 * checks.adb (Determine_Range): Deal with values that might be invalid
217
e5c73177
AC
218 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
219 configuration switches.
4351c21b
AC
220
221 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
222
223 * sem_prag.adb: Implement pragma Assume_No_Default_Values
224
225 * snames.adb, snames.ads, snames.h:
226 Add entries for pragma Assume_No_Invalid_Values
227
228 * switch-c.adb: Add processing for -gnatB switch
229
230 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
231
2322008-08-22 Javier Miranda <miranda@adacore.com>
233
234 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
235 init procedure all the expanded code associated with the spec of
236 task types and protected types.
237
2743d81d
AC
2382008-08-22 Gary Dismukes <dismukes@adacore.com>
239
240 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
241 component expression copies rather than directly setting Etype and
242 Is_Static_Expression.
243
2442008-08-22 Gary Dismukes <dismukes@adacore.com>
245
246 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
247 private types to allow for types derived from a private type with
248 preelaborable initialization, but return False for a private extension
249 (unless it has the pragma).
250
2512008-08-22 Robert Dewar <dewar@adacore.com>
252
253 * opt.ads: Minor code reorganization (put entries in alpha order)
254
a5ad3248
AC
2552008-08-22 Pascal Obry <obry@adacore.com>
256
257 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
258 spawn.
259
6eca32ba
GB
2602008-08-22 Geert Bosch <bosch@adacore.com>
261
262 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
263 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
264
1c7717c3
AC
2652008-08-22 Doug Rupp <rupp@adacore.com>
266
267 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
268 __gnat_set_features.
269
270 * init.c
271 (__gnat_set_features): New function.
272 (__gnat_features_set): New tracking variable.
273 (__gl_no_malloc_64): New feature global variable
274
2752008-08-22 Ed Schonberg <schonberg@adacore.com>
276
277 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
278 use_type_clause in an instance.
279
2802008-08-22 Bob Duff <duff@adacore.com>
281
282 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
283
2842008-08-22 Robert Dewar <dewar@adacore.com>
285
286 * exp_ch6.adb: Minor reformatting
287
288 * exp_ch7.adb: Minor reformatting
289
290 * exp_ch7.ads: Put routines in proper alpha order
291
292 * exp_dist.adb: Minor reformatting
293
2942008-08-22 Vincent Celier <celier@adacore.com>
295
296 * prj.ads: Minor comment update
297
2982008-08-22 Robert Dewar <dewar@adacore.com>
299
300 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
301
3022008-08-22 Ed Schonberg <schonberg@adacore.com>
303
304 * exp_tss.adb:
305 (Base_Init_Proc): For a protected subtype, use the base type of the
306 corresponding record to locate the propoer initialization procedure.
307
3082008-08-22 Robert Dewar <dewar@adacore.com>
309
310 * checks.adb:
311 (In_Subrange_Of): New calling sequence
312 (Determine_Range): Prepare for new processing using base type
313
314 * exp_ch4.adb:
315 (Compile_Time_Compare): Use new calling sequence
316
317 * exp_ch5.adb:
318 (Compile_Time_Compare): Use new calling sequence
319
320 * sem_eval.adb:
321 (Compile_Time_Compare): New calling sequence allows dealing with
322 invalid values.
323 (In_Subrange_Of): Ditto
324
325 * sem_eval.ads:
326 (Compile_Time_Compare): New calling sequence allows dealing with
327 invalid values.
328 (In_Subrange_Of): Ditto
329
3302008-08-22 Pascal Obry <obry@adacore.com>
331
332 * adaint.c: Fix possible race condition on win32_wait().
333
048e5cef
BD
3342008-08-22 Bob Duff <duff@adacore.com>
335
336 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
337 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
338 exp_intr.adb, exp_ch3.adb: Rename:
339 Exp_Ch7.Controlled_Type => Needs_Finalization
340 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
341 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
342 Has_Controlled_Parts
343 (Has_Some_Controlled_Component): Fix bug in array case.
344
da2f5d14
AC
3452008-08-22 Robert Dewar <dewar@adacore.com>
346
347 * sem_ch8.adb: Minor reformatting
348
3492008-08-22 Kevin Pouget <pouget@adacore.com>
350
351 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
352 Shared_Var_Close procedure specifications from package spec to package body.
353
354 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
355 RE_Shared_Var_WOpen entries.
356
357 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
358 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
359
3602008-08-22 Eric Botcazou <ebotcazou@adacore.com>
361
362 * init.c: adjust EH support code on Alpha/Tru64 as well.
363
364 * raise-gcc.c: Add back a couple of comments.
365
3662008-08-22 Ed Schonberg <schonberg@adacore.com>
367
368 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
369 involved and the return type is class-wide, use the type of the expression
370 for the generated access type. Suppress useless discriminant checks on the
371 allocator.
372
3732008-08-22 Bob Duff <duff@adacore.com>
374
375 * exp_ch7.adb: Minor comment fix
376
377 * exp_ch6.ads: Minor comment fix
378
1dcdbfab
AC
3792008-08-22 Thomas Quinot <quinot@adacore.com>
380
381 * sem_ch8.adb: Minor reformatting
382 Minor code reorganization (introduce subprogram to factor duplicated
383 code).
384
3852008-08-22 Sergey Rybin <rybin@adacore.com>
386
387 * gnat_ugn.texi: Change the description of gnatcheck default rule
388 settings.
389
3902008-08-22 Eric Botcazou <ebotcazou@adacore.com>
391
392 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
393 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
394 do not adjust the PC anymore.
395 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
396 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
397
398 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
399 instead of _Unwind_GetIP.
400
4012008-08-22 Gary Dismukes <dismukes@adacore.com>
402
403 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
404 with a range is transformed into a positional aggregate, any copied
405 component literals should be marked Is_Static_Expression.
406
407 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
408 not being known at at compile time when Configurable_Run_Time_Mode is
409 true.
410
4112008-08-22 Robert Dewar <dewar@adacore.com>
412
413 * exp_attr.adb:
414 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
415 Read or Input attribute.
416
0d4aed99
AC
4172008-08-22 Ed Schonberg <schonberg@adacore.com>
418
419 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
420 clauses in related units is redundant, if one of the units is a package
421 instantiation, use its instance_spec to determine which unit is the
422 ancestor of the other.
423
4242008-08-22 Javier Miranda <miranda@adacore.com>
425
426 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
427 attributes add missing support to handle designated types that come
428 from the limited view.
429
430 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
431
4322008-08-22 Sergey Rybin <rybin@adacore.com>
433
434 * vms_data.ads: Add entry for new gnatcheck -mNNN option
435
436 * gnat_ugn.texi: Add description for gnatcheck option '-m'
437
5d41bf55
AC
4382008-08-22 Sergey Rybin <rybin@adacore.com>
439
440 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
441 acoording to the latest changes in the metric rule interface
442
4432008-08-22 Vincent Celier <celier@adacore.com>
444
445 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
446 (Check): Check if the file names registered in the ALI file for the
447 spec, the body and each of the subunits are the ones expected.
448
4492008-08-22 Robert Dewar <dewar@adacore.com>
450
451 * g-catiio.adb: Code cleanup.
452
9299a27c
AC
4532008-08-20 Vincent Celier <celier@adacore.com>
454
455 * make.adb (Gnatmake): Remove extra space in version line
456
457 * ali.adb:
458 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
459 as the name may already have been entered in the table by the Project
460 Manager.
461
4622008-08-20 Jose Ruiz <ruiz@adacore.com>
463
464 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
465 weak symbols so we use the version provided by MaRTE when available.
466
4672008-08-20 Emmanuel Briot <briot@adacore.com>
468
469 * g-catiio.ads, g-catiio.adb:
470 (Value): Avoid an unnecessary system call to Clock in most cases.
471 This call is only needed when only the time is provided in the string,
472 and ignored in all other cases. This is more efficient.
473
4742008-08-20 Eric Botcazou <ebotcazou@adacore.com>
475
476 * raise-gcc.c: Fix formatting nits.
477
5e5dc75a
RD
4782008-08-20 Robert Dewar <dewar@adacore.com>
479
480 * sem_ch13.adb:
481 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
482 non-existing component clause.
483
484 * exp_ch5.adb: Minor reformatting
485
486 * g-comlin.adb: Minor reformatting
487
488 * make.adb: Minor reformatting
489
490 * prj-proc.adb: Minor reformatting
491
492 * stylesw.ads: Minor reformatting
493
235f4375
AC
4942008-08-20 Vincent Celier <celier@adacore.com>
495
496 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
497 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
498 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
499 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
500 and a switch is not recognized by gnatmake.
501 (Gnatmake): Implement new scheme for gnatmake switches and global
502 compilation switches.
503 (Switches_Of): Try successively Switches (<file name>),
504 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
505
5062008-08-20 Ed Schonberg <schonberg@adacore.com>
507
508 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
509 implement style check that overriding operations are explicitly marked
510 at such.
511
512 * style.ads (Missing_Overriding): new procedure that provides interface
513 to previous one.
514
515 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
516 that the declaration or body of overriding operations carries an
517 explicit overriding indicator.
518
519 * sem_ch8.adb
520 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
521 explicit indicator should be present.
522
523 * sem_ch6.adb (Verify_Overriding_Indicator,
524 Check_Overriding_Indicator): If operation is overriding, check whether
525 declaration and/or body of subprogram should be present
526
7486d8e0
AC
5272008-08-20 Vincent Celier <celier@adacore.com>
528
529 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
530 gprbuild when casing is MixedCase, whatever the casing of the letters
531 in the file name.
532
5332008-08-20 Gary Dismukes <dismukes@adacore.com>
534
535 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
536 creating dummy init proc.
537 (Requires_Init_Proc): Return False in the case No_Default_Initialization
538 is in force and the type does not have associated default
539 initialization. Move test of Is_Public (with tests of restrictions
540 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
541 for default initialization.
542
5432008-08-20 Jerome Lambourg <lambourg@adacore.com>
544
545 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
546 of any alias or prefix but having attached parameters (as \"-O2\").
547
fe5dbc2c
AC
5482008-08-20 Robert Dewar <dewar@adacore.com>
549
550 * s-fileio.adb: Minor reformatting
551
5522008-08-20 Thomas Quinot <quinot@adacore.com>
553
554 * exp_strm.adb (Build_Elementary_Input_Call,
555 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
556 selects the stream attribute routines for long float types.
557
5582008-08-20 Vincent Celier <celier@adacore.com>
559
560 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
561
562 * prj.ads (Array_Data): Add a component Location
563
5642008-08-20 Ed Schonberg <schonberg@adacore.com>
565
566 * sem_prag.adb:
567 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
568 argument for ASIS and navigation use.
569
5702008-08-20 Ed Schonberg <schonberg@adacore.com>
571
572 * einfo.ads: Add comment.
573
5742008-08-20 Bob Duff <duff@adacore.com>
575
576 * sem_eval.ads: Minor comment fix.
577
5782008-08-20 Bob Duff <duff@adacore.com>
579
580 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
581 folding. We were folding things like "False and then ...", but not
582 "X and then ..." where X is a constant whose value is known at compile
583 time.
584
5852008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
586
587 * exp_ch5.adb (Controlled_Type): New routine.
588 (Expand_N_Extended_Return_Statement): When generating a move of the
589 final list in extended return statements, check the type of the
590 function and in the case of double expanded return statements, the type
591 of the returned object.
592 (Expand_Simple_Function_Return): Perform an interface conversion when
593 the type of the returned object is an interface and the context is an
594 extended return statement.
595
5962008-08-20 Ed Schonberg <schonberg@adacore.com>
597
598 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
599 and the full view is visible, set flag on full view as well.
600
6012008-08-20 Thomas Quinot <quinot@adacore.com>
602
603 * g-comlin.adb: Minor reformatting
604 Minor code reorganization.
605
606 * freeze.adb: Minor reformatting
607
6082008-08-20 Vincent Celier <celier@adacore.com>
609
610 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
611 source of another project.
612
6132008-08-20 Pascal Obry <obry@adacore.com>
614
615 * s-os_lib.ads: Minor reformatting.
616
c4075a15
AC
6172008-08-20 Arnaud Charlet <charlet@adacore.com>
618
619 * gnatvsn.ads: Minor reformatting.
620
0dd8a0b1
AC
6212008-08-20 Arnaud Charlet <charlet@adacore.com>
622
623 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
624 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
625 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
626 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
627 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
628 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
629 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
630 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
631 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
632 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
633 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
634 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
635 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
636 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
637 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
638 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
639 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
640 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
641 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
642 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
643 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
644 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
645 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
646 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
647 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
648 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
649 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
650 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
651 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
652 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
653 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
654 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
655 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
656 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
657 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
658 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
659 s-poosiz.adb, link.c: Fix copyright notice.
660
f4857d6e
AC
6612008-08-20 Arnaud Charlet <charlet@adacore.com>
662
663 * g-comlin.ads: Update comments.
664
8b4261b3
AC
6652008-08-20 Ed Schonberg <schonberg@adacore.com>
666
667 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
668
6692008-08-20 Gary Dismukes <dismukes@adacore.com>
670
671 * exp_ch11.adb:
672 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
673 Make_Implicit_Exception_Handler when rewriting an exception handler with
674 a choice parameter, and pass the handler's Sloc instead of that of the
675 handled sequence of statements. Make_Implicit_Exception_Handler sets the
676 Sloc to No_Location (unless debugging generated code), which we don't
677 want for the case of a user handler.
678
c6084ae0
AC
6792008-08-20 Robert Dewar <dewar@adacore.com>
680
681 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
9e81dbc7 682
c6084ae0
AC
683 * sem_ch13.adb:
684 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
685 now labeled as info msgs, not warnings.
686
687 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
688
689 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
690
691 * a-textio.adb: Remove redundant test.
692
693 * a-witeio.adb: Minor code reorganization
694 Remove redundant test found working on another issue
695
696 * a-ztexio.adb: Minor code reorganization
697 Remove redundant test found working on another issue
698
6992008-08-20 Thomas Quinot <quinot@adacore.com>
700
701 * s-fileio.adb (Open) Use C helper function to determine whether a
702 given errno value corresponds to a "file not found" error.
703
704 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
705
7062008-08-20 Jose Ruiz <ruiz@adacore.com>
707
708 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
709 to get access to the per-task errno variable.
710 (__set_errno for MaRTE): Do not redefine this function here since it is
711 already defined in MaRTE.
712
7132008-08-20 Tristan Gingold <gingold@adacore.com>
714
715 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
716
6e7f835f
AC
7172008-08-20 Robert Dewar <dewar@adacore.com>
718
719 * freeze.adb: Minor reformatting
720
721 * g-comlin.adb: Minor reformatting
722
723 * g-socket.adb: Minor reformatting
724
725 * g-socthi-mingw.adb: Minor reformatting
726
727 * g-stheme.adb: Minor reformatting
728
2af92e28
ES
7292008-08-20 Ed Schonberg <schonberg@adacore.com>
730
731 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
732 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
733 confusion between partial and full views of an ancestor of the context
734 type when the parent is a private extension declared in a parent unit,
735 and full views are available for the context type.
736
79a14178 7372008-08-18 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 738 Robert Dewar <dewar@adacore.com>
79a14178
ST
739
740 PR ada/30827
741 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
742 version string.
743 Move comment in the right place.
744 * g-comver.adb (Version): Look for a zero-termination in
745 addition to a closing parenthesis.
746
b9b2405f
ST
7472008-08-18 Samuel Tardieu <sam@rfc1149.net>
748
749 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
750 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
751 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
752 Is_Package_Or_Generic_Package instead of hand-crafted tests.
753
51c16e29
ST
7542008-08-18 Samuel Tardieu <sam@rfc1149.net>
755
756 PR ada/15808
757 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
758 as well.
759
c8bbc9ef
AL
7602008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
761
762 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
763
e650b83a
EB
7642008-08-16 Eric Botcazou <ebotcazou@adacore.com>
765
766 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
767 for back-copy statements in lieu of that of the actual.
768
b38f3813
EB
7692008-08-16 Eric Botcazou <ebotcazou@adacore.com>
770
771 PR ada/20548
772 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
12f89f6c 773 setjmp test consistently. Adjust for new behavior of flag_stack_check.
b38f3813 774 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
12f89f6c 775 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
b38f3813 776
2d14501c
ST
7772008-08-13 Samuel Tardieu <sam@rfc1149.net>
778
779 PR ada/36777
780 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
781 * sem_attr.adb (Check_Type): The current instance of a protected
782 object is not a type name.
783 (Analyze_Access_Attribute): Accept instances of protected objects.
784 (Analyze_Attribute, Attribute_Address clause): Ditto.
785 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
786 the prefix as being the current instance if needed.
787
62641193
DS
7882008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
789
0490fbb8
EB
790 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
791 Remove duplicate s-win32.o. Add s-winext.o.
62641193 792
2a04ce75
DS
7932008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
794
795 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
796 with SOSC.SOCK__STREAM.
797 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
798 SOSC.MSG_OOB.
799
269b85b7
JS
8002008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
801
802 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
803 * gsocket.h, socket.c: Update to support RTEMS.
804 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
805
abcbd24c 8062008-08-10 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 807 Robert Dewar <dewar@adacore.com>
abcbd24c
ST
808
809 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
810 left argument even when right argument is 0.
811 (Expand_N_Op_Mod): Ditto when right argument is 1.
812 (Expand_N_Op_Multiply): Ditto when any argument is 0.
813 (Expand_N_Op_Rem): Ditto when right argument is 1.
814
98e48a7f
MLI
8152008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
816
817 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
818 by warn_unused.
9e81dbc7 819
70d904ca
ES
8202008-08-08 Ed Schonberg <schonberg@adacore.com>
821
822 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
823 from Freeze_Entity. Used to generate cross-reference information for
824 types declared in generic packages.
825
cfb53555
TQ
8262008-08-08 Thomas Quinot <quinot@adacore.com>
827
828 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
829 compatibility shim.
830
a3ea9137
AC
8312008-08-08 Thomas Quinot <quinot@adacore.com>
832
833 * gsocket.h:
834 On Windows, include <errno.h> and redefine only selected errno values
835 from their <winsock2.h> definitions.
836
837 * s-osinte-freebsd.ads: Minor reformatting
838
839 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
840
841 * g-soccon.ads: New file.
842
843 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
844 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
845 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
846 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
847 unit, to allow building software that depends on this internal unit
848 with both older and newer compilers.
849
8502008-08-08 Robert Dewar <dewar@adacore.com>
851
852 * s-strxdr.adb: Minor reformatting
853
8542008-08-08 Bob Duff <duff@adacore.com>
855
856 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
857 checking for integer operations (including division by zero)", which
858 is wrong -- divide by zero is not part of overflow checking.
859 Also added misc clarification about what check-suppression means.
860
861 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
862
8632008-08-08 Jerome Lambourg <lambourg@adacore.com>
864
865 * g-comlin.adb (Add_Switch): Handle addition of switches at the
866 begining of the command line.
867 (Append, Add): Renaming of Append to Add as this now allows addition
868 at the begining of the list.
9e81dbc7 869
a3ea9137
AC
870 * g-comlin.ads (Add_Switch): Handle addition of switches at the
871 begining of the command line.
872
8732008-08-08 Thomas Quinot <quinot@adacore.com>
874
875 * g-sercom.ads:
876 (Name): Document application scope (only legacy PC serial ports on
877 Linux and Windows).
878
15d2e2d4
TQ
8792008-08-08 Thomas Quinot <quinot@adacore.com>
880
881 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
882 previous change, not needed after all.
883
51e4c4b9
AC
8842008-08-08 Ed Schonberg <schonberg@adacore.com>
885
886 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
887 exclusion indicator is present
888
8892008-08-08 Robert Dewar <dewar@adacore.com>
890
891 * g-comlin.adb: Minor code reorganization
892 Minor reformatting
893
894 * g-comlin.ads: Minor reformatting
895
896 * s-fileio.adb: Minor reformatting
897
898 * sem_attr.adb: Minor code reorganization (use Nkind_In)
899 Minor reformatting
900
6f371a2e
ST
9012008-08-06 Samuel Tardieu <sam@rfc1149.net>
902
903 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
904 with s-oscons-tmplt.i.
905
6a69bcf4
ST
9062008-08-06 Samuel Tardieu <sam@rfc1149.net>
907
908 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
909
ef9e1eff
AC
9102008-08-06 Ed Schonberg <schonberg@adacore.com>
911
912 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
913 of incomplete type.
914
915 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
916 of a formal parameter of an incomplete type. Improve error message for
917 other improper uses of incomplete types.
918
9192008-08-06 Robert Dewar <dewar@adacore.com>
920
921 * gnat_ugn.texi: Clarify -gnato documentation
922
9232008-08-06 Thomas Quinot <quinot@adacore.com>
924
925 * gcc-interface/Makefile.in,
926 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
927 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
928 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
929 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
930 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
931 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
932 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
933 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
934 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
935 Remove GNAT.Sockets.Constants. This internal package is replaced by
936 System.OS_Constants.
937
e93d146b
TQ
9382008-08-06 Thomas Quinot <quinot@adacore.com>
939
940 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
941 Remove obsolete targets referencing gen-soccon
942 When generating s-oscons.ads, use a file name that includes the
943 THREAD_KIND, to ensure that the (potentially different) version from a
944 previous build with a different threads flavour does not get reused.
945
c6aecf3b
AC
9462008-08-06 Thomas Quinot <quinot@adacore.com>
947
948 * sem_res.adb: Minor reformatting
949
950 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
951 only when the operating system reports a non-existing file or directory
952 (ENOENT), otherwise raise Name_Error.
953
954 * exp_ch11.adb: Minor reformatting
955
9562008-08-06 Ed Schonberg <schonberg@adacore.com>
957
958 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
959 incomplete, add the access_to_subprogram type to the list of private
960 dependents only if the incomplete type will be completed in the current
961 scope.
962 (Build_Discriminant_Constraints): If the type of the discriminant is
963 access_to_variable, reject a constraint that is access_to_constant.
964
6594c0f3
AC
9652008-08-06 Thomas Quinot <quinot@adacore.com>
966
967 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
968 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
969 g-sttsne-dummy.ads: New files.
970
971 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
972 with pragma Unimplemented_Unit for sockets packages on Nucleus.
973
9742008-08-06 Pascal Obry <obry@adacore.com>
975
976 * adaint.c: Another fix for ACL support on Windows.
977
9782008-08-06 Javier Miranda <miranda@adacore.com>
979
980 * exp_disp (Expand_Interface_Actuals): Adds missing support for
981 expansion of calls to subprograms using selected components.
982
9832008-08-06 Ed Schonberg <schonberg@adacore.com>
984
985 * sem_res.adb (Resolve_Call): Use base type to determine whether a
986 dereference is needed because a subtype of an access_to_subprogram is
987 simply an access-subtype
988
9892008-08-06 Jerome Lambourg <lambourg@adacore.com>
990
991 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
992 parameters, always specify the expected separator.
993
f9325b03
AC
9942008-08-06 Thomas Quinot <quinot@adacore.com>
995
996 * xnmake.adb: Use new XUtil package for platform independent text
997 output.
998
9992008-08-06 Vincent Celier <celier@adacore.com>
1000
1001 * gnat_ugn.texi: Document compiler switch -gnateG
1002
10032008-08-06 Quentin Ochem <ochem@adacore.com>
1004
1005 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1006 in the case of an empty pattern size.
1007 (Compute_Result): Do not do any computation in the case of an empty
1008 pattern size.
1009 (Report_Result): Fixed computation of the overflow guard.
1010
10112008-08-06 Ed Schonberg <schonberg@adacore.com>
1012
1013 * g-awk.adb (Finalize): Do not use directly objects of the type in the
1014 finalization routine to prevent elaboration order anomalies in new
1015 finalization scheme.
1016
10172008-08-06 Ed Schonberg <schonberg@adacore.com>
1018
1019 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1020 declaration for the same type.
1021
10222008-08-06 Thomas Quinot <quinot@adacore.com>
1023
1024 * sem.adb: Minor rewording (comment)
1025
10262008-08-06 Jerome Lambourg <lambourg@adacore.com>
1027
1028 * g-comlin.adb (Define_Switch, Get_Switches): New.
1029 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1030 ungrouping switches.
1031 (For_Each_Simple_Switch): Allow more control over parameters handling.
1032 This generic method now allows ungrouping of switches with parameters
1033 and switches with more than one letter after the prefix.
1034 (Set_Command_Line): Take care of switches that are prefixed with a
1035 switch handling parameters without delimiter (-gnatya and -gnaty3 for
1036 example).
1037 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1038 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1039 the operation.
1040 (Start, Alias_Switches, Group_Switches): Take care of parameters
1041 possibly present inside a group.
1042
1043 * g-comlin.ads (Define_Switch): New method used to define a list of
1044 expected switches, that are necessary for correctly ungrouping switches
1045 with more that one character after the prefix.
1046 (Get_Switches): Method that builds a getopt string from the list of
1047 switches as set previously by Define_Switch.
1048 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1049 status of the operation. Also allow the removal of switches with
1050 parameters only.
1051 (Command_Line_Configuration_Record): Maintain a list of expected
1052 switches.
1053
f0a631aa
DR
10542008-08-06 Doug Rupp <rupp@adacore.com>
1055
1056 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1057 TARGET_MALLOC64 clear.
1058
1059 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1060 if TARGET_MALLOC64 clear.
1061
1062 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1063 (TARGET_MALLC64): New macro. Default to clear.
1064
31fcb30f
DR
10652008-08-06 Doug Rupp <rupp@adacore.com>
1066
1067 * gcc-interface/utils2.c (snames.h) Include
1068 (TARGET_ABI_OPEN_VMS): Initialize.
1069 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1070 for Convention C.
1071
ea08fcdc
AC
10722008-08-06 Ed Schonberg <schonberg@adacore.com>
1073
1074 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1075 null exclusion in a discriminant declaration
1076
1077 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1078 indicators when type is not an access type.
1079
1080 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1081 indicators when type is not an access type.
1082
10832008-08-06 Javier Miranda <miranda@adacore.com>
1084
1085 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1086 with the target interface before expanding the code of the interface
1087 conversion.
1088
aecf0203
AC
10892008-08-05 Ed Schonberg <schonberg@adacore.com>
1090
1091 * freeze.adb:
1092 (Freeze_Entity): A deferred constant does not violate the restriction
9e81dbc7 1093 No_Default_Initialization,
aecf0203
AC
1094
1095 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1096 can carry a null exclusion indicator, and on which an error may be
1097 posted if the indicator is redundant.
1098
1099 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1100 does not apply to a subtype mark that already excludes null.
1101
1102 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1103 exclusion does not apply to a subtype mark that already excludes null.
1104
11052008-08-05 Thomas Quinot <quinot@adacore.com>
1106
1107 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1108
11092008-08-05 Doug Rupp <rupp@adacore.com>
1110
1111 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1112
434d3cf1
AC
11132008-08-05 Thomas Quinot <quinot@adacore.com>
1114
1115 * gsocket.h: Make this file includable in a Nucleus environment, which
1116 does not support sockets.
1117
1118 * socket.c: Remove Nucleus-specific hack.
1119
11202008-08-05 Pascal Obry <obry@adacore.com>
1121
1122 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1123
11242008-08-05 Ed Schonberg <schonberg@adacore.com>
1125
1126 * sem_attr.adb:
1127 (Analyze_Attribute, case 'Result): handle properly the case where some
1128 operand of the expression in a post-condition generates a transient
1129 block.
1130
1131 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1132 right-hand side when it is an anonymous access_to_subprogram, to force
1133 static accessibility check when needed.
1134
49331b42
AC
11352008-08-05 Sergey Rybin <rybin@adacore.com>
1136
1137 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1138 rule according to the change in the rule option.
1139 Add documentation for -gnatw.b/-gnatw.B
1140
11412008-08-05 Robert Dewar <dewar@adacore.com>
1142
1143 * ug_words: Add entries for -gnatw.b/-gnatw.B
1144
1145 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1146
21f560ba
VC
11472008-08-05 Vincent Celier <celier@adacore.com>
1148
1149 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1150 (File).
9e81dbc7 1151
21f560ba
VC
1152 * a-ztdeio.adb: Ditto.
1153
43540ec6
AC
11542008-08-05 Pascal Obry <obry@adacore.com>
1155
1156 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1157 readable attribute.
1158
11592008-08-05 Vincent Celier <celier@adacore.com>
1160
1161 * s-wchwts.adb:
1162 (Wide_String_To_String): Returns a String with the same 'First as its
1163 parameter S.
1164 (Wide_Wide_String_To_String): Ditto
9e81dbc7 1165
43540ec6
AC
1166 * s-wchwts.ads:
1167 (Wide_String_To_String): Document that the lowest index of the returned
1168 String is equal to S'First.
1169
2d4d7e29
TQ
11702008-08-05 Thomas Quinot <quinot@adacore.com>
1171
1172 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1173
1174 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1175 s-oscons.ads
1176
4ae23b62
AC
11772008-08-05 Robert Dewar <dewar@adacore.com>
1178
1179 * opt.ads (Warn_On_Biased_Representation): New flag
9e81dbc7 1180
4ae23b62
AC
1181 * sem_ch13.adb:
1182 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1183 representation is required.
1184 (Minimum_Size): Don't allow biasing if enum rep clause case
9e81dbc7 1185
4ae23b62
AC
1186 * sem_warn.adb:
1187 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1188 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
9e81dbc7 1189
4ae23b62
AC
1190 * usage.adb: Add lines for -gnatw.b/B switches
1191
11922008-08-05 Pascal Obry <obry@adacore.com>
1193
1194 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1195
1196 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1197
11982008-08-05 Thomas Quinot <quinot@adacore.com>
1199
1200 * socket.c: Minor reformatting.
1201
ba3fa650
AC
12022008-08-05 Robert Dewar <dewar@adacore.com>
1203
1204 * sem_ch3.adb: Minor reformatting
1205
1206 * prj-nmsc.adb: Minor reformatting
1207
12082008-08-05 Ed Schonberg <schonberg@adacore.com>
1209
1210 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1211 visibility check on the component type if the simple test fails.
1212
c775e4a1
AC
12132008-08-05 Jose Ruiz <ruiz@adacore.com>
1214
1215 * init.c (__gnat_install_handler for linux): If we are building the
1216 Xenomai run time then we need to do two additional things: avoid
1217 memory swapping and transform the Linux environment task into a native
1218 Xenomai task.
1219
1220 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1221 time): Use interface to Xenomai native skin and avoid linux-specific
1222 way of setting CPU affinity.
1223 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1224
12252008-08-05 Bob Duff <duff@adacore.com>
1226
1227 * checks.ads: Minor comment fix
1228
12292008-08-05 Thomas Quinot <quinot@adacore.com>
1230
1231 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1232 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1233 CS8.
1234
12352008-08-05 Robert Dewar <dewar@adacore.com>
1236
1237 * mlib.adb: Minor code reorganization
1238 Minor reformatting
1239
1240 * make.adb: Minor reformatting
1241
1242 * prj-attr.ads: Minor reformatting
1243
1244 * s-os_lib.adb: Minor reformatting
1245
1246 * s-fileio.adb: Minor code reorganization
1247 Minor reformatting
1248
1249 * prj.ads: Minor reformatting
1250
12512008-08-05 Bob Duff <duff@adacore.com>
1252
1253 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1254 unresolved initial value of "null", because it causes implicitly
1255 generated "=" operators to be ambiguous, and because this type should
1256 not be passed to gigi.
1257
0df218a9
AC
12582008-08-05 Vincent Celier <celier@adacore.com>
1259
1260 * mlib.adb: Update comments.
1261
1262 * make.adb (Switches_Of): Check for Switches (others), before checking
1263 for Default_Switches ("Ada").
1264 (Gnatmake): Use Builder'Switches (others) in preference to
1265 Builder'Default_Switches ("Ada") if there are several mains.
1266
1267 * prj-attr-pm.adb:
1268 (Add_Attribute): Add component Others_Allowed in Attribute_Record
1269 aggregate.
1270
1271 * prj-attr.adb:
1272 Add markers to indicates that attributes Switches allow others as index
1273 (Others_Allowed_For): New Boolean function, returning True for
1274 attributes with the mark.
1275 (Initialize): Recognize optional letter 'O' as the marker for
1276 associative array attributes where others is allowed as the index.
1277
1278 * prj-attr.ads:
1279 (Others_Allowed_For): New Boolean function
1280 (Attribute_Record): New Boolean component Others_Allowed
9e81dbc7 1281
0df218a9
AC
1282 * prj-dect.adb:
1283 (Parse_Attribute_Declaration): For associative array attribute where
1284 others is allowed as the index, allow others as an index.
1285
1286 * prj-nmsc.adb:
1287 (Process_Binder): Skip associative array attributes with index others
1288 (Process_Compiler): Ditto
1289
1290 * prj-util.adb:
1291 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1292 index is All_Other_Names.
1293
1294 * prj.ads:
1295 (All_Other_Names): New constant
1296
1297 * prj-proc.adb:
1298 (Process_Declarative_Items): Skip associative array attribute when index
1299 is reserved word "others".
1300
13012008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
1302
1303 * gen-oscons.c: Adapt for VMS where termios.h is not available.
1304
c7d920ad
TQ
13052008-08-05 Thomas Quinot <quinot@adacore.com>
1306
1307 * a-rttiev.adb: Minor reformatting (comments)
1308
1309 * gen-soccon.c: Rename to gen-oscons.c
1310
1311 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1312 GNAT.Sockets.Constants.
1313 Add new constants for GNAT.Serial_Communications and System.File_IO.
1314
8b79ad42
AC
13152008-08-05 Javier Miranda <miranda@adacore.com>
1316
1317 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1318 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1319 implementation of this routine has been simplified.
1320
13212008-08-05 Pascal Obry <obry@adacore.com>
1322
1323 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1324 Set_Read_Only Win32 implementation.
1325
99e81db6
TQ
13262008-08-05 Thomas Quinot <quinot@adacore.com>
1327
1328 * exp_strm.adb: Minor reformatting (comments)
1329
1330 * sem_ch12.adb: Minor reformatting.
1331
dce86910
AC
13322008-08-05 Robert Dewar <dewar@adacore.com>
1333
1334 * sem_ch3.adb: Minor reformatting
1335
1336 * checks.adb: Minor reformatting
1337
13382008-08-05 Thomas Quinot <quinot@adacore.com>
1339
1340 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1341 restriction on Prefix.
1342
13432008-08-05 Jerome Lambourg <lambourg@adacore.com>
1344
1345 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1346 methods needed to handle switch sections when building a command line.
1347 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1348 Current_Section): New public methods or methods modified to handle
1349 building command lines with sections.
1350 (Set_Command_Line): Take into account sections when analysing a switch
1351 string.
1352 (Start): Sort the switches by sections before iterating the command line
1353 elements.
9e81dbc7 1354
dce86910
AC
1355 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1356 Is_New_Section, Current_Section): New methods or methods modified to
1357 handle building command lines with sections.
1358
13592008-08-05 Ed Schonberg <schonberg@adacore.com>
1360
1361 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1362 discriminants, indicate that the corresponding object declaration has
1363 no initialization, to prevent spurious warnings when the access type is
1364 null-excluding.
1365
13662008-08-05 Ed Schonberg <schonberg@adacore.com>
1367
1368 * sem_res.adb (Resolve_Call): If this is a call to the predefined
1369 Abort_Task, warn if the call appears within a protected operation.
1370
52fb73c2
AC
13712008-08-04 Robert Dewar <dewar@adacore.com>
1372
1373 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1374
13752008-08-04 Ed Schonberg <schonberg@adacore.com>
1376
1377 * sem_ch3.adb:
1378 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1379 anonymous access to protected subprogram that is the return type of the
1380 specification of a subprogram body.
1381
1382 * sem_ch6.adb:
1383 (Analyze_Subprogram_Body): if the return type is an anonymous access to
1384 subprogram, freeze it now to prevent access anomalies in the back-end.
1385
1386 * exp_ch9.adb: Minor code cleanup.
1387 Make sure that new declarations are inserted into the tree before
1388 analysis (from code reading).
1389
13902008-08-04 Robert Dewar <dewar@adacore.com>
1391
1392 * exp_ch5.adb:
1393 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1394 at point of return.
1395
367a9e66
AC
13962008-08-04 Thomas Quinot <quinot@adacore.com>
1397
1398 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1399
14002008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1401
1402 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1403
14042008-08-04 Javier Miranda <miranda@adacore.com>
1405
1406 * sem_prag.adb (Process_Convention): Add missing support for
1407 N_Private_Extension_Declaration nodes.
1408
14092008-08-04 Robert Dewar <dewar@adacore.com>
1410
1411 * exp_ch4.adb: Minor reformatting
1412
a07c3593
AC
14132008-08-04 Pascal Obry <obry@adacore.com>
1414
1415 * adaint.h: Add missing prototype.
1416
1417 * adaint.c: Refine support for Windows file attributes.
1418
14192008-08-04 Robert Dewar <dewar@adacore.com>
1420
1421 * sem_res.adb:
1422 (Valid_Conversion): Catch case of designated types having different
1423 sizes, even though they statically match.
1424
14252008-08-04 Javier Miranda <miranda@adacore.com>
1426
1427 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1428 added in previous patch to handle access to subprograms.
1429
14302008-08-04 Robert Dewar <dewar@adacore.com>
1431
1432 * freeze.adb:
1433 (Freeze_Entity): Only check No_Default_Initialization restriction for
1434 constructs that come from source
1435
14362008-08-04 Thomas Quinot <quinot@adacore.com>
1437
1438 * exp_ch6.adb: Minor comment fix.
1439
1440 * sem_ch4.adb: Minor reformatting.
1441
d559d5c6
AC
14422008-08-04 Robert Dewar <dewar@adacore.com>
1443
1444 * sem_res.adb: (Large_Storage_Type): Improve previous change.
1445
14462008-08-04 Pascal Obry <obry@adacore.com>
1447
1448 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1449 file attributes.
1450
b1c11e0e
JM
14512008-08-04 Javier Miranda <miranda@adacore.com>
1452
1453 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1454 for N_Formal_Object_Declaration nodes. Adding kludge required by
1455 First_Formal to provide its functionality with access to functions.
1456 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1457 for anonymous access types returned by functions.
1458
1459 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1460 conversion of null-excluding access types (required only once to force
1461 the generation of the required runtime check).
1462
1463 * sem_type.adb (Covers): minor reformating
1464
1465 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1466 with internally generated nodes. Avoid generating the error inside init
1467 procs.
1468
1469 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1470 (Resolve_Null): Generate the null-excluding check in case of assignment
1471 to a null-excluding object.
1472 (Valid_Conversion): Add missing support for anonymous access to
1473 subprograms.
1474
1475 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1476 anonymous access types whose designated type is an itype. This case
1477 occurs with anonymous access to protected subprograms types.
1478 (Analyze_Return_Type): Add missing support for anonymous access to
1479 protected subprogram.
1480
1481 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1482 subprograms addition of missing check on matching convention. Required
1483 to properly handle access to protected subprogram types.
1484
1485 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1486 null excluding access types.
1487
b282ab37
AC
14882008-08-04 Ed Schonberg <schonberg@adacore.com>
1489
1490 * sem_ch12.adb: Add comments
1491
1492 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1493 access type and the allocator is not initialized, warn rather than
1494 reporting an error.
1495
14962008-08-04 Robert Dewar <dewar@adacore.com>
1497
1498 * exp_ch4.adb: Minor reformatting
1499
1500 * exp_dist.adb: Minor reformatting
1501
1502 * g-comlin.adb: Minor reformatting
1503
15042008-08-04 Gary Dismukes <dismukes@adacore.com>
1505
1506 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1507 target to the type of the aggregate in the case where the target object
1508 is class-wide.
1509
1510 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1511 result type is class-wide and inherently limited, and the expression
1512 has a specific type, create a return object of the specific type, for
1513 more efficient handling of returns of build-in-place aggregates (avoids
1514 conversions of the class-wide return object to the specific type on
1515 component assignments).
1516
1517 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1518 about a type mismatch for a class-wide function with a return object
1519 having a specific type when the object declaration doesn't come from
1520 source. Such an object can result from the expansion of a simple return.
1521
15222008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1523
1524 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1525
1526 * gcc-interface/Makefile.in: Use 64bit-specific system files when
1527 compiling for 64bit windows.
1528
54838d1f
AC
15292008-08-04 Jerome Lambourg <lambourg@adacore.com>
1530
1531 * g-comlin.adb (Group_Switches): Preserve the switch order when
1532 grouping and allow switch grouping of switches with more than one
1533 character extension (e.g. gnatw.x).
1534 (Args_From_Expanded): Remove this now obsolete method.
1535
15362008-08-04 Ed Schonberg <schonberg@adacore.com>
1537
1538 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1539 chain at once, to ensure that type is properly decorated for back-end,
1540 when allocator appears within a loop.
1541
15422008-08-04 Kevin Pouget <pouget@adacore.com>
1543
1544 * snames.h, snames.adb, snames.ads:
1545 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1546
1547 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1548 Build_To_Any_Call and Build_TypeCode_Call procedures.
1549
1550 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1551
1552 * rtsfind.ads: Add corresponding names.
1553
1554 * tbuild.adb: Update prefix restrictions to allow '_' character.
1555
819fad69
AC
15562008-08-04 Doug Rupp <rupp@adacore.com>
1557
1558 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1559 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1560 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1561 use it. Calculate pointer range overflow using 64bit types.
1562
15632008-08-04 Ed Schonberg <schonberg@adacore.com>
1564
1565 * sem_ch3.adb (Access_Definition): A formal object declaration is a
1566 legal context for an anonymous access to subprogram.
1567
1568 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1569 indirect call, report success to the caller to include possible
1570 interpretation.
1571
1572 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1573 check when the type
1574 of the extended return is an anonymous access_to_subprogram type.
1575
1576 * sem_res.adb:
1577 (Resolve_Call): Insert a dereference if the type of the subprogram is an
1578 access_to_subprogram and the context requires its return type, and a
1579 dereference has not been introduced previously.
1580
15812008-08-04 Arnaud Charlet <charlet@adacore.com>
1582
1583 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1584 gnatcheck support in GPS.
1585
15862008-08-04 Vincent Celier <celier@adacore.com>
1587
1588 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1589 requested
1590
a037f912
VC
15912008-08-04 Vincent Celier <celier@adacore.com>
1592
1593 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1594 variable, but don't check the resulting value as it has no impact on
1595 the processing.
9e81dbc7 1596
a037f912
VC
1597 * opt.ads:
1598 (Generate_Processed_File): New Boolean flag, set to True in the compiler
1599 when switch -gnateG is used.
9e81dbc7 1600
a037f912
VC
1601 * prep.adb:
1602 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1603 when the source is modified by the preprocessor and there is no
1604 preprocessing errors.
9e81dbc7 1605
a037f912 1606 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
9e81dbc7 1607
a037f912
VC
1608 * sinput-l.adb:
1609 (Load_File): Output the result of preprocessing if the source text was
1610 modified.
9e81dbc7 1611
a037f912 1612 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
9e81dbc7 1613
a037f912 1614 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
9e81dbc7 1615
a037f912 1616 * ug_words: Add VMS equivalent for -gnateG
9e81dbc7 1617
a037f912
VC
1618 * vms_data.ads:
1619 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1620
bdc33a55
AC
16212008-08-04 Doug Rupp <rupp@adacore.com>
1622
1623 * gcc-interface/utils2.c:
1624 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1625 in 32bit descriptor.
1626
16272008-08-04 Robert Dewar <dewar@adacore.com>
1628
1629 * par-ch10.adb: Minor reformatting
1630
1631 * i-cobol.adb: Minor reformatting.
1632
16332008-08-04 Ed Schonberg <schonberg@adacore.com>
1634
1635 * sem_ch3.adb (Access_Definition): Create an itype reference for an
1636 anonymous access return type of a regular function that is not a
1637 compilation unit.
1638
16392008-08-04 Vincent Celier <celier@adacore.com>
1640
1641 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
9e81dbc7 1642
bdc33a55 1643 * snames.adb: New standard name Global_Compilation_Switches
9e81dbc7 1644
bdc33a55
AC
1645 * snames.ads: New standard name Global_Compilation_Switches
1646
1647 * make.adb: Correct spelling error in comment
1648
16492008-08-04 Arnaud Charlet <charlet@adacore.com>
1650
1651 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1652 target.
1653
16542008-08-04 Thomas Quinot <quinot@adacore.com>
1655
1656 * sem_ch10.adb: Minor comment fix.
1657
fc1b906a
AC
16582008-08-04 Robert Dewar <dewar@adacore.com>
1659
1660 * restrict.adb: Improved messages for restriction warnings
1661
1662 * restrict.ads: Improved messages for restriction messages
1663
1664 * s-rident.ads (Profile_Name): Add No_Profile
1665
16662008-08-04 Robert Dewar <dewar@adacore.com>
1667
1668 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1669
16702008-08-04 Robert Dewar <dewar@adacore.com>
1671
1672 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1673
16742008-08-04 Vincent Celier <celier@adacore.com>
1675
1676 * prj-proc.adb:
1677 (Copy_Package_Declarations): When inheriting package Naming from a
1678 project being extended, do not inherit source exception names.
1679
16802008-08-04 Ed Schonberg <schonberg@adacore.com>
1681
1682 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1683 list of declaration to find previous subprogram, do not go to the
1684 original node of a generic unit.
1685
d2143736
EB
16862008-08-02 Eric Botcazou <ebotcazou@adacore.com>
1687
1688 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1689 New case. Convert BOOLEAN_TYPE operation to the default integer type.
1690
a981c964
EB
16912008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1692
1693 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1694 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1695 and adjust for above renaming.
1696 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1697 gnu_expr_alt_type parameter. Convert the expression to it instead
1698 of changing its type in place.
1699 (build_function_stub): Adjust call to above function.
1700
8df2e902
EB
17012008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1702
1703 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1704 code. Do not get full definition of deferred constants with address
1705 clause for a use. Do not ignore deferred constant definitions with
1706 address clause. Ignore constant definitions already marked with the
1707 error node.
1708 <object>: Remove obsolete comment. For a deferred constant with
1709 address clause, get the initializer from the full view.
1710 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1711 Rework and remove obsolete comment.
1712 <N_Object_Declaration>: For a deferred constant with address clause,
1713 mark the full view with the error node.
1714 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1715 formatting nits.
1716
585df50b
AC
17172008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
1718
1719 * rtsfind.ads: Add block IO versions of stream routines for Strings.
9e81dbc7 1720
585df50b
AC
1721 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1722 sem_prag.adb, snames.adb, snames.ads, snames.h,
1723 par-prag.adb: Undo previous stream related changes.
9e81dbc7 1724
585df50b 1725 * s-rident.ads: Add new restriction No_Stream_Optimizations.
9e81dbc7 1726
585df50b
AC
1727 * s-ststop.ads, s-ststop.adb: Comment reformatting.
1728 Define enumeration type to designate different IO mechanisms.
1729 Enchance generic package Stream_Ops_Internal to include an
1730 implementation of Input and Output.
1731
1732 * exp_attr.adb (Find_Stream_Subprogram): If restriction
1733 No_Stream_Optimization is active, choose the default byte IO
1734 implementations of stream attributes for Strings.
1735 Otherwise use the corresponding block IO version.
1736
2eee5152 17372008-08-01 Olivier Hainque <hainque@adacore.com>
9e81dbc7 1738
585df50b
AC
1739 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1740 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1741
17422008-08-01 Robert Dewar <dewar@adacore.com>
1743
1744 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1745 convert plain identifier into defining identifier.
2eee5152 1746
2b747305
AC
17472008-08-01 Robert Dewar <dewar@adacore.com>
1748
1749 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1750 warnings
1751
1752 * lib-xref.adb: Add error defense.
1753
17542008-08-01 Bob Duff <duff@adacore.com>
1755
1756 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1757
0c246603
AC
17582008-08-01 Gary Dismukes <dismukes@adacore.com>
1759
1760 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1761 correct accessibility levels. In the "when others" case, retrieve the
1762 access level of the Etype of Prev rather than Prev_Orig, because the
1763 original exression has not always been analyzed.
1764
17652008-08-01 Robert Dewar <dewar@adacore.com>
1766
1767 * prj-nmsc.adb: Minor reformatting
1768
1769 * sem_ch4.adb: Minor reformatting
1770 Minor code reorganization
1771
1772 * prj.ads: Minor reformatting
1773
1774 * s-os_lib.adb: Minor reformatting
1775
1776 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1777 half encodings
1778
1779 * scans.ads: Minor reformatting.
1780
1781 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1782 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
1783
1784 * sem_res.adb:
1785 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1786
1787 * sem_ch12.adb: Minor comment reformatting
1788
1789 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
1790 keyword
1791
1cb17b78
AC
17922008-08-01 Robert Dewar <dewar@adacore.com>
1793
1794 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
1795 generating code
1796
17972008-08-01 Ed Schonberg <schonberg@adacore.com>
1798
1799 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
1800 converted is a real literal and the target type has static bounds,
1801 perform the conversion exactly to prevent floating-point anomalies on
1802 some targets.
1803
18042008-08-01 Vincent Celier <celier@adacore.com>
1805
1806 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
9e81dbc7 1807
1cb17b78 1808 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
9e81dbc7 1809
1cb17b78
AC
1810 * prj.adb (Object_Exist_For): Use Object_Generated, not
1811 Objects_Generated that is removed and was never modified anyway.
1812
1813 * prj.ads:
1814 (Path_Syntax_Kind): New enumeration type
1815 (Language_Config): New component Path_Syntax, defaulted to Host.
1816 Components PIC_Option and Objects_Generated removed, as they are not
1817 used.
1818
1819 * snames.adb: New standard name Path_Syntax
9e81dbc7 1820
1cb17b78
AC
1821 * snames.ads: New standard name Path_Syntax
1822
18232008-08-01 Vincent Celier <celier@adacore.com>
1824
1825 * mlib-utl.adb:
1826 (Adalib_Path): New variable to store the path of the adalib directory
1827 when procedure Specify_Adalib_Dir is called.
1828 (Lib_Directory): If Adalib_Path is not null, return its value
1829 (Specify_Adalib_Dir): New procedure
9e81dbc7 1830
1cb17b78
AC
1831 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
1832
18332008-08-01 Ed Schonberg <schonberg@adacore.com>
1834
1835 * sem_prag.adb:
1836 (Check_Precondition_Postcondition): If not generating code, analyze the
1837 expression in a postcondition that appears in a subprogram body, so that
1838 it is properly decorated for ASIS use.
1839
18402008-08-01 Gary Dismukes <dismukes@adacore.com>
1841
1842 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
1843 Orig_Prev to Prev in the case where the actual is N_Function_Call or
1844 N_Identifier. This was interfering with other cases that are rewritten
1845 as N_Identifier, such as allocators, resulting in passing of the wrong
1846 accessibility level, and based on testing this code is apparently no
1847 longer needed at all.
1848
18492008-08-01 Ed Schonberg <schonberg@adacore.com>
1850
1851 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
1852 procedure call whose prefix
1853 is a parameterless function call that returns an access_to_procedure.
1854
d1b4f87d
AC
18552008-08-01 Jose Ruiz <ruiz@adacore.com>
1856
1857 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
1858 for RTX. Adding a suffix that is incremented at each iteration.
1859
18602008-08-01 Robert Dewar <dewar@adacore.com>
1861
1862 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
1863 Raise_Exception
1864
18652008-08-01 Jerome Lambourg <lambourg@adacore.com>
1866
1867 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
1868 paths, which are authorized by Windows but can lead to errors when used
1869 elsewhere.
1870
cfb02ad1
AC
18712008-08-01 Ed Schonberg <schonberg@adacore.com>
1872
1873 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
1874 a pending instantiation for the body of a subprogram that is to be
1875 inlined.
1876
1877 * sem_ch12.adb:
1878 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1879
1880 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
1881 create a pending instance for its body, so that calls to the subprogram
1882 can be inlined by the back-end.
1883
18842008-08-01 Jose Ruiz <ruiz@adacore.com>
1885
1886 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
1887 rts-rtx-w32).
1888
e1bb4e71
AC
18892008-08-01 Robert Dewar <dewar@adacore.com>
1890
1891 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
1892
18932008-08-01 Doug Rupp <rupp@adacore.com>
1894
1895 * gnat_rm.texi: Document new mechanism Short_Descriptor.
9e81dbc7 1896
e1bb4e71
AC
1897 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
1898 mechanism values.
1899
1900 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1901 mechanism and Short_Descriptor mechanism values.
1902
1903 * snames.adb (preset_names): Add short_descriptor entry.
1904
1905 * snames.ads: Add Name_Short_Descriptor.
1906
1907 * types.h: Add new By_Short_Descriptor mechanism values.
1908
1909 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1910 mechanism and Short_Descriptor mechanism values.
1911
1912 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
1913 values.
1914 (Descriptor_Codes): Modify range for new mechanism values.
1915
1916 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
1917 mechanism values.
1918
1919 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
1920 (gnat_to_gnu_param): Handle By_Short_Descriptor.
1921
1922 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
1923 (build_vms_descriptor32): New prototype.
1924 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
1925
1926 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
1927 argument in call fill_vms_descriptor.
1928
1929 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
1930 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
9e81dbc7 1931 (build_vms_descriptor): Renamed from build_vms_descriptor64.
e1bb4e71
AC
1932 (convert_vms_descriptor32): New function.
1933 (convert_vms_descriptor64): New function.
1934 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
1935 descriptors.
1936
1937 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
1938 no longer needed.
1939
19402008-08-01 Jose Ruiz <ruiz@adacore.com>
1941
1942 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
1943 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
1944 name.
1945
bca3ab79
AC
19462008-08-01 Jose Ruiz <ruiz@adacore.com>
1947
1948 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
1949 current directory so only fully qualified names are allowed.
1950
19512008-08-01 Robert Dewar <dewar@adacore.com>
1952
1953 * gnat_ugn.texi:
1954 Minor editing, remove uncomfortable use of semicolon
1955
1956 * s-ststop.adb: Add some ??? comments
1957
1958 * sem_ch10.adb: Minor reformatting
1959
1960 * snames.ads:
1961 Minor comment fixes, some pragmas were not properly
1962 categorized in the comments, documentation change only
1963
1964 * xref_lib.adb: Minor reformatting
1965
1966 * sinput.adb: Minor reformatting
1967
1968 * gnatchop.adb: Minor reformatting
1969
1970 * sem_util.ads: Minor reformatting.
1971
1972 * opt.ads: Minor documentation fix
1973
1974 * scng.adb: Minor reformatting
1975
1976 * prj-part.adb: Update comments
1977
19782008-08-01 Ed Schonberg <schonberg@adacore.com>
1979
1980 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
1981 tagged synchronized type, use corresponding record type.
1982
19832008-08-01 Doug Rupp <rupp@adacore.com>
1984
1985 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
1986 dummy transfer address for debugging.
9e81dbc7 1987
bca3ab79
AC
1988 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
1989
1990 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
1991
4c5a0615
EB
19922008-07-31 Eric Botcazou <ebotcazou@adacore.com>
1993
1994 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
1995 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
1996
964771d9
AC
19972008-07-31 Pascal Obry <obry@adacore.com>
1998
1999 * prj-nmsc.adb: Keep Object and Exec directory casing.
2000
20012008-07-31 Jose Ruiz <ruiz@adacore.com>
2002
2003 * system-rtx-rtss.ads
2004 Change the default stack size. It is important to set the commit part.
9e81dbc7 2005
964771d9
AC
2006 * s-taprop-rtx.adb
2007 (Initialize): Get the clock resolution.
2008 (RT_Resolution): Return the clock resolution that is indicated by the
2009 system.
2010
2011 * s-parame-vxworks.adb
2012 Document that this body is used for RTX in RTSS (kernel) mode.
2013
2014 * gcc-interface/Makefile.in
2015 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2016 s-parame-vxworks.adb body in order to have reasonable stack sizes in
2017 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2018 cannot ask for too big values.
2019
20202008-07-31 Robert Dewar <dewar@adacore.com>
2021
2022 * exp_aggr.adb: Minor reformatting
2023
2024 * makeutl.adb: Minor reformatting
2025
2026 * prj-env.adb: Minor reformatting
2027
1e0f7ffb
AC
20282008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2029
2030 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2031 tagged type is completed by a concurrent type.
2032
20332008-07-31 Gary Dismukes <dismukes@adacore.com>
2034
2035 * sem_aggr.adb:
2036 (Resolve_Record_Aggregate): Bypass error that a type without
2037 components must have a "null record" aggregate when compiling for Ada
2038 2005, since it's legal to give an aggregate of form (others => <>)
2039 for such a type.
2040
fa4bc5ab
AC
20412008-07-31 Javier Miranda <miranda@adacore.com>
2042
2043 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2044 handle synchronized types. Required to handle well the object.operation
2045 notation applied to synchronized types.
2046
20472008-07-31 Quentin Ochem <ochem@adacore.com>
2048
2049 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2050 anymore - just used internally.
2051 Added handling of very small tasks - when the theoretical size is
2052 already full at the point of the call.
2053 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2054 not need to be added to the result.
2055
20562008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2057
2058 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2059 corresponding spec is a primitive wrapper. Update comment.
2060
20612008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2062
2063 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2064 (Gen_Adainit_Ada): Add the declaration, import and value set for
2065 configuration flag Canonical_Streams.
2066 (Gen_Adainit_C): Add the declaration and initial value of external
2067 symbol __gl_canonical_streams.
9e81dbc7 2068
fa4bc5ab 2069 * init.c: Update the list of global values computed by the binder.
9e81dbc7 2070
fa4bc5ab 2071 * opt.ads: Add flag Canonical_Streams.
9e81dbc7 2072
fa4bc5ab
AC
2073 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2074 semantically handled pragmas.
9e81dbc7 2075
fa4bc5ab
AC
2076 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2077 (Analyze_Pragma): Add case for pragma Canonical_Streams.
9e81dbc7 2078
fa4bc5ab 2079 * snames.adb: Add character value for name Canonical_Streams.
9e81dbc7 2080
fa4bc5ab
AC
2081 * snames.ads:
2082 Add Name_Canonical_Streams to the list of configuration pragmas.
2083 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
9e81dbc7 2084
fa4bc5ab 2085 * snames.h: Add a definition for Pragma_Canonical_Streams.
9e81dbc7 2086
fa4bc5ab
AC
2087 * s-ststop.adb:
2088 Add a flag and import to seize the value of external symbol
2089 __gl_canonical_streams. Update comment and initial value of constant
2090 Use_Block_IO.
9e81dbc7 2091
fa4bc5ab 2092 * gnat_rm.texi: Add section of pragma Canonical_Streams.
9e81dbc7 2093
fa4bc5ab
AC
2094 * gnat_ugn.texi:
2095 Add pragma Canonical_Streams to the list of configuration pragmas.
2096
20972008-07-31 Ed Schonberg <schonberg@adacore.com>
2098
2099 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2100 has the form A.B.C and B is a unit renaming, analyze its compilation
2101 unit and add a with_clause on A.b to the context.
2102
f32b9cd1
AC
21032008-07-31 Vincent Celier <celier@adacore.com>
2104
2105 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2106 return the empty string, instead of raising Constraint_Error.
2107
21082008-07-31 Gary Dismukes <dismukes@adacore.com>
2109
2110 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
9e81dbc7 2111
f32b9cd1
AC
2112 * checks.adb (Apply_Accessibility_Check): Insert the check on
2113 Insert_Node.
9e81dbc7 2114
f32b9cd1
AC
2115 * exp_attr.adb:
2116 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2117 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2118 Necessary to distinguish the insertion node because the dereferenced
2119 formal may come from a rename, but the check must be inserted in
2120 front of the attribute.
9e81dbc7 2121
f32b9cd1
AC
2122 * exp_ch4.adb:
2123 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2124 call to Apply_Accessibility_Check.
2125 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2126 on call to Apply_Accessibility_Check.
2127 Minor reformatting
2128
21292008-07-31 Javier Miranda <miranda@adacore.com>
2130
2131 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2132 types when the candidate type is a synchronized type.
9e81dbc7 2133
f32b9cd1
AC
2134 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2135 types, and complete management of synchronized types adding missing
2136 code to handle formal that is a synchronized type.
9e81dbc7 2137
f32b9cd1
AC
2138 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2139 are not available and cause the compiler to blowup. Found compiling
2140 test with switch -gnatc
9e81dbc7 2141
f32b9cd1
AC
2142 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2143 Has_Correct_Formal_Mode plus code cleanup.
2144
e92c92b2
AC
21452008-07-31 Bob Duff <duff@adacore.com>
2146
2147 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2148 recognized as two end-of-lines, but it should be just one.
2149
21502008-07-31 Thomas Quinot <quinot@adacore.com>
2151
2152 * exp_ch9.adb: Minor reformatting
2153
2154 * tbuild.ads: Fix several occurrences of incorrectly referring to
2155 Name_Find as Find_Name.
2156
21572008-07-31 Ed Schonberg <schonberg@adacore.com>
2158
2159 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2160 and the context is an object declaration with non-static bounds, treat
2161 the aggregate as non-static.
2162
21632008-07-31 Vincent Celier <celier@adacore.com>
2164
2165 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2166 Move back spec of Parse_Single_Project to body, as it is not called
2167 outside of package Prj.Part.
2168 (Project_Data): Remove components Linker_Name, Linker_Path and
2169 Minimum_Linker_Options as they are no longer set.
2170 Remove function There_Are_Ada_Sources from package Prj and move code
2171 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2172
ee5d7272
AC
21732008-07-31 Arnaud Charlet <charlet@adacore.com>
2174
2175 * mlib-utl.ads: Fix typo.
2176
21772008-07-31 Robert Dewar <dewar@adacore.com>
2178
2179 * sem_ch12.adb: Minor reformatting
2180
21812008-07-31 Sergey Rybin <rybin@adacore.com>
2182
2183 * gnat_ugn.texi: Change the description of the
2184 Overly_Nested_Control_Structures: now the rule always requires a
2185 positive parameter for '+R' option
2186
21872008-07-31 Thomas Quinot <quinot@adacore.com>
2188
2189 * g-pehage.adb: Minor reformatting
2190
21912008-07-31 Pascal Obry <obry@adacore.com>
2192
2193 * s-finimp.ads: Minor reformatting.
2194
21952008-07-31 Vincent Celier <celier@adacore.com>
2196
2197 * s-regexp.ads: Minor comment fix
2198
21992008-07-31 Arnaud Charlet <charlet@adacore.com>
2200
2201 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2202 so that we can compile this file successfully with -gnatc.
2203
22042008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2205
2206 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2207 of the type when looking for stream subprograms for type String,
2208 Wide_String and Wide_Wide_String.
9e81dbc7 2209
ee5d7272
AC
2210 * s-ststop.adb: Change the initialization expression of constant
2211 Use_Block_IO.
2212
22132008-07-31 Geert Bosch <bosch@adacore.com>
2214
2215 * arit64.c:
2216 New file implementing __gnat_mulv64 signed integer multiplication with
2217 overflow checking
2218
2219 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2220
2221 * gcc-interface/gigi.h:
2222 (standard_types): Add ADT_mulv64_decl
2223 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2224
2225 * gcc-interface/utils.c:
2226 (init_gigi_decls): Add initialization of mulv64_decl
2227
2228 * gcc-interface/trans.c:
2229 (build_unary_op_trapv): New function
2230 (build_binary_op_trapv): New function
2231 (gnat_to_gnu): Use the above functions instead of
2232 build_{unary,binary}_op
2233
2234 * gcc-interface/Makefile.in
2235 (LIBGNAT_SRCS): Add arit64.c
2236 (LIBGNAT_OBJS): Add arit64.o
2237
22382008-07-31 Vincent Celier <celier@adacore.com>
2239
2240 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2241 Linker'Default_Switches are declared. Warn if they are declared.
2242
22432008-07-31 Ed Schonberg <schonberg@adacore.com>
2244
2245 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2246 Insert_Actions to place the pointer declaration in the code, rather
2247 than Insert_Before_And_Analyze, so that insertions of temporaries are
2248 kept in the proper order when transient scopes are present.
2249
2250
b38c3c9e
AC
22512008-07-31 Robert Dewar <dewar@adacore.com>
2252
2253 * einfo.adb (Spec_PPC): Now defined for generic subprograms
9e81dbc7 2254
b38c3c9e 2255 * einfo.ads (Spec_PPC): Now defined for generic subprograms
9e81dbc7 2256
b38c3c9e
AC
2257 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2258 subprogram case
2259
22602008-07-31 Vincent Celier <celier@adacore.com>
2261
2262 * s-os_lib.adb: Minor comment fix
2263
22642008-07-31 Ed Schonberg <schonberg@adacore.com>
2265
2266 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2267 transfer pre/postconditions from generic copy to original tree, so that
2268 they will appear in each instance.
2269 (Process_PPCs): Do not transform postconditions into a procedure in a
2270 generic context, to prevent double expansion of check pragmas.
9e81dbc7 2271
b38c3c9e
AC
2272 * sem_attr.adb: In an instance, the prefix of the 'result attribute
2273 can be the renaming of the
2274 current instance, so check validity of the name accordingly.
2275
024238a2
AC
22762008-07-31 Robert Dewar <dewar@adacore.com>
2277
2278 * mlib-utl.ads: Minor reformatting
2279
22802008-07-31 Ed Schonberg <schonberg@adacore.com>
2281
2282 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2283 from context. This attribute must be usable in Ada95 mode.
2284 The attribute can appear in the body of a function marked
2285 Inline_Always, but in this case the postocondition is not enforced.
9e81dbc7 2286
024238a2
AC
2287 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2288 of an inlined call pre- and postconditions are legal
2289
22902008-07-31 Vincent Celier <celier@adacore.com>
2291
2292 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2293 were for gprmake only
2294
22952008-07-31 Robert Dewar <dewar@adacore.com>
2296
2297 * gnat_ugn.texi: Update -gnatN documentation.
2298
2299 * gnat_rm.texi: Add note about pre/postcondition
2300 pragmas not checked in conjunction with front-end inlining.
2301
035b2a77
AC
23022008-07-31 Robert Dewar <dewar@adacore.com>
2303
2304 * g-pehage.adb, g-pehage.ads: Minor reformatting
2305
23062008-07-31 Arnaud Charlet <charlet@adacore.com>
2307
2308 * mlib-utl.ads, prj-makr.ads: Add comments.
2309
636b71b9
AL
23102008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2311
9e81dbc7 2312 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
636b71b9
AL
2313 [WINDOWS]: Add s-winext.o.
2314
01ddebf2
EB
23152008-07-30 Eric Botcazou <ebotcazou@adacore.com>
2316
2317 PR ada/36554
2318 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2319 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2320 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2321 Set precision to 1 for subtype of BOOLEAN_TYPE.
2322 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2323 (make_type_from_size): Deal with BOOLEAN_TYPE.
2324 * gcc-interface/misc.c (gnat_print_type): Likewise.
2325 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2326 Set boolean_type_node as its translation in the table, as well
2327 as boolean_false_node for False and boolean_true_node for True.
2328 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2329 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2330 (create_param_decl): Deal with BOOLEAN_TYPE.
2331 (build_vms_descriptor): Likewise.
2332 (build_vms_descriptor64): Likewise.
2333 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2334
2a9cc4de
AC
23352008-07-30 Robert Dewar <dewar@adacore.com>
2336
2337 * exp_ch9.adb: Minor reformatting
2338
2339 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2340 if no primitive operation is found.
2341
2342 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2343
2344 * sem_ch8.adb: Minor reformatting
2345
23462008-07-30 Laurent Pautet <pautet@adacore.com>
2347
2348 * g-pehage.adb:
2349 Remove a limitation on the length of the words handled by the minimal
2350 perfect hash function generator.
2351
2352 * g-pehage.ads:
2353 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2354 Fix some typos.
2355
5cc6fa41
AC
23562008-07-30 Robert Dewar <dewar@adacore.com>
2357
2358 * gnatlink.adb: Minor reformatting
2359
23602008-07-30 Thomas Quinot <quinot@adacore.com>
2361
2362 * rtsfind.adb (Check_RPC): Check version consistency even when not
2363 generating RCI stubs. Provide more detailed error message in case of
2364 mismatch.
2365
23662008-07-30 Ed Schonberg <schonberg@adacore.com>
2367
2368 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2369 as a actual in an instance, check for a missing attribute to prevent
2370 program_error on an illegal program.
9e81dbc7 2371
5cc6fa41
AC
2372 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2373 error if primitive is not found, so that exception can be handled
2374 elsewhere on illegal programs.
2375
23762008-07-30 Robert Dewar <dewar@adacore.com>
2377
2378 * uintp.adb (UI_GCD): Fix potential overflow
2379
23802008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2381
2382 * einfo.adb: Flag245 is now used.
2383 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2384 check to include functions.
2385 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2386 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2387 include functions.
2388 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2389 to the list of displayed flags.
2390
2391 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2392 Wrapped_Entity. These two flags are now present in functions.
2393 New flag Is_Private_Primitive.
2394 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2395
2396 * exp_ch9.adb:
2397 (Build_Wrapper_Bodies): New subprogram.
2398 (Build_Wrapper_Body): The spec and body have been moved to in
2399 Build_Wrapper_ Bodies. Code cleanup.
2400 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2401 Wrappers are now generated for primitives declared between the private
2402 and full view of a concurrent type that implements an interface.
2403 (Build_Wrapper_Specs): New subprogram.
2404 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2405 creation mechanism with a call to Build_Wrapper_Bodies.
2406 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2407 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2408 (Expand_N_Task_Body): Replace the wrapper body creation
2409 mechanism with a call to Build_Wrapper_Bodies.
2410 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2411 creation mechanism with a call to Build_Wrapper_Specs.
2412 (Is_Private_Primitive_Subprogram): New subprogram.
2413 (Overriding_Possible): Code cleanup.
2414 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2415
2416 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2417
2418 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2419 (Process_Full_View): Build wrapper specs for all primitives
2420 that belong to a private view completed by a concurrent type
2421 implementing an interface.
9e81dbc7 2422
5cc6fa41
AC
2423 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2424 is a primitive of a
2425 concurrent type with a private view that implements an interface, try to
2426 find the proper spec.
2427 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2428 primitive if the type of its first parameter is a non-generic tagged
2429 private type.
2430 (Analyze_Subprogram_Specification): Code reformatting.
2431 (Disambiguate_Spec): New routine.
2432 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2433 (Is_Private_Concurrent_Primitive): New routine.
2434
2435 * sem_ch6.ads:
2436 (Find_Corresponding_Spec): Add a formal to control the output of errors.
2437
6ca2b0a0
DR
24382008-07-30 Doug Rupp <rupp@adacore.com>
2439
2440 * gigi.h (build_vms_descriptor64): New function prototype.
2441 (fill_vms_descriptor): Modified function prototype.
2442
2443 * utils.c (build_vms_descriptor64): New function.
2444
2445 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2446
2447 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2448 argument.
2449
2450 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2451 64bit and 32bit descriptor and save the 64bit version as an alternate
2452 TREE_TYPE in the parameter.
2453 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2454 thin pointer.
2455
2456 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2457
002b2ad6
AC
24582008-07-30 Robert Dewar <dewar@adacore.com>
2459
2460 * make.adb: Minor reformatting
2461
2462 * mlib-utl.adb: Minor reformatting
2463
2464 * osint.ads: Minor reformatting
2465
24662008-07-30 Jose Ruiz <ruiz@adacore.com>
2467
2468 * adaint.c
2469 (__gnat_file_exists): Do not use __gnat_stat for RTX.
2470 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2471 avoid the use of this symbol from libgcc.a in RTX kernel mode.
2472
2473 * cio.c
2474 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2475 the function RtPrintf for console output.
9e81dbc7 2476
002b2ad6 2477 * argv.c Do not use the environ variable for RTX.
9e81dbc7 2478
002b2ad6
AC
2479 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2480 been moved before the call to Osint.Add_Default_Search_Dirs in order
2481 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2482 from the appropriate run time.
9e81dbc7 2483
002b2ad6
AC
2484 * targparm.ads
2485 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2486 target is a RTSS module for RTX.
9e81dbc7 2487
002b2ad6
AC
2488 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2489 RTX_RTSS_Kernel_Module
2490 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2491
2492 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2493 exception handling mechanism for Windows and RTX in Win32 mode, but
2494 not for RTX in kernel mode (RTSS).
2495 (LIBGNAT_SRCS): Remove ada.h
2496
00afcaa0
PB
24972008-07-30 Paolo Bonzini <bonzini@gnu.org>
2498
2499 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2500 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2501 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2502 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2503 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2504 ALL_ADA_CFLAGS): Remove.
2505 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2506 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2507 (GCC_CFLAGS): Remove X_CFLAGS.
2508 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2509 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2510 (ADA_CFLAGS): Substitute.
2511
a7dafa20
LG
25122008-07-30 Laurent Guerby <laurent@guerby.net>
2513
9e81dbc7
AS
2514 PR ada/5911
2515 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2516 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2517 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2518 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2519 by stamp-gnatlib2-rts.
2520
70b1e376
RW
25212008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2522
2523 PR documentation/15479
2524 * gnat-style.texi: Remove AdaCore copyright statement and GPL
2525 statement for GNAT. Add @copying stanza, use it. Update to
2526 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
2527 title as Front-Cover Text.
2528 * gnat_rm.texi: Likewise.
2529 * gnat_ugn.texi: Likewise.
2530
343eba42
JH
25312008-07-29 Jan Hubicka <jh@suse.cz>
2532
2533 * trans.c (process_inlined_subprograms): Remove tree_really_inline
2534 check.
2535
ebf5ba04
AC
25362008-07-29 Arnaud Charlet <charlet@adacore.com>
2537
2538 * gcc-interface: New directory.
2539
2540 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2541 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2542 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2543 to gcc-interface subdirectory.
2544
46897370
AL
25452008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2546
2547 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2548
e90acd93
JH
25492008-07-28 Jan Hubicka <jh@suse.cz>
2550
2551 * misc.c (gnat_post_options): Do not set flag_no_inline.
2552
726a989a
RB
25532008-07-28 Richard Guenther <rguenther@suse.de>
2554
2555 Merge from gimple-tuples-branch.
2556
2557 2008-07-22 Olivier Hainque <hainque@adacore.com>
2558
2559 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2560 this is called for an elab proc to be discarded if empty.
2561 * utils.c (end_subprog_body): Honor ELAB_P.
2562 (build_function_stub): Adjust call to end_subprog_body.
2563 * trans.c (Subprogram_Body_to_gnu): Likewise.
2564 (gigi): Reorganize processing of elab procs to prevent
2565 gimplifying twice, using the new end_subprog_body argument.
2566
2567 2008-07-19 Richard Guenther <rguenther@suse.de>
2568
2569 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2570 (utils.o): Likewise.
2571 * trans.c: Include tree-iterator.h.
2572 (gnat_gimplify_expr): Adjust prototype. Fix typo.
2573 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2574 (set_expr_location_from_node): Likewise.
2575 (gigi): Tuplify.
2576 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2577 of GENERIC_NEXT.
2578 * utils.c: Include tree-iterator.h.
2579 * gigi.h (gnat_gimplify_expr): Adjust prototype.
2580
2581 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2582
2583 * trans.c: Include gimple.h instead of tree-gimple.h.
2584 * utils.c: Same.
2585
2586 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
2587
2588 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2589
8ae3959e 25902008-07-25 Jan Hubicka <jh@suse.cz>
7e8b322a 2591
8ae3959e
EB
2592 * utils.c (end_subprog_body): Remove inline trees check.
2593 * misc.c (gnat_post_options): Do not set flag_inline_trees.
7e8b322a 2594
4a7bb85b
RO
25952008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2596
2597 * raise-gcc.c: Move tsystem.h before tm.h.
2598
ec45d105
AC
25992008-07-20 Arnaud Charlet <charlet@adacore.com>
2600
2601 * gnathtml.pl: New file.
2602
95331614 26032008-07-19 Olivier Hainque <hainque@adacore.com>
8ae3959e 2604
95331614
OH
2605 * targtyps.c (get_target_default_allocator_alignment): Use
2606 MALLOC_ABI_ALIGNMENT.
2607
dd7ac716
OH
26082008-07-17 Olivier Hainque <hainque@adacore.com>
2609
2610 * adaint.c (__MINGW32__ section): Include ctype.h and define
2611 a fallback ISALPHA if IN_RTS.
9e81dbc7 2612 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
dd7ac716 2613
a7a46bb2
OH
26142008-07-17 Olivier Hainque <hainque@adacore.com>
2615
2616 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2617 argument, to apply to references in addition to definitions. Prevent
2618 setting TREE_STATIC on externals.
2619 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2620
66bfd481
RW
26212008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2622
2623 PR documentation/15479
2624 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2625 Replace backets around optional parameters with @ovar
2626 where possible, use @r{[}, @r{]} otherwise.
2627 Replace some @r, @i, and @emph with @var where appropriate.
2628
7a803dd8
EB
26292008-07-02 Eric Botcazou <ebotcazou@adacore.com>
2630
2631 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2632
7d71283c
KG
26332008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2634
2635 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2636 -Wc++-compat warnings.
2637 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2638 __gnat_locate_exec_on_path): Likewise.
2639 * decl.c (annotate_value): Likewise.
2640 * misc.c (gnat_handle_option): Likewise.
2641 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2642 post_error_ne_tree): Likewise.
2643
d9338c67
EB
26442008-06-27 Eric Botcazou <ebotcazou@adacore.com>
2645
2646 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2647 version of its type, attempt to first convert its elements.
2648
b4b010ad
CP
26492008-06-26 Chris Proctor <chrisp_42@bigpond.com>
2650
2651 * Makefile.in: Fix *86 kfreebsd target specific pairs.
2652
0ee61065
ST
26532008-06-25 Samuel Tardieu <sam@rfc1149.net>
2654
2655 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2656
324ed5a6
EB
26572008-06-24 Eric Botcazou <ebotcazou@adacore.com>
2658
2659 * utils2.c (known_alignment): Derive the alignment from pointed-to
2660 types only if it is otherwise unknown.
2661 <INTEGER_CST>: Tidy.
2662 <MULT_EXPR>: Likewise.
2663 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2664 that of the base.
2665
2d31e498
JDA
26662008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2667
2668 PR ada/36573
2669 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2670
6ccde948
RW
26712008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2672
2673 * gnat_rm.texi (Implementation Defined Characteristics)
2674 (Standard Library Routines): Use @smallexample for indented
2675 text. Drop Indentation outside examples.
2676 * gnat_ugn.texi: Likewise.
2677
d8612af2
OH
26782008-06-13 Olivier Hainque <hainque@adacore.com>
2679
2680 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2681 if undefined.
2682 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2683 realignment with force_align_arg_pointer attribute on foreign
2684 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
9e81dbc7 2685
ca789c7f
OH
26862008-06-13 Olivier Hainque <hainque@adacore.com>
2687
2688 * utils.c (rest_of_record_type_compilation): When computing
2689 encodings for the components of a variable size type, early
2690 strip conversions on the current position expression to make
2691 sure it's shape is visible. Use remove_conversions for this
2692 purpose.
2693
1dd4a3e6
EB
26942008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2695
2696 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2697 constrained subtype of a discriminated type, discard the fields that
2698 are beyond its limits according to its size.
2699
12ae9b26
OH
27002008-06-10 Olivier Hainque <hainque@adacore.com>
2701
2702 * utils.c (create_subprog_decl): If this is for the 'main' entry
2703 point according to the asm name, redirect main_identifier_node.
2704
912cb442
EB
27052008-06-09 Eric Botcazou <ebotcazou@adacore.com>
2706
2707 * decl.c (components_to_record): Adjust the packedness for the
2708 qualified union as well.
2709
4a598c32
AC
27102008-06-09 Arnaud Charlet <charlet@adacore.com>
2711
2712 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2713 checks non fatal.
2714
4b92fd3c
ST
27152008-06-07 Samuel Tardieu <sam@rfc1149.net>
2716
2717 * sem_res.adb (Large_Storage_Type): A type is large if it
2718 requires as many bits as Positive to store its values and its
2719 bounds are known at compile time.
2720 * sem_ch13.adb (Minimum_Size): Note that this function returns
2721 0 if the size is not known at compile time.
2722
968c8001
OH
27232008-06-06 Nicolas Setton <setton@adacore.com>
2724 Olivier Hainque <hainque@adacore.com>
2725
2726 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2727 attribute, parallel descriptive type attached to another
2728 type for debug info generation purposes.
2729 * utils.c (add_parallel_type): New function, register
2730 parallel type to be attached to a type.
2731 (get_parallel_type): New function, fetch a registered
2732 parallel type, if any.
2733 (rest_of_record_type_compilation): Register the parallel
2734 type we make for variable size records.
2735 * gigi.h (add_parallel_type, get_parallel_type): Declare.
2736 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2737 parallel debug types we make.
2738 * trans.c (extract_encoding, decode_name): New functions.
2739 (gigi): If the DWARF attribute extensions are available, setup
2740 to use them.
2741 * lang.opt: Register language specific processing request
2742 for -gdwarf+.
2743 * misc.c (gnat_dwarf_extensions): New global variable. How much
2744 do we want of our DWARF extensions. 0 by default.
2745 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2746 (gnat_post_options): Map gnat_dwarf_extensions to the
2747 commonuse_gnu_debug_info_extensions for later processing.
9e81dbc7 2748
b30199b8
ST
27492008-06-04 Samuel Tardieu <sam@rfc1149.net>
2750
2751 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2752
30783513
RW
27532008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2754
2755 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2756 * gnat_ugn.texi (Style Checking)
2757 (Adding the Results of Compiler Checks to gnatcheck Output)
2758 (Example of Binder Output File): Fix typos.
2759 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2760 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2761 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2762 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2763 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2764 sinfo.ads, utils.c: Fix typos in comments.
2765 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2766
fb8368fd
AC
27672008-05-29 Thomas Quinot <quinot@adacore.com>
2768
2769 * sem_eval.adb: Minor reformatting
2770
27712008-05-29 Ed Schonberg <schonberg@adacore.com>
2772
2773 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2774 is abstract, do not apply abstractness check on subprogram if this is
2775 a renaming declaration.
2776
27772008-05-29 Arnaud Charlet <charlet@adacore.com>
2778
2779 PR ada/864
2780 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2781 allow recognition of program suffix in addition to prefix.
9e81dbc7 2782
fb8368fd 2783 * gnatchop.adb (Locate_Executable): Add support for prefix.
9e81dbc7 2784
fb8368fd
AC
2785 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
2786 mlib-utl.adb: Adjust calls to Program_Name.
2787
fff3f472
AC
27882008-05-29 Robert Dewar <dewar@adacore.com>
2789
2790 * sem_ch3.adb: Minor reformatting
2791 * sem_prag.adb: Minor reformatting
2792 * sem_res.adb: Minor reformatting
2793 * sinput-p.ads: Minor reformatting
2794
27952008-05-29 Javier Miranda <miranda@adacore.com>
2796
2797 * sem_util.adb:
2798 (Abstract_Interface_List): Add missing support for full type-declaration
2799 associated with synchronized types.
2800
28012008-05-29 Robert Dewar <dewar@adacore.com>
2802
2803 * sem_eval.adb (Is_Same_Value): Take care of several more cases
2804
acca98c0
AC
28052008-05-28 Ed Schonberg <schonberg@adacore.com>
2806
2807 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
2808 access type, wrap the expression in a conversion to force an
2809 accessibility check.
2810
2811 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
2812 accessibility checks even when expansion is disabled in order to
2813 generate messages in the presence of previous errors or in
2814 semantics-only mode.
2815
28162008-05-28 Eric Botcazou <ebotcazou@adacore.com>
2817
2818 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
2819 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
2820
28212008-05-28 Vincent Celier <celier@adacore.com>
2822
2823 PR ada/34446
2824 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
2825 preprocessing expressions
2826
28272008-05-28 Vincent Celier <celier@adacore.com>
2828
2829 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
2830 for preprocessing
9e81dbc7 2831
acca98c0
AC
2832 * sinput-p.ads: Minor comment update and reformatting
2833
28342008-05-28 Ed Schonberg <schonberg@adacore.com>
2835
2836 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
2837 type has a deeper level than any master only when it is the type of an
2838 access parameter.
2839
8250171b
AC
28402008-05-28 Javier Miranda <miranda@adacore.com>
2841
2842 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
2843
28442008-05-28 Javier Miranda <miranda@adacore.com>
2845
2846 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
2847 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
2848 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
2849 Add code that was previously located in
2850 Find_Overridden_Synchronized_Primitive because it is only used here.
2851
28522008-05-28 Sergey Rybin <rybin@adacore.com>
2853
2854 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
2855 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
2856
00ea9517
RD
28572008-05-28 Robert Dewar <dewar@adacore.com>
2858
2859 * restrict.ads:
2860 Add missing restrictions, and properly label all GNAT defined ones
9e81dbc7 2861
00ea9517
RD
2862 * rtsfind.ads:
2863 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
2864 Add entry for Ada.Task_Termination.Set_Specific_Handler
2865 Add entry for Ada.Task_Termination.Specific_Handler
9e81dbc7 2866
00ea9517
RD
2867 * s-rident.ads:
2868 Add missing restrictions and properly mark all gnat defined ones
9e81dbc7 2869
00ea9517
RD
2870 * sem_ch3.adb:
2871 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
9e81dbc7 2872
00ea9517
RD
2873 * sem_res.adb:
2874 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2875
2876 * gnat_rm.texi: Add missing restrictions, and properly label all
2877 GNAT defined ones
2878
28792008-05-28 Robert Dewar <dewar@adacore.com>
2880
2881 * restrict.adb:
2882 (Check_Restriction): violation of restriction No_Finalization is
2883 treated as a serious error to stop expansion
2884
28852008-05-28 Robert Dewar <dewar@adacore.com>
2886
2887 * exp_util.adb: Minor reformatting
2888 * exp_util.ads: Minor reformatting.
2889
0b795892
AC
28902008-05-28 Arnaud Charlet <charlet@adacore.com>
2891
2892 * Make-lang.in: Remove gprmake.
2893
2894 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
2895
5840819a
AC
28962008-05-28 Ed Schonberg <schonberg@adacore.com>
2897
2898 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
2899 improper progenitor names, and avoid cascaded errors.
2900
29012008-05-28 Robert Dewar <dewar@adacore.com>
2902
2903 * gnat_rm.texi: Add note on Old giving warning when applied to constant
2904
2905 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
2906 a constant
2907
29082008-05-28 Robert Dewar <dewar@adacore.com>
2909
2910 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2911 size
2912
29132008-05-28 Robert Dewar <dewar@adacore.com>
2914
2915 * exp_ch5.adb:
2916 (Expand_Simple_Function_Return): Copy unaligned result into temporary
2917
8c3dd7a8
JM
29182008-05-28 Javier Miranda <miranda@adacore.com>
2919
2920 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
2921 for user-defined predefined primitives.
9e81dbc7 2922
8c3dd7a8
JM
2923 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
2924 (Find_Overridden_Synchronized_Primitive): Ditto.
2925
2926 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2927
35b80405
AC
29282008-05-27 Arnaud Charlet <charlet@adacore.com>
2929
2930 * a-ststio.adb, s-direio.adb:
2931 Further code clean up of previous change.
2932 Update comments.
2933
29342008-05-27 Vincent Celier <celier@adacore.com>
2935
2936 * prj-nmsc.adb: Minor reformatting
2937
29382008-05-27 Bob Duff <duff@adacore.com>
2939
2940 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
2941 untagged private type with a tagged full type, where the full type has
2942 a self reference, create the corresponding class-wide type early, in
2943 case the self reference is "access T'Class".
2944
29452008-05-27 Ed Schonberg <schonberg@adacore.com>
2946
2947 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
2948 tasks and context is an object declaration. create master entity before
2949 expansion.
2950
29512008-05-27 Robert Dewar <dewar@adacore.com>
2952
2953 * mlib-prj.adb: Minor reformatting
2954
2955 * prj-part.adb: Minor reformatting
2956
2957 * prj.ads: Minor reformatting
2958
2959 * exp_ch3.adb: Minor reformatting.
2960
2961 * sem_ch3.ads: Minor reformatting
2962
2963 * sem_eval.adb: Minor reformatting
2964
d5c998a9
AC
29652008-05-27 Vincent Celier <celier@adacore.com>
2966
2967 * gnatcmd.adb:
2968 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2969
29702008-05-27 Ed Schonberg <schonberg@adacore.com>
2971
2972 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
2973 tasks, create an activation chain now, before the expansion into
2974 assignments and build-in-place calls that require the presence of an
2975 activation chain.
2976 (Backend_Processing_Possible): If the component type is inherently
2977 limited, the aggregate must be expanded into individual built-in-place
2978 assignments.
2979
2980 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
2981 determine whether an allocation extra parameter must be built, to
2982 handle case of a private type whose full type is a discriminated type
2983 with defaults.
2984
29852008-05-27 Bob Duff <duff@adacore.com>
2986
2987 * gnat_rm.texi:
2988 Document the new behavior regarding trampolines.
2989
29902008-05-27 Arnaud Charlet <charlet@adacore.com>
2991
2992 * a-direio.adb, a-sequio.adb: Replace address clause by
2993 unrestricted_access, simpler and compatible with .NET.
2994
29952008-05-27 Vincent Celier <celier@adacore.com>
2996
2997 * prj-part.adb:
2998 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
2999 a project file, so that symbolic links are not resolved.
3000
30012008-05-27 Arnaud Charlet <charlet@adacore.com>
3002
3003 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3004 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3005 portable across GNAT targets, since this kind of address clause is not
3006 supported by VM back-ends (.NET/JGNAT).
3007
79d2a727
AC
30082008-05-27 Arnaud Charlet <charlet@adacore.com>
3009
3010 * bindgen.adb: Update comments.
9e81dbc7 3011
79d2a727
AC
3012 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3013
30142008-05-27 Vincent Celier <celier@adacore.com>
3015
3016 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3017 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3018 mlib-tgt.adb, prj-env.adb, prj-env.ads:
3019 (Path_Information): New record type
3020 Use component of type Path_Information when there are two paths, one in
3021 canonical format and one in display format.
3022 Update the project manager to these new components.
3023
0f99f391
AC
30242008-05-27 Robert Dewar <dewar@adacore.com>
3025
3026 * makeutl.adb: Minor reformatting
3027 * prj-nmsc.adb: Minor reformatting
3028 * s-stausa.adb: Minor reformatting
3029 * s-stausa.ads: Minor reformatting
3030 * sem_ch6.adb: Minor reformatting
3031
30322008-05-27 Thomas Quinot <quinot@adacore.com>
3033
3034 * sem_res.adb: Minor comment fixes
3035
d18af35f
AC
30362008-05-27 Thomas Quinot <quinot@adacore.com>
3037
3038 * makeutl.adb: Minor code reorganization
3039
3040 * exp_aggr.adb: Add ??? comment
3041 Fix typo
3042
3043 * exp_ch6.adb: Minor reformatting
3044
30452008-05-27 Quentin Ochem <ochem@adacore.com>
3046
3047 * s-stausa.adb (Initialize): Updated result initialization, and
3048 initialization of environment stack.
3049 (Fill_Stack): Improved computation of the pattern zone, taking into
3050 account already filled at the calling point.
3051 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3052 Measure and Overflow_Guard.
3053 (Report_Result): Fixed computation of the result using new fields of
3054 Stack_Analyzer.
9e81dbc7 3055
d18af35f
AC
3056 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3057 params by more explicit Stack_Size / Max_Pattern_Size params.
3058 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3059 Added Stack_Used_When_Filling field.
3060 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3061 Min_Measure and Max_Measure fields.
9e81dbc7 3062
d18af35f
AC
3063 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3064
30652008-05-27 Vincent Celier <celier@adacore.com>
3066
3067 * prj-nmsc.adb:
3068 (Check_File): Make sure that a unit that replaces the same unit in a
3069 project being extended is properly processed.
3070
30712008-05-27 Ed Schonberg <schonberg@adacore.com>
3072
3073 * sem_ch3.adb:
3074 (Get_Discr_Value): Remove obsolete code that failed to find the value
3075 of a discriminant for an inherited task component appearing in a type
3076 extension.
3077
30782008-05-27 Thomas Quinot <quinot@adacore.com>
3079
3080 (System.File_IO.{Close, Delete, Reset}):
3081 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
9e81dbc7 3082
d18af35f
AC
3083 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3084 Pass File parameter by reference.
3085
aeff280b
AC
30862008-05-27 Vincent Celier <celier@adacore.com>
3087
3088 * prj-nmsc.adb:
3089 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3090 sources of the same project that have the same object file name.
3091 (Find_Explicit_Sources): Always remove a source exception that was not
3092 found.
3093
30942008-05-27 Thomas Quinot <quinot@adacore.com>
3095
3096 * sem_ch3.adb: Minor reformatting
3097
30982008-05-27 Ed Schonberg <schonberg@adacore.com>
3099
3100 * sem_ch6.adb:
3101 (Is_Interface_Conformant): Handle properly a primitive operation that
3102 overrides an interface function with a controlling access result.
3103 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3104 inherited and overriding operations, omit as well the conformance check
3105 on result types, to prevent spurious errors.
3106
31072008-05-27 Vincent Celier <celier@adacore.com>
3108
3109 * makeutl.ads, makeutl.adb:
3110 (Set_Location): New procedure
3111 (Get_Location): New function
3112 (Update_Main): New procedure
3113
7bf402c1
AC
31142008-05-27 Vincent Celier <celier@adacore.com>
3115
3116 * prj-nmsc.adb:
3117 (Check_Library): Allow standard project to be extended as a static
3118 library project.
3119 (Get_Mains): Do not inherit attribute Main in an extending library
3120 project.
3121
31222008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3123
3124 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3125 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3126 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3127 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3128 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3129 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3130 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3131 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3132 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3133 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
9e81dbc7 3134
52268145
AC
31352008-05-27 Ed Schonberg <schonberg@adacore.com>
3136
3137 * sem_attr.adb: add guard to previous patch.
3138
31392008-05-27 Ed Schonberg <schonberg@adacore.com>
3140
3141 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3142 a synchronized tagged type, do not attempt to build dispatch table for
3143 full view. The table is built for the corresponding record type, which
3144 has its own declaration.
3145
31462008-05-27 Gary Dismukes <dismukes@adacore.com>
3147
3148 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3149 to the known type entity E, rather than setting it to Any_Type. Fixes
3150 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3151 for objects whose type had an illegal constraint.
3152
31532008-05-27 Vincent Celier <celier@adacore.com>
3154
3155 * gnat_ugn.texi:
3156 Add succinct documentation for attribute Excluded_Source_List_File
3157
31582008-05-27 Vincent Celier <celier@adacore.com>
3159
3160 * prj-attr.adb: Add new project level attribute Map_File_Option
9e81dbc7 3161
52268145 3162 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
9e81dbc7 3163
52268145
AC
3164 * prj.ads: Minor reformatting and comment update
3165 (Project_Configuration): New component Map_File_Option
9e81dbc7 3166
52268145 3167 * snames.adb: New standard name Map_File_Option
9e81dbc7 3168
52268145
AC
3169 * snames.ads: New standard name Map_File_Option
3170
31712008-05-27 Vincent Celier <celier@adacore.com>
3172
3173 * xsnames.adb: Remove unused variable Oname
3174
31752008-05-27 Doug Rupp <rupp@adacore.com>
3176
3177 * exp_ch6.adb:
3178 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3179
3180 * exp_vfpt.ads:
3181 (Expand_Vax_Foreign_Return): Fix comments.
3182
31832008-05-27 Thomas Quinot <quinot@adacore.com>
3184
3185 * exp_dist.adb: Minor reformating
3186
094d7cfa
AC
31872008-05-26 Gary Dismukes <dismukes@adacore.com>
3188
3189 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3190 No_Default_Initialization, which is now delayed until the freeze point
3191 of the object. Add a comment about deferral of the check.
9e81dbc7 3192
094d7cfa
AC
3193 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3194 on objects is moved here.
3195
31962008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3197
3198 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3199 (Compare_Array_S16): Adjust for above change.
3200 * s-casi32.adb (Uword): Likewise.
3201 (Compare_Array_S32): Likewise.
3202 * s-casi64.adb (Uword): Likewise.
3203 (Compare_Array_S64): Likewise.
3204 * s-caun16.adb (Uhalf): Likewise.
3205 (Compare_Array_U16): Likewise.
3206 * s-caun32.adb (Uword): Likewise.
3207 (Compare_Array_U32): Likewise.
3208 * s-caun64.adb (Uword): Likewise.
3209 (Compare_Array_U64): Likewise.
9e81dbc7 3210
094d7cfa
AC
32112008-05-26 Robert Dewar <dewar@adacore.com>
3212
3213 * exp_ch6.adb: Add ??? comment for previous change
3214
3215 * exp_vfpt.adb: Minor reformatting
3216
3217 * exp_vfpt.ads: Add ??? comment for last change
3218
3219 * sem_attr.adb: Add some ??? comments for previous change
3220
3221 * s-vaflop.ads: Add comments for previous change
3222
32232008-05-26 Doug Rupp <rupp@adacore.com>
3224
3225 * s-vaflop-vms-alpha.adb:
3226 Remove System.IO use clause, to prevent spurious ambiguities when
3227 package is access through rtsfind.
3228
32292008-05-26 Sergey Rybin <rybin@adacore.com>
3230
3231 * tree_io.ads (ASIS_Version_Number): Update because of the changes
3232 made in front-end
3233
9019f3fc
AC
32342008-05-26 Ed Schonberg <schonberg@adacore.com>
3235
3236 * sem_attr.adb:
3237 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
3238 converted to S (A)'address only if A .. B is known to be a non-null
3239 range.
3240
32412008-05-26 Doug Rupp <rupp@adacore.com>
3242
3243 * s-vaflop.adb:
3244 (Return_D, Return_F, Return_G): New functions.
3245
3246 * s-vaflop.ads:
3247 (Return_D, Return_F, Return_G): New functions.
3248
3249 * exp_vfpt.adb:
3250 (Expand_Vax_Foreign_Return): New procedure
3251
3252 * exp_vfpt.ads:
3253 (Expand_Vax_Foreign_Return): New procedure
3254
3255 * rtsfind.ads:
3256 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3257 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3258
3259 * exp_ch6.adb:
3260 Import Exp_Vfpt
3261 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3262
3263 * s-vaflop-vms-alpha.adb:
3264 (Return_D, Return_F, Return_G): New functions.
3265
32662008-05-26 Gary Dismukes <dismukes@adacore.com>
3267
3268 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3269 init proc entity when there is actual default initialization associated
3270 with the component type, to avoid spurious errors on objects of scalar
3271 array types that are marked Is_Public when No_Default_Initialization
3272 applies.
3273
d693e39d
TQ
32742008-05-26 Thomas Quinot <quinot@adacore.com>
3275
3276 * rtsfind.ads, rtsfind.adb:
3277 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3278 (Check_RPC): Support per-PCS-kind API versioning.
9e81dbc7 3279
d693e39d
TQ
3280 exp_dist.ads, exp_dist.adb:
3281 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3282 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3283 library function Get_RACW.
3284 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3285 library function Get_Reference.
3286 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3287 through an intermediate Any.
3288 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3289 going through an intermediate Any.
9e81dbc7 3290
d693e39d
TQ
3291 * sem_dist.adb: Minor reformatting.
3292
ad89bc8d
AC
32932008-05-26 Javier Miranda <miranda@adacore.com>
3294
3295 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3296 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3297 (Is_Internal): Adding documentation on internal entities that have
3298 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3299
3300 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3301 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3302 Added assertion to force entities with this attribute to have
3303 attribute Is_Internal set to True.
3304 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3305
3306 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3307 renamed as Derive_Progenitor_Subprograms. In addition, its code is
3308 a new implementation.
3309 (Add_Interface_Tag_Components): Remove special management of
3310 synchronized interfaces.
3311 (Analyze_Interface_Declaration): Minor reformating
3312 (Build_Derived_Record_Type): Minor reformating
3313 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3314 predefined primitive inherited from interface type because the body of
3315 internally generated predefined primitives of tagged types are generated
3316 later by Freeze_Type
3317 (Derive_Subprogram): Avoid generating an internal name if the parent
3318 subprogram overrides an interface primitive.
3319 (Derive_Subprograms): New implementation that keeps separate the
3320 management of tagged types not implementing interfaces, from tagged
3321 types that implement interfaces.
3322 (Is_Progenitor): New implementation.
3323 (Process_Full_View): Add documentation
3324 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3325 by call to Derive_Progenitor_Subprograms.
3326
3327 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3328 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3329 Skip_Controlling_Formals.
3330
3331 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3332 (Check_Conventions): New implementation. Remove local subprogram
3333 Skip_Check. Remove formal Search_From of routine Check_Convention.
3334 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3335 Skip_Controlling_Formals.
3336 (New_Overloaded_Entity): Enable addition of predefined dispatching
3337 operations.
3338
3339 * sem_disp.ads
3340 (Find_Primitive_Covering_Interface): New subprogram.
3341
3342 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3343 the task body procedure as a primitive of the corresponding tagged
3344 type.
3345 (Check_Operation_From_Private_Type): Avoid adding twice an entity
3346 to the list of primitives.
3347 (Find_Primitive_Covering_Interface): New subprogram.
3348 (Override_Dispatching_Operation): Add documentation.
3349
3350 * sem_type.adb (Covers): Minor reformatings
3351
3352 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3353 Collect_Interfaces.
3354 Rename formal.
3355 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3356 (Implements_Interface): New subprogram.
3357 (Is_Parent): Removed.
3358 (Primitive_Names_Match): New subprogram.
3359 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3360 (Ultimate_Alias): New subprogram.
3361
3362 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3363 Collect_Interfaces.
3364 Remove special management for synchronized types. Rename formal. Remove
3365 internal subprograms Interface_Present_In_Parent and Add_Interface.
3366 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3367 on non-record types by code to return false in such case.
3368 (Implements_Interface): New subprogram.
3369 (Is_Parent): Removed. No special management is now required for
3370 synchronized types covering interfaces.
3371 (Primitive_Names_Match): New subprogram.
3372 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3373 (Ultimate_Alias): New subprogram.
3374
3375 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3376 Add internal entities associated with secondary dispatch tables to
3377 the list of tagged type primitives that are not interfaces.
3378 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3379 (Make_Predefined_Primitive_Specs): Code reorganization to improve
3380 the management of predefined equality operator. In addition, if
3381 the type has an equality function corresponding with a primitive
3382 defined in an interface type, the inherited equality is abstract
3383 as well, and no body can be created for it.
3384
3385 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3386 exp_util to exp_disp.
3387 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3388 an entity corresponds with one of the predefined primitives required
3389 to implement interfaces.
3390 Update copyright notice.
3391
3392 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3393 final check on abstract subprograms all the primitives associated with
3394 interface primitives because they must be visible in the public and
3395 private part.
3396 (Write_DT): Use Find_Dispatching_Type to locate the name of the
3397 interface type. This allows the use of this routine, for debugging
3398 purposes, when the tagged type is not fully decorated.
3399 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3400 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3401 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3402 entity corresponds with one of the predefined primitives required to
3403 implement interfaces.
3404
3405 * exp_util.adb (Find_Interface_ADT): New implementation
3406 (Find_Interface): Removed.
3407
3408 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3409 list of interfaces associated with nodes
3410 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3411
34122008-05-26 Thomas Quinot <quinot@adacore.com>
3413
3414 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3415 condition for assignment to temporary.
3416
c878b2ef
AC
34172008-05-26 Ed Schonberg <schonberg@adacore.com>
3418
3419 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3420 checks on the upper bound if the index type is a modular type, to
3421 prevent wrap-around computations when size is close to upper bound of
3422 type.
3423
34242008-05-26 Robert Dewar <dewar@adacore.com>
3425
3426 * sem_ch3.adb: Minor reformatting
3427
39281edf
AC
34282008-05-26 Ed Schonberg <schonberg@adacore.com>
3429
3430 * sem_ch12.adb (Remove_Parent): Use specification of instance
3431 to retrieve generic parent,
3432 to handle properly the case where the instance is a child unit.
3433 Add guard to handle properly wrapper packages.
3434 Minor reformatting
3435
34362008-05-26 Thomas Quinot <quinot@adacore.com>
3437
3438 * sinfo.ads: Minor reformatting
3439
34402008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3441
3442 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3443 Generate a tag check when the result subtype of a function, defined by
3444 an access definition, designates a specific tagged type.
3445 (Make_Tag_Check): New routine.
3446
d6ca724c
AC
34472008-05-26 Arnaud Charlet <charlet@adacore.com>
3448
3449 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3450
c654b659
EB
34512008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3452
3453 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3454 (builtin_decl_for): Likewise.
3455 * trans.c (gigi): Likewise.
3456 * utils.c (def_builtin_1): Fix formatting.
3457
1c331d2d
AC
34582008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3459
3460 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3461 Create the statements which map a string name to protected or task
3462 entry indix.
3463
3464 * exp_ch9.adb: Add with and use clause for Stringt.
3465 Minor code reformatting.
3466 (Build_Entry_Names): New routine.
3467 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3468 for flag Build_Entry_Names which controls the allocation of the data
3469 structure for the string names of entries.
3470
3471 * exp_ch9.ads (Build_Entry_Names): New subprogram.
3472
3473 * exp_util.adb (Entry_Names_OK): New function.
3474
3475 * exp_util.ads (Entry_Names_OK): New function.
3476
3477 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3478 enumerations RE_Id and RE_Unit_Table.
3479
3480 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3481 (Free_Entry_Names_Array): New routine.
3482
3483 * s-taskin.ads: Comment reformatting.
3484 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3485 Add component Entry_Names to record Ada_Task_Control_Block.
3486 (Free_Entry_Names_Array): New routine.
3487
3488 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3489 dynamically allocate an array
3490 of string pointers. This structure holds string entry names.
3491 (Free_Entry_Names): New routine.
3492 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3493 (Set_Entry_Names): New routine.
3494
3495 * s-tassta.ads:
3496 (Create_Task): Add formal Build_Entry_Names. The flag is used to
3497 control the allocation of the data structure which stores entry names.
3498 (Set_Entry_Name): New routine.
3499
3500 * s-tpoben.adb:
3501 Add with and use clause for Ada.Unchecked_Conversion.
3502 (Finalize): Deallocate the entry names array.
3503 (Free_Entry_Names): New routine.
3504 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3505 create an array of string pointers to hold the entry names.
3506 (Set_Entry_Name): New routine.
3507
3508 * s-tpoben.ads:
3509 Add field Entry_Names to record Protection_Entries.
3510 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3511 (Set_Entry_Name): New routine.
3512
35132008-05-26 Vincent Celier <celier@adacore.com>
3514
3515 * prj-nmsc.adb:
3516 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3517
3518 * prj.ads:
3519 (Project_Configuration): New component Shared_Lib_Driver
3520
35212008-05-26 Ed Schonberg <schonberg@adacore.com>
3522
3523 * inline.adb:
3524 (Cleanup_Scopes): For a protected operation, transfer finalization list
3525 to protected body subprogram, to force cleanup actions when needed.
3526
35272008-05-26 Robert Dewar <dewar@adacore.com>
3528
3529 * sem_cat.adb: Minor reformatting
3530
3531 * gnatname.adb: Minor reformatting
3532
3533 * osint.ads: Minor reformatting
3534
3535 * s-carun8.ads: Minor reformatting
3536
3537 * g-heasor.ads: Minor comment fix (unit is now pure)
3538
35392008-05-26 Robert Dewar <dewar@adacore.com>
3540
3541 * exp_ch2.adb:
3542 (Expand_Current_Value): Properly type generated integer literal
3543
35442008-05-26 Sergey Rybin <rybin@adacore.com>
3545
3546 * gnat_ugn.texi: Add description for the new gnatcheck rule -
3547 Separate_Numeric_Error_Handlers.
3548
35492008-05-26 Pascal Obry <obry@adacore.com>
3550
3551 * sem_aggr.adb: Minor reformatting.
3552
35532008-05-26 Jose Ruiz <ruiz@adacore.com>
3554
3555 * s-osinte-aix.adb:
3556 (To_Target_Priority): Setting the time slice value to 0 or greater sets
3557 the scheduling policy to FIFO within priorities or round-robin
3558 respectively.
3559 Hence, the priority must be set in this case to the one selected by the
3560 user.
9e81dbc7 3561
1c331d2d
AC
35622008-05-26 Ed Schonberg <schonberg@adacore.com>
3563
3564 * sem_ch12.adb:
3565 (Remove_Parent): If the enclosing scope is an instance whose generic
3566 parent is declared within some parent scope of the just completed
3567 instance, make full views of the entities in that parent visible, when
3568 applicable.
9e81dbc7 3569
a28e8f45
KT
35702008-05-26 Kai Tietz <kai.tietz@onevision.com>
3571
3572 * mingw32.h (STD_MINGW): Set to true for target w64.
3573
3651f7ad
EB
35742008-05-25 Eric Botcazou <ebotcazou@adacore.com>
3575
3576 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3577 instead of TREE_STATIC on the ADDR_EXPR.
3578
58272d79
EB
35792008-05-24 Eric Botcazou <ebotcazou@adacore.com>
3580
3581 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3582 (Sloc_to_locus): Do not overwrite known GCC locations when translating
3583 GNAT standard locations.
3584
4c8125f4
EB
35852008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3586
3587 * gigi.h (mark_visited): Declare.
3588 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3589 only the topmost node of expressions.
b86c6d94 3590 (elaborate_expression_1): Look deeper for read-only variables.
4c8125f4
EB
3591 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3592 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
3593 (mark_visited_r): New function.
3594
d1ba4e42
AC
35952008-05-23 Vincent Celier <celier@adacore.com>
3596
b86c6d94 3597 * snames.adb: New standard name Excluded_Source_List_File.
d1ba4e42 3598
b86c6d94 3599 * snames.ads: New standard name Excluded_Source_List_File.
d1ba4e42 3600
b86c6d94 3601 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
d1ba4e42 3602
b86c6d94 3603 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
d1ba4e42
AC
3604 Get excluded sources from
3605 file indicated by attribute Excluded_Source_List_File, when present and
3606 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3607
36082008-05-23 Robert Dewar <dewar@adacore.com>
3609
3610 * exp_dist.adb: Minor reformatting
3611
36122008-05-23 Ed Schonberg <schonberg@adacore.com>
3613
3614 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3615 slice, convert it to an indexed component, which is equivalent, more
3616 efficient, and usable even if the slice itself is not addressable.
3617
36182008-05-23 Olivier Hainque <hainque@adacore.com>
3619
3620 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3621 convention also allows access to named compiler built-in subprograms
3622 such as the GCC __builtin family.
3623
ffd0dd6c
AC
36242008-05-23 Vincent Celier <celier@adacore.com>
3625
3626 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3627 sep. If there are several possibilities, choose the one with the
3628 longer prefix.
3629
36302008-05-23 Vincent Celier <celier@adacore.com>
3631
3632 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3633 back end switches when executable specified with --GCC= is same as
3634 default, even if there are additional options.
3635
3636 * gnat_ugn.texi:
3637 Document when the back end switches from the ALI file are taken into
3638 account when gnatlink is invoked with --GCC=
3639
36402008-05-23 Thomas Quinot <quinot@adacore.com>
3641
3642 * s-os_lib.adb:
3643 (copy_File): Do not open destination file if source file is unreadable.
3644
3fda3252
EB
36452008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3646
3647 * utils.c (handle_type_generic_attribute): Adjust to accept
3648 fixed arguments before an elipsis.
3649
92c708d2
TQ
36502008-05-21 Thomas Quinot <quinot@adacore.com>
3651
3652 * g-sothco.ads, g-sothco.adb: New files.
3653
93a7c573
AC
36542008-05-20 Thomas Quinot <quinot@adacore.com>
3655
3656 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3657
3658 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3659 Add missing "with" of Ada.Unchecked_Conversion
3660
9e81dbc7
AS
3661 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3662 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3663 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3664 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3665 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3666 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
93a7c573
AC
3667 Move common code out of GNAT.Sockets.Thin implementations and into
3668 Thin_Common.
3669 New constant SIZEOF_fd_set
3670 New flag Has_Sockaddr_Len
3671 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3672
3673 * g-stsifd-sockets.adb
3674 (Create): Remove call to Set_Length; use Set_Family to set the family
3675 and (on appropriate platforms) length fields in struct sockaddr.
3676
9e81dbc7
AS
3677 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3678 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
93a7c573
AC
3679 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3680 Move common code out of GNAT.Sockets.Thin implementations and into
3681 Thin_Common.
3682
9e81dbc7 3683 * g-socket.ads, g-socket.adb:
93a7c573
AC
3684 Move common code out of GNAT.Sockets.Thin implementations and into
3685 Thin_Common.
3686 (Connect_Socket, Accept_Socket): Provide new versions of these two
3687 routines that operate with a user specified timeout.
3688 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3689 this is now handled automatically by Set_Family on platforms that
3690 require it.
3691
9e81dbc7 3692 * gen-soccon.c:
93a7c573
AC
3693 Move common code out of GNAT.Sockets.Thin implementations and into
3694 Thin_Common.
3695 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3696 this constant to 0 (not -1) because we use it to initialize an
3697 unsigned_char value.
3698 Align values for numeric constants only.
3699 Handle the case of systems that do not support AF_INET6.
3700 New constant SIZEOF_fd_set
3701 New flag Has_Sockaddr_Len
3702 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3703
3704 * gsocket.h: New flag Has_Sockaddr_Len
3705 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3706
37072008-05-20 Santiago Uruena <uruena@adacore.com>
3708
3709 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3710
37112008-05-20 Arnaud Charlet <charlet@adacore.com>
3712
3713 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3714 the underlying issue with malloc/free has been fixed. Remove associated
3715 comments.
3716 Minor reformatting.
3717 Related to PR ada/24533
3718
37192008-05-20 Robert Dewar <dewar@adacore.com>
3720
3721 * ali.adb: Correct casing of ASCII.NUL
3722
3723 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3724 properly.
3725
37262008-05-20 Robert Dewar <dewar@adacore.com>
3727 Gary Dismukes <dismukes@adacore.com>
3728
3729 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3730 overflow if result converted to wider integer type.
3731 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3732 discriminated types when discriminant checks are suppressed.
3733
37342008-05-20 Vincent Celier <celier@adacore.com>
3735
3736 * cstand.adb (Print_Standard): Issue the correct Size clause for type
3737 Wide_Wide_Character.
3738
37392008-05-20 Tristan Gingold <gingold@adacore.com>
3740
3741 * decl.c: Do not emit a variable for a object that has an address
3742 representation clause whose value is known at compile time.
3743 When a variable has an address clause whose value is known at compile
3744 time, refer to this variable by using directly the address instead of
3745 dereferencing a pointer.
3746
37472008-05-20 Robert Dewar <dewar@adacore.com>
3748
3749 PR ada/30740
3750 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3751 subtypes, always False for non-modular types.
3752 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3753 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3754 for Shared_Storage package.
3755 (Is_RACW_Stub_Type): New entity flag.
3756
3757 * exp_ch4.adb
3758 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3759 case where we have a modular type with a non-binary modules.
3760 Comments reformattings.
3761
3762 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3763 all types.
3764
37652008-05-20 Javier Miranda <miranda@adacore.com>
3766
3767 * exp_aggr.adb
3768 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3769 tests did not covered the case in which the type of the aggregate has
3770 no progenitors but some its parents has progenitors.
3771
37722008-05-20 Gary Dismukes <dismukes@adacore.com>
3773 Hristian Kirtchev <kirtchev@adacore.com>
3774
3775 * exp_ch3.adb
3776 (Expand_N_Object_Declaration): Correct the condition which triggers the
3777 generation of a call to Displace when initializing a class-wide object.
3778 (Build_Dcheck_Functions): Build discriminant-checking for null variants
3779 when Frontend_Layout_On_Target is true to ensure that they're available
3780 for calling when a record variant size function is built in Layout.
3781
37822008-05-20 Ed Schonberg <schonberg@adacore.com>
3783
3784 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
3785 procedure for a derived type retrieve the discriminant values from the
3786 parent using the corresponding discriminant.
3787 (Expand_N_Assignment_Statement): Skip generation of implicit
3788 if-statement associated with controlled types if we are
3789 compiling with restriction No_Finalization.
3790
37912008-05-20 Vincent Celier <celier@adacore.com>
3792
3793 * prj.adb (Hash (Project_Id)): New function
3794 (Project_Empty): Add new component Interfaces_Defined
3795
3796 * prj.ads (Source_Data): New component Object_Linked
3797 (Language_Config): New components Object_Generated and Objects_Linked
3798 (Hash (Project_Id)): New function
3799 (Source_Data): New Boolean components In_Interfaces and
3800 Declared_In_Interfaces.
3801 (Project_Data): New Boolean component Interfaces_Defined
3802
9e81dbc7 3803 * prj-attr.adb:
93a7c573
AC
3804 New project level attribute Object_Generated and Objects_Linked
3805 Add new project level attribute Interfaces
3806
3807 * prj-dect.adb: Use functions Present and No throughout
3808 (Parse_Variable_Declaration): If a string type is specified as a simple
3809 name and is not found in the current project, look for it also in the
3810 ancestors of the project.
3811
9e81dbc7 3812 * prj-makr.adb:
93a7c573
AC
3813 Replace procedure Make with procedures Initialize, Process and Finalize
3814 to implement H414-023: process different directories with different
3815 patterns.
3816 Use functions Present and No throughout
3817
9e81dbc7 3818 * prj-makr.ads:
93a7c573
AC
3819 Replace procedure Make with procedures Initialize, Process and Finalize
3820
3821 * prj-nmsc.adb
3822 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
3823 the language configuration.
3824 (Process_Project_Level_Array_Attributes): Process new attributes
3825 Object_Generated and Object_Linked.
3826 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
3827 False, to indicate that the erreor/warning is a continuation.
3828 (Check): Call Report_No_Sources with Contnuation = True after the first
3829 call.
3830 (Error_Msg): Process successively contnuation character and warning
3831 character.
3832 (Find_Explicit_Sources): Check that all declared sources have been found
3833 (Check_File): Indicate in hash table Source_Names when a declared source
3834 is found.
3835 (Check_File): Set Other_Part when found
3836 (Find_Explicit_Sources): In multi language mode, check if all exceptions
3837 to the naming scheme have been found. For Ada, report an error if an
3838 exception has not been found. Otherwise, disregard the exception.
3839 (Check_Interfaces): New procedure
3840 (Add_Source): When Other_Part is defined, set mutual pointers in spec
3841 and body.
3842 (Check): In multi-language mode, call Check_Interfaces
3843 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
3844 for an excluded source.
3845 (Remove_Source): A source replacing a source in the interfaces is also
3846 in the interfaces.
3847
3848 * prj-pars.adb: Use function Present
3849
3850 * prj-part.adb: Use functions Present and No throughout
3851 (Parse_Single_Project): Set the parent project for child projects
3852 (Create_Virtual_Extending_Project): Register project with no qualifier
3853 (Parse_Single_Project): Allow an abstract project to be extend several
3854 times. Do not allow an abstract project to extend a non abstract
3855 project.
3856
3857 * prj-pp.adb: Use functions Present and No throughout
3858 (Print): Take into account the full associative array attribute
3859 declarations.
3860
3861 * prj-proc.adb: Use functions Present and No throughout
3862 (Expression): Call itself with the same From_Project_Node for the
3863 default value of an external reference.
3864
3865 * prj-strt.adb: Use functions Present and No throughout
3866 (Parse_Variable_Reference): If a variable is specified as a simple name
3867 and is not found in the current project, look for it also in the
3868 ancestors of the project.
3869
3870 * prj-tree.ads, prj-tree.adb (Present): New function
3871 (No): New function
3872 Use functions Present and No throughout
3873 (Parent_Project_Of): New function
3874 (Set_Parent_Project_Of): New procedure
3875
9e81dbc7 3876 * snames.ads, snames.adb:
93a7c573
AC
3877 Add new standard names Object_Generated and Objects_Linked
3878
38792008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3880
3881 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
3882 and the derived type are of the same kind.
3883 (Expand_Call): Generate type conversions for actuals of
3884 record or array types when the parent and the derived types differ in
3885 size and/or packed status.
3886
38872008-05-20 Javier Miranda <miranda@adacore.com>
3888 Ed Schonberg <schonberg@adacore.com>
3889
3890 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
3891 generating dispatch tables of locally defined tagged types statically.
3892 Remove implicit if-statement that is no longer required.
3893 (Expand_Dispatching_Call): If this is a call to an instance of the
3894 generic dispatching constructor, the type of the first argument may be
3895 a subtype of Tag, so always use the base type to recognize this case.
3896
38972008-05-20 Thomas Quinot <quinot@adacore.com>
3898
3899 * exp_dist.adb
3900 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
3901 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
3902 assigning NULL into the result, to avoid a spurious warning.
3903 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
3904 is not frozen.
3905 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
3906 type.
3907 (Build_From_Any_Function, Build_To_Any_Function,
3908 Build_TypeCode_Function): For a type that has user-specified stream
3909 attributes, use an opaque sequence of octets as the representation.
3910
39112008-05-20 Kevin Pouget <pouget@adacore.com>
3912
3913 * exp_smem.ads, exp_smem.adb: Construction of access and assign
3914 routines has been replaced by an instantiation of
3915 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
3916 shared variable declaration.
3917 Calls to access and assign routines have been replaced by calls to
3918 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
3919 instantiated package.
9e81dbc7 3920
93a7c573
AC
3921 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
3922 It identifies the new generic package added in s-shasto.
3923
3924 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
3925 is instantiated for each shared passive variable. It provides
3926 supporting procedures called upon each read or write access by the
3927 expanded code.
3928
3929 * sem_attr.adb:
3930 For this runtime unit (always compiled in GNAT mode), we allow
3931 stream attributes references for limited types for the case where
3932 shared passive objects are implemented using stream attributes,
3933 which is the default in GNAT's persistent storage implementation.
3934
39352008-05-20 Ed Schonberg <schonberg@adacore.com>
3936
3937 * freeze.adb
3938 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
3939 convention from its base type, do not set the type to that of integer,
3940 because it may inherit a size clause.
3941 Warn on a size clause with a size different
3942 from that of Integer, if the type has convention C.
3943
39442008-05-20 Vincent Celier <celier@adacore.com>
3945
3946 * gnatname.adb
3947 (Scan_Args): Rewrite to take into account new switch --and to separate
3948 arguments into sections.
3949 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
3950 section, then Finalize.
3951
39522008-05-20 Tristan Gingold <gingold@adacore.com>
3953
3954 * init.c: Enable stack probing on ppc-linux.
3955
3956 * tracebak.c: Add symbolic traceback for ppc-linux.
3957
3958 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
3959
39602008-05-20 Arnaud Charlet <charlet@adacore.com>
3961
3962 * Makefile.in
3963 (common-tools): New rule, to avoid parallel build failure on gnat tools.
3964 Reenable parallel builds on this Makefile.
3965
3966 * Make-lang.in: Update dependencies.
3967
39682008-05-20 Robert Dewar <dewar@adacore.com>
3969
3970 * opt.ads (Treat_Restrictions_As_Warnings): New switch
3971
3972 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
3973 Treat_Restrictions_As_Warnings.
3974
3975 * switch-c.adb: Recognize new switch -gnatr
3976
3977 * usage.adb: Add line for -gnatr
3978
39792008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3980
3981 * par-ch3.adb
3982 (P_Access_Definition): Change the error message when parsing "access
3983 all" in Ada 95 mode. The message no longer forces the user to recompile
3984 in 05 mode only to discover that anonymous access types are not allowed
3985 to have "all".
3986
39872008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3988
3989 * par-ch9.adb
3990 (P_Protected): Update the error message on missing "-gnat05" switch when
3991 using interfaces in conjunction with protected types. Remove the
3992 incorrect error message associated with the presence of "private" after
3993 a "with".
3994
39952008-05-20 Ed Schonberg <schonberg@adacore.com>
3996
3997 * sem_aggr.adb: Update comments.
3998 Improve previous change for PR ada/17985
3999
40002008-05-20 Thomas Quinot <quinot@adacore.com>
4001
4002 * sem_cat.adb
4003 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4004 the visible part of the spec of a remote types unit.
4005 (Validate_Remote_Access_Object_Type_Declaration):
4006 New local subprogram Is_Valid_Remote_Object_Type, replaces
4007 Is_Recursively_Limited_Private.
4008 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4009 non-controlling formals (and the return type, even though this is not
4010 explicit in the standard) must support external streaming.
4011 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4012 as above for of RAS types and RCI subprograms. (The return type is not
4013 checked yet).
4014 Update comments related to RACWs designating limited interfaces per
4015 ARG ruling on AI05-060.
4016
4017 * sem_util.ads, sem_util.adb
4018 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4019 Is_Remote_Call_Interface to identify RACW types in a stable and
4020 consistent way. We used to rely in this predicate on the privateness of
4021 the designated type and its ancestors, but depending on the currently
4022 visible private parts, this caused false negatives. We now uniformly
4023 rely on checks made at the point where the RACW type is declared.
4024 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4025
40262008-05-20 Javier Miranda <miranda@adacore.com>
4027 Ed Schonberg <schonberg@adacore.com>
4028 Hristian Kirtchev <kirtchev@adacore.com>
4029
4030 * sem_ch3.adb
4031 (Analyze_Object_Declaration): Fix over-conservative condition
4032 restricting use of predefined assignment with tagged types that have
4033 convention CPP.
4034 (Analyze_Object_Declaration): Relax the check regarding deferred
4035 constants declared in scopes other than packages since they can be
4036 completed with pragma Import.
4037 Add missing escaping of all-caps word 'CPP' in error messages.
4038 (Build_Discriminated_Subtype): Do not inherit representation clauses
4039 from parent type if subtype already carries them, because they are
4040 inherited earlier during derivation and already include those that may
4041 come from a partial view.
4042
4043 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4044 Check the declarations of a subprogram body for proper deferred
4045 constant completion.
4046
4047 * sem_ch7.ads, sem_ch7.adb
4048 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4049
40502008-05-20 Ed Schonberg <schonberg@adacore.com>
4051 Thomas Quinot <quinot@adacore.com>
4052
4053 * sem_ch4.adb
4054 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4055 F is a parameterless function that returns an array, and S is a subtype
4056 mark.
4057 (Analyze_Call): Insert dereference when the prefix is a parameterless
4058 function that returns an access to subprogram and the call has
4059 parameters.
4060 Reject a non-overloaded call whose name resolves to denote
4061 a primitive operation of the stub type generated to support a remote
4062 access-to-class-wide type.
4063
40642008-05-20 Ed Schonberg <schonberg@adacore.com>
4065
4066 * sem_ch8.adb
4067 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4068 when there is a use clause for the same entity in the context.
4069 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4070 created for a stream attribute of an abstract type or interface type.
4071
40722008-05-20 Thomas Quinot <quinot@adacore.com>
4073
4074 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4075 subprogram.
4076
4077 * sem_type.adb
4078 (Add_One_Interp): Ignore any interpretation that is a primitive
4079 operation of an RACW stub type (these primitives are only executed
4080 through dispatching, never through static calls).
4081 (Collect_Interps): When only one interpretation has been found, set N's
4082 Entity and Etype to that interpretation, otherwise Entity and Etype may
4083 still refer to an interpretation that was ignored by Add_One_Interp,
4084 in which case would end up with being marked as not overloaded but with
4085 an Entity attribute not pointing to its (unique) correct interpretation.
4086
40872008-05-20 Ed Schonberg <schonberg@adacore.com>
4088
4089 * sem_eval.adb
4090 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4091 denotes the whole array of its prefix.
4092
40932008-05-20 Robert Dewar <dewar@adacore.com>
4094
4095 * sem_res.adb (Resolve_Op_Not): Warn on double negation
4096
40972008-05-20 Ed Schonberg <schonberg@adacore.com>
4098
4099 * sprint.adb
4100 (Print_Itype): Do not modify the sloc of the component type of a
4101 (packed) array itype, because it is an unrelated type whose source
4102 location is independent of the point of creation of the itype itself.
4103
41042008-05-20 Thomas Quinot <quinot@adacore.com>
4105
4106 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4107 Append.
4108
41092008-05-20 Robert Dewar <dewar@adacore.com>
4110 Vincent Celier <celier@adacore.com>
4111
4112 * vms_data.ads: Add entry for -gnatr
4113 Put GNAT SYNC section in proper alpha order
4114 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4115
4116 * gnat_ugn.texi: Add documentation for new gnatname switch --and
4117 Update the style checks section
4118 Add documentation of -gnatr
4119 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4120 subsection the explanation how compiler checks should be disabled for
4121 gnatcheck.
4122 Update the list of Ada 95 reserved words used by in the project language
4123 Add documentation for project qualifiers.
4124 Document that abstract projects may be extended by different projects in
4125 the same project tree.
4126 Add documentation for gnatmake switch -d
4127
4128 * ug_words: Add -gnatyy VMS equivalence string.
4129 Add entry for -gnatr
4130
41312008-05-20 Bob Duff <duff@adacore.com>
4132
4133 * a-rttiev.adb
4134 (Set_Handler): Remove code from both of these that implements
4135 RM-D.15(15/2), because it causes a race condition and potential
4136 deadlock.
4137 (Process_Queued_Events): Add comment explaining "exception when others
4138 => null". Add clarifying ".all", even though implicit .all is legal
4139 here.
4140
41412008-05-20 Arnaud Charlet <charlet@adacore.com>
4142
4143 * s-winext.ads: Replace representation clause by pragma Pack. Gives
4144 equivalent representation, but has the advantage of allowing
4145 compilation of this file under 64 bits platforms.
4146
4147 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4148
4149 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4150
9e81dbc7 4151 * adaint.c:
93a7c573
AC
4152 Don't define dummy implementation of convert_addresses on ppc-linux.
4153
41542008-05-20 Ed Schonberg <schonberg@adacore.com>
4155
4156 * exp_ch7.adb
4157 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4158 if expression is aggregate component.
4159
41602008-05-20 Robert Dewar <dewar@adacore.com>
4161
4162 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4163 sem_ch12.adb: Update comments. Minor reformatting.
4164
4165 * exp_ch2.adb: Typo
4166
4167 * s-unstyp.ads: Fixed some typos in comments.
4168
1b686dc4
AC
41692008-05-20 Arnaud Charlet <charlet@adacore.com>
4170
4171 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4172 type/constant.
4173
4174 * g-socthi-vxworks.ads: Update to latest socket changes.
4175
4176 * a-caldel-vms.adb: Resync with a-caldel spec.
4177
6357e162
AC
4178 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4179 Update comments.
4180
74c11a6c
EB
41812008-05-17 Eric Botcazou <ebotcazou@adacore.com>
4182
4183 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4184 for dummy types pointed to by the converted pointer types.
4185
f730e42f
EB
41862008-05-15 Eric Botcazou <ebotcazou@adacore.com>
4187
4188 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4189 of records and unions.
4190 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4191
eaa2f8c7 41922008-05-14 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4193 Robert Dewar <dewar@adacore.com>
eaa2f8c7
ST
4194
4195 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4196 restrictions to the prefix of 'Old.
4197 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4198 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4199 variables.
4200
f80cddcb
EB
42012008-05-13 Eric Botcazou <ebotcazou@adacore.com>
4202
4203 PR ada/24880
4204 PR ada/26635
4205 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4206 expression to an integral type with lower precision, use NOP_EXPR
4207 directly in a couple of special cases.
4208
ea0a7f39 42092008-05-12 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4210 Ed Schonberg <schonberg@adacore.com>
ea0a7f39
ST
4211
4212 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4213 constraint expressions.
4214
751d1520
TB
42152008-05-12 Tomas Bily <tbily@suse.cz>
4216
ea0a7f39
ST
4217 * utils2.c (known_alignment, contains_save_expr_p)
4218 (gnat_mark_addressable): Use CASE_CONVERT.
4219 * decl.c (annotate_value): Likewise.
4220 * trans.c (maybe_stabilize_reference): Likewise.
4221 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4222 * utils.c (rest_of_record_type_compilation): Likewise.
4223 * trans.c (protect_multiple_eval, Attribute_to_gnu)
4224 (protect_multiple_eval): Likewise.
751d1520 4225
a1b66071
AS
42262008-05-08 Andreas Schwab <schwab@suse.de>
4227
4228 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4229 DECL_IS_PURE to DECL_PURE_P.
4230
bba74577
EB
42312008-05-05 Eric Botcazou <ebotcazou@adacore.com>
4232
4233 * decl.c (maybe_pad_type): Add ??? comment.
4234
8f85525e
EB
42352008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4236
4237 * decl.c (components_to_record): Zero the alignment of the qualified
4238 union built for the variant part upon creating it.
4239
88f36b7e
EB
42402008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4241
4242 * decl.c (maybe_pad_type): Try to get a form of the type with integral
4243 mode even if the alignment is not a factor of the original size. But
4244 make sure to create the inner field with the original size. Reorder.
4245 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4246 record as always addressable.
4247 * utils.c (convert): Deal specially with conversions between original
4248 and packable versions of a record type.
4249 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4250 recognizing an assignment between padded objects.
4251
8665c7ca
EB
42522008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4253
4254 * decl.c (make_packable_type): Resize the last component to its RM size
4255 only if it is of an aggregate type.
4256 * trans.c (call_to_gnu): Fix nit in comment.
4257 (gnat_to_gnu): Likewise.
4258
ea342909
ST
42592008-04-30 Samuel Tardieu <sam@rfc1149.net>
4260
4261 * Makefile.in: Adapt sh4-linux target.
4262
af4133b2
ST
42632008-04-29 Ed Schonberg <schonberg@adacore.com>
4264
4265 PR ada/35792
4266 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4267 tagged type by an untagged protected or task type.
4268
805100b5 42692008-04-28 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 4270 Tristan Gingold <gingold@adacore.com>
805100b5
EB
4271
4272 PR ada/36007
4273 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4274 of aliased objects with an unconstrained nominal subtype.
4275 Cap the promotion to the effective alignment of the word mode.
4276
99c2eec1
RW
42772008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4278
4279 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4280 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4281 Use '&&' instead of ';'.
4282
22a81267
OH
42832008-04-24 Olivier Hainque <hainque@adacore.com>
4284
4285 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4286 doesn't require signed arithmetic anymore.
4287
51eed280
PB
42882008-04-23 Paolo Bonzini <bonzini@gnu.org>
4289
4290 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4291 (call_to_gnu): Don't set TREE_INVARIANT.
4292 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4293
d9126ef8
JS
42942008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
4295
4296 * s-osinte-rtems.adb: Add sigalstack function.
4297 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4298 function. Add Alternate_Stack and Alternate_Stack_Size.
4299 Add missing process_shared field to pthread_condattr_t
4300 and change ss_low_priority to int from timespec.
4301
0a58c87e
ST
43022008-04-22 Samuel Tardieu <sam@rfc1149.net>
4303
4304 * i-forbla.adb: Link against -llapack and -lblas by default
4305 instead of the private -lgnalasup.
4306
009890be
OH
43072008-04-21 Olivier Hainque <hainque@adacore.com>
4308
4309 Access to most C builtins from Ada
4310 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4311 (handle_pure_attribute, handle_novops_attribute,
4312 handle_nonnull_attribute, handle_sentinel_attribute,
4313 handle_noreturn_attribute, handle_malloc_attribute,
4314 handle_type_generic_attribute): New attribute handlers, from C fe.
4315 (gnat_internal_attribute_table): Map the new handlers.
4316 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4317 (init_gigi_decls): ... here.
4318 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4319 Move to a section dedicated to builtins processing.
4320 (build_void_list_node, builtin_type_for_size): New functions.
4321 (def_fn_type, get_nonnull_operand): Likewise.
4322 (install_builtin_elementary_type, install_builtin_function_types,
4323 install_builtin_attributes): Likewise.
4324 (fake_attribute_handler): Fake handler for attributes we don't
4325 support in Ada.
4326 (def_builtin_1): New function, worker for DEF_BUILTIN.
4327 (install_builtin_functions): New function.
4328 (gnat_install_builtins): Move to the builtins processing section.
4329 Now calling the newly introduced installers.
4330
e871a873
EB
43312008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4332
4333 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4334 constant objects, but not exceptions.
4335 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4336 compatibility test.
4337 * utils.c (create_var_decl_1): Likewise.
4338 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4339 the type when copying to padded object and the source is a constructor.
4340
98ae7998
EB
43412008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4342
4343 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4344 alignment, reset it to zero if it would end up not being greater
4345 than that of the type.
4346
3569056b
EB
43472008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4348
4349 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4350 the padded type has a variable size.
4351
9a089d8b
EB
43522008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4353
4354 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4355 target pointer mechanism as soon as the size is not constant.
4356
0cb5c2a7
EB
43572008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4358
4359 * gigi.h (create_var_decl_1): Declare.
4360 (create_var_decl): Turn into a macro invoking create_var_decl_1.
4361 (create_true_var_decl): Likewise.
4362 * utils.c (create_var_decl_1): Make global and reorder parameters.
4363 (create_var_decl): Delete.
4364 (create_true_var_decl): Likewise.
4365
90d6701e
EB
43662008-04-17 Eric Botcazou <ebotcazou@adacore.com>
4367
4368 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4369 objects by default.
4370 * fe.h (Debug_Flag_Dot_A): Delete.
4371 * debug.adb (-gnatd.a): Update documentation.
4372
35485e12
ST
43732008-04-17 Samuel Tardieu <sam@rfc1149.net>
4374
4375 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4376 "not null" parameter.
4377
111c1cd9
ST
43782008-04-17 Samuel Tardieu <sam@rfc1149.net>
4379
4380 * g-socket.adb: Add a message "IPv6 not supported" to the
4381 Socket_Error exception.
4382
35c91e05
ST
43832008-04-16 Samuel Tardieu <sam@rfc1149.net>
4384
4385 PR ada/29015
4386 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4387 the type is known instead of the underlying type.
4388
b48a6531
ST
43892008-04-15 Ed Schonberg <schonberg@adacore.com>
4390
4391 PR ada/22387
4392 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4393 procedure for a derived type retrieve the discriminant values from
4394 the parent using the corresponding discriminant.
4395
462c31ef 43962008-04-15 Samuel Tardieu <sam@rfc1149.net>
9e81dbc7 4397 Gary Dismukes <dismukes@adacore.com>
462c31ef
ST
4398
4399 PR ada/28733
4400 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4401 which is not an entity (and hence not a package).
4402 (End_Use_Package): Ditto.
4403
8abe457a
ST
44042008-04-15 Ed Schonberg <schonberg@adacore.com>
4405
4406 PR ada/16086
4407 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4408 protected operation that matches the signature, not only an entry, a
4409 regular subprogram or a literal.
4410
29f4754f
EB
44112008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4412
4413 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4414 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4415 if a size or alignment is specified. Do not take into account
4416 alignment promotions for the computation of the object's size.
4417 <type>: Call maybe_pad_type only if a size or alignment is specified.
4418 (maybe_pad_type): Really reuse the RM_Size of the original type if
4419 requested.
4420 * trans.c (Attribute_to_gnu): Fix a couple of nits.
4421 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4422 statements. Use the padded view of the type when copying between
4423 padded objects of the same underlying type.
4424
f3d0f304
RW
44252008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4426
4427 * vms_data.ads: Fix typo in constant.
4428 * gen-soccon.c: Fix typo in error string.
4429 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4430 Fix typos.
4431 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4432 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4433 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4434 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4435 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4436 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4437 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4438 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4439 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4440 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4441 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4442 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4443 sinfo.ads: Fix typos in comments.
4444
2efcad9f
RD
44452008-04-14 Robert Dewar <dewar@adacore.com>
4446
4447 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4448 to every non-object and change error message.
4449
8f3723e0
RD
44502008-04-14 Robert Dewar <dewar@adacore.com>
4451
4452 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4453 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4454 directly.
4455
32f7efe1
ST
44562008-04-14 Samuel Tardieu <sam@rfc1149.net>
4457
4458 PR ada/18680
4459 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4460 apply pragma Linker_Section on type.
4461
b039b10e
ST
44622008-04-14 Samuel Tardieu <sam@rfc1149.net>
4463
4464 PR ada/16098
4465 * sem_prag.adb (Error_Pragma_Ref): New.
4466 (Process_Convention): Specialized message for non-local
4467 subprogram renaming. Detect the problem in homonyms as well.
4468
cb572b75
ST
44692008-04-14 Samuel Tardieu <sam@rfc1149.net>
4470
4471 PR ada/15915
4472 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4473 * sem_ch12.adb (Instantiate_Object): Use it.
4474 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4475 storage pool denotes a variable as per RM 13.11(15).
4476
17972da7
ST
44772008-04-14 Samuel Tardieu <sam@rfc1149.net>
4478
4479 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4480 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4481
57f80aa9
RE
44822008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
4483
4484 PR ada/20822
4485 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4486 line endings even on non-Unix platforms.
4487
9ff231e2
ST
44882008-04-14 Samuel Tardieu <sam@rfc1149.net>
4489
4490 PR ada/35050
4491 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4492 renaming information.
4493
9e81dbc7 44942008-04-13 Samuel Tardieu <sam@rfc1149.net>
92d4508a
ST
4495
4496 PR ada/17985
4497 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4498 itself.
4499
12a13f01
RW
45002008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4501
3354f96d
RW
4502 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4503 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4504 snames.ads, sprint.adb, stand.ads, stringt.ads,
4505 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4506 switch.ads, sysdep.c, table.adb, table.ads,
4507 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4508 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4509 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4510 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4511 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4512 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4513 Fix comment typos.
4514
f3d57416
RW
4515 * sem_ch10.adb, sem_ch10.ads,
4516 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4517 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4518 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4519 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4520 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4521 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4522 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4523 sem_warn.ads: Fix comment typos.
4524
12a13f01
RW
4525 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4526 s-soflin.ads, s-stalib.ads, s-stausa.adb,
4527 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4528 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4529 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4530 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4531 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4532 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4533 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4534 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4535 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4536 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4537 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4538 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4539 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4540 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4541 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4542 sem_cat.adb, sem_cat.ads: Fix comment typos.
4543
2b699ab1
JS
45442008-04-12 Joel Sherrill <joel@oarcorp.com>
4545
4546 PR ada/35825
4547 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4548
1e273538
AC
45492008-04-12 Arnaud Charlet <charlet@adacore.com>
4550
4551 * s-linux-hppa.ads: Fix syntax errors.
4552
276e95ca
RW
45532008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4554
4555 * gnat_ugn.texi: Fix typos.
4556 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4557 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4558 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4559 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4560 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4561 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4562 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4563 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4564 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4565 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4566 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4567 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4568 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4569 s-osinte-darwin.ads, s-osinte-freebsd.ads,
4570 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4571 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4572 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4573 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4574 s-parame-hpux.ads, s-parame-vms-alpha.ads,
4575 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4576 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4577 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4578 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4579 s-rident.ads: Fix comment typos.
4580
ce4e59c4
ST
45812008-04-09 Samuel Tardieu <sam@rfc1149.net>
4582
4583 PR ada/28305
4584 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4585 environment if generic instance is a top-level one.
4586
6d21c8af
DR
45872008-04-09 Doug Rupp <rupp@adacore.com>
4588
4589 * decl.c (validate_size): Set minimum size for fat pointers same as
4590 access types. Code clean ups.
4591
4592 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4593 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4594
4595 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4596
4597 * s-crtl.ads (malloc32) New function, alias for malloc
4598 (realloc32) New function, alias for realloc
4599
4600 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4601
4602 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4603 allocator size is 32 and default pointer size is 64.
4604 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4605 lhs type if smaller, whatever the modes.
4606
4607 * gigi.h (malloc32_decl): New macro definition
4608
4609 * utils.c (init_gigi_decls): New malloc32_decl
4610 Various code clean ups.
4611
4612 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4613 Task_Address vice System.Address.
4614
4615 * s-taspri-vms.ads: Import System.Aux_DEC
4616 (Task_Address): New subtype of System.Aux_DEC.Short_Address
4617 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4618
4619 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4620 Task_Address vice System.Address.
4621
4622 * s-inmaop-vms.adb: Import System.Task_Primitives
4623 (To_Address): Unchecked convert to Task_Address vice System.Address
4624
4625 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4626 expires now.
4627 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4628 (To_Address) Unchecked convert to Task_Address vice System.Address
4629
4630 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4631
4632 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4633
581edf92
EB
46342008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4635
4636 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4637 (fdesc_type_node): Define.
4638 (null_fdesc_node): Likewise.
4639 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4640 uses descriptors for vtables and the type comes from a dispatch table,
4641 return the descriptor type.
4642 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4643 uses descriptors for vtables and the type comes from a dispatch table,
4644 build a descriptor in the static case and copy the existing one in the
4645 non-static case.
4646 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4647 the type is a pointer-to-subprogram coming from a dispatch table,
4648 return the null descriptor.
4649 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4650 vtables, the source type is the descriptor type and the target type
4651 is a pointer type, first build the pointer.
4652 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4653 build the descriptor type and the null descriptor.
4654
e1da2b17
EB
46552008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4656
4657 * decl.c (prepend_attributes): Fix typo.
4658 * trans.c (Pragma_to_gnu): Likewise.
4659 * utils.c (gnat_genericize): Likewise.
4660
2b3dffa6 46612008-04-08 Eric Botcazou <ebotcazou@adacore.com>
9e81dbc7 4662 Richard Kenner <kenner@adacore.com>
2b3dffa6
EB
4663
4664 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4665 * decl.c (gnat_to_gnu_entity): Adjust for above change.
4666 <E_Record_Type>: Try to get a better form of the component for
4667 packing, even if it has an integral mode.
4668 <E_Record_Subtype>: Likewise.
4669 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4670 exception suppressing the final conversion between record types.
4671
ba3f46d0
EB
46722008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4673
4674 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
4675 alignment for space, promote the alignment of non-scalar variables with
4676 no size and alignment.
4677 * gigi.h (gnat_types_compatible_p): Declare.
4678 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4679 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
4680 * utils.c (gnat_types_compatible_p) : New predicate.
4681 (convert): Use it throughout to test for cases where a mere view
4682 conversion is sufficient.
4683 * utils2.c (build_binary_op): Minor tweaks.
4684 (build_unary_op): Likewise.
4685
373140ef
EB
46862008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4687
4688 * decl.c (adjust_packed): Expand comment.
4689
ea081ad7
AC
46902008-04-08 Arnaud Charlet <charlet@adacore.com>
4691
4692 * s-tasuti.ads: Use Task_Address instead of System.Address.
4693
4694 * makeutl.adb (Path_Or_File_Name): New function
4695
4696 * nlists.ads, itypes.ads: Update comments.
4697
4698 * s-crtl.ads (malloc32, realloc32): New functions.
4699
4700 * s-auxdec.ads (Short_Address_Size): New constant.
4701
4702 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4703
4704 * s-ststop.ads, s-ststop.adb: New file.
4705
4706 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4707 Minor reformatting.
4708
d563d3f0
AC
47092008-04-08 Pascal Obry <obry@adacore.com>
4710
4711 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4712 (Stop_Bits_Number): New type.
4713 (Parity_Check): Likewise.
4714 (Set): Add parameter to set the number of stop bits and
4715 the parity. Parameter timeout is now a duration instead
4716 of a plain integer.
4717
4718 * g-sercom-linux.adb:
4719 Implement the stop bits and parity support for GNU/Linux.
4720 Fix handling of timeout, it must be given in tenth of seconds.
9e81dbc7 4721
d563d3f0
AC
4722 * g-sercom-mingw.adb:
4723 Implement the stop bits and parity support for Windows.
4724 Use new s-win32.ads unit instead of declaring Win32 services
4725 directly into this body.
4726 Update handling of timeout as now a duration.
4727
4728 * s-win32.ads, s-winext.ads: New files.
4729
47302008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4731 Arnaud Charlet <charlet@adacore.com>
4732
4733 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4734
4735 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4736 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4737
4738 * s-osinte-lynxos-3.ads,
4739 (Alternate_Stack): Remove when not needed. Simplify declaration
4740 otherwise.
4741 (Alternate_Stack_Size): New constant.
4742
4743 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4744 'Unrestricted_Access.
4745
4746 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4747 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4748 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4749 s-osinte-solaris.ads, s-osinte-vms.ads
4750 (SA_ONSTACK): New constant.
4751 (stack_t): New record type.
4752 (sigaltstack): New imported function.
4753 (Alternate_Stack): New imported variable.
4754 (Alternate_Stack_Size): New constant.
4755
4756 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4757
4758 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
ea081ad7
AC
4759 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4760 s-taspri-vms.ads (Task_Address): New subtype of System.Address
d563d3f0
AC
4761 (Task_Address_Size): New constant size of System.Address
4762 (Alternate_Stack_Size): New constant.
4763
4764 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4765 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4766 Establish the alternate stack if the platform makes use of n alternate
4767 signal stack for stack overflows.
4768 (Create_Task): Take into account the alternate stack in the stack size.
4769 (Initialize): Save the address of the alternate stack into the ATCB for
4770 the environment task.
4771 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4772
ea081ad7 4773 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
d563d3f0
AC
4774
4775 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4776
9e81dbc7 4777 * s-intman-posix.adb:
d563d3f0
AC
4778 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4779 alternate signal stack for stack overflows.
4780
4781 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4782 x86-64, adjust the saved value of the stack pointer if the signal was
4783 raised by a stack checking probe.
4784 (HP-UX section): Use global __gnat_alternate_stack as signal handler
4785 stack and only for SIGSEGV.
4786 (Linux section): Likewise on x86 and x86-64.
4787 [VxWorks section]
4788 (__gnat_map_signal): Now static.
4789 (__gnat_error_handler): Not static any more.
4790 (__gnat_adjust_context_for_raise): New function. Signal context
4791 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
4792 propagation circuitry.
4793 (__gnat_error_handler): Second argument of a sigaction handler is a
4794 pointer, not an int, and is unused.
4795 Adjust signal context before mapping to exception.
4796 Install signal handlers for LynxOS case.
4797
4798 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
4799 (Task_Id): Set size to Task_Address_Size
4800 (To_Task_id): Unchecked convert from Task_Address vice System.Address
4801 (To_Address): Unchecked convert to Task_Address vice System.Address
4802
4803 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
4804 address into the ATCB if the platform makes use of an alternate signal
4805 stack for stack overflows.
4806 (Free_Task): Add call to Finalize_Attributes_Link.
4807 Add argument Relative_Deadline to pass the value specified for
4808 the task. This is not yet used for any target.
4809
4810 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
4811 the value specified for the task.
4812
48132008-04-08 Arnaud Charlet <charlet@adacore.com>
4814
4815 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
4816 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
4817 s-vxwext-rtp.adb): New files.
4818
9e81dbc7 4819 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
d563d3f0
AC
4820 Minor updates to accomodate changes above.
4821
48222008-04-08 Pascal Obry <obry@adacore.com>
4823
4824 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
4825 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
4826 Use new s-win32.ads unit instead of declaration
4827 from s-osinte-mingw.ads.
9e81dbc7 4828
d563d3f0
AC
4829 * s-osinte-mingw.ads:
4830 Move all non tasking based interface to s-win32.ads.
9e81dbc7 4831
d563d3f0
AC
4832 * s-osprim-mingw.adb:
4833 Remove duplicated declarations and use s-win32.ads
4834 unit instead.
4835
48362008-04-08 Vincent Celier <celier@adacore.com>
4837 Arnaud Charlet <charlet@adacore.com>
4838
4839 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
4840 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
4841 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
4842 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4843 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
4844
4845 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
4846 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
4847 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
4848 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
4849 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
4850 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
4851 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
4852 mlib-tgt-specific-mingw.adb: New names.
4853
9e81dbc7 4854 * Makefile.in:
d563d3f0
AC
4855 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
4856 Get rid of gnatbl.
4857 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
4858 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
4859 Minor updates for VMS
4860
ea081ad7
AC
4861 * gnatbl.c: Removed.
4862
d563d3f0
AC
48632008-04-08 Thomas Quinot <quinot@adacore.com>
4864
4865 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
4866 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
4867 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
4868 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
4869 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
4870 ASCII.NUL throughout.
4871
48722008-04-08 Arnaud Charlet <charlet@adacore.com>
4873 Matthew Heaney <heaney@adacore.com>
4874
4875 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
4876 renaming.
4877
9e81dbc7 4878 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
d563d3f0
AC
4879 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
4880 to convention for non-RM specs.
4881 Add descriptive header, and documented each operation
4882 document each operation
4883
48842008-04-08 Robert Dewar <dewar@adacore.com>
4885 Bob Duff <duff@adacore.com>
4886 Gary Dismukes <dismukes@adacore.com>
4887 Ed Schonberg <schonberg@adacore.com>
4888
4889 * alloc.ads: Add entries for Obsolescent_Warnings table
4890
4891 * einfo.ads, einfo.adb: Minor reformatting.
4892 (Is_Discriminal): New subprogram.
4893 (Is_Prival): New subprogram.
4894 (Is_Protected_Component): New subprogram.
4895 (Is_Protected_Private): Removed.
4896 (Object_Ref, Set_Object_Ref): Removed.
4897 (Prival, Set_Prival): Change assertion.
4898 (Privals_Chain, Set_Privals_Chain): Removed.
4899 (Prival_Link, Set_Prival_Link): New subprogram.
4900 (Protected_Operation, Set_Protected_Operation): Removed.
4901 (Protection_Object, Set_Protection_Object): New subprogram.
4902 (Write_Field17_Name): Remove case for Object_Ref.
4903 (Write_Field20_Name): Add case for Prival_Link.
4904 (Write_Field22_Name): Remove case for Protected_Operation,
4905 Privals_Chain.
4906 Add case for Protection_Object.
4907 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
4908 so clients
4909 (Overlays_Constant): New flag
4910 (Is_Constant_Object): New predicate
4911 (Is_Standard_Character_Type): New predicate
4912 (Optimize_Alignment_Space): New flag
4913 (Optimize_Alignment_Time): New flag
4914 (Has_Postconditions): New flag
4915 (Obsolescent_Warrning): Field removed
4916 (Spec_PPC_List): New field
4917 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
4918 subprograms to get and set the relative deadline associated to a task.
4919
4920 * exp_attr.adb (May_Be_External_Call): Account for the case where the
4921 Access attribute is part of a named parameter association.
4922 (Expand_Access_To_Protected_Op): Test for the attribute occurring
4923 within an init proc and use that directly as the scope rather than
4924 traversing up to the protected operation's enclosing scope. Only apply
4925 assertion on Is_Open_Scopes in the case the scope traversal is done.
4926 For the init proc case use the address of the first formal (_init) as
4927 the protected object reference.
4928 Implement Invalid_Value attribute
4929 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
4930 contents of the dispatch table there is no need to duplicate the
4931 itypes associated with record types (i.e. the implicit full view
4932 of private types).
4933 Implement Enum_Val attribute
4934 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
4935 within _Postconditions procedure
4936 (Expand_N_Attribute_Reference, case Result): Implement new attribute
4937
4938 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
4939 a return statement calls a function that is not available in
4940 configurable runtime.
4941 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
4942 (Expand_Non_Function_Return): Generate call to _Postconditions proc
4943 (Expand_Simple_Function_Return): Ditto
4944
4945 * frontend.adb: Add call to Sem_Aux.Initialize
4946
4947 * sem_aux.ads, sem_aux.adb: New file.
4948
4949 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
4950 Add new Pragma_Relative_Deadline.
4951 Add support for pragmas Check and Check_Policy
4952
4953 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
4954 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
4955 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
4956 missing check because they are not allowed in CPP tagged types.
4957 Add Sure parameter to Note_Possible_Modification calls
4958 Add implementation of Invalid_Value attribute
4959 Implement new attribute Has_Tagged_Values
4960 Implement Enum_Val attribute
4961 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
4962 generated attributes.
4963 (Analyze_Attribute, case Result): If prefix of the attribute is
4964 overloaded, it always resolves to the enclosing function.
4965 (Analyze_Attribute, case Result): Properly deal with analysis when
4966 Postconditions are not active.
4967 (Resolve_Attribute, case Result): Properly deal with appearence during
4968 preanalysis in spec.
4969 Add processing for attribute Result
4970
4971 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
4972 for operators.
4973 (Analyze_Subprogram_Body): Install private_with_clauses when the body
4974 acts as a spec.
4975 (Check_Inline_Pragma): recognize an inline pragma that appears within
4976 the subprogram body to which it applies.
4977 (Analyze_Function_Return): Check that type of the expression of a return
4978 statement in a function with a class-wide result is not declared at a
4979 deeper level than the function.
4980 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
4981 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
4982 user- defined operators.
4983 (Install_Formals): Moved to spec to allow use from Sem_Prag for
4984 analysis of precondition/postcondition pragmas.
4985 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
4986 Last_Formal, along with lots of comments on what this is about
4987 (Analyze_Subprogram_Body): Fix case where we move entities from the
4988 spec to the body when there are no body entities (now possible with
4989 precondition and postcondition pragmas).
4990 (Process_PPCs): New procedure
4991 (Analyze_Subprogram_Body): Add call to Process_PPCs
4992
4993 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
4994 clause.
4995 (Pop_Scope): Restore Check_Policy_List on scope exit
4996 (Push_Scope): Save Check_Policy_List on scope entry
4997 Change name In_Default_Expression => In_Spec_Expression
4998 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
4999 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5000 (Analyze_Object_Renaming): Allow 'Reference as object
5001 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5002 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5003 of restriction identifier.
5004 Add Sure parameter to Note_Possible_Modication calls
5005
5006 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5007 Don't check for primitive operations when calling Rep_Item_Too_Late.
5008 (Process_Import_Or_Interface): Do not place flag on formal
5009 subprograms.
5010 (Analyze_Pragma, case Export): If the entity is a deferred constant,
5011 propagate information to full view, which is the one elaborated by the
5012 back-end.
5013 (Make_Inline): the pragma is effective if it applies to an internally
5014 generated subprogram declaration for a body that carries the pragma.
5015 (Analyze_Pragma, case Optimize_Alignment): Set new flag
5016 Optimize_Alignment_Local.
5017 (Analyze_PPC_In_Decl_Part): New procedure
5018 (Get_Pragma_Arg): Moved to outer level
5019 (Check_Precondition_Postcondition): Change to allow new visibility
5020 rules for package spec
5021 (Analyze_Pragma, case Check_Policy): Change placement rules to be
5022 same as pragma Suppress/Unsuppress.
5023 Change name In_Default_Expression => In_Spec_Expression
5024 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5025 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5026 (Check_Precondition_Postcondition): Do proper visibility preanalysis
5027 for the case of these pragmas appearing in the spec.
5028 (Check_Enabled): New function
5029 (Initialize): New procedure
5030 (Tree_Read): New procedure
5031 (Tree_Write): New procedure
5032 (Check_Precondition_Postcondition): New procedure
5033 Implement pragmas Check and Check_Policy
5034 Merge Assert processing with Check
5035
5036 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5037 New warning flag -gnatw.e
5038
5039 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5040 returning whether a task (or main procedure) has a pragma
5041 Relative_Deadline.
5042 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5043 (or main procedure) has a pragma Relative_Deadline.
5044 Add Next_Pragma field to N_Pragma node
5045 (PPC_Enabled): New flag
5046 (Next_Pragma): Now used for Pre/Postcondition processing
5047
5048 * snames.h, snames.ads, snames.adb: New standard name
5049 Inherit_Source_Path
5050 Add entry for 'Invalid_Value attribute
5051 Add entry for new attribute Has_Tagged_Values
5052 Add entry for Enum_Val attribute
5053 Add new standard names Aggregate, Configuration and Library.
5054 Add _Postconditions
5055 Add _Result
5056 Add Pragma_Precondition
5057 Add Pragma_Postcondition
5058 Add Attribute_Result
5059 New standard name Archive_Builder_Append_Option
5060 (Preset_Names): Add _relative_deadline and relative_deadline definitions
5061 There was also a missing non_preemptive_within_priorities.
5062 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5063 Relative_Deadline.
5064 Add support for pragmas Check and Check_Policy
5065
5066 * tree_gen.adb: Call Sem_Aux.Tree_Write
5067
5068 * tree_in.adb: Call Sem_Aux.Tree_Read
5069
5070 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5071 sequence
5072
5073 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5074 sequence
5075
5076 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5077 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5078 Relative_Deadline.
5079 (Expand_Pragma_Check): New procedure
5080
5081 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5082 buffer.
5083
5084 * sinfo.adb (PPC_Enabled): New flag
5085
50862008-04-08 Robert Dewar <dewar@adacore.com>
5087 Gary Dismukes <dismukes@adacore.com>
5088 Javier Miranda <miranda@adacore.com>
5089 Ed Schonberg <schonberg@adacore.com>
5090
5091 * fe.h: Remove global Optimize_Alignment flag, no longer used
5092
5093 * layout.adb: Test Optimize_Alignment flags rather than global switch
5094
5095 * lib.ads, lib.adb: New OA_Setting field in library record
5096
5097 * lib-load.adb: New OA_Setting field in library record
5098
5099 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5100 units mentioned in limited_with_ clauses in the ali file, with an
5101 'Y' marker.
5102 New Ox fields in U line
5103
5104 * opt.adb: New flag Optimize_Alignment_Local
5105 (Check_Policy_List[_Config]): New flags
5106
5107 * opt.ads (Invalid_Value_Used): New flag
5108 New switch Optimize_Alignment_Local
5109 (Warn_On_Parameter_Order): New flag
5110 (Check_Policy_List[_Config]): New flags
5111
5112 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5113 limited_with clauses.
5114 New data structures for Optimize_Alignment
5115
5116 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5117 New procedure
5118 (Check_Consistent_Optimize_Alignment): Rework for new structure
5119 (Check_Consistent_Restrictions): Fix incorrect error message
5120
5121 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5122 created class-wide type (to the Parent field of the specific type).
5123 (Install_Siblings): Handle properly private_with_clauses on subprogram
5124 bodies and on generic units.
5125 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5126 illegal limited_with_clause that names a non-existent package.
5127 (Check_Body_Required): Determine whether a unit named a limited_with
5128 clause needs a body.
5129 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5130 Capture Optimize_Alignment settings to set new OA_Setting field in
5131 library record.
5132 (Build_Limited_Views): Include task and protected type declarations.
5133
5134 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5135 case of a possible constant redeclaration where the current object is
5136 an entry index constant.
5137 (Analyze_Object_Declaration): Generate an error in case of CPP
5138 class-wide object initialization.
5139 (Analyze_Object_Declaration): Add extra information on warnings for
5140 declaration of unconstrained objects.
5141 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5142 conflicts with the setting of Stored_Constraint in the case where the
5143 access type entity has already been created as an E_Incomplete_Type due
5144 to a limited with clause.
5145 Use new Is_Standard_Character_Type predicate
5146 (Analyze_Object_Declaration): Apply access_constant check only after
5147 expression has been resolved, given that it may be overloaded with
5148 several access types.
5149 (Constant_Redeclaration): Additional legality checks for deferred
5150 constant declarations tha involve anonymous access types and/or null
5151 exclusion indicators.
5152 (Analyze_Type_Declaration): Set Optimize_Alignment flags
5153 (Analyze_Subtype_Declaration): Ditto
5154 (Analyze_Object_Declaration): Ditto
5155 (Analyze_Object_Declaration): Don't count tasks in generics
5156 Change name In_Default_Expression => In_Spec_Expression
5157 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5158 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5159 (Process_Discriminants): Additional check for illegal use of default
5160 expressions in access discriminant specifications in a type that is not
5161 explicitly limited.
5162 (Check_Abstract_Overriding): If an inherited function dispaches on an
5163 access result, it must be overridden, even if the type is a null
5164 extension.
5165 (Derive_Subprogram): The formals of the derived subprogram have the
5166 names and defaults of the parent subprogram, even if the type is
5167 obtained from the actual subprogram.
5168 (Derive_Subprogram): In the presence of interfaces, a formal of an
5169 inherited operation has the derived type not only if it descends from
5170 the type of the formal of the parent operation, but also if it
5171 implements it. This is relevant for the renamings created for the
5172 primitive operations of the actual for a formal derived type.
5173 (Is_Progenitor): New predicate, to determine whether the type of a
5174 formal in the parent operation must be replaced by the derived type.
5175
5176 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5177 predicate recursive to handle components that have a user-defined
5178 Initialize procedure. Handle controlled derived types whose ancestor
5179 has a user-defined Initialize procedured.
5180 (Note_Possible_Modification): Add Sure parameter, generate warning if
5181 sure modification of constant
5182 Use new Is_Standard_Character_Type predicate
5183 (Find_Parameter_Type): when determining whether a protected operation
5184 implements an interface operation, retrieve the type of the formal from
5185 the entity when the formal is an access parameter or an
5186 anonymous-access-to-subprogram.
5187 Move Copy_Parameter_List to sem_util, for use when building stubbed
5188 subprogram bodies.
5189 (Has_Access_Values): Tagged types now return False
5190 (Within_HSS_Or_If): New procedure
5191 (Set_Optimize_Alignment_Flags): New procedure
5192 Change name In_Default_Expression => In_Spec_Expression
5193 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5194 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5195
51962008-04-08 Tristan Gingold <gingold@adacore.com>
5197
5198 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5199
52002008-04-08 Tristan Gingold <gingold@adacore.com>
5201
5202PR ada/10768
5203
5204 * cuintp.c: Fix 16 bits issue for AVR.
5205 On AVR, integer is 16 bits, so it can't be used to do math with
5206 Base (=32768).
5207 So use long_integer instead.
5208
52092008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5210
5211 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5212 System.OS_Primitives.
5213 Change type of various constants, parameters and local variables from
5214 Time to representation type OS_Time.
5215 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5216 Remove the declaration of constant Mili_F from several routines. New
5217 body for internal package Conversions_Operations.
5218 (Time_Of): Add default parameters for several formals.
5219
5220 * a-caldel.adb: Minor reformatting
5221
5222 * a-calend.ads, a-calend.adb: New body for internal package
5223 Conversions_Operations.
5224 (Time_Of): Add default parameters for several formals.
5225
5226 * Makefile.rtl: Add a-ststop
5227 Add Ada.Calendar.Conversions to the list of runtime files.
5228 Add g-timsta
5229
5230 * a-calcon.adb, a-calcon.ads: New files.
5231
52322008-04-08 Jose Ruiz <ruiz@adacore.com>
5233 Tristan Gingold <gingold@adacore.com>
5234
5235 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5236 (Install_Restricted_Handlers): New procedure
5237 which is a simplified version of Install_Handlers that does not store
5238 previously installed.
5239
5240 * s-interr-vxworks.adb: Fix ACATS cxc3001
5241 On VxWorks interrupts can't be detached.
5242 (Install_Restricted_Handlers): New procedure.
5243
5244 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5245 procedure.
5246
52472008-04-08 Olivier Hainque <hainque@adacore.com>
5248
5249 * s-intman-vxworks.ads, s-intman-vxworks.adb
5250 (Map_And_Raise_Exception): Remove. Was an import of only part of the
5251 required services already implemented elsewhere.
5252 (Notify_Exception): Delete body, import __gnat_error_handler instead.
5253 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5254 argument passed to the handler, which we need for ZCX propagation
5255 purposes.
5256
52572008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5258
5259 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5260
5261 * g-timsta.adb, g-timsta.ads: New files.
5262
52632008-04-08 Robert Dewar <dewar@adacore.com>
5264
5265 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5266 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5267 (Raise_Exception_Always): Fix documentation accordingly
5268
52692008-04-08 Robert Dewar <dewar@adacore.com>
5270
5271 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5272 Stream_Convert)
5273
5274 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5275 FOnly
5276
52772008-04-08 Javier Miranda <miranda@adacore.com>
5278 Robert Dewar <dewar@adacore.com>
5279 Ed Schonberg <schonberg@adacore.com>
5280
5281 * a-tags.adb (Register_Interface_Offset): New subprogram.
5282 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5283 (To_Predef_Prims_Table_Ptr): Removed.
5284 (Acc_Size): Removed.
5285 (To_Acc_Size): Removed.
5286 (Parent_Size): Modified to the call the subprogram returning the size of
5287 the parent by means of the new TSD component Size_Func.
5288
5289 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5290 (DT_Offset_To_Top_Offset): New constant value that is used to generate
5291 code referencing the Offset_To_Top component of the dispatch table's
5292 prologue.
5293 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5294 use of 'address to initialize dispatch table slots.
5295 (Size_Func): New component of the TSD. Used by the run-time to call the
5296 size primitive of the tagged type.
5297
5298 * checks.adb (Apply_Access_Check): Avoid check when accessing the
5299 Offset_To_Top component of a dispatch table.
5300 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5301 deferred constant declaration. do not add a null expression, to prevent
5302 spurious errors when full declaration is analyzed.
5303 (Apply_Discriminant_Check): If both discriminant constraints share a
5304 node which is not static but has no side effects, do not generate a
5305 check for that discriminant.
5306 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5307 subexpr, since the prefix of an attribute is a name.
5308
5309 * checks.ads: Fix nit in comment.
5310
5311 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5312 and body of predefined primitives in case of CPP tagged type
5313 derivations.
5314 (Freeze_Type): Deal properly with no storage pool case
5315 (Make_Predefined_Primitive_Specs): Generate specification of abstract
5316 primitive Deep_Adjust if a nonlimited interface is derived from a
5317 limited interface.
5318 (Build_Dcheck_Functions): Create discriminant-checking functions only
5319 for variants that have some component(s).
5320 (Build_Slice_Assignment): In expanded code for slice assignment, handle
5321 properly the case where the slice bounds extend to the last value of the
5322 underlying representation.
5323 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5324 (Is_Variable_Size_Record): An array component has a static size if
5325 index bounds are enumeration literals.
5326
5327 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5328 an external tag has been specified for the type.
5329 (Building_Static_DT): Add missing support for private types.
5330 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5331 to the entity associated with the parent of Typ. This is done to
5332 avoid wrong access when the parent is a private type.
5333 (Expand_Interface_Conversion): Improve error message when the
5334 configurable runtime has no support for dynamic interface conversion.
5335 (Expand_Interface_Thunk): Add missing support to interface types in
5336 configurable runtime.
5337 (Expand_Dispatching_Call): remove obsolete code.
5338 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5339 ensure that all subtypes and aggregates associated with dispatch
5340 tables have the attribute Is_Dispatch_Table_Entity set to true.
5341 (Register_Primitive): Rename one variable to improve code reading.
5342 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5343 of the pointer to the 'size primitive in the TSD.
5344
5345 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5346 (RE_Offset_To_Top_Ptr): New entity.
5347 (RE_Register_Interface_Offset): New entity.
5348 (RE_Set_Dynamic_Offset_To_Top): New entity.
5349 (RE_Set_Offset_To_Top): Removed entity.
5350 (RE_Prim_Ptr): New entity
5351 (RE_Size_Func): New entity
5352 (RE_Size_Ptr): New entity
5353 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5354 (Ada_Dispatching_Child): Define this new subrange.
5355 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5356 RE_Time_Span, and RE_Time_Span_Zero).
5357 (RE_Unit_Table): Add new required run-time calls
5358
5359 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5360 children.
5361
5362 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5363 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5364 initializes the Offset_To_Top component of a dispatch table.
5365 (Build_Predef_Prims): Removed.
5366 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5367 its actual code.
5368 (Build_Set_Size_Function): New subprogram.
5369
5370 * exp_ch13.adb: Do not generate storage variable for storage_size zero
5371 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5372
53732008-04-08 Robert Dewar <dewar@adacore.com>
5374
5375 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5376 computing Fore when Exp > 0
5377
53782008-04-08 Robert Dewar <dewar@adacore.com>
5379
5380 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5381
5382 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5383 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5384
5385 * fmap.adb: Remove Big_String declarations (now in Types)
5386 (No_Mapping_File): New Boolean global variable
5387 (Initialize): When mapping file cannot be read, set No_Mapping_File to
5388 False.
5389 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5390 tables were empty before adding entries, open the mapping file
5391 with Truncate = True, instead of delete/re-create.
5392
5393 * fname-sf.adb: Remove Big_String declarations (now in Types)
5394
5395 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
9e81dbc7 5396 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
d563d3f0
AC
5397 big pointer types
5398
5399 * table.ads: Add for Table_Ptr'Storage_Size use 0
5400
5401 * types.ads: Add Big_String declarations
5402 Add Size_Clause of zero for big pointer types
5403
54042008-04-08 Vincent Celier <celier@adacore.com>
5405
5406 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5407 (Usage): Add line for switch --subdirs=
5408 Add new switch -eL, to follow symbolic links when processing project
5409 files.
5410
5411 * gnatcmd.adb: Process switches -eL and --subdirs=
5412 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5413 Program_Name to get proper tool names when AAMP_On_Target is set.
5414 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5415 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5416 Osint.Program_Name).
5417
5418 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5419 (Usage): Add lines for switches -eL and --subdirs=
5420
5421 * makeusg.adb: Add line for switch --subdirs=
5422
9e81dbc7 5423 * prj.ads:
d563d3f0
AC
5424 (Source_Data): New Boolean component Compiled, defaulted to True
5425 (Empty_File_Name: New global variable in private part, initialized in
5426 procedure Initialize.
5427 (Subdirs_Option): New constant string
5428 (Subdirs): New String_Ptr global variable
5429 (Language_Config): New component Include_Compatible_Languages
5430 (Project_Qualifier): New type for project qualifiers
5431 (Project_Data): New component Qualifier
5432 (Project_Configuration): New component Archive_Builder_Append_Option
5433
5434 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5435 another imported project indicate the name of this imported project.
5436 (Check_File): When a unit is in two project files, indicate the project
5437 names and the paths of the source files for each project.
5438 (Add_Source): Set Compiled to False if compiler driver is empty. Only
5439 set object, dependency and switches file names if Compiled is True.
5440 (Process_Compiler): Allow the empty string for value of attribute Driver
5441 (Get_Directories): When Subdirs is not null and Object_Dir is not
5442 specified, locate and create if necessary the actual object dir.
5443 (Locate_Directory): When Subdirs is not empty and Create is not the
5444 empty string, locate and create if necessary the actual directory
5445 as a subdirectory of directory Name.
5446 (Check_Library_Attributes.Check_Library): Allow a project where the only
5447 "sources" are header files of file based languages to be imported by
5448 library projects, in multi-language mode (gprbuild).
5449 (Check_Library_Attributes.Check_Library): In multi-language mode
5450 (gprbuild), allow a library project to import a project with no
5451 sources, even when this is not declared explicitly.
5452 (Check_If_Externally_Built): A virtual project extending an externally
5453 built project is also externally built.
5454 (Check_Library_Attributes): For a virtual project extending a library
5455 project, inherit the library directory.
5456 (Process_Project_Level_Array_Attributes): Process new attribute
5457 Inherit_Source_Path.
5458 For projects with specified qualifiers "standard", "library" or
5459 "abstract", check that the project conforms to the qualifier.
5460 (Process_Project_Level_Simple_Attributes): Process new attribute
5461 Archive_Builder_Append_Option.
5462
5463 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5464 (Normalize_Compiler_Switches): Only keep compiler switches that are
5465 passed to gnat1 by the gcc driver and that are stored in the ALI file
5466 by gnat1.
5467 Do not take into account switc -save-temps
5468
5469 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5470 gprmake is called with -eL.
5471 (Scan_Arg): Recognize switch -eL
5472 (Usage): Add line for switch -eL
5473
5474 * prj.adb (Initialize): Initialize Empty_File_Name
5475 (Project_Empty): New component Qualifier
5476
5477 * prj-attr.ads, prj-attr.adb: New project level attribute
5478 Inherit_Source_Path.
5479 New project level attribute Archive_Builder_Append_Option
5480
5481 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5482
5483 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5484 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5485 upward compatibility.
5486
5487 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5488 each Trying ..." on different lines.
5489 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5490 is "configuration" when not in configuration. Fail when in configuration
5491 when a specified qualifier is other than "configuration".
5492
5493 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5494 full associative array together.
5495 (Recursive_Process): Put the project qualifier in the project data
9e81dbc7 5496
d563d3f0
AC
5497 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5498 (Set_Project_Qualifier_Of): New procedure
5499
55002008-04-08 Robert Dewar <dewar@adacore.com>
5501
5502 * errout.ads: Update comments for new handling of info: messages
5503
5504 * erroutc.adb (Matches): New procedure
5505 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5506 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5507 info messages as well as style messages.
5508
5509 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5510
5511 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5512 subprograms.
5513 (Check_A_Call): Special "info: " warnings now have ? in the text
5514 (Elab_Warning): Use info message in static case
5515
55162008-04-08 Ed Schonberg <schonberg@adacore.com>
5517
5518 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5519 whether an array aggregate with static bounds and scalar components
5520 should be expanded into a static constant.
5521
55222008-04-08 Gary Dismukes <dismukes@adacore.com>
5523 Ed Schonberg <schonberg@adacore.com>
5524 Robert Dewar <dewar@adacore.com>
5525
5526 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5527 Has_Stream_Attribute_ Definition when checking for available stream
5528 attributes on parameters of a limited type in Ada 2005. Necessary for
5529 proper recognition of visible stream attribute clauses.
5530 (Has_Stream_Attribute_Definition): If the type is derived from a
5531 private type, then use the derived type's underlying type for checking
5532 whether it has stream attributes.
5533 (Validate_Object_Declaration): The check for a user-defined Initialize
5534 procedure applies also to types with controlled components or a
5535 controlled ancestor.
5536 Reject an object declaration in a preelaborated unit if the type is a
5537 controlled type with an overriding Initialize procedure.
5538 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5539 checking when the parent of a dereference is a selected component and
5540 the name has not been analyzed.
5541
5542 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5543 prefixes that are invalid explicit dereferences of remote
5544 access-to-class-wide values, first checking whether the selected
5545 component is a prefixed form of call to a tagged operation.
5546 (Analyze_Call): Remove code that issues an error for limited function
5547 calls in illegal contexts, as we now support all of the contexts that
5548 were forbidden here.
5549 Allow a function call that returns a task.and appears as the
5550 prefix of a selected component.
5551 (Analyze_Reference): Give error message if we try to make a 'Reference
5552 for an object that is atomic/aliased without its type having the
5553 corresponding attribute.
5554 (Analyze_Call): Remove condition checking for attributes to allow
5555 calls to functions with inherently limited results as prefixes of
5556 attributes. Remove related comment about Class attributes.
5557 (Analyze_Selected_Component): If the prefix is a remote type, check
5558 whether this is a prefixed call before reporting an error.
5559 (Complete_Object_Operation): If the controlling formal is an access to
5560 variable reject an actual that is a constant or an access to one.
5561 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5562 primitive operations from base type.
5563
5564 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5565 build-in-place
5566 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5567 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5568 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5569 (Expand_N_Slice): Test for prefix that is a build-in-place function call
5570 and call Make_Build_In_Place_Call_In_Anonymous_Context.
5571 (Analyze_Call): Remove code that issues an error for limited function
5572 calls in illegal contexts, as we now support all of the contexts that
5573 were forbidden here.
5574 New calling sequence for Get_Simple_Init_Val
5575 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5576 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5577
55782008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5579 Ed Schonberg <schonberg@adacore.com>
5580 Robert Dewar <dewar@adacore.com>
5581
5582 * exp_ch2.adb: Minor reformatting.
5583 (Expand_Entry_Index_Parameter): Set the type of the identifier.
5584 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5585 (Expand_Protected_Component): New routine.
5586 (Expand_Protected_Private): Removed.
5587 Add Sure parameter to Note_Possible_Modification calls
5588
5589 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5590 generated subprogram declaration must inherit the overriding indicator
5591 from the instantiation node.
5592 (Validate_Access_Type_Instance): If the designated type of the actual is
5593 a limited view, use the available view in all cases, not only if the
5594 type is an incomplete type.
5595 (Instantiate_Object): Actual is illegal if the formal is null-excluding
5596 and the actual subtype does not exclude null.
5597 (Process_Default): Handle properly abstract formal subprograms.
5598 (Check_Formal_Package_Instance): Handle properly defaulted formal
5599 subprograms in a partially parameterized formal package.
5600 Add Sure parameter to Note_Possible_Modification calls
5601 (Validate_Derived_Type_Instance): if the formal is non-limited, the
5602 actual cannot be limited.
5603 (Collect_Previous_Instances): Generate instance bodies for subprograms
5604 as well.
5605
5606 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5607 try to set RM_Size.
5608 Add Sure parameter to Note_Possible_Modification calls
5609 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5610 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5611 constant overlaid by variable and issue warning.
5612 Use new Is_Standard_Character_Type predicate
5613 (Analyze_Record_Representation_Clause): Check that the specified
5614 Last_Bit is not less than First_Bit - 1.
5615 (Analyze_Attribute_Definition_Clause, case Address): Check for
5616 self-referential address clause
5617
5618 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5619 detection mechanism when the lhs is a prival.
5620 (Analyze_Assignment): Call Check_Unprotected_Access to detect
5621 assignment of a pointer to protected data, to an object declared
5622 outside of the protected object.
5623 (Analyze_Loop_Statement): Check for unreachable code after loop
5624 Add Sure parameter to Note_Possible_Modication calls
5625 Protect analysis from previous syntax error such as a scope mismatch
5626 or a missing begin.
5627 (Analyze_Assignment_Statement): The assignment is illegal if the
5628 left-hand is an interface.
5629
ea081ad7
AC
5630 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5631 violation of restriction No_Implicit_Conditionals
d563d3f0
AC
5632 Add Sure parameter to Note_Possible_Modication calls
5633 Use new Is_Standard_Character_Type predicate
5634 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5635 call as operator. Fixes problems (e.g. validity checking) which
5636 come from the result looking as though it does not come from source).
5637 (Resolve_Call): Check case of name in named parameter if style checks
5638 are enabled.
5639 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5640 from the checking that such calls should not occur from an entry body.
5641 (Resolve_Call): If the return type of an Inline_Always function
5642 requires the secondary stack, create a transient scope for the call
5643 if the body of the function is not available for inlining.
5644 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5645 that are actuals for in-out formals.
5646 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5647 primitive operations from base type.
5648 (Analyze_Selected_Component): If the context is a call to a protected
5649 operation the parent may be an indexed component prior to expansion.
5650 (Resolve_Actuals): If an actual is of a protected subtype, use its
5651 base type to determine whether a conversion to the corresponding record
5652 is needed.
5653 (Resolve_Short_Circuit): Handle pragma Check
5654
5655 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5656 Use new Is_Standard_Character_Type predicate
5657 (Eval_Relational_Op): Catch more cases of string comparison
5658
56592008-04-08 Robert Dewar <dewar@adacore.com>
5660 Gary Dismukes <dismukes@adacore.com>
5661
5662 * s-rident.ads: Add No_Default_Initialization restriction
5663
9e81dbc7 5664 * exp_tss.adb:
d563d3f0
AC
5665 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5666 (Set_TSS): Handle No_Default_Initialization case
5667
5668 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5669 No_Default_Initialization
5670 (Expand_N_Subprogram_Body): Remove redundant initialization of out
5671 parameters when Normalize_Scalars is active.
5672 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5673 Fix casing error in formal parameter name in call
5674 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5675 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5676 dispatching call on VM targets.
5677
56782008-04-08 Gary Dismukes <dismukes@adacore.com>
5679 Thomas Quinot <quinot@adacore.com>
5680
5681 * exp_ch7.adb (Find_Final_List): Change the test for generating a
5682 selected component from an access type's Associated_Final_Chain to
5683 check for the presence of that field, rather than assuming it exists
5684 for all named access types.
5685 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5686 procedure to call at the end of the generated cleanup procedure.
5687 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5688 and an At_End_Proc already exists in the handled sequence of statements
5689 for which cleanup actions are being expanded, the original cleanup
5690 action must be preserved.
5691
56922008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5693 Ed Schonberg <schonberg@adacore.com>
5694 Robert Dewar <dewar@adacore.com>
5695 Gary Dismukes <dismukes@adacore.com>
5696
5697 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5698 Build_Unprotected_Subprogram_Body): Generate debug info for
5699 declarations related to the handling of private data in task and
5700 protected types.
5701 (Debug_Private_Data_Declarations): New subprogram.
5702 (Install_Private_Data_Declarations): Remove all debug info flagging.
5703 This is now done by Debug_Private_Data_Declarations at the correct
5704 stage of expansion.
5705 (Build_Simple_Entry_Call): If the task name is a function call, expand
5706 the prefix into an object declaration, and make the surrounding block a
5707 task master.
5708 (Build_Master_Entity): An internal block is a master if it wraps a call.
5709 Code reformatting, update comments. Code clean up.
5710 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5711 (Replicate_Entry_Formals): If the formal is an access parameter or
5712 anonymous access to subprogram, copy the original tree to create new
5713 entities for the formals of the subprogram.
5714 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5715 for tasks to store the value passed using pragma Relative_Deadline.
5716 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5717 run-time call to create a task.
5718 (Build_Wrapper_Spec): If the controlling argument of the interface
5719 operation is an access parameter with a non-null indicator, use the
5720 non-null indicator on the wrapper.
5721
5722 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5723 present, which it may not be in the case where the type entity is an
5724 incomplete view brought in by a limited with.
5725 (Analyze_Task_Type): Only retrieve the full view when present, which it
5726 may not be in the case where the type entity is an incomplete view brought
5727 in by a limited with.
5728 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5729 private components of a protected type, to prevent the generation of freeze
5730 nodes for which there is no proper scope of elaboration.
5731
5732 * exp_util.ads, exp_util.adb
5733 (Remove_Side_Effects): If the expression is a function call that returns a
5734 task, expand into a declaration to invoke the build_in_place machinery.
5735 (Find_Protection_Object): New routine.
5736 (Remove_Side_Effects): Also make a copy of the value
5737 for attributes whose result is of an elementary type.
5738 (Silly_Boolean_Array_Not_Test): New procedure
5739 (Silly_Boolean_Array_Xor_Test): New procedure
5740 (Is_Volatile_Reference): New function
5741 (Remove_Side_Effects): Use Is_Volatile_Reference
5742 (Possible_Bit_Aligned_Component): Handle slice case properly
5743
5744 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5745 case test to Exp_Util
5746 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5747
57482008-04-08 Thomas Quinot <quinot@adacore.com>
5749
5750 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5751 in call
5752 (Add_RACW_Features): When processing an RACW in another unit than the
5753 main unit, set Body_Decls to No_List to indicate that the bodies of
5754 the type's TSS must not be generated.
5755 (GARLIC_Support.Add_RACW_Read_Attribute,
5756 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5757 Body_Decls is No_List.
5758 (PolyORB_Support.Add_RACW_Read_Attribute,
5759 PolyORB_Support.Add_RACW_Write_Attribute,
5760 PolyORB_Support.Add_RACW_From_Any,
5761 PolyORB_Support.Add_RACW_To_Any,
5762 PolyORB_Support.Add_RACW_TypeCode): Same.
5763 (Transmit_As_Unconstrained): New function.
5764 (Build_Ordered_Parameters_List): Use the above to order parameters.
5765 (GARLIC_Support.Build_General_Calling_Stubs):
5766 Use the above to determine which parameters to unmarshall using 'Input
5767 at the point where their temporary is declared (as opposed to later on
5768 with a 'Read call).
5769 (PolyORB_Support.Build_General_Calling_Stubs):
5770 Use the above to determine which parameters to unmarshall using From_Any
5771 at the point where their temporary is declared (as opposed to later on
5772 with an assignment).
5773
57742008-04-08 Ed Schonberg <schonberg@adacore.com>
5775
5776 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5777 an Input function for an access type, do not perform default
5778 initialization on the local variable that receives the value, to
5779 prevent spurious warnings when the type is null-excluding.
5780
57812008-04-08 Robert Dewar <dewar@adacore.com>
5782 Ed Schonberg <schonberg@adacore.com>
5783
5784 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
5785 units.
5786 (Size_Known): Generic formal scalar types have known at compile
5787 time size, so remove check.
5788 Fix casing error in formal parameter name in call
5789 (Freeze_Subprogram): If the subprogram is a user-defined operator,
5790 recheck its overriding indication.
5791
57922008-04-08 Vincent Celier <celier@adacore.com>
5793
5794 * gnat1drv.adb: Send all messages indicating an error to standard error
5795
57962008-04-08 Robert Dewar <dewar@adacore.com>
5797
5798 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
5799 (List_Applicable_Restrictions): Do not list existing restrictions
5800
58012008-04-08 Thomas Quinot <quinot@adacore.com>
5802
5803 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
5804 add a pointer to generic sockets literature
5805 do not mention that the given example is "typical" usage.
5806 Remove obsolete comment about multicast not being supported on Windows.
5807 (Connect_Socket): Make Server mode IN rather than IN OUT
5808 since this formal is never modified.
5809
58102008-04-08 Robert Dewar <dewar@adacore.com>
5811
5812 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
5813 the declaration for some different entity.
5814 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
5815 list is precent (following the parent subtype indication), display
5816 appropriate "and" keyword.
5817
5818 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
5819 Remove unnecessary calls to Init_Size_Align and Init_Esize.
5820 Add notes on use of Parent field of an Itype
5821
58222008-04-08 Ed Schonberg <schonberg@adacore.com>
5823 Robert Dewar <dewar@adacore.com>
5824 Gary Dismukes <dismukes@adacore.com>
5825
5826 * lib-xref.adb (Is_On_LHS): Remove dead code
5827 (Output_Overriden_Op): If the overridden operation is itself inherited,
5828 list the ancestor operation, which is the one whose body or absstract
5829 specification is actually being overridden. For source navigation
5830 purposes.
5831
5832 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
5833 operation is primitive for the type.
5834 (Declare_Inherited_Private_Subprograms): If the new operation overrides
5835 an inherited private subprogram, set properly the Overridden_Operation
5836 attribute, for better cross-reference information.
5837 (Analyze_Package_Specification): Do late analysis of spec PPCs
5838 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
5839 properly the full view and underlying full views of a private type in a
5840 child unit, whose full view is derived from a private type in a parent
5841 unit, and whose own full view becomes visible in the child body.
5842
5843 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
5844 primitive operation after the type has been frozen, add an explicit
5845 reference to the type and the operation, because other primitive
5846 references have been emitted already.
5847 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5848 dispatching call on VM targets.
5849
58502008-04-08 Vincent Celier <celier@adacore.com>
5851 Thomas Quinot <quinot@adacore.com>
5852
5853 * make.adb: (Gnatmake_Called): Remove, no longer necessary
5854 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
5855 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
5856 (Insert_Project_Sources): Take into account index in multi-unit source
5857 files.
5858 After building a library project, delete all temporary files.
5859 (Initialize): Reset current output after parsing project file.
5860 (Collect_Arguments_And_Compile): Never insert in the queue the sources
5861 of library projects that are externally built.
5862 Put file name in error and inform messages if -df is used
5863 (Display): If invoked with -d7, do not display path names, but only
5864 file names.
5865
5866 * makeutl.ads (Path_Or_File_Name): New function
5867 (Path_Or_File_Name): New function
5868
58692008-04-08 Arnaud Charlet <charlet@adacore.com>
5870
5871 * Make-lang.in: Disable warnings during first stage of bootstrap
5872 Get rid of gnatbl.
5873 Update dependencies.
5874
58752008-04-08 Vincent Celier <celier@adacore.com>
5876
5877 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
5878 case to decide if ALI object file is included in library.
5879 (Build_Library): Never attempt to build a library if the project is
5880 externally built.
5881
58822008-04-08 Thomas Quinot <quinot@adacore.com>
5883
5884 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
5885 (No_List) is defined to return Empty.
5886
58872008-04-08 Jose Ruiz <ruiz@adacore.com>
5888
5889 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
5890 documentation.
5891 Update comments.
5892 (Read_Default_Search_Dirs): Do not consider spaces as path separators
5893 because spaces may be part of legal paths.
5894
58952008-04-08 Robert Dewar <dewar@adacore.com>
5896
5897 * par-ch11.adb (P_Exception_Handler): Check indentation level for
5898 handler
5899
59002008-04-08 Ed Schonberg <schonberg@adacore.com>
5901
5902 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
5903 in a type declaration, if this is not an interface declaration or
5904 private type extension.
5905
59062008-04-08 Vincent Celier <celier@adacore.com>
5907
5908 * prj-util.adb (Executable_Of): New String parameter Language. When
5909 Ada_Main is False and Language is not empty, attempt to remove the body
5910 suffix or the spec suffix of the language to get the base of the
5911 executable file name.
5912 (Put): New Boolean parameter Lower_Case, defauilted to False. When
5913 Lower_Case is True, put the value in lower case in the name list.
5914 (Executable_Of): If there is no executable suffix in the configuration,
5915 then do not modify Executable_Extension_On_Target.
5916
5917 * prj-util.ads (Executable_Of): New String parameter Language,
5918 defaulted to the empty string.
5919 (Put): New Boolean parameter Lower_Case, defauilted to False
5920
59212008-04-08 Robert Dewar <dewar@adacore.com>
5922
5923 * scng.adb (Scan_Identifier): Handle case of identifier starting with
5924 wide character using UTF-8 encoding.
5925
59262008-04-08 Javier Miranda <miranda@adacore.com>
5927
5928 * sem.adb (Analyze): Consider case in which we analyze an empty node
5929 that was generated by a call to a runtime function that is not
5930 available under the configurable runtime.
5931
5932 * sem.ads (Inside_Freezing_Actions): New flag.
5933 (Save_Check_Policy_List): New field in scope stack entry
5934
59352008-04-08 Ed Schonberg <schonberg@adacore.com>
5936 Robert Dewar <dewar@adacore.com>
5937
5938 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
5939 the ancestor part of an extension aggregate for a limited type.
5940 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
5941 enumeration index bounds.
5942 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
5943 when array is too short.
5944 (Check_Expr_OK_In_Limited_Aggregate): Move function
5945 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
5946 change name).
5947 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
5948 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
5949 component associations.
5950 (Check_Non_Limited_Type): Moved to outer level and renamed.
5951 (Resolve_Record_Aggregate): In an extension aggregate, an association
5952 with a box initialization can only designate a component of the
5953 extension, not a component inherited from the given ancestor
5954
5955 * sem_case.adb: Use new Is_Standard_Character_Type predicate
5956
59572008-04-08 Robert Dewar <dewar@adacore.com>
5958
5959 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
5960 negative scale
5961 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
5962 Properly handle case where Aft > Scale and input number is less than
5963 one.
5964
59652008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5966
5967 * s-stoele.ads, s-soflin.ads: Move the location of
5968 Dummy_Communication_Block from System.Storage_Elements to
5969 System.Soft_Links.
5970
5971 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
5972 emulate Communication_Block in certain scenarios.
5973
59742008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5975
5976 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
5977 subprogram.
5978 Add new subtype S_WWC, unchecked conversion routines From_WWC and
5979 To_WWC.
5980 (I_WWC, O_WWC): New routines for input and output of
5981 Wide_Wide_Character.
5982
59832008-04-08 Robert Dewar <dewar@adacore.com>
5984
5985 * stringt.adb (Write_String_Table_Entry): Handle wide characters
5986 properly
5987
59882008-04-08 Robert Dewar <dewar@adacore.com>
5989
5990 * styleg.adb (Check_Comment): Allow special char after -- in
5991 non-end-of-line case
5992
59932008-04-08 Robert Dewar <dewar@adacore.com>
5994
5995 * stylesw.adb: Implement -gnaty + - y options
5996 (Set_GNAT_Style_Check_Options): Includ I in style check string
5997
5998 * stylesw.ads: Add comments for new style switch options
5999
60002008-04-08 Sergey Rybin <rybin@adacore.com>
6001
6002 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6003 to the set of the GNAT components needed by ASIS.
6004
60052008-04-08 Bob Duff <duff@adacore.com>
6006
6007 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6008
60092008-04-08 Tristan Gingold <gingold@adacore.com>
6010
6011 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6012 Improve error message generation.
6013
60142008-04-08 Vincent Celier <celier@adacore.com>
6015
6016 * a-direct.adb (Start_Search): Check for Name_Error before checking for
6017 Use_Error, as specified in the RM. Check if directory is open and raise
6018 Use_Error if it is not.
6019
60202008-04-08 Vincent Celier <celier@adacore.com>
6021 Robert Dewar <dewar@adacore.com>
6022
6023 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6024 AAMP_On_Target is set.
6025
6026 * vms_data.ads: Add NOxxx to style check switch list
6027 Add entry COMPONENTS for -gnatVe
6028 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6029 (/SUBDIRS=).
6030 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6031 Add qualifiers for gnatmetric coupling options
6032 Add note that -gnata enables all checks
6033 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6034 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6035 New warning flag -gnatw.e
6036
6037 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6038 Add entry for -gnatyN (forgotten before)
6039 Line for new warning switch -gnatw.p
6040 New warning flag -gnatw.e
6041
6042 * gnat_ugn.texi: Add documentation fpr project file switch -aP
6043 Document -gnaty - + y
6044 Replace occurences of "package specification" with "package spec"
6045 Define preprocessing symbols in documentation of gnatprep
6046 Clarify reason for distinguishing overflow checking
6047 Add documentation for project-aware tool switches -eL and --subdirs=
6048 Complete list of configuration pragmas
6049 Specify that, even when gnatmake switch -x is used, mains on the command
6050 line need to be sources of project files.
6051 Editing of gnatcheck/gnatmetric doc.
6052 Add documentation for -gnatw.p/-gnatw.P
6053 Add missing documentation for -fno-inline-functions.
6054 Add documentation for -gnatw.e
6055
6056 * gnat_rm.texi: Add documentation for No_Default_Initialization
6057 Replace occurences of "package specification" with "package spec"
6058 Document use of * in Warnings Off string
6059 Update documentation of alignment/component clauses.
6060 Add documentation for Invalid_Value
6061 Document new consistency rule for Optimize_Alignment
6062 Add documentation for Precondition and Postcondition pragmas
6063 Add documentation for Check and Check_Policy pragmas
6064 Document new Enum_Val attribute
6065 Remove requirement for static string in pragma Assert
6066 Add documentation on GNAT.Time_Stamp
6067
6068 * ug_words: add entry for -gnatVe
6069 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6070 Add entry for -gnatw.e
6071
6072 * debug.adb: Add missing documentation for d.a flag
6073 Document new -gnatd.a switch.
6074 Add documentation for new gnatmake debug switch -df
6075
60762008-04-08 Thomas Quinot <quinot@adacore.com>
6077
6078 * gen-soccon.c: Bump year in copyright notices.
6079
6080 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6081
60822008-04-08 Eric Botcazou <ebotcazou@adacore.com>
6083
6084 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6085 Minor reformatting.
6086
60872008-04-08 Robert Dewar <dewar@adacore.com>
6088 Bob Duff <duff@adacore.com>
6089
6090 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6091 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6092
6093 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6094
6095 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6096
6097 * g-trasym.ads: Minor comment improvements
6098
6099 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6100
6101 * a-sequio.ads, a-direio.ads: improve message for tagged type
6102
6103 * a-strunb.ads: Minor reformatting
6104
6105 * a-tifiio.adb: Minor reformatting
6106
6107 * atree.adb (Fix_Parents): Use clearer names for formals
6108 Cleanup and simplify code
6109 Use named notation in calls
6110
6111 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6112 confusing calls
6113
6114 * uintp.adb: Used named notation for some confusing calls
6115
6116 * bindusg.adb: Minor change in one line of output
6117
6118 * cstand.adb: Minor reformatting of src representation of Standard
6119
6120 * a-assert.ads: Add comment.
6121
6122 * g-decstr.adb: Fix bad indentation
6123
6124 * expander.ads, expander.adb: Code clean up.
6125
6126 * sem_dist.ads: Minor comment improvement
6127
6128 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6129 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6130
6131 * i-cstrin.adb: Fix casing error in formal parameter name in call
6132
61332008-04-08 Ed Schonberg <schonberg@adacore.com>
6134
6135 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6136 mentioned in limited_with_clauses to do create semantic dependencies
6137 even though they appear in the ali file.
6138
61392008-04-08 Emmanuel Briot <briot@adacore.com>
6140
6141 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6142 statement.
6143 (Get_Configuration): New subprogram.
6144
6145 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6146 These optional parameters help preserve the casing of the project's name
6147 when pretty-printing.
6148
61492008-04-08 Jerome Lambourg <lambourg@adacore.com>
6150 Arnaud Charlet <charlet@adacore.com>
6151
6152 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6153 then use __gnat_set_exit_status to report the returned status code.
6154
6155 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6156 messages on .NET, since some constructs of the language are not
6157 properly supported.
6158
6159 * gnatlink.adb (Gnatlink): In case the command line is too long for the
6160 .NET linker, gnatlink now concatenate all .il files and pass this to
6161 ilasm.
6162
d8ec5bf2 61632008-04-07 Aurelien Jarno <aurelien@aurel32.net>
9e81dbc7 6164 Xavier Grave <grave@ipno.in2p3.fr>
d8ec5bf2
AJ
6165
6166 * Makefile.in: Add make ifeq define for mips/mipsel support.
9e81dbc7 6167 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
d8ec5bf2
AJ
6168 system-linux-mips.ads: New files.
6169
7437c8d4
AJ
61702008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6171
9e81dbc7 6172 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
7437c8d4
AJ
6173 detect systems using GNU libc.
6174 * gsocket.h: ditto.
6175 * socket.c: ditto.
6176 * adaint.c: ditto.
6177 * link.c: ditto.
6178
1dab7b35
AJ
61792008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6180
9e81dbc7 6181 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1dab7b35
AJ
6182 constant constant for sysconf call.
6183 (bit_field): New packed boolean type used by cpu_set_t.
6184 (cpu_set_t): New type corresponding to the C type with
6185 the same name. Note that on the Ada side we use a bit
6186 field array for the affinity mask. There is not need
6187 for the C macro for setting individual bit.
6188 (pthread_setaffinity_np): New imported routine.
6189 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6190 on GNU/kFreeBSD.
6191
39fcde8f
EB
61922008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6193
6194 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6195
9dd9bf80
EB
61962008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6197
6198 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6199 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6200 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6201 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6202 Return by Depressed Stack Pointer.
6203
2d091b12
EB
62042008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6205
6206 * decl.c (is_variable_size): Do not unconditionally return false
6207 on non-strict alignment platforms.
6208
1bde5bc4
EB
62092008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6210
6211 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6212 used to process all the variants of the specified type.
6213 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6214 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
6215 (rest_of_type_decl_compilation): Likewise.
6216 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6217
9ff420f1
PB
62182008-04-03 Paolo Bonzini <bonzini@gnu.org>
6219
1bde5bc4
EB
6220 * gigi.h (insert_block): Kill.
6221 * utils.c (insert_block): Kill.
9ff420f1 6222
bf1e48d1
EB
62232008-04-02 Eric Botcazou <ebotcazou@adacore.com>
6224
6225 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6226 type has self-referential size, get the size from the initializing
6227 expression directly if it is also a constant whose nominal type
6228 has self-referential size.
6229
a6a0635e
JDA
62302008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6231
51e5c7b5
JDA
6232 PR ada/33688
6233 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6234
a6a0635e
JDA
6235 PR ada/33857
6236 * env.c: Always include crt_externs.h if __APPLE__ is defined.
6237 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6238
4d22f5b1
AJ
62392008-04-01 Andreas Jaeger <aj@suse.de>
6240
6241 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6242 IP_PKTINFO.
6243
dec55d76
RW
62442008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6245
6246 * g-table.adb, g-tasloc.adb, g-traceb.ads,
6247 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6248 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6249 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6250 gnatlink.adb, gnatmem.adb, gprep.adb,
6251 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6252 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6253 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6254 lib-xref.ads, lib.adb, link.c, live.ads,
6255 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6256 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6257 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6258 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6259 namet.adb, namet.h, nlists.adb, nlists.ads,
6260 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6261 osint-c.ads, osint.adb, osint.ads, output.ads,
6262 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6263 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6264 par-endh.adb, par-labl.adb, par-prag.adb,
6265 par-sync.adb, par-tchk.adb, par-util.adb,
6266 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6267 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6268 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6269 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6270
5a864002
EB
62712008-03-31 Eric Botcazou <ebotcazou@adacore.com>
6272
6273 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6274 size if it has overflowed.
6275
2566855a 62762008-03-31 Olivier Hainque <hainque@adacore.com>
9e81dbc7 6277 Eric Botcazou <ebotcazou@adacore.com>
2566855a
OH
6278
6279 * utils2.c (find_common_type): Document assumption on t1/t2 vs
6280 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6281
e14c931f
RW
62822008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6283
6284 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6285 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6286 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6287 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6288 exp_tss.ads, exp_util.adb, exp_util.ads,
6289 exp_vfpt.adb, freeze.adb, freeze.ads,
6290 frontend.adb, g-alleve.adb, g-altcon.adb,
6291 g-altive.ads, g-alveop.ads, g-alvevi.ads,
6292 g-arrspl.adb, g-busorg.ads, g-calend.adb,
6293 g-calend.ads, g-casuti.ads, g-cgideb.adb,
6294 g-comlin.adb, g-comlin.ads, g-curexc.ads,
6295 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6296 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6297 g-dyntab.adb, g-encstr.ads, g-excact.ads,
6298 g-except.ads, g-expect.ads, g-heasor.adb,
6299 g-hesora.adb, g-hesorg.adb, g-htable.ads,
6300 g-locfil.ads, g-md5.adb, g-md5.ads,
6301 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6302 g-pehage.adb, g-pehage.ads, g-regexp.adb,
6303 g-regexp.ads, g-regpat.adb, g-regpat.ads,
6304 g-soccon-aix.ads, g-soccon-darwin.ads,
6305 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6306 g-soccon-hpux.ads, g-soccon-irix.ads,
6307 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6308 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6309 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6310 g-soccon-solaris.ads, g-soccon-tru64.ads,
6311 g-soccon-vms.ads, g-soccon-vxworks.ads,
6312 g-soccon.ads, g-socket.adb, g-socket.ads,
6313 g-socthi-mingw.adb, g-socthi-vms.adb,
6314 g-socthi-vxworks.adb, g-soliop-mingw.ads,
6315 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6316 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6317 typos.
6318
2bc894d9
EB
63192008-03-27 Eric Botcazou <ebotcazou@adacore.com>
6320
6321 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6322 if the procedure is imported.
6323
640bd0bf
AC
63242008-03-26 Arnaud Charlet <charlet@adacore.com>
6325
6326 * adaint.c: Fix warnings.
6327
0afae63b
AC
63282008-03-26 Arnaud Charlet <charlet@adacore.com>
6329
6330 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6331
afc5f979
AC
63322008-03-26 Arnaud Charlet <charlet@adacore.com>
6333
6334 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6335 Fix problem of status check for null file
6336
c5d31169
AC
63372008-03-26 Arnaud Charlet <charlet@adacore.com>
6338
6339 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6340 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6341 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6342 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6343 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6344 comments.
6345
b501b251
AC
63462008-03-26 Thomas Quinot <quinot@adacore.com>
6347
2bc894d9 6348 PR ada/33688
b501b251
AC
6349 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6350 Get_Socket_Option): Add support for Receive_Packet_Info.
6351
6352 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6353 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6354 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6355 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6356 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6357 new constants SO_REUSEPORT and IP_PKTINFO
6358
63592008-03-26 Robert Dewar <dewar@adacore.com>
6360
6361 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6362 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6363 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6364 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6365 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6366 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6367 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6368 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6369 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6370 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6371 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6372 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6373 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6374 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6375 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6376 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6377 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6378 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6379 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6380 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6381 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6382 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6383 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6384 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6385 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6386 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6387 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6388 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6389 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6390 s-tasloc.adb: Minor reformatting.
6391 Update comments.
6392 Remove "used for" sections from comments.
6393
63942008-03-26 Robert Dewar <dewar@adacore.com>
6395
6396 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6397 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6398 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6399 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6400 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6401 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6402 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6403 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6404 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6405 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6406 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6407 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6408 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6409 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6410 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6411 double spaced if it fits on one line and otherwise single spaced.
6412
64132008-03-26 Arnaud Charlet <charlet@adacore.com>
6414
9e81dbc7
AS
6415 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6416 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
b501b251
AC
6417 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6418 or task info if the thread could not be created.
6419
64202008-03-26 Arnaud Charlet <charlet@adacore.com>
6421
6422 * gnatvsn.ads (Library_Version): Bump to 4.4.
6423 (Current_Year): Bump to 2008.
6424
64252008-03-26 Robert Dewar <dewar@adacore.com>
6426
6427 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6428
6429 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6430
6431 * debug.adb: Add debug flags d.r and d.v
6432 Add debug flag .T (Optimize_Alignment (Time))
6433 Add debug flag .S (Optimize_Alignment (Space))
6434
6435 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6436 depending on setting of relevant debug flags.
6437 Replace use of Warnings_Off by Has_Warnings_Off
6438 (Freeze_Entity): In circuit for warning on suspicious convention
6439 actuals, do not give warning if subprogram has same entity as formal
6440 type, or if subprogram does not come from source.
6441 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6442 if Optimize_Alignment set to Space.
6443
6444 * frontend.adb: Add call to Sem_Warn.Initialize
6445 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6446 Reset Optimize_Alignment mode from debug switches .S and .T
6447
6448 * layout.adb (Layout_Composite_Object): Rewritten for
6449 Optimize_Aligment pragma.
6450
6451 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6452 mode.
6453
6454 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6455
6456 * par-prag.adb (N_Pragma): Chars field removed, use Chars
6457 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6458 this change. Add entry for pragma Optimize_Alignment
6459
6460 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6461 (Pragma_Identifier (..
6462 instead, adjustments throughout to accomodate this change.
6463 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6464 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6465 Add implementation of pragma Optimize_Alignment
6466
64672008-03-26 Vincent Celier <celier@adacore.com>
6468
6469 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6470 Improve memory usage to avoid use of stack.
6471
64722008-03-26 Robert Dewar <dewar@adacore.com>
6473
6474 * a-teioed.ads: Correct value of Default_Fill
6475
6476 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6477
64782008-03-26 Robert Dewar <dewar@adacore.com>
6479
6480 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6481 with Current_Output (introduce Self).
6482
64832008-03-26 Robert Dewar <dewar@adacore.com>
6484
6485 * checks.adb (Ensure_Valid): Capture valid status if possible
6486 (eliminate checks)
6487
64882008-03-26 Robert Dewar <dewar@adacore.com>
6489
6490 * stand.ads: Deal with reordering of package standard declarations
6491
6492 * cstand.adb: Put package Standard declarations in proper order
6493
64942008-03-26 Robert Dewar <dewar@adacore.com>
6495
6496 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6497 (Pragma_Identifier (.. instead.
6498 (OK_To_Reorder_Components): New flag
6499 (Has_Entries): Code cleanup.
6500 (Warnings_Off_Used): New flag
6501 (Warnings_Off_Used_Unmodified): New flag
6502 (Warnings_Off_Used_Unreferenced): New flag
6503 (Has_Warnings_Off): New function
6504 (Has_Unmodified): New function
6505 (Has_Unreferenced): New function
6506 (Is_Trivial_Subprogram): New flag
6507 (Is_Static_Dispatch_Table_Entity): New attribute.
6508 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6509 (more consistent with other similar names)
6510 (Access_Subprogram_Type): New classification function
6511
65122008-03-26 Robert Dewar <dewar@adacore.com>
6513
6514 * errout.ads: Document new !! insertion sequence
6515
6516 * errout.adb (N_Pragma): Chars field removed, use Chars
6517 (Pragma_Identifier (.. instead.
6518 Replace use of Warnings_Off by Has_Warnings_Off
6519 (Error_Msg_Internal): Don't delete warning ending in !!
6520
65212008-03-26 Robert Dewar <dewar@adacore.com>
6522
6523 * par.adb (Check_No_Right_Paren): Removed no longer used
6524
6525 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6526 (Pragma_Identifier (.. instead.
6527
6528 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6529
6530 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6531 par-ch4.adb: Minor improvements in error recovery and messages.
6532
6533 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6534 non-serious
6535
6536 * par-ch9.adb: Minor improvements in error recovery and messages
6537 (P_Protected): Better error recovery for "protected type x;"
6538
6539 * par-util.adb: Minor improvements in error recovery and messages
6540 (Check_No_Right_Paren): Removed no longer used
6541
65422008-03-26 Ed Schonberg <schonberg@adacore.com>
6543
6544 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6545 that the prefix of an attribute is the type of the aggregate being
6546 expanded.
6547
65482008-03-26 Javier Miranda <miranda@adacore.com>
6549 Robert Dewar <dewar@adacore.com>
6550
6551 * exp_attr.adb (N_Pragma): Chars field removed.
6552 (Expand_N_Attribute_Reference): If the designated type associated with
6553 attribute 'Unrestricted_Access is a subprogram entity then replace it
6554 by an E_Subprogram_Type itype.
6555 Implement attribute Old
6556
6557 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6558
6559 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6560 Replace call to
6561 New_Internal_Entity by call to Create_Itype to centralize calls
6562 building itypes, ad propagate the convention of the designated
6563 subprogram. In addition, disable the machinery cleaning constant
6564 indications from all entities in current scope when 'Unrestricted_Access
6565 corresponds with a node initializing a dispatch table slot.
6566 (Analyze_Attribute): Parameterless attributes returning a string or a
6567 type will not be called with improper arguments, so we can remove junk
6568 code that was dealing with this case.
6569 Implement attribute Old
6570
6571 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6572 Add entry for pragma Optimize_Alignment
6573 New standard names Sync and Synchronize
6574
65752008-03-26 Robert Dewar <dewar@adacore.com>
6576 Arnaud Charlet <charlet@adacore.com>
6577
6578 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6579 stmt.
6580 (No_Exception_Propagation_Active): New function.
6581 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6582 Update comments, and review all uses of No_Exception_Propagation, which
6583 are now correct and in sync with what gigi expects.
6584
6585 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6586 function.
6587 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6588 Update comments, and review all uses of No_Exception_Propagation, which
6589 are now correct and in sync with what gigi expects.
6590
65912008-03-26 Ed Schonberg <schonberg@adacore.com>
6592
6593 * sem_ch3.adb (Access_Definition): If the access type is the return
6594 result of a protected function, create an itype reference for it
6595 because usage will be in an inner scope from the point of declaration.
6596 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6597 OK_To_Reorder_Components.
6598 (Make_Index): If an overloaded range includes a universal integer
6599 interpretation, resolve to Standard.Integer.
6600 (Analyze_Subtype_Indication): Copy Convention to subtype
6601 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6602 limited an synchronized progenitors in type declaration and private
6603 extension declarations.
6604
6605 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6606 protected subprogram body, determine proper scope from subprogram
6607 declaration.
6608
66092008-03-26 Robert Dewar <dewar@adacore.com>
6610
6611 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6612 No_Run_Time_Mode
6613
66142008-03-26 Gary Dismukes <dismukes@adacore.com>
6615
6616 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6617 of a heap allocator for a limited unconstrained function return when
6618 resstriction No_Allocators is active.
6619 (Analyze_Allocator): The restriction No_Allocators is now only checked
6620 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6621
6622 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6623 of a heap allocator for a limited unconstrained function return when
6624 resstriction No_Allocators is active.
6625 (Analyze_Allocator): The restriction No_Allocators is now only checked
6626 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6627 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
6628 operands are fixed-point types, the universal_fixed predefined operation
6629 is used, regardless of whether the operand type (s) have a primitive
6630 operation of the same name.
6631
66322008-03-26 Javier Miranda <miranda@adacore.com>
6633
6634 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6635 Is_Static_Dispatch_Table
6636 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6637 to Exchange_Declarations to exchange the private and full-view. Bug
6638 found working in this issue.
6639 (Expand_Dispatching_Call): Propagate the convention of the subprogram
6640 to the subprogram pointer type.
6641 (Make_Secondary_DT): Replace generation of Prim'Address by
6642 Address (Prim'Unrestricted_Access)
6643 (Make_DT): Replace generation of Prim'Address by
6644 Address (Prim'Unrestricted_Access)
6645 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6646 simple call form for single entry.
6647 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6648 tables of predefined primitives).
6649 (Make_Secondary_DT): Add support to handle access to dispatch tables of
6650 predefined primitives.
6651 (Make_Tags): Add entities to Access_Dispatch_Table associated with
6652 access to dispatch tables containing predefined primitives.
6653
6654 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6655 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6656 this change.
6657 (Register_Predefined_DT_Entry): Updated to handle the new contents
6658 of attribute Access_Disp_Table (pointers to dispatch tables containing
6659 predefined primitives).
6660
6661 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6662 subprogram.
6663 (Find_Interface_ADT): Updated to skip the new contents of attribute
6664 Access_Dispatch_Table (pointers to dispatch tables containing predefined
6665 primitives).
6666
6667 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6668 concurrent types.
6669 (Set_Convention): Use new function Is_Access_Subprogram_Type
6670 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6671 Access_Dispatch_Table (pointers to dispatch tables containing predefined
6672 primitives).
6673
6674 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6675 expanded code avoiding calls to Build_Predef_Prims.
6676 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6677 call to Build_Get_Predefined_Prim_Op_Address.
6678
66792008-03-26 Javier Miranda <miranda@adacore.com>
6680
6681 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6682 subprogram Corresponding_Runtime_Package to know the runtime package
6683 that will provide support to a given protected type.
6684
6685 * exp_ch9.adb (Add_Private_Declarations,
6686 Build_Protected_Subprogram_Call,
6687 Build_Protected_Entry, Build_Simple_Entry_Call,
6688 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6689 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6690 cleanup using the new centralized subprogram Corresponding_Runtime
6691 Package to know the runtime package that provides support to
6692 a given protected type.
6693
66942008-03-26 Ed Schonberg <schonberg@adacore.com>
6695
6696 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6697 assignment is within the initialization procedure for a packed array,
6698 and Initialize_Scalars is enabled, compile right-hand side with checks
6699 off, because the value is purposely out of range.
6700
67012008-03-26 Vincent Celier <celier@adacore.com>
6702
6703 * gnatcmd.adb: Add processing for GNAT SYNC
6704
6705 * vms_conv.ads: (Command_Type): Add command Sync
6706
6707 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6708
6709 * vms_data.ads: Add entries for -gnatw.w
6710 Add qualifier for gnatstub --header-file option
6711 Add switches for GNAT SYNC
6712
6713 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6714 (Add_Package_Name): New procedure
6715 (Package_Name_List): New function
6716 (Initialize): Add known package names to the list
6717 (Register_New_Package): Add the new package name to the list
6718
67192008-03-26 Robert Dewar <dewar@adacore.com>
6720
6721 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6722 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6723 Raise_Exception by "raise with" construct.
6724
67252008-03-26 Pascal Obry <obry@adacore.com>
6726
6727 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6728 supported platforms.
9e81dbc7 6729
b501b251 6730 * Makefile.rtl: Add g-sercom.o.
9e81dbc7 6731
b501b251 6732 * impunit.adb: Add g-sercom.adb.
9e81dbc7 6733
b501b251
AC
6734 * s-crtl.ads (open): New routine.
6735 (close): Likewise.
6736 (write): Likewise.
9e81dbc7 6737
b501b251
AC
6738 * s-osinte-mingw.ads (BYTE): New type.
6739 (CHAR): Likewise.
6740 (OVERLAPPED): Likewise.
6741 (GENERIC_READ): New constant.
6742 (GENERIC_WRITE): Likewise.
6743 (OPEN_EXISTING): Likewise.
6744 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6745 type instead.
6746 (CreateFile): New routine.
6747 (WriteFile): Likewise.
6748 (ReadFile): Likewise.
6749 (CloseHandle): Move next to the other file oriented routines.
6750
6751 * g-sercom.ads: New unit.
6752
6753 * g-sercom.adb: Default implementation, calls to this unit will raise
6754 a program error exception.
9e81dbc7 6755
b501b251
AC
6756 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6757 GNU/Linux implementations.
6758
67592008-03-26 Robert Dewar <dewar@adacore.com>
6760
6761 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6762
6763 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6764 unchecked conversion for different conventions only for subprogram
6765 pointers or on VMS.
6766
67672008-03-26 Vincent Celier <celier@adacore.com>
6768
6769 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6770 to check if the specified object file is correct.
6771
67722008-03-26 Thomas Quinot <quinot@adacore.com>
6773
6774 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6775 Comes_From_Source to exclude primitives from being checked. We want to
6776 exclude predefined primitives only, so use the appropriate specific
6777 predicate. Also, flag a formal parameter of an anonymous
6778 access-to-subprogram type as illegal for a primitive operation of a
6779 remote access to class-wide type.
6780
67812008-03-26 Vincent Celier <celier@adacore.com>
6782
6783 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
6784 known, check if it may be a missspelling of a known package name. In
6785 not verbose, not mode, issue warnings only if the package name is a
6786 possible misspelling.
6787 In verbose mode, always issue a warning for a not known package name,
6788 plus a warning if the name is a misspelling of a known package name.
6789
6790 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
6791 limited withs or limited withs are parse during one call.
6792 (Parse_Single_Project): Post parse context clause in two passes: non
6793 limited withs before current project and limited withs after current
6794 project.
6795
6796 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
6797 project with the name With_Name, even if it is only extended indirectly.
6798 (Recursive_Process): Process projects in order: first single withs, then
6799 current project, then limited withs.
6800
6801 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
6802 project with the name With_Name, even if it is only extended indirectly.
6803
68042008-03-26 Robert Dewar <dewar@adacore.com>
6805
6806 * scn.adb (Initialize_Scanner): Format messages belong on standard error
6807
68082008-03-26 Ed Schonberg <schonberg@adacore.com>
6809
6810 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
6811 a generic subprogram that is imported, do not attempt to compile
6812 non-existent body.
6813
6814 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
6815 imported, do not generate a raise_program_error for the non-existent
6816 body.
6817 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
6818 perform minimal name resolution on the generic to avoid spurious
6819 warnings.
6820 (Find_Actual_Type): the designated type of the actual in a child unit
6821 may be declared in a parent unit without being an actual.
6822
68232008-03-26 Robert Dewar <dewar@adacore.com>
6824
6825 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
6826 * sinfo.ads, sinfo.adb (From_At_End): New flag
6827
68282008-03-26 Ed Schonberg <schonberg@adacore.com>
6829
6830 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
6831 operations that have an interface parameter.
6832 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
6833 Don't treat No_Return call as raise.
6834
6835 * sem_disp.adb (Check_Dispatching_Operations): apply check for
6836 non-primitive interface primitives to access parameters, not to all
6837 parameters of an access type.
6838
68392008-03-26 Ed Schonberg <schonberg@adacore.com>
6840
6841 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
6842 declarations of a parent unit are made visible when compiling a child
6843 instance, the parent is not a hidden open scope, even though it may
6844 contain other pending instance.
9e81dbc7 6845
b501b251
AC
6846 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
6847 hidden open scope for some child instance, it does affect the
6848 visibility status of other stach entries.
6849 (Analyze_Object_Renaming): Check that a class-wide object cannot be
6850 renamed as an object of a specific type.
6851
68522008-03-26 Robert Dewar <dewar@adacore.com>
6853
6854 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
6855 recursion and raise SE directly.
6856 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
6857 set for formal type for IN mode parameter.
6858
68592008-03-26 Robert Dewar <dewar@adacore.com>
6860
6861 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
6862 (Initialize): New procedure
6863 (Output_Warnings_Off_Warnings): New procedure
6864 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
6865 (Output_Non_Modifed_In_Out_Warnings): Ditto
6866 (Warn_On_Unreferenced_Entity): Ditto
6867
68682008-03-26 Vincent Celier <celier@adacore.com>
6869
6870 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
6871 readable.
6872
68732008-03-26 Matthew Heaney <heaney@adacore.com>
6874
9e81dbc7 6875 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
b501b251
AC
6876 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
6877 Marked with clauses as private, and controlled operations as overriding
6878
68792008-03-26 Robert Dewar <dewar@adacore.com>
6880
6881 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
6882
68832008-03-26 Robert Dewar <dewar@adacore.com>
6884
6885 * back_end.adb, back_end.ads: Minor reformatting
6886
6887 * bindgen.adb: Minor clarification of comments
6888
6889 * fname.ads: Minor comment fixes
6890
6891 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
6892 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
6893
6894 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
6895 xsnames.adb: Remove warnings off pragma no longer needed
6896
6897 * a-catizo.ads, a-calari.ads, a-calfor.adb,
6898 a-calfor.ads: Fix header.
6899
69002008-03-26 Tristan Gingold <gingold@adacore.com>
6901
6902 * init.c: Do not adjust pc for HPARITH on alpha/vms.
6903
69042008-03-26 Robert Dewar <dewar@adacore.com>
6905
6906 * lib-xref.adb: (OK_To_Set_Reference): New function
6907 (Generate_Reference): Don't set referenced from occurrence in Warnings,
6908 Unmodified, or Unreferenced pragma
6909
69102008-03-26 Robert Dewar <dewar@adacore.com>
6911
6912 * alloc.ads: Add entries for Warnings_Off_Pragmas table
6913
69142008-03-26 GNAT Script <nobody@adacore.com>
6915
6916 * Make-lang.in: Makefile automatically updated
6917
69182008-03-26 Robert Dewar <dewar@adacore.com>
6919
6920 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
6921 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
6922 removed, use Chars (Pragma_Identifier (.. instead, adjustments
6923 throughout to accomodate this change.
6924
6925 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
6926
6927 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
6928 Einfo.Set_Needs_Debug_Info)
6929
69302008-03-26 Robert Dewar <dewar@adacore.com>
6931
6932 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
6933 Add description for the new gnatstub option '--header-file'
6934 clarification of -gnatwz/-gnatwZ
6935 Add a "Irix-Specific Considerations" section to document the need to
6936 set LD_LIBRARY_PATH when using the default shared runtime library.
6937 Added documentation for both gcov and gprof.
6938
6939 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
6940 messages that are not suppressed when clients are compiled.
6941 Add documentation of s-pooglo s-pooloc
6942 Document the new GNAT.Serial_Communications API.
6943 Add documentation for 'Old attribute
6944 Add description of pragma Optimize_Alignment
6945
6946 * ug_words: Add entries for -gnatw.w -gnatw.W
6947
6948 * usage.adb: Add line for -gnatw.w (warn on warnings off)
6949
3a9634be
EB
69502008-03-25 Eric Botcazou <ebotcazou@adacore.com>
6951
6952 Revert
6953 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
6954 PR ada/35186
6955 * decl.c (maybe_pad_type): Avoid padding an integral type when
6956 bumping its alignment is sufficient.
6957
53b308f6
AC
69582008-03-25 Arnaud Charlet <charlet@adacore.com>
6959
6960 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
6961 Fix wrong formatting (lines too long)
6962
8fc789c8
RW
69632008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6964
6965 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
6966 a-calend-vms.adb, a-calend.adb, a-calend.ads,
6967 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
6968 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
6969 a-cohama.ads, a-comlin.ads, a-coorse.adb,
6970 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
6971 a-except-2005.ads, a-except.adb, a-except.ads,
6972 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
6973 a-exextr.adb, a-filico.ads, a-finali.ads,
6974 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
6975 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
6976 a-sequio.ads, a-strbou.ads, a-strfix.adb,
6977 checks.adb, exp_ch3.adb, exp_ch4.adb,
6978 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
6979 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
6980 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
6981 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
6982 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
6983
15f6d6e7
RD
69842008-03-24 Robert Dewar <dewar@adacore.com>
6985
6986 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6987 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6988 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6989 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6990 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6991 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6992 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6993 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6994 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6995 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6996 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6997 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6998 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6999 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7000 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7001 double spaced if it fits on one line and otherwise single spaced.
7002
b2e74434
RW
70032008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7004
7005 PR documentation/15479
7006 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7007 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7008 (doc/gnat_ugn.info): Renamed from ...
7009 (doc/gnat_ugn_unw.info): ... this.
7010 (doc/gnat_ugn.dvi): Renamed from ...
7011 (doc/gnat_ugn_unw.dvi): ... this.
7012 (doc/gnat_ugn.pdf): Renamed from ...
7013 (doc/gnat_ugn_unw.pdf): ... this.
7014 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7015 Adjusted.
7016 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7017 unconditionally to gnat_ugn.info. Fix cross references to the
7018 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
7019 and GNU make manuals to be proper texinfo links.
7020 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7021
f4351641
OH
70222008-03-21 Olivier Hainque <hainque@adacore.com>
7023
7024 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7025 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7026
10c5d1a0
EB
70272008-03-21 Eric Botcazou <ebotcazou@adacore.com>
7028
7029 * trans.c (addressable_p): Add notes on addressability issues.
7030
457b629a 70312008-03-21 Olivier Hainque <hainque@adacore.com>
9e81dbc7 7032 Ed Schonberg <schonberg@adacore.com>
457b629a
OH
7033
7034 * trans.c (addressable_p): Accept COND_EXPR when both arms
7035 are addressable.
7036 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7037 (call_to_gnu): Do not use name reference in the error message
7038 for a misaligned by_reference_parameter. The actual may be a
7039 general expression.
7040
ac5dc795
PB
70412008-03-18 Paolo Bonzini <bonzini@gnu.org>
7042
e1da2b17
EB
7043 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7044
79f34d07
RW
70452008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7046
7047 * gnat_rm.texi (Implementation Defined Characteristics)
7048 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7049 appropriate.
7050 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7051 (Switches for gnatchop, Installing a library): Likewise.
7052
e1e7141c
EB
70532008-03-10 Eric Botcazou <ebotcazou@adacore.com>
7054
7055 * trans.c (emit_range_check): Do not emit the check if the base type
7056 of the expression is the type against which its range must be checked.
7057
892f6e65
EB
70582008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7059
7060 * decl.c (maybe_pad_type): Use value_factor_p.
7061
7934d781
EB
70622008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7063
7064 * lang.opt (nostdlib): Move around.
7065 * misc.c (gnat_handle_option): Fix formatting.
7066 (gnat_dwarf_name): Move around.
7067 * trans.c (Case_Statement_to_gnu): Fix formatting.
7068 (gnat_to_gnu): Likewise.
7069 * utils.c (aggregate_type_contains_array_p): Likewise.
7070 (create_subprog_decl): Likewise.
7071
8f5893ab
EB
70722008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7073
7074 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7075 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7076
ba436c3b
EB
70772008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7078
7079 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7080 BIGGEST_ALIGNMENT when capping the alignment of records with
7081 strict alignment and size clause.
7082
6ab36dac
EB
70832008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7084
7085 * lang-specs.h: Pass -gnatwa if -Wall is passed.
7086 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7087 and -Wuninitialized.
7088 (gnat_post_options): Clear warn_unused_parameter.
7089
8853cb0b
EB
70902008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7091
7092 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7093 aligned bit-fields, bumping the alignment of the record type if deemed
7094 profitable.
7095 (value_factor_p): Return false instead of 0.
7096
66abe22c
EB
70972008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7098
7099 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7100 for scalar types with small alignment.
7101
563569be
EB
71022008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7103
7104 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7105 from that of the front-end's end label.
7106 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7107 from that of the loop label.
7108
b49a1a1e
EB
71092008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7110
7111 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7112 comment for the packed array type case.
7113 * utils.c (build_template): Use a loop to strip padding or
7114 containing records for justified modular types.
7115
fd5c81e9
EB
71162008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7117
7118 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7119 large alignments specified for types.
7120 (validate_alignment): Minor cleanup.
7121
7f42aa36
EB
71222008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7123
7124 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7125 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7126 the component for packing, if possible, as well as if a component
7127 size clause is specified.
7128 <E_Record_Subtype>: For an array type used to implement a packed
7129 array, get the component type from the original array type.
7130 Try to get a smaller form of the component for packing, if possible,
7131 as well as if a component size clause is specified.
7132 (round_up_to_align): New function.
7133 (make_packable_type): Add in_record parameter.
7134 For a padding record, preserve the size. If not in_record and the
7135 size is too large for an integral mode, attempt to shrink the size
7136 by lowering the alignment.
7137 Ditch the padding bits of the last component.
7138 Compute sizes and mode manually, and propagate the RM size.
7139 Return a BLKmode record type if its size has shrunk.
7140 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7141 Use Original_Array_Type to retrieve the type in case of an error.
7142 Adjust call to make_packable_type.
7143 (gnat_to_gnu_field): Likewise.
7144 (concat_id_with_name): Minor tweak.
7145 * trans.c (larger_record_type_p): New predicate.
7146 (call_to_gnu): Compute the nominal type of the object only if the
7147 parameter is by-reference. Do the conversion actual type -> nominal
7148 type if the nominal type is a larger record.
7149 (gnat_to_gnu): Do not require integral modes on the source type to
7150 avoid the conversion for types with identical names.
7151 (addressable_p): Add gnu_type parameter. If it is specified, do not
7152 return true if the expression is not addressable in gnu_type.
7153 Adjust recursive calls.
7154 * utils.c (finish_record_type): Remove dead code.
7155
2f76571e
EB
71562008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7157
7158 PR ada/35186
7159 * decl.c (maybe_pad_type): Avoid padding an integral type when
7160 bumping its alignment is sufficient.
7161
4d0e4612
RW
71622008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7163
ad6b5b00
RW
7164 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7165 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7166 statement.
7167 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7168 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7169 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7170 code output strings.
7171 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7172 system-vms_64.ads: Fix typos in ada source code comments.
7173 * sinfo-cn.adb: Remove incomplete sentence.
7174
4d0e4612
RW
7175 PR documentation/15479
7176 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7177
acf6b7ab
ST
71782008-02-27 Samuel Tardieu <sam@rfc1149.net>
7179
7180 PR ada/22255
7181 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7182
f5c064ab
ST
71832008-02-27 Samuel Tardieu <sam@rfc1149.net>
7184
7185 PR ada/34799
7186 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7187 that underlying type is present.
7188
2d593c86
TT
71892008-02-26 Tom Tromey <tromey@redhat.com>
7190
7191 * misc.c (internal_error_function): Remove test of
7192 USE_MAPPED_LOCATION.
7193 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7194 (Sloc_to_locus): Remove old location code.
7195
443b3472
RW
71962008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7197
8dd07840
RW
7198 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7199 `i.e.' by adding comma or `@:' as appropriate.
7200 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7201 plain characters `C', use `@samp{C}'.
7202 * gnat_ugn.texi (File Naming Rules, About gnatkr)
7203 (Krunching Method): Likewise.
7204
443b3472
RW
7205 * gnat_ugn.texi (Conventions): List environment variables and
7206 metasyntactic variables.
7207 (Compiling Programs): Fix notation of metasyntactic variables.
7208 Add @file where appropriate. Use @file for file extensions,
7209 @samp for strings.
7210 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7211 instead of @file, @env instead of @code.
7212
9538dfb9
RW
72132008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7214
d488f6ea
RW
7215 PR documentation/15479
7216 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7217 and `...' with `@dots{}' or `@enddots{}'.
7218
1992bbd9
RW
7219 PR documentation/15479
7220 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7221 use @command instead of @code, @option instead of @samp or @code,
7222 @code instead of @var, @samp instead of @file.
7223
9538dfb9
RW
7224 PR documentation/15479
7225 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7226 in Makefile rules, by using `&&' rather than `;'.
7227
e69044cb
RW
72282008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7229
7230 PR documentation/15479
7231 * gnat_ugn.texi: In non-code, avoid space before colon.
7232 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7233 (Examples of gnatxref Usage): Use @command{vi} instead of
7234 @file{vi}.
7235 (Character Set Control): Do not use @code for UTF-8.
7236 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
7237 use @code for IEEE.
7238 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7239 sample.
7240 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
7241
9e94c78f 72422008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
6a333ca0
JS
7243
7244 PR ada/35143
7245 * env.c: Add __rtems__ to if defined.
7246 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
7247 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7248 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
7249 pragma Convention as required.
7250 * gsocket.h: Make compile in and out of RTS.
7251 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
7252 Use g-soccon-rtems.ads.
7253 * g-soccon-rtems.ads, system-rtems.ads: New files.
7254
72fb133f
KG
72552008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7256
7257 PR other/35107
7258 * Make-lang.in (gnat1): Add $(GMPLIBS).
7259
8fa07a56
EB
72602008-01-26 Eric Botcazou <ebotcazou@adacore.com>
7261
7262 * decl.c (components_to_record): Improve comment.
7263
0bf38239
EB
72642008-01-22 Eric Botcazou <ebotcazou@adacore.com>
7265
7266 * decl.c (components_to_record): Do not reuse the empty union type
7267 if there is a representation clause on the record.
7268 * trans.c (addressable_p): Return true for INTEGER_CST.
7269
461d6eb3
EB
72702008-01-21 Eric Botcazou <ebotcazou@adacore.com>
7271
7272 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7273 in pointer arithmetics.
7274 * utils2.c (build_allocator): Likewise.
7275
9328dd57
EB
72762008-01-17 Eric Botcazou <ebotcazou@adacore.com>
7277
7278 * utils.c (build_function_stub): Properly build the call expression.
7279
052cec9b
EB
72802008-01-14 Eric Botcazou <ebotcazou@adacore.com>
7281
7282 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7283 before converting the expression to the type of the object.
7284 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7285 Stabilize constructors for special wrapping types.
7286
08ffbdad
EB
72872008-01-13 Eric Botcazou <ebotcazou@adacore.com>
7288
9e94c78f 7289 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
6bf4cbe8 7290 when necessary. Merge some conditional statements. Update comments.
08ffbdad
EB
7291 Rename unchecked_convert_p local variable to suppress_type_conversion.
7292 Do not suppress conversions in the In case.
7293 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7294 into account on non strict-alignment platforms.
7295
7219c2c7
EB
72962008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7297
7298 * utils.c (aggregate_type_contains_array_p): New predicate.
7299 (create_field_decl): In a packed record, force byte alignment
7300 for fields without specified position that contain an array.
7301
52ef2874
EB
73022008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7303
7304 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7305
3fa87ef8
JDA
73062008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
7307
7308 PR ada/34466
7309 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7310 sysconf call.
7311 (bit_field): New packed boolean type used by cpu_set_t.
7312 (cpu_set_t): New type corresponding to the C type with
7313 the same name. Note that on the Ada side we use a bit
7314 field array for the affinity mask. There is not need
7315 for the C macro for setting individual bit.
7316 (pthread_setaffinity_np): New imported routine.
7317
9e94c78f 73182008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
e0658eda
TK
7319
7320 PR ada/34647
7321 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7322 on OpenBSD as is done on other BSD systems.
7323
7324 PR ada/34645
7325 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7326 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7327 I/O.
7328
7329 PR ada/34644
7330 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7331 clearenv().
7332
7333 PR ada/34646
7334 * init.c (__gnat_error_handler, __gnat_install_handler,
7335 __gnat_init_float): Define for OpenBSD.
7336
7337 * initialize.c (__gnat_initialize): Define for OpenBSD.
7338
18bc9cca
ST
73392007-12-27 Samuel Tardieu <sam@rfc1149.net>
7340
7341 PR ada/34553
7342 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7343 instead of mktemp() or tmpnam() on NetBSD.
7344
f0bf503e
EB
73452007-12-23 Eric Botcazou <ebotcazou@adacore.com>
7346
7347 * trans.c (call_to_gnu): Make the temporary for non-addressable
7348 In parameters passed by reference.
7349 (addressable_p): Return true for STRING_CST and CALL_EXPR.
7350
7469b7bc
AC
73512007-12-19 Robert Dewar <dewar@adacore.com>
7352
9e81dbc7 7353 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7469b7bc
AC
7354 Add pragma Warnings (Off) for unassigned IN OUT arguments
7355
7356 * sem_warn.adb (Output_Reference): Suppress messages for internal names
7357 (Check_References): Extensive changes to tune up warnings
7358 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7359 (Has_Pragma_Unmodifed_Check_Spec): New function
7360 (Check_References): Implement pragma Unmodified
7361 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7362
7363 * par-prag.adb: Dummy entry for pragma Unmodified
7364
7365 * sem_prag.adb: Implement pragma Unmodified
7366
7367 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7368 (Proc_Next_Component_Or_Discriminant): Fix typo.
7369 Update comments.
7370
7371 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7372 Unmodified.
7373 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7374 because the former already takes care of discarding the result.
7375 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7376 Add comment.
7377
7378 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7379
73802007-12-19 Eric Botcazou <ebotcazou@adacore.com>
7381
7382 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7383 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7384 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7385 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7386 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7387 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7388 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7389 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7390 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7391 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7392 (Dynamic_Trampolines_Used): Delete.
7393
7394 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7395 Turn on stack probing mechanism on LynxOS.
7396
73972007-12-19 Bob Duff <duff@adacore.com>
7398
7399 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7400 the resulting tail recursion by hand. This prevents running out of
7401 memory on deeply nested concatenations, since Field2 is where the left
7402 operand of concatenations is stored.
7403 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7404 clarify that it can only return OK or Abandon.
7405
7406 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7407 operand by iteration, in order to avoid running out of memory on
7408 deeply-nested concatenations. Use the Parent pointer to get back up the
7409 tree.
7410 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7411 Resolve_Op_Concat_Rest): New procedures split out of
7412 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7413 clearer.
7414
7415 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7416 Traverse_Func, because the former already takes care of discarding the
7417 result.
7418
7419 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7420 because the former already takes care of discarding the result.
7421 (Remove_Warning_Messages): Use appropriate subtype for Status and
9e81dbc7 7422 Discard
7469b7bc
AC
7423
74242007-12-19 Ed Schonberg <schonberg@adacore.com>
7425
7426 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7427 discriminants forces expansion of the aggregate into assignments.
7428 (Init_Record_Controller): If the type of the aggregate is untagged and
7429 is not inherently limited, the record controller is not limited either.
7430
74312007-12-19 Robert Dewar <dewar@adacore.com>
7432
7433 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7434 handling compile time known size of record or array (case of front end
7435 layout active, e.g. in GNAAMP).
7436
74372007-12-19 Javier Miranda <miranda@adacore.com>
7438
7439 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7440 that forces the construction of static dispatch tables in case of
7441 record subtypes.
7442
74432007-12-19 Robert Dewar <dewar@adacore.com>
7444
7445 * exp_ch9.adb (Null_Statements): Moved to library level
7446 (Trivial_Accept_OK): New function
7447 (Expand_Accept_Declaration): Use Trivial_Accept_OK
7448 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7449
74502007-12-19 Robert Dewar <dewar@adacore.com>
7451
7452 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7453 in complex case where array is Volatile.
7454
74552007-12-19 Ed Schonberg <schonberg@adacore.com>
7456
7457 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7458 properly the Ada2005 rules concerning when the current instance of a
7459 record type is aliased.
7460
74612007-12-19 Ed Schonberg <schonberg@adacore.com>
7462
7463 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7464 mangled declaration
7465 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7466 declarations.
7467 (P_Variant_Part): Cleaner patch for parenthesized discriminant
7468
74692007-12-19 Vincent Celier <celier@adacore.com>
7470
7471 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7472 package is not known
7473
7474 * prj-attr.ads (Unknown_Package): New constant
7475 Do not crash when an unknown package is in several projects
7476
7477 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7478 ignored
7479
7480 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7481 existing package Language_Processing.
7482
74832007-12-19 Ed Schonberg <schonberg@adacore.com>
7484 Gary Dismukes <dismukes@adacore.com>
44914a04 7485 Samuel Tardieu <sam@rfc1149.net>
7469b7bc
AC
7486
7487 PR ada/15803, ada/15805
7488 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7489 illegal access subtypes when there is a constrained partial view.
7490 (Check_For_Premature_Usage): New procedure inside
7491 Access_Subprogram_Declaration for checking that an access-to-subprogram
7492 type doesn't reference its own name within any formal parameters or
7493 result type (including within nested anonymous access types).
7494 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7495 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7496 context is an access_to_variable, the expression cannot be an
7497 access_to_constant.
7498
74992007-12-19 Bob Duff <duff@adacore.com>
7500
7501 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7502 (Analyze_Concatenation): Use iteration instead of recursion in order
7503 to avoid running out of stack space for deeply nested concatenations.
7504
75052007-12-19 Ed Schonberg <schonberg@adacore.com>
7506 Gary Dismukes <dismukes@adacore.com>
7507
7508 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7509 whose renamed entity is a subprogram that requires overriding.
7510 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7511 issuing an error for premature usage and issue a message that says
7512 'type' rather than 'object'.
7513
75142007-12-19 Gary Dismukes <dismukes@adacore.com>
7515
7516 PR ada/34149
7517 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7518 presence of a statically tagged operand (Present (Static_Tag)) with
7519 test for Indeterm_Ancestor_Call when determining whether to propagate
7520 the static tag to tag-indeterminate operands (which forces dispatching
7521 on such calls).
7522 (Check_Controlling_Formals): Ada2005, access parameters can have
7523 defaults.
7524 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7525 not insert subprogram in list of primitive operations if already there.
7526
75272007-12-19 Tristan Gingold <gingold@adacore.com>
7528
7529 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7530 global variable.
7531
75322007-12-19 Thomas Quinot <quinot@adacore.com>
7533
7534 Part of PR ada/33688
7535 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7536 datagram info on Linux.
7537
75382007-12-19 Vincent Celier <celier@adacore.com>
7539
7540 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7541 that the source path name is always found in the dependencies.
7542
75432007-12-19 Robert Dewar <dewar@adacore.com>
7544
7545 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7546 Fix name of Wide_Wide_Latin_1/9 file names
7547 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7548 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7549 Add missing documentation for Ada.Command_Line.Response_File
7550 Update list of warning letters for Warnings pragma
7551 Add documentation for pragma Unmodified
7552
43779dea
ST
75532007-12-19 Samuel Tardieu <sam@rfc1149.net>
7554
7555 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7556
5287c2bc
AC
75572007-12-17 Arnaud Charlet <charlet@adacore.com>
7558
7559 * s-vxwork-alpha.ads: Removed, no longer used.
7560
6343804d
JJ
75612007-12-15 Jakub Jelinek <jakub@redhat.com>
7562
7563 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7564
3958c9c8
ST
75652007-12-13 Samuel Tardieu <sam@rfc1149.net>
7566
7567 PR ada/34360
7568 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
7569 mlib-tgt-specific.adb.
7570
78185974
BD
75712007-12-13 Bob Duff <duff@adacore.com>
7572
7573 * trans.c (Attribute_to_gnu): Check for violations of the
7574 No_Implicit_Dynamic_Code restriction. This checking used to be done in
7575 the front end, but is moved here so we can make it more accurate.
7576
e9b54d64
AC
75772007-12-13 Pascal Obry <obry@adacore.com>
7578
7579 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
7580 version is provided for older GNU/Linux distribution not
7581 supporting thread affinity sets.
9e81dbc7 7582
e9b54d64
AC
7583 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
7584 call.
7585 (bit_field): New packed boolean type used by cpu_set_t.
7586 (cpu_set_t): New type corresponding to the C type with
7587 the same name. Note that on the Ada side we use a bit
7588 field array for the affinity mask. There is not need
7589 for the C macro for setting individual bit.
7590 (pthread_setaffinity_np): New imported routine.
9e81dbc7 7591
e9b54d64
AC
7592 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
7593 no null.
7594 (Create_Task): Set the processor affinity mask if information
7595 is present.
9e81dbc7 7596
e9b54d64 7597 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
9e81dbc7 7598
e9b54d64
AC
75992007-12-13 Robert Dewar <dewar@adacore.com>
7600
9e81dbc7
AS
7601 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7602 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
7603 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
e9b54d64
AC
7604 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
7605 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
9e81dbc7
AS
7606 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
7607 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
e9b54d64
AC
7608 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
7609 for subprogram pointers.
7610
7611 * g-ctrl_c.adb: New file.
7612
7613 * g-ctrl_c.ads (Install_Handler): New body.
7614
7615 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
7616 instead of obsolete function Is_Always_Inlined.
7617 (Freeze_Entity): check for tagged type in imported C subprogram
7618 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
7619 (Freeze_Entity): check for convention Ada subprogram pointer in
7620 imported C subprogram.
7621 (Freeze_Fixed_Point_Type): In the case of a base type where the low
7622 bound would be chopped off and go from negative to zero, force
7623 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
7624 bound) so that the size computation for the base type will take
7625 negative values into account.
7626
76272007-12-13 Eric Botcazou <ebotcazou@adacore.com>
7628 Bob Duff <duff@adacore.com>
7629 Tristan Gingold <gingold@adacore.com>
7630
9e81dbc7
AS
7631 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7632 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7633 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7634 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7635 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7636 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7637 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
e9b54d64 7638 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
9e81dbc7 7639 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
e9b54d64
AC
7640 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
7641 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
7642 (Always_Compatible_Rep): New flag to control trampolines globally.
7643 (Dynamic_Trampolines_Used): New flag for implementing the
7644 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
7645 and not yet set correctly for some targets).
7646
7647 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
7648 Simply indirectly call s-stchop when a task is created.
7649
9e81dbc7 7650 * ali.ads:
e9b54d64
AC
7651 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
7652 appears as an argument (entries A) in an ALI file.
7653
7654 * fe.h (Stack_Check_Limits): Declare new target parameter.
7655 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
7656
7657 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
7658 This variable is declared in C to be sure not subject to elaboration
7659 code.
7660 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
7661 Storage_Error.
7662
7663 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
7664 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
7665
7666 * s-stchop.ads: Add comments.
7667
7668 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
7669 limit method of stack checking.
7670
7671 * s-stchop-limit.ads: New file.
7672
76732007-12-13 Robert Dewar <dewar@adacore.com>
7674
9e81dbc7
AS
7675 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
7676 a-cihama.adb, g-awk.adb,
e9b54d64
AC
7677 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
7678 warnings
7679
7680 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
7681
7682 * sem.adb: Update handling of assigned value/unreferenced warnings
7683
7684 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
7685
7686 * lib-xref.ads: Improve documentation for k xref type
7687
9e81dbc7 7688 * lib-xref.adb:
e9b54d64
AC
7689 Update handling of assigned value/unreferenced warnings
7690 (Generate_Reference): Warning for reference to entity for which a
7691 pragma Unreferenced has been given should be unconditional.
7692 If the entity is a discriminal, mark the original
7693 discriminant as referenced.
7694
7695 * sem_warn.ads, sem_warn.adb
7696 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
7697 no entities referenced in package
7698 (Check_One_Unit): Don't give message about no entities referenced in
7699 a package if a pragma Unreferenced has appeared.
7700 Handle new warning flag -gnatw.a/-gnatw.A
7701 Update handling of assigned value/unreferenced warnings
7702
7703 * atree.h: Add flags up to Flag247
7704 (Flag231): New macro.
7705
77062007-12-13 Jose Ruiz <ruiz@adacore.com>
7707
7708 * adaint.h: (__gnat_plist_init): Not defined for RTX.
7709
7710 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
7711 RTX systems.
7712
7713 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
7714 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
7715 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
7716 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
7717
9e81dbc7 7718 * mingw32.h:
e9b54d64
AC
7719 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
7720
7721 * sysdep.c (winflush_function for RTX): Procedure that does nothing
7722 since we only have problems with Windows 95/98, which are not
7723 supported by RTX.
7724 (__gnat_ttyname): Return the empty string on Nucleus, just as
7725 done on vxworks.
7726
77272007-12-13 Robert Dewar <dewar@adacore.com>
7728
9e81dbc7 7729 * a-textio.adb, a-textio.ads:
e9b54d64
AC
7730 Extensive changes to private part for wide character encoding
7731
7732 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
7733 (Look_Ahead): Fix mishandling of encoded sequences
7734 Move declaration of Wch_Con to private part (should not be visible)
7735
7736 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
7737 UTF-8. Probably this is never used, but if it is, brackets is
7738 clearly correct.
7739
7740 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
7741 setting wide character encoding for no main program case and when
7742 encoding is specified using -W?
7743 Initialize stack limit of environment task if stack limit method of
7744 stack checking is enabled.
7745 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
7746 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
7747 (Get_Main_Unit_Name): New function.
7748 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
7749 (Gen_Output_File): Set Bind_Main_Program to True for .NET
7750
7751 * bindusg.adb: Add line for -Wx switch
7752
7753 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
7754 Add comments
7755 Add new useful constant WC_Longest_Sequences
7756
7757 * switch-b.adb: Clean up handling of -Wx switch
7758 For -gnatWx, set Wide_Character_Encoding_Method_Specified
7759
7760 * switch-c.adb: -gnatg activates warning on assertion errors
7761 For -gnatWx, set Wide_Character_Encoding_Method_Specified
7762
7763 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
7764
77652007-12-13 Robert Dewar <dewar@adacore.com>
7766 Ed Schonberg <schonberg@adacore.com>
7767
7768 * a-ngcoty.adb: New pragma Fast_Math
7769
7770 * opt.adb: New pragma Fast_Math
7771
9e81dbc7 7772 * par-prag.adb:
e9b54d64
AC
7773 Add Implemented_By_Entry to the list of pragmas which do not require any
7774 special processing.
7775 (Favor_Top_Level): New pragma.
7776 New pragma Fast_Math
7777
7778 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
7779 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
7780 Expand_Allocator_Expression): Take into account VM_Target
7781 (Expand_Attribute, case 'Identity): Handle properly the case where
7782 the prefix is a task interface.
7783 New pragma Fast_Math
7784
7785 * par.adb (Next_Token_Is): New function
7786 (P_Pragma): Add Skipping parameter
7787 (U_Left_Paren): New procedure
7788 (U_Right_Paren): New procedure
7789 New pragma Fast_Math
7790
7791 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
7792 subunit
7793 New pragma Fast_Math
7794
7795 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
7796 Implemented_By_Entry.
7797 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
7798 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
7799 items, since it can apply to more than one overloadable entity. Set
7800 new flag Has_Pragma_Inline_Always for Inline_Always case.
7801 (Analyze_Pragma, case Complex_Representation): Improve error message.
7802 (Analyze_Pragma, case Assert): When assertions are disabled build the
7803 rewritten code with Sloc of expression rather than pragma, so new
7804 warning about failing is not deleted.
7805 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
7806 protected types and update error message to reflect that. Test whether
7807 the protected type is allowed for the pragma (an error is issued if the
7808 type has any entries, or components that do not have preelaborable
7809 initialization).
7810 New pragma Fast_Math
7811 (Analyze_Pragma, case No_Return): Handle generic instance
7812
9e81dbc7 7813 * snames.h, snames.ads, snames.adb:
e9b54d64
AC
7814 Add new predefined name for interface primitive _Disp_Requeue.
7815 New pragma Fast_Math
7816
7817 * a-tags.ads, a-tags.adb: New calling sequence for
7818 String_To_Wide_[Wide_]String
7819 (Secondary_Tag): New subprogram.
7820
7821 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
7822 from Exp_Attr
7823 New calling sequence for String_To_Wide_[Wide_]String
7824 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
7825 the use of the secondary stack for image routines.
7826
7827 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
7828 calling sequence for String_To_Wide_[Wide_]String
7829
7830 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
7831 Ada 95 mode
7832 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
7833 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7834
7835 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
7836 (P_Formal_Part): Use Skipping parameter in P_Pragma call
7837 to improve error recovery
7838
7839 * par-util.adb (Next_Token_Is): New function
7840 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
7841
7842 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
7843 semicolon if missing
7844 (P_Pragma): Implement new Skipping parameter
7845 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7846 Fix location of flag for unrecognized pragma message
7847
7848 * par-tchk.adb (U_Left_Paren): New procedure
7849 (U_Right_Paren): New procedure
7850
78512007-12-13 Geert Bosch <bosch@adacore.com>
7852
9e81dbc7 7853 * a-tifiio.adb:
e9b54d64
AC
7854 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
7855 the second or later Scaled_Divide would omit leading zeroes,
7856 resulting in too few digits produced and a Layout_Error as result.
7857 (Put): Initialize Pos.
7858
78592007-12-13 Robert Dewar <dewar@adacore.com>
7860
7861 atree.ads, atree.adb (Flag231..Flag247): New functions
7862 (Set_Flag231..Set_Flag247): New procedures
7863 (Basic_Set_Convention): Rename Set_Convention to be
7864 Basic_Set_Convention
7865 (Nkind_In): New functions
7866 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7867
7868 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
7869 instead
7870 of obsolete function Is_Always_Inlined
7871 (Register_Predefined_DT_Entry): Initialize slots of the second
7872 secondary dispatch table.
7873 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7874 (Expand_N_Function_Call): Remove special provision for stack checking.
7875
7876 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
7877 Include _Disp_Requeue in the list of predefined operations.
7878 (Find_Interface_ADT): Modified to fulfill the new specification.
7879 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7880
9e81dbc7 7881 * par-ch4.adb, nlists.ads, nlists.adb:
e9b54d64
AC
7882 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
7883
7884 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
7885 Fix location of flag for unrecognized pragma message
7886
7887 * sem_ch7.adb: Use Nkind_In
7888
78892007-12-13 Vincent Celier <celier@adacore.com>
7890
9e81dbc7 7891 * opt.ads:
e9b54d64
AC
7892 Indicate what flags are used by the Project Manager, gprbuild and
7893 gprclean.
7894 (Opt.Follow_Links_For_Dirs): New flag
7895 (Warn_On_Assertion_Failure): New flag
7896 (Wide_Character_Encoding_Method_Specified): New flag
7897 (Suppress_All_Inlining): New switch set by -fno-inline
7898 (Real_VMS_Target): New flag
7899 New pragma Fast_Math
7900
79012007-12-13 Robert Dewar <dewar@adacore.com>
7902
7903 * back_end.adb: Recognize -fno-inline
7904
79052007-12-13 Robert Dewar <dewar@adacore.com>
7906
7907 * checks.adb: Fix optimization problem with short-circuited form
7908
79092007-12-13 Bob Duff <duff@adacore.com>
7910
7911 * clean.adb (Usage): Add line for -aP
7912 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
7913 with a parameter "procedure Usage", instead of passing a pointer to a
7914 procedure. This is to eliminate trampolines (since the Usage procedure
7915 is often nested in a main procedure, and it would be inconvenient to
7916 unnest it).
7917
7918 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
7919 to be generic, with a parameter "procedure Callback (...)", instead of
7920 passing a pointer to a procedure. This is to eliminate trampolines
7921 (since the Callback procedure is usually nested).
7922
9e81dbc7 7923 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
e9b54d64
AC
7924 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
7925 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
7926
7927 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
7928 Use the generic Heap_Sort_G instead of Heap_Sort_A.
7929
79302007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
7931
7932 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
7933 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
7934 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
7935 (Renamed_In_Spec): New flag
7936 (Has_Pragma_Inline_Always): New flag
7937 Add missing doc for pragma Obsolescent_Warning
7938 Add missing doc for 17 additional unused flags (230-247)
7939 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
7940 Alphabetize with clauses.
7941 Separate Is_Thunk and Has_Thunks flags
7942 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
7943 (Related_Interface): Renamed to Related_Type.
7944 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
7945 (Set_Is_Flag): Restrict the assertion.
7946
79472007-12-13 Vincent Celier <celier@adacore.com>
7948
7949 * errout.adb (Output_Source_Line): Do not keep a trailing space after
7950 the source line number if the source line is empty.
7951
79522007-12-13 Geert Bosch <bosch@adacore.com>
7953
7954 * eval_fat.adb (Decompose_Int): Handle argument of zero.
7955 (Compose): Remove special casing of zero.
7956 (Exponent): Likewise.
7957 (Fraction): Likewise.
7958 (Machine): Likewise.
7959 (Decompose): Update comment.
7960
79612007-12-13 Ed Schonberg <schonberg@adacore.com>
7962
7963 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
7964 limited ancestor part, initialize controllers of enclosing record
7965 before expanding ancestor aggregate.
7966 (Gen_Assign): If a component of the aggregate is box-initialized, add
7967 code to call Initialize if the component is controlled, and explicit
7968 assignment of null if the component is an access type.
7969
7970 Handle properly aggregates for limited types that appear in object
7971 declarations when the aggregate contains controlled values such as
7972 protected types.
7973 When expanding limited aggregates into individual components, do not
7974 call Adjust on controlled components that are limited.
7975
79762007-12-13 Ed Schonberg <schonberg@adacore.com>
7977
7978 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
7979
79802007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
7981
7982 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
7983 predefined primitive _Disp_Requeue.
7984 (Make_Predefined_Primitive_Specs): Create the spec for predefined
7985 primitive _Disp_Requeue.
7986 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
7987 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
7988 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
7989 an interface type. In case of limited interfaces we now declare all the
7990 predefined primitives associated with synchronized interfaces as
7991 abstract.
7992 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
7993 declarations.
7994 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
7995 tagged type is an interface type and there is no user-defined equality
7996 function.
7997 Add also bodies of predefined primitives associated with synchronized
7998 interfaces.
7999 (Freeze_Record_Type): Do not build bodies of predefined primitives of
8000 interface types because they are now defined abstract.
8001 Add missing documentation.
8002 (Expand_Record_Controller): Update occurrence of Related_Interface
8003 to Related_Type.
8004 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8005 (Expand_N_Object_Declaration): Take into account VM_Target when handling
8006 class wide interface object declaration.
8007 (Expand_Previous_Access_Type): Do not create a duplicate master entity
8008 if the access type already has one.
8009 (Expand_N_Object_Declaration): Defend against attempt to validity check
8010 generic types. Noticed for -gnatVcf specified with previous errors.
8011
80122007-12-13 Arnaud Charlet <charlet@adacore.com>
8013
8014 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8015 Expand_Allocator_Expression): Take into account VM_Target
8016
8017 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8018 secondary stack when VM_Target /= No_VM
8019
80202007-12-13 Javier Miranda <miranda@adacore.com>
8021 Ed Schonberg <schonberg@adacore.com>
8022
8023 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8024 Is_Complation_Unit by Is_Library_Level_Entity in the code
8025 that decides if the static dispatch tables need to be built.
8026 (Wrap_Transient_Declaration): Do not generate a finalization call if
8027 this is a renaming declaration and the renamed object is a component
8028 of a controlled type.
8029
80302007-12-13 Gary Dismukes <dismukes@adacore.com>
8031
8032 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8033 In the case where the renamed subprogram is a dereference, call
8034 Force_Evaluation on the prefix.
8035
80362007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8037 Ed Schonberg <schonberg@adacore.com>
8038
8039 * exp_ch9.adb (Expand_N_Asynchronous_Select,
8040 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8041 comment reformatting.
8042 (Set_Privals): Inherit aliased flag from formal. From code reading.
8043 (Build_Simple_Entry_Call): Out parameters of an access type are passed
8044 by copy and initialized from the actual. This includes entry parameters.
8045 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8046 and Ada 2005 models of requeue.
8047 (Null_Statements): Still connsider do-end block null if it contains
8048 Unreferenced and Warnings pragmas.
8049 (Expand_N_Accept_Statement): Do not optimize away null do end if
8050 dispatching policy is other than defaulted.
8051 (Expand_N_Timed_Entry_Call): When the triggering statement is a
8052 dispatching call, manually analyze the delay statement.
8053 (Find_Parameter_Type): Move subprogram to Sem_Util.
8054
80552007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8056 Javier Miranda <miranda@adacore.com>
8057
8058 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8059 _Disp_Requeue occupies dispatch table slot number 15. Move
8060 _Disp_Timed_Select to slot 16.
8061 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8062 generate the spec and body of _Disp_Reqeueue.
8063 (Make_DT): Build and initialize the second dispatch table.
8064 Handle initialization of RC_Offset when the parent
8065 is a private type with variable size components.
8066 (Make_Secondary_DT): Complete documentation. Add support to
8067 initialize the second dispatch table.
8068 (Make_Tags): Generate the tag of the second dispatch table.
8069 (Register_Primitive): Add support to register primitives in the
8070 second dispatch table.
8071
80722007-12-13 Pascal Obry <obry@adacore.com>
8073
8074 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8075 Windows. This signal is used by gnatmake to kill child processes for
8076 example.
8077
80782007-12-13 Javier Miranda <miranda@adacore.com>
8079
8080 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8081 support for generic dispatching constructor calls in which we need to
8082 locate the tag of a secondary dispatch table associated with an
8083 interface type to properly dispatch the call.
8084 (Expand_N_Attribute_Reference [case Address],
8085 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8086 handling of VM targets.
8087
80882007-12-13 Robert Dewar <dewar@adacore.com>
8089 Ed Schonberg <schonberg@adacore.com>
8090
8091 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8092 assert fail
8093
8094 * ug_words: Add entries for -gnatw.a -gnatw.A
8095
8096 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8097 literal is a subtype with non-static constraints, use the base type of
8098 the context as the base of the string subtype, to prevent type
8099 mismatches in gigi.
8100 (Resolve_Actuals): If the actual is an entity name, generate a
8101 reference before the actual is resolved and expanded, to prevent
8102 spurious warnings on formals of enclosing protected operations.
8103 (Analyze_Overloaded_Selected_Component): If type of prefix if
8104 class-wide, use visible components of base type.
8105 (Resolve_Selected_Component): Ditto.
8106 (Resolve_Short_Circuit): Detect case of pragma Assert argument
8107 evaluating to False, and issue warning message.
8108
8109 * usage.adb: Add lines for -gnatw.a and -gnatw.A
8110
81112007-12-13 Emmanuel Briot <briot@adacore.com>
8112
8113 * g-calend.ads (No_Time): New constant, to represent an uninitialized
8114 time value
8115
8116 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8117 formats.
8118 (Month_Name_To_Number): New subprogram
8119
8120 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8121 letter to upper-case.
8122
81232007-12-13 Robert Dewar <dewar@adacore.com>
8124 Ed Schonberg <schonberg@adacore.com>
8125
8126 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8127
8128 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8129 context is a limited view, use non-limited view when available. If the
8130 non-limited view is an unconstrained array, this enforces consistency
8131 requirements in 3.10.2 (27).
8132 (Layout_Type): For an access type whose designated type is a limited
8133 view, examine its declaration to determine if it is an unconstrained
8134 array, and size the access type accordingly.
8135 (Layout_Type): Do not force 32-bits for convention c subprogram
8136 pointers in -gnatdm mode, only if real vms target.
8137
8138 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8139 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8140 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8141 violations of the No_Implicit_Dynamic_Code restriction.
8142 (Resolve_Attribute, case 'Access): If designated type of context is a
8143 limited view, use non-limited view when available. If the non-limited
8144 view is an unconstrained array, this enforces consistency requirements
8145 in 3.10.2 (27).
8146 (Layout_Type): For an access type whose designated type is a limited
8147 view, examine its declaration to determine if it is an unconstrained
8148 array, and size the access type accordingly.
8149
81502007-12-13 Vincent Celier <celier@adacore.com>
8151
8152 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8153 object directory of main project does not exist.
8154 On VMS, correctly set then environment variable for the source
8155 directories.
8156
81572007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8158
8159 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8160 set to True this procedure will create the value of type REG_EXPAND_SZ.
8161 It was only possible to create REG_SZ values before.
8162
81632007-12-13 Robert Dewar <dewar@adacore.com>
8164
8165 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8166 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8167 namet-sp.adb, namet-sp.ads: New files.
8168
8169 * g-speche.adb: Use generic routine in g-spchge
8170
9e81dbc7 8171 * s-wchcnv.ads, s-wchcnv.adb:
e9b54d64
AC
8172 Minor code cleanup (make formal type consistent with spec)
8173
8174 * namet.adb: Update comments.
8175
8176 * par-endh.adb (Evaluate_End_Entry): Use new
8177 Namet.Sp.Is_Bad_Spelling_Of function
8178
8179 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8180
8181 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8182 ancestor is an access type initialized with a box, set its type
8183 explicitly, for use in subsequent expansion.
8184 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8185 function
8186
81872007-12-13 Robert Dewar <dewar@adacore.com>
8188
8189 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8190 access Vstring)
8191
81922007-12-13 Robert Dewar <dewar@adacore.com>
8193
8194 * inline.adb (Back_End_Cannot_Inline): Use new flag
8195 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8196
8197 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8198 Has_Pragma_Inline_Always instead.
8199 of obsolete function Is_Always_Inlined
8200 (Build_Body_To_Inline): Same change
8201 (Cannot_Inline): Same change
8202 Do not give warning on exception raise in No_Return function
8203
8204 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8205 component has two inconsistent component clauses in the same record
8206 representation clause, favor the message that complains about
8207 duplication rather than inconsistency.
8208 Update comments.
8209 (Record_Representation_Clause): Do not warn on missing component
8210 clauses for inherited components of a type extension.
8211 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8212 an overloadable item if it is a pragma that can apply to multiple
8213 overloadable entities (e.g. Inline) because a pragma cannot be on
8214 more than one chain at a time.
8215 (Validate_Unchecked_Conversion): Add code to warn on unchecked
8216 conversion where one of the operands is Ada.Calendar.Time.
8217 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8218 For now, ignore Component_Size clause on VM targets, as done for
8219 pragma Pack.
8220
82212007-12-13 Emmanuel Briot <briot@adacore.com>
8222 Vincent Celier <celier@adacore.com>
8223
8224 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8225 string
8226 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8227 prj.ads
8228 (Hash): Move instantiation of System.HTable.Hash from spec to body
8229 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8230 systems, since we do not need to recompute the Name_Id for the canonical
8231 file name.
8232 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8233 as a parameter. This parameter is in fact always "ada" in all calls, and
8234 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8235 while loading a project with 40000 files
8236
8237 * prj-attr.adb: Fix name of attribute Dependency_Driver
8238 Change the kind of indexing for attribute Root
8239
8240 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8241 variables already declared, in case constructions.
8242
8243 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8244 Current_Object_Path_File to No_Path.
8245
8246 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8247 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8248
8249 * prj-makr.adb: new parameter Current_Dir
8250
8251 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8252 Ada sources when language is not Ada.
8253 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8254 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8255 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8256 (Locate_Directory): Always resolve links when computing Canonical_Path
8257 (Look_For_Sources): Make sure that Name_Buffer contains the file name
8258 in Source_Files before checking for the presence of a directory
8259 separator.
8260 Optimize calls to Name_Find when on case sensitive systems.
8261 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8262 as a parameter.
8263 (Prj.Nmsc.Check): new parameter Current_Dir
8264 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8265 cannot be empty and the spec suffix cannot be the same as the body or
8266 separate suffix.
8267 (Get_Unit): When a file name can be of several unit kinds (spec, body or
8268 subunit), always consider the longest suffix.
8269 (Check_Configuration): Do not issue an error if there is no compiler
8270 for a language. Just issue a warning and ignore the sources for the
8271 language.
8272 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8273 not empty.
8274 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8275 (Unit_Exceptions): New hash table
8276 (Check_Naming_Schemes): Check if a file that could be a unit because of
8277 the naming scheme is not in fact a source because there is an exception
8278 for the unit.
8279 (Look_For_Sources): Put the unit exceptions in hash table
8280 Unit_Exceptions
8281 (Get_Unit_Exceptions): Give initial value No_Source to local variable
8282 Other_Part to avoid exception when code is compiled with validity
8283 checking.
8284 (Get_Sources_From_File): Check that there is no directory information
8285 in the file names.
8286 (Look_For_Sources): Check that there is no directory information in the
8287 list of file names in Source_Files.
8288 (Look_For_Sources): In multi-language mode, do not allow exception file
8289 names that are excluded.
8290 (Excluded_Sources_Htable): New hash table
8291 (Search_Directories.Check_File): New procedure to simplify
8292 Search_Directories.
8293 (Search_Directories): Do not consider excluded sources
8294 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8295 Search_Directories.
8296 (Get_Exceptions): Set component Lang_Kind of Source_Data
8297 (Get_Unit_Exceptions): Ditto
8298 (Search_Directories): Ditto
8299
8300 * prj-pars.adb: new parameter Current_Dir
8301
9e81dbc7 8302 * prj-part.ads, prj-part.adb:
e9b54d64
AC
8303 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8304 (Opt.Follow_Links_For_Dirs): New flag
8305 (Project_Path_Name_Of): Cache information returned by this routine as
8306 Locate_Regular_File is a costly routine. The code to output a log
8307 information and the effective call to Locate_Regular_File is now
8308 factorized into a routine (code clean-up).
8309 (Parse, Parse_Single_Project): new parameter Current_Dir
8310 When main project file cannot be found, indicate in the error
8311 message the project path that was used to do the search.
8312
8313 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8314 (Prj.Proc.Process*): new parameter Current_Dir
8315
8316 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8317
83182007-12-13 Bob Duff <duff@adacore.com>
8319
8320 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8321 procedure to be called from the back end to check the
8322 No_Implicit_Dynamic_Code restriction.
8323
83242007-12-13 Arnaud Charlet <charlet@adacore.com>
8325
8326 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8327 Fixes another case where RTE_Available_Call was ignored instead of being
8328 taken into account.
8329 (Load_Fail): Ditto.
8330
8331 * rtsfind.ads: Add new entries.
8332
83332007-12-13 Robert Dewar <dewar@adacore.com>
8334
8335 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8336 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8337
8338 * scn.adb: Implement BOM recognition
8339
83402007-12-13 Thomas Quinot <quinot@adacore.com>
8341 Ed Schonberg <schonberg@adacore.com>
8342
8343 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8344 subprogram body that acts as its own spec may not have a non-private
8345 WITH clause on a private sibling.
8346 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8347 child unit is a renaming, create an implicit with_clause on that
8348 parent, and not on the unit it renames, to prevent visibility errors
8349 in the current unit.
8350
83512007-12-13 Ed Schonberg <schonberg@adacore.com>
8352
8353 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8354 renaming declaration, use the Slocs of the formal parameters from the
8355 declaration of the formal subprogram when creating the formal parameter
8356 entities in the renaming declaration.
8357 (Analyze_Formal_Type_Declaration): Change the placement of the error
8358 message concerning illegal known discriminants. It is now posted on the
8359 type rather than on the first discriminant. This change ensures early
8360 error report.
8361 (Freeze_Subprogram_Body): If the generic subprogram is nested within
8362 the package body that contains the instance, do not generate an
8363 out-of-place freeze node for the enclosing package.
8364 (Collect_Previous_Instantiations): Ignore internal instantiations
8365 generated for formal packages.
8366 (Validate_Derived_Type_Instance): Add a check that when a formal
8367 derived type is Known_To_Have_Preelab_Init then the actual type must
8368 have preelaborable initialization, and issue an error when this
8369 condition is violated.
8370
83712007-12-13 Robert Dewar <dewar@adacore.com>
8372
8373 * s-imenne.adb, s-imenne.ads: New files.
8374
9e81dbc7
AS
8375 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8376 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8377 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8378 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
e9b54d64
AC
8379 s-imgwch.ads: New calling sequence for Image routines to avoid sec
8380 stack usage.
8381
83822007-12-13 Javier Miranda <miranda@adacore.com>
8383 Ed Schonberg <schonberg@adacore.com>
8384
8385 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8386 generation of spurious error if parent is an interface type; caused
8387 because predefined primitive bodies will be generated later by
8388 Freeze_Record_Type.
8389 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8390 flag.
8391 (Derive_Subprograms): Handle derivations of predefined primitives
8392 after all the user-defined primitives to ensure that they are
8393 found in proper order in instantiations.
8394 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8395 of Related_Interface to Related_Type.
8396 (Record_Type_Declaration): Minor reordering of calls to decorate the
8397 Tag component because the entity must have set its Ekind attribute
8398 before setting its Is_Tag attribute.
8399 (Analyze_Subtype_Declaration): In the case of subtypes with
8400 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8401
84022007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8403 Ed Schonberg <schonberg@adacore.com>
8404
8405 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8406 statement to the list of contexts where a selected component with a
8407 concurrent tagged type prefix should yield a primitive operation.
8408 (Find_Primitive_Operation): Handle case of class-wide types.
8409 (Analyze_Overloaded_Selected_Component): If type of prefix is
8410 class-wide, use visible components of base type.
8411 (Resolve_Selected_Component): Ditto.
8412 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8413 formal of a generic subprogram. find candidate interpretations by
8414 scanning the list of generic formal declarations.:
8415 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8416 type from a limited_with_clause, and the full view is available, use it
8417 for subsequent semantic checks.
8418 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8419 (Find_Primitive_Operation): New function.
8420 (Analyze_Overloaded_Selected_Component): insert explicit dereference
8421 only once if several interpretations of the prefix yield an access type.
8422 (Try_Object_Operation): Code and comment cleanup.
8423 (Analyze_Selected_Component): Reorder local variables. Minot comment and
8424 code reformatting. When the type of the prefix is tagged concurrent, a
8425 correct interpretation might be available in the primitive and
8426 class-wide operations of the type.
8427
84282007-12-13 Robert Dewar <dewar@adacore.com>
8429 Ed Schonberg <schonberg@adacore.com>
8430
8431 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8432 renaming entry as subprogram using rename-as-body if subprogram spec
8433 frozen.
8434 (Use_One_Type): The clause is legal on an access type whose designated
8435 type has a limited view.
8436 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8437 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8438 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8439 operation denoted by a selected component.
8440 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8441 it can be an expression, possibly overloaded, that returns a task or
8442 an access to one.
8443
84442007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8445 Gary Dismukes <dismukes@adacore.com>
8446
8447 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8448 requeue statement is dispatching. Do not emit an error when the name is
8449 not an entry and the context is a dispatching select. Add code to
8450 perform subtype conformance between the formals of the current entry
8451 and those of the target interface primitive.
8452 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8453 Timed_Entry_Call): Analyze the triggering statement as the first step of
8454 the processing. If this is a dispatching select, postpone the analysis
8455 of all select statements until the Expander transforms the select. This
8456 approach avoids generating duplicate identifiers after the Expander has
8457 replicated some of the select statements. In case the Expander is
8458 disabled, perform regular analysis.
8459 (Check_Triggering_Statement): New routine.
8460 (Analyze_Requeue): Exclude any interpretations that are not entries when
8461 checking overloaded names in a requeue. Also test type conformance for
8462 matching interpretations rather than requiring subtype conformance at
8463 that point to conform with the RM's resolution rule for requeues.
8464
84652007-12-13 Ed Schonberg <schonberg@adacore.com>
8466
8467 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8468 inherited operation is a defaulted tag-indeterminate call, and there is
8469 a statically tagged actual, use the static tag as a controlling actual
8470 for the defaulted actual.
8471
84722007-12-13 Geert Bosch <bosch@adacore.com>
8473
8474 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8475 context, so do not call Check_Non_Static_Context.
8476
84772007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8478
8479 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8480 whether formal E is an entity which may have parameters.
8481
84822007-12-13 Bob Duff <duff@adacore.com>
8483 Javier Miranda <miranda@adacore.com>
8484 Robert Dewar <dewar@adacore.com>
8485
8486 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8487 (Set_Convention): New procedure to set the Convention flag, and in
8488 addition make sure the Favor_Top_Level flag is kept in sync (all
8489 foreign-language conventions require Favor_Top_Level = True).
8490 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8491 to Related_Type.
8492 (Collect_Interfaces_Info): Minor update to handle the two secondary
8493 dispatch tables. Update occurrence of Related_Interface to Related_Type.
8494 (Generate_Parent_Ref): Add parameter to specify entity to check
8495 (Is_Preelaborable_Expression): Allow the name of a discriminant to
8496 initialize a component of a type with preelaborable initialization.
8497 This includes the case of a discriminal used in such a context.
8498 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8499 latest Ada 2005 rules about renaming and 'Access of
8500 discriminant-dependent components.
8501 (Check_Nested_Access): Add handling when there are no enclosing
8502 subprograms (e.g. case of a package body).
8503 (Find_Parameter_Type): Factor routine from several other compiler files.
8504 Remove routine from Find_Overridden_Synchronized_Primitive.
8505
85062007-12-13 Thomas Quinot <quinot@adacore.com>
8507
8508 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8509 an invalid access to an uninitialized slot in the
8510 Source_File_Index_Table.
8511
85122007-12-13 Thomas Quinot <quinot@adacore.com>
8513
8514 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8515
85162007-12-13 Bob Duff <duff@adacore.com>
8517
8518 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8519 access-to-subprogram types in this package.
8520
85212007-12-13 Olivier Hainque <hainque@adacore.com>
8522
8523 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8524 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8525 Stack_Overlay_Address and document that we are using an internal
8526 abstraction.
8527 (Byte_Size, Unsigned_32_Size): Remove, now useless.
8528 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8529 consistently throughout the various implementation pieces.
8530
8531 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8532 overlay we are using to fill the stack area with patterns.
8533 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8534 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8535 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8536
85372007-12-13 Robert Dewar <dewar@adacore.com>
8538
8539 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8540
85412007-12-13 Arnaud Charlet <charlet@adacore.com>
8542
9e81dbc7 8543 * s-tassta.adb:
e9b54d64
AC
8544 (Create_Task): Take into account tasks created by foreign threads.
8545 Code clean up: use constants instead of hard coded values.
8546
85472007-12-13 Robert Dewar <dewar@adacore.com>
8548
8549 * styleg.adb (Check_Comment): More liberal rules for comment placement
8550
85512007-12-13 Olivier Hainque <hainque@adacore.com>
8552
8553 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8554 of Procedure Value instead of Frame Pointer as the invocation
8555 identifier associated with the instruction pointer in each traceback
8556 entry.
8557
8558 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8559 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8560 Pointer as the invocation identifier passed to tbk$symbolize.
8561
8562 * s-traent-vms.ads, s-traent-vms.adb
8563 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8564 Procedure Value instead of Frame Pointer as the invocation identifier
8565 passed to tbk$symbolize.
8566
85672007-12-13 Robert Dewar <dewar@adacore.com>
8568
9e81dbc7 8569 * tbuild.ads, tbuild.adb:
e9b54d64
AC
8570 Fix location of flag for unrecognized pragma message
8571
85722007-12-13 Robert Dewar <dewar@adacore.com>
8573
8574 * treepr.ads, treepr.adb: (pl): implement use of positive value
8575 shorthands
8576
85772007-12-13 Robert Dewar <dewar@adacore.com>
8578
8579 * xeinfo.adb: Remove warnings
8580 * xnmake.adb: Remove warnings
8581 * xsinfo.adb: Remove warnings
8582 * xtreeprs.adb: Remove warnings
8583 * xsnames.adb: Remove warnings
8584
8585 * a-ngcoar.adb: Fix typo.
8586 * s-interr.adb: Minor reformatting
8587 * env.c: Minor reformatting.
8588 * g-bytswa.adb: Minor reformatting.
8589 * g-rannum.ads: Minor documentation improvements
8590 * s-tasinf-mingw.adb: Minor header fix
8591 * a-clrefi.adb: Minor reformatting
8592 * g-sttsne.ads: Minor documentation improvement
8593 * g-sttsne-locking.ads: Minor documentation improvement
8594 * g-soliop-solaris.ads: Minor documentation improvement
8595 * g-soliop-mingw.ads: Minor documentation improvement
8596 * g-soliop.ads: Minor documentation improvement
8597 * exp_aggr.ads: Minor reformatting
8598 * debug.adb: Add documentation for the gprbuild debug flags
8599 * exp_ch2.adb: Use Nkind_In to simplify code throughout
8600 * exp_pakd.adb: Minor reformatting
8601
8602 * g-altive.ads, g-alleve.adb: Remove assertions.
8603 Add comment about minor differences between targets regarding
8604 floating-point operations.
8605
8606 * g-thread.adb: Remove pragma unreferenced.
8607 * lib.ads: Minor reformatting
8608 * par-ch9.adb: Minor reformatting of error messages
8609 * sem_case.adb: Minor reformatting
8610 * s-fileio.adb: Minor reformattinng
8611 * s-vmexta.ads: Minor typo
9e81dbc7 8612 * vxaddr2line.adb:
e9b54d64
AC
8613 Take into account 'Success' value as per new GNAT warning.
8614
86152007-12-13 Vincent Celier <celier@adacore.com>
8616
8617 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
8618 even on Windows
8619
86202007-12-13 Robert Dewar <dewar@adacore.com>
8621 Bob Duff <duff@adacore.com>
8622
8623 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
8624 Document that suffixes may be terminations of each others
8625 Add doc for -gnatw.a and -gnatw.A
8626 Document gnatbind -Wx switch
8627 Document BOM recognition
8628 Document pragma Implemented_By_Entry.
8629 Document new units.
8630
8631 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
8632 Add doc for pragma Unreferenced suppressing no entities referenced msg
8633 Add documentation of GNAT.Directory_Operations.Iteration
8634 Add documentation of GNAT.Random_Numbers
8635 Add documentation for pragma Shared.
8636 Correct documentation for Bit_Order
8637 Add documentation for the Pool_Address attribute.
8638 Fix and improve documentation of pragma machine_attribute.
8639 New pragma Fast_Math
8640 Document BOM recognition
8641
8642 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
8643 Add /Wide_Character_Encoding for binder
8644 Add qualifier for the new gnatpp option --no-separate-loop-then
8645
86462007-12-13 Matthew Heaney <heaney@adacore.com>
8647
8648 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
8649 which generic formal operations are called for each operation.
8650
86512007-12-13 Olivier Hainque <hainque@adacore.com>
8652
8653 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
8654 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
8655
86562007-12-13 Emmanuel Briot <briot@adacore.com>
8657
8658 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
8659 Reference_Dir unless we actually need it.
8660
86612007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8662 Tristan Gingold <gingold@adacore.com>
8663
8664 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
8665
8666 * s-osprim-vms.adb,
8667 a-calend-vms.adb: Remove pragma warning off and add pragma
8668 unreferenced.
8669
86702007-12-13 Robert Dewar <dewar@adacore.com>
8671
8672 * impunit.adb: Add entries for missing units
8673
8674 * Makefile.rtl: Add new run-time units.
8675
8676 * Make-lang.in: Update dependencies.
8677
86782007-12-13 Bob Duff <duff@adacore.com>
8679
8680 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
8681 types, set Can_Use_Internal_Rep appropriately, based on
8682 Always_Compatible_Rep_On_Target.
8683
86842007-12-13 Gary Dismukes <dismukes@adacore.com>
8685 Arnaud Charlet <charlet@adacore.com>
8686
8687 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
8688 it to the front end and setting the aamp_target environment variable
8689 to the switch's argument to ensure that gnaampbind and gnaamplink will
8690 take the specified library into account.
8691 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
8692 target, since the CIL compiler supports an "object" file (.il files).
8693
86942007-12-13 Vincent Celier <celier@adacore.com>
8695
8696 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
8697 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
8698
86992007-12-13 Geert Bosch <bosch@adacore.com>
8700
9e81dbc7 8701 * s-parame-vxworks.adb:
e9b54d64
AC
8702 Update comments to reflect usage of this package by Nucleus.
8703
87042007-12-13 Arnaud Charlet <charlet@adacore.com>
8705
8706 * i-vxwork.ads: Kill new warning on Convention C, since changing the
8707 spec would break code.
8708
8709 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
8710
8711 * system-vxworks-alpha.ads: Removed.
8712
e74a122e
EB
87132007-12-10 Eric Botcazou <ebotcazou@adacore.com>
8714
8715 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
8716
5320014a
ST
87172007-12-09 Samuel Tardieu <sam@rfc1149.net>
8718
8719 PR ada/34366
8720 * sem_ch3.adb (Designates_T): New function.
8721 (Mentions_T): Factor reusable part of the logic into Designates_T.
8722 Consider non-access parameters and access and non-access result.
8723 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
8724 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
8725
8726 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
8727
da746f77
LB
87282007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
8729
9d651736 8730 PR ada/34361
da746f77
LB
8731 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
8732 the new implementation of target-specific calls.
8733
ebe0660b
OH
87342007-12-07 Olivier Hainque <hainque@adacore.com>
8735
8736 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
8737 the designated full view, only follow a second level Full_View link
8738 for Non_Limited_Views of from_limited_with references.
9e81dbc7 8739
2eb160f2
ST
87402007-12-07 Samuel Tardieu <sam@rfc1149.net>
8741
8742 PR ada/15805
8743 * sem_ch6.adb (Process_Formals): Prevent an access type formal
8744 to be initialized with an access to constant object.
8745
9cc11b58
ST
8746 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
8747 when an access to constant is used to initialize an access
8748 value.
8749
72f69ddf
ST
8750 PR ada/21346
8751 * a-direct.adb (Compose): Containing_Directory can be an empty string.
8752
5a2fe31a
OH
87532007-12-07 Olivier Hainque <hainque@adacore.com>
8754
8755 PR ada/34173
8756 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
8757 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
8758 this is from an alignment clause on the GNAT entity.
8759 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
8760 to distinguish the case where we set it from the type's alignment.
8761 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
8762 whether this alignment was set from an explicit alignment clause.
8763
4039fb35
EB
87642007-12-06 Eric Botcazou <ebotcazou@adacore.com>
8765
8766 * decl.c (make_packable_type): Revert last change.
8767 (gnat_to_gnu_field): Avoid setting size and position multiple times.
8768 * utils.c (finish_record_type): Retrieve the real name of the type.
8769
0ec479dc
EB
87702007-12-05 Eric Botcazou <ebotcazou@adacore.com>
8771
8772 * trans.c (lvalue_required_p): Take base node directly instead
8773 of its parent. Rename second parameter to 'gnu_type'.
8774 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
8775 <N_Slice>: Likewise.
8776 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
8777 Adjust calls to lvalue_required_p.
8778
07c7262e
ST
87792007-12-05 Samuel Tardieu <sam@rfc1149.net>
8780
8781 PR ada/21489
8782 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
8783 parameters of an entry call.
8784
9e94c78f 87852007-12-03 Robert Dewar <dewar@adacore.com>
9e81dbc7 8786 Samuel Tardieu <sam@rfc1149.net>
403fd939
RD
8787
8788 PR ada/34287
8789 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
8790 of variables declared in a library-level package.
9e81dbc7 8791
0bcb4d2a
ST
87922007-12-02 Samuel Tardieu <sam@rfc1149.net>
8793
8794 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
8795 of Empty_String'Unchecked_Access.
8796
dd9c642a
ST
8797 * Makefile.in: Add support for sh4-linux.
8798
8799 * system-linux-sh4.ads: New file.
8800
35330114
KB
88012007-12-01 Kostik Belousov <kostikbel@ukr.net>
8802
8803 PR ada/33722
8804 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
8805 and its argument must not be free()ed.
8806
a6dcb051
EB
88072007-11-29 Eric Botcazou <ebotcazou@adacore.com>
8808
8809 * decl.c (make_packable_type): Retrieve the real name of the type.
8810 (maybe_pad_type): Simplify similar code.
8811
39a97416
ST
88122007-11-28 Samuel Tardieu <sam@rfc1149.net>
8813
a6968b8b 8814 PR ada/15804
39a97416
ST
8815 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
8816 than an identifier is used after "case" in a variant_part.
8817
b99dfeb3 8818 PR ada/17318
9c5a3a8d
ST
8819 * par-ch4.adb (Is_Parameterless_Attribute): New map.
8820 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
8821 attribute name or not depending on the new map.
8822
8823 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
8824 returning a string or a type will not be called with improper
8825 arguments.
8826
8827 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
8828
8829 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
8830
5a218498
ST
8831 PR ada/32792
8832 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
8833 Signal an error when attribute argument is a fixed-point value of
8834 an unknown type.
8835
7bde4677
ST
8836 PR ada/22559
8837 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
8838 a derived ordinary fixed point type.
8839
8840 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
8841 RM_Size when a Small clause is found.
8842
182e0d71
AK
88432007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
8844
9e81dbc7
AS
8845 PR 34081/C++
8846 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
8847 Pass 'false' for the new allocate_struct_function parameter.
8848 * utils.c (build_function_stub): Likewise.
182e0d71 8849
87caf699
RG
88502007-11-25 Richard Guenther <rguenther@suse.de>
8851
4039fb35 8852 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
87caf699
RG
8853 (gnat_poplevel): Likewise.
8854
f1c8c7ee
EB
88552007-11-25 Eric Botcazou <ebotcazou@adacore.com>
8856
8857 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
8858 strict alignment, no alignment clause and a known static size, cap
8859 the type alignment to the greatest power of 2 factor of the size.
8860 (gnat_to_gnu_field): If the field has a component clause, is aliased
8861 or of a type with strict alignment, require that its size be equal to
8862 that of the type.
8863 (validate_size): Use the type size as the minimum size for a type with
8864 strict alignment.
8865
bb1f5840
ST
88662007-11-23 Samuel Tardieu <sam@rfc1149.net>
8867
8868 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
8869 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
8870 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
8871 Use 'Access instead of 'Unchecked_Access in second and third
8872 arguments of pthread_sigmask.
8873
5102fac5
EB
88742007-11-23 Eric Botcazou <ebotcazou@adacore.com>
8875
8876 * decl.c (ceil_alignment): New function.
8877 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
8878 (make_packable_type): Likewise.
8879
1fa4dfc6
OH
88802007-11-22 Olivier Hainque <hainque@adacore.com>
8881
8882 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
8883 to fit in 80 columns.
8884
9e94c78f 88852007-11-21 Aurelien Jarno <aurelien@aurel32.net>
5f45b299
AJ
8886
8887 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
8888 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
8889
7634135a
EB
88902007-11-19 Eric Botcazou <ebotcazou@adacore.com>
8891
8892 PR ada/34098
8893 * misc.c (gnat_adjust_rli): Delete.
8894 (gnat_init): Do not initialize the translation code here.
8895 Do not call set_lang_adjust_rli.
8896 * trans.c (init_code_table): Make static.
8897 (gnat_init_stmt_group): Delete.
8898 (gigi): Initialize the translation code entirely here.
8899 Emit debug info for the common types here instead of...
8900 * utils.c (gnat_init_decl_processing): ...here.
8901 * gigi.h (init_code_table): Delete.
8902 (gnat_init_stmt_group): Likewise.
8903
b2c3bcf4
OH
89042007-11-16 Olivier Hainque <hainque@adacore.com>
8905
8906 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
8907 retrieving an allocator return value from a super-aligned address from
8908 here to ...
8909 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
8910 expect a super-aligned address for a fat or thin pointer.
9e81dbc7 8911
a01e283f
EB
89122007-11-14 Eric Botcazou <ebotcazou@adacore.com>
8913
8914 * trans.c (call_to_gnu): Always set the source location on the call
8915 expression. If the function returns-by-target, also set it on the
8916 address expression.
8917
713c3145
ST
89182007-11-14 Samuel Tardieu <sam@rfc1149.net>
8919
356d8961 8920 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
713c3145
ST
8921 sections of non-supported Interix target.
8922
8923 * s-osinte-interix.ads: Removed.
8924
1e992e16
ST
8925 * i-cstrin.ads (chars_ptr): Make it a C convention type.
8926
0e506c4b
ST
89272007-11-13 Samuel Tardieu <sam@rfc1149.net>
8928
8929 * a-tasatt.adb: Add a comment at the beginning of the package
8930 explaining why in general 'Unchecked_Access must be used instead
8931 of 'Access.
8932
66beb09b
ST
8933 * sem_prag.adb (Process_Convention): Move the test for the
8934 entity on which the Convention pragma applies down to also
8935 forbid pragma Convention on enumeration literals reached
8936 through renamings.
8937
14678e46
ST
89382007-11-10 Samuel Tardieu <sam@rfc1149.net>
8939
8940 * a-tasatt.adb: Revert previous change for this file as it will
8941 generate an error when this package is instantiated from a
8942 local context.
8943
f9d806de
ST
89442007-11-07 Samuel Tardieu <sam@rfc1149.net>
8945
8946 * a-tasatt.adb: Type Wrapper should be declared in comment instead
8947 of already declared type Node_Access.
dcbd752d
ST
8948 Use 'Access instead of 'Unchecked_Access when applicable. Local
8949 lifetime is the one of the package.
8950 (Set_Value): W is allocated on the heap.
8951
8952 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
8953 applicable.
8954 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
8955 access type.
8956 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
8957 access type.
8958
8959 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
8960 applicable.
8961 (elaboration code): Timer_Queue lifetime is the one of the
8962 package.
f9d806de 8963
bc01690e
ST
8964 * tracebak.c (i386 alternative): Remove useless comparaison
8965 which is always false; LOWEST_ADDRESS is 0 and is never greater
8966 than an unsigned integer.
8967
d9c1dc68
ST
8968 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
8969 embedded check for "Ada_Version >= Ada_05".
8970
cb88a3ea
OH
89712007-11-07 Olivier Hainque <hainque@adacore.com>
8972
8973 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
8974 craft and expand comment.
8975
233a722b
EB
89762007-11-01 Eric Botcazou <ebotcazou@adacore.com>
8977
8978 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
8979
6d1e8bff
EB
89802007-10-23 Eric Botcazou <ebotcazou@adacore.com>
8981
8982 * misc.c (gnat_handle_option): Replace call to abort with
8983 call to gcc_unreachable.
8984 (gnat_init): Likewise.
8985 (gnat_expand_expr): Likewise.
8986 (fp_prec_to_size): Likewise.
8987 (fp_size_to_prec): Likewise.
8988
262e7125
RG
89892007-10-23 Richard Guenther <rguenther@suse.de>
8990
8991 PR bootstrap/33608
8992 * tracebak.c: #undef abort after including system.h.
8993
9e94c78f 89942007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
c8f499a9
DS
8995
8996 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
8997 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
8998 for win32 targets.
8999 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9000
f0e1e807
AC
90012007-10-15 Eric Botcazou <ebotcazou@adacore.com>
9002
9003 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9004 Set the protection status of the guard page based on the value of On.
9005
9006 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9007
9008 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9009 (Exit_Task): Pass False to Hide_Yellow_Zone.
9010
90112007-10-15 Robert Dewar <dewar@adacore.com>
9012
9e81dbc7 9013 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
f0e1e807 9014 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9e81dbc7
AS
9015 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9016 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9017 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9018 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9019 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9020 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9021 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
f0e1e807 9022 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9e81dbc7
AS
9023 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9024 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9025 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9026 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9027 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
f0e1e807
AC
9028 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9029 Minor reformatting.
9030 Add Unreferenced and Warnings (Off) pragmas for cases of
9031 variables modified calls where they are IN OUT or OUT parameters and
9032 the resulting values are not subsequently referenced. In a few cases,
9033 we also remove redundant code found by the new warnings.
9034
9e81dbc7 9035 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
f0e1e807
AC
9036 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9037 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9038 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9039 warning controlled by -gnatw.o that warns on cases of out parameter
9040 values being ignored.
9041
90422007-10-15 Geert Bosch <bosch@adacore.com>
9043
9044 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9045
9046 * expect.c: Initial port to arm-mentor-nucleus.
9047 Use kill for __gnat_kill() on VMS.
9048
90492007-10-15 Emmanuel Briot <briot@adacore.com>
9050
9051 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9052 value.
9053 (Xref_Record): Change type for Line, since in the case of a reference to
9054 a predefined entity (as happens for array index types), the line is set
9055 to 0.
9056 Add support for parsing multiple array index types info, or
9057 multiple inherited interfaces info. This information cannot be stored
9058 in Xref_Entity_Record, which only supports a single instance of Tref_*,
9059 and is therefore stored in the list of references instead. It has a
9060 special treatement later on in tools that use this information.
9061
90622007-10-15 Tristan Gingold <gingold@adacore.com>
9063
9064 * debug.adb: Document use of -gnatd.a and -gnatd.I
9065
9066 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9067
90682007-10-15 Javier Miranda <miranda@adacore.com>
9069
9070 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9071 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9072 care of access to class-wide interface types plus removal of bizarre
9073 conversion of tagged object to access type (reported by Gary
9074 Dismukes). After this patch there is no need to perform any
9075 additional management on these nodes in Expand_Interface_Actuals.
9076
9077 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9078 that handles use of 'Access and 'Unchecked_Access applied to
9079 actuals covering interface types. Such code is now
9080 centralized in Expand_N_Attribute_Reference.
9081
90822007-10-15 Ed Schonberg <schonberg@adacore.com>
9083
9084 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9085 of tagged types whose ultimate ancestor is a CPP type.
9086 (Freeze_Array_Type): For a packed array type, generate an initialization
9087 procedure if the type is public, to handle properly a client that
9088 specifies Normalize_Scalars.
9089
90902007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9091
9092 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9093 inside a generic body, retrieve the full view of the entry family
9094 discrete subtype if available.
9095
90962007-10-15 Thomas Quinot <quinot@adacore.com>
9097
9098 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9099 attempt to generate stubs for hidden primitive operations.
9100
91012007-10-15 Vincent Celier <celier@adacore.com>
9102
9103 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9104 returning None, used when there is no platform specific body for
9105 MLib.Tgt.Specific.
9106
91072007-10-15 Bob Duff <duff@adacore.com>
9108
9109 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9110 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9111 the generic Heap_Sort_G, in order to avoid trampolines.
9112
91132007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
9114 Jose Ruiz <ruiz@adacore.com>
9115
9116 * vx_stack_info.c: New file.
9117
9118 * i-forbla-unimplemented.ads: New file.
9119
9120 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9121 for unsupported configurations; use it on VMS targets instead of the
9122 real one.
9123 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9124 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9125 used by VxWorks targets to have access to task-specific data and be
9126 able to extract the stack boundaries for stack checking.
9127 Use system-vms-ia64.ads on ivms.
9128
9129 * Make-lang.in: Update dependencies.
9130
9131 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9132 (vx_stack_info.c).
9133
91342007-10-15 Vincent Celier <celier@adacore.com>
9135
9136 * snames.adb, snames.ads: Add new standard name runtime_library_dir
9137
9138 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9139
9140 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9141
9142 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9143 the source is unknown.
9144
9145 * prj-ext.adb: Spelling error fix
9146
9147 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9148 95 reserved word in its name.
9149 (Process_Project_Level_Array_Attributes): Process new attribute
9150 Runtime_Library_Dir.
9151
9152 * prj-part.adb (Parse_Single_Project): Do not check the name of the
9153 config project against the user project names.
9154
9155 * prj-proc.adb (Expression): In multi-language mode, indexes that do
9156 not include a dot are always case insensitive.
9157 (Process_Declarative_Items): Ditto
9158 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9159 detected.
9160
9161 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9162 True, compare both indexes in lower case.
9163
91642007-10-15 Robert Dewar <dewar@adacore.com>
9165
9166 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9167
91682007-10-15 Gary Dismukes <dismukes@adacore.com>
9169
9170 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9171 association for an access component, add an association with null as
9172 the expression. Remove testing for array subtypes and the setting in
9173 that case of Ctyp to the array component type, which prevented proper
9174 inclusion of an association for null-initialized arrays. Collapse
9175 condition that tests for array subtypes into just a test of
9176 Is_Partially_Initialized_Type (which already covers arrays anyway).
9177
91782007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9179
9180 * sem_ch12.adb: Minor code reformatting.
9181 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9182 find the parent package which may have been hidden by local
9183 declarations.
9184
91852007-10-15 Gary Dismukes <dismukes@adacore.com>
9186
9187 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9188 flag of derived concurrent types, taking into account the flag setting
9189 on the parent subtype and any new set of discriminants.
9190
91912007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9192
9193 * sem_ch4.adb: Minor code and comment reformatting.
9194 (Analyze_Allocator): When the designated type of an unconstrained
9195 allocator is a record with unknown discriminants or an array with
9196 unknown range bounds, emit a detailed error message depending on the
9197 compilation mode and whether the designated type is limited.
9198
91992007-10-15 Tristan Gingold <gingold@adacore.com>
9200
9201 * system-vms-ia64.ads: New file.
9202
9203 * system-vms_64.ads: Minor comment fix.
9204
92052007-10-15 Ed Schonberg <schonberg@adacore.com>
9206
9207 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9208 body generated for a function with a controlling result that is a null
9209 extension, discard the generated body in favor of the current explicit
9210 one.
9211
92122007-10-15 Ed Schonberg <schonberg@adacore.com>
9213
9214 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9215 examining its original form, to handle properly operator calls that
9216 have been rewritten.
9217
92182007-10-15 Olivier Hainque <hainque@adacore.com>
9219
9220 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9221 instead of a procedure value in each traceback entry.
9222
9223 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9224 instead of procedure value to TBK$SYMBOLIZE.
9225
9226 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9227 field.
9228 (TB_Entry_For): Account for the PV/FP renaming.
9229
9230 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9231 add comment.
9232 (Null_TB_Entry): Account for change of component name.
9233 (PV_For): Rename as FP_For.
9234
92352007-10-15 Tristan Gingold <gingold@adacore.com>
9236
9237 * trans.c (gnat_to_gnu): Remove the padding structure more often.
9238 This optimize assignment to over-aligned record.
9239
92402007-10-15 Emmanuel Briot <briot@adacore.com>
9241
9242 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9243 interfaces.
9244
9245 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9246 type, for dispatching calls.
9247
92482007-10-15 Vincent Celier <celier@adacore.com>
9249 Robert Dewar <dewar@adacore.com>
9250
9251 * gnat_ugn.texi: Add documentation for switches --version and --help
9252 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9253 gnatxref, gnatfind, gnatls, and gnatclean.
9254 Document -gnatw.o.
9255 Mention attribute Excluded_Source_Dirs
9256 Replace obsolescent attribute Locally_Removed_Files with attribute
9257 Excluded_Source_Files.
9258 Improve documentation of -u (gnatbind)
9259 Document how to do reliable stack checking for the environmental task
9260 on iVMS.
9261
9262 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9263 Document attribute Excluded_Source_Files and indicate that attribute
9264 Locally_Removed_Files is obsolescent.
9265
92662007-10-15 Thomas Quinot <quinot@adacore.com>
9267
9268 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9269
9e81dbc7 9270 * gen-soccon.c:
f0e1e807
AC
9271 Update documentation to note that OpenVMS 8.3 or later must be used
9272 to generate g-soccon-vms.ads.
9273
9274 * atree.adb: Add ??? comment
9275
9276 * exp_util.adb: Minor reformatting.
9277 Add ??? comment in Kill_Dead_Code.
9278
92792007-10-15 Robert Dewar <dewar@adacore.com>
9280
9281 * errout.ads: Comment clarification
9282
9283 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9284 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9285
9286 * lib.ads: Comment update
9287
9288 * init.c: Minor reformatting.
9289
9290 * sem_attr.adb: Minor formatting
9291
9292 * osint-b.ads: Minor reformatting
9293
9294 * sem_ch9.adb: Implement -gnatd.I switch
9295
9296 * g-comlin.adb: (Start): Fix handling of empty command line.
9297
9298 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9299 even when -rules follows the -cargs section.
9300
6524147c
OW
93012007-10-08 Ollie Wild <aaw@google.com>
9302
9303 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9304 gnat_return_tree.
9305 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9306 gnat_return_tree.
9307 (gnat_eh_runtime_type): Removed.
9308 (gnat_return_tree): New function.
9309
dff6abb2
BE
93102007-10-08 Ben Elliston <bje@au.ibm.com>
9311
9312 PR ada/33454
9313 Revert:
9314 2007-08-31 Ben Elliston <bje@au.ibm.com>
9315
9316 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9317 when compiling for powerpc64-*-linux.
9318 * system-linux-ppc64.ads: New file.
9319
c3048783
EB
93202007-09-27 Eric Botcazou <ebotcazou@adacore.com>
9321
9322 Mapped location support
9323 * back_end.adb (Call_Back_End): Pass information about source
9324 files instead of units to gigi.
9325 * gigi.h (struct File_Info_Type): New.
9326 (gigi): Rename and change type of number_units parameter, change
9327 type of file_info_ptr parameter.
9328 * trans.c (number_files): New global variable.
9329 (gigi): Rename and change type of number_units parameter, change
9330 type of file_info_ptr parameter.
9331 If mapped location support is enabled, create the isomorphic mapping
9332 between source files and line maps.
9333 (Sloc_to_locus): If mapped location support is enabled, translate
9334 source location into mapped location.
9335 (annotate_with_node): Rename into set_expr_location_from_node.
9336 Call set_expr_location instead of annotate_with_locus.
9337 (Pragma_to_gnu): Adjust for above change.
9338 (Loop_Statement_to_gnu): Likewise.
9339 (call_to_gnu): Likewise.
9340 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9341 (gnat_to_gnu): Likewise.
9342 (add_stmt_with_node): Likewise.
9343 (add_cleanup): Likewise.
9344 * utils.c (gnat_init_decl_processing): Do not set input_line.
9345
68b72a44
AC
93462007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9347
9348 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9349 (Applicable_Use): Emit a warning when a package tries to use itself.
9350 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9351 is already in use or the package where it is declared is in use or is
9352 declared in the current package.
9353 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9354
9355 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9356 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9357 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9358
93592007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9360
9e81dbc7 9361 * a-calend-vms.adb, a-calend.adb:
68b72a44
AC
9362 Add a section on leap seconds control along with two entities used to
9363 enable and disable leap seconds support. The array Leap_Second_Times is
9364 now constant and contains hard time values pre-generated. Remove
9365 all elaboration code used to populate the table of leap seconds.
9366
9e81dbc7 9367 * bindgen.adb:
68b72a44
AC
9368 Add entity Leap_Seconds_Support to the list of global run-time variables
9369 along with a comment on its usage and values.
9370 (Gen_Adainit_Ada): Add code to generate the declaration and import of
9371 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9372 or one (enabled) depending on the presence of binder switch "-y".
9373 (Gen_Adainit_C): Add code to generate the declaration of external int
9374 __gl_leap_seconds_support. Set is value to zero (disabled) or one
9375 (enabled) depending on the presence of binder switch "-y".
9376
9377 * init.c: Add __gl_leap_seconds_support to the list of global values
9378 computed by the binder.
9379
93802007-09-26 Jerome Guitton <guitton@adacore.com>
9381
9382 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9383 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9384 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9385 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9386
9387 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9388
9389 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9390 function which can be called by the debugger to interrupt the tasks of
9391 an Ada application asynchronously, as needed on VxWorks.
9392 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9393
9394 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9395 renamed from Stop_All_Tasks. Update comments.
9396 (Stop_All_tasks): New function declaration.
9397
93982007-09-26 Olivier Hainque <hainque@adacore.com>
9399
9400 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9401 #include <utime.h> and #define GCC_RESOURCE_H before
9402 #include <sys/wait.h>.
9403 Add more protections in __gnat_translate_vms.
9404
9405 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9406 #include <sys/wait.h>.
9407
94082007-09-26 Thomas Quinot <quinot@adacore.com>
9409 Sergey Rybin <rybin@adacore.com>
9410
9411 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9412
9413 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9414 where it belongs.
9415
9416 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9417
9418 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9419 where it belongs.
9420
9421 * sem_dist.ads: Minor comment fix
9422
9423 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9424
94252007-09-26 Javier Miranda <miranda@adacore.com>
9426 Eric Botcazou <ebotcazou@adacore.com>
9427
9e81dbc7 9428 * a-tags.adb:
68b72a44
AC
9429 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9430 indirection added to the HT_Link component of the TSD. This is required
9431 to statically allocate the TSD.
9432
9e81dbc7 9433 * a-tags.ads:
68b72a44
AC
9434 Minor reordering of the declarations in the private part. Required to
9435 add a level of indirection to the contents of the TSD component HT_Link.
9436 This is required to statically allocate the TSD.
9437
9438 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9439 Is_Statically_Allocated set from constant objects.
9440 Do not make exported constants created by the compiler volatile.
9441 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9442 as read-only.
9443
9444 * trans.c (Identifier_to_gnu): For constants, unshare initializers
9445 before returning them.
9446
9447 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9448 public part of the package.
9449 (Make_DT): Move HT_Link component out of the TSD record. For this
9450 purpose Make_DT now declares a separate object that stores the
9451 HT_Link value, and initializes the TSD component with the address
9452 of this new object. The addition of this level of indirection is
9453 required to statically allocate the TSD because the TSD cannot
9454 have variable components.
9455 (Expand_Interface_Conversion): Improve the expanded code.
9456 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9457
9458 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9459 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9460 if we are building static dispatch tables then we must not generate
9461 extra code to register the primitive because the dispatch table will
9462 be built at the end of the library package; otherwise we notify that
9463 we cannot build the static dispatch table.
9464
94652007-09-26 Robert Dewar <dewar@adacore.com>
9466
9467 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9468 overlays.
9469
9470 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9471 (Analyze_Record_Representation_Clause): Suppress junk warning for
9472 missing component clause.
9473 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9474 tests for controlled type overlay to composites with controlled
9475 components.
9476 (Analyze_Record_Representation_Clause): Add reference for component name
9477
94782007-09-26 Javier Miranda <miranda@adacore.com>
9479 Gary Dismukes <dismukes@adacore.com>
9480
9481 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9482 for thunks associated with interface types.
9483
9484 * einfo.ads: Improve documentatation of Is_Internal
9485 (Is_Thunk): New attribute applicable to subprograms. True for thunks
9486 associated with interface types.
9487 Extensive comment fixes regarding flags that appear in all entities. The
9488 documentation is now consistent for all such flags (there were a number
9489 of errors in the documentation in this regard).
9490
9491 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9492
9493 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9494 of these procedures are passed a function call that already has
9495 build-in-place actuals (testing new flag
9496 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9497 the case where processing continues.
9498 (Expand_Call): If the call is generated from a thunk body then we
9499 propagate the extra actuals associated with the accessibility
9500 level of the access type actuals.
9501
9502 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9503 of each extra formal of a protected operation to reference the
9504 corresponding extra formal of the subprogram denoted by the
9505 operation's Protected_Body_Subprogram.
9e81dbc7 9506
68b72a44
AC
9507 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9508 N_Function_Call nodes.
9509
95102007-09-26 Robert Dewar <dewar@adacore.com>
9511
9512 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9513
9514 * debug.adb: Add d.s flag.
9515
95162007-09-26 Gary Dismukes <dismukes@adacore.com>
9517
9518 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9519 debug variable so that it won't be initialized when pragma
9520 Initialize_Scalars is in effect.
9521
95222007-09-26 Gary Dismukes <dismukes@adacore.com>
9523
9524 * freeze.adb (Freeze_Entity): Remove check for preelaborable
9525 initialization of a full view. This is moved to
9526 Analyze_Package_Specification.
9527
9528 * sem_ch7.adb (Analyze_Package_Specification): Add check for
9529 preelaborable initialization of a full view in entity loop.
9530 (Uninstall_Declarations): If entity is a use-visible compilation unit,
9531 its child units are use-visible only if they are visible child units.
9532
9533 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9534 whether an expression can be used within a type declaration that
9535 requires preelaborable init.
9536 (Check_Components): Replace inline code that does partial checking for
9537 preelaborable default expressions with call to
9538 Is_Preelaborable_Expression.
9539 (Has_Preelaborable_Initialization): In the case of a generic actual
9540 subtype, (that is, Is_Generic_Actual is True), return the result of
9541 applying Has_Preelaborable_Initialization to the generic actual's base
9542 type.
9543
95442007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9545
9546 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9547 call to Jan_1_Day _Of_Week to optimize its performance.
9548 (Is_Leap): Move the routine to the scope of Week_In_Year.
9549 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9550 weekday on which January 1 falls of Year - 1 and Year + 1. This function
9551 avoids calling Time_Of and Split, thus making it more efficent.
9552 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9553
9554 * g-calend.ads (Week_In_Year): Change comment to reflect new
9555 implementation.
9556
95572007-09-26 Emmanuel Briot <briot@adacore.com>
9558
9559 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9560 Command_Line): New types
9561 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9562 support for defining how switches can be grouped on a command line (as
9563 is the case for -gnatw... for GNAT), and how simple switches can be
9564 used as aliases for more complex switches (-gnatwa is same as
9565 -gnatwbcef...)
9566 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
9567 (Start, Current_*): New subprograms
9568 Added support for parsing an array of strings in addition to the real
9569 command line.
9570 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
9571 be moved from the body to the private part of the spec.
9572 (*): All subprograms now have an extra parameter with default value to
9573 specify which parser should be used. For backward compatibility, it
9574 defaults to parsing the command line of the application. They were also
9575 modified to properly handle cases where each of the argument does not
9576 start at index 1 (which is always true for Ada.Command_Line, but not
9577 when processing any Argument_List).
9578 (Free): New subprogram
9579 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
9580 Argument): New subprograms
9581 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
9582 special characters like ':', '=',... are now handled in a single place,
9583 which makes the code more extensible eventually.
9584 (Getopt, Full_Switch): When the switch was returned as part of the
9585 special character '*', make sure it is prepended by the switch character
9586 ('-' in general), so that the application knows whether "foo" or "-foo"
9587 was specified on the command line.
9588
95892007-09-26 Florian Villoing <villoing@adacore.com>
9590
9591 * g-dirope.adb (Remove_Dir): In case we are removing directories
9592 recursively, make sure that if an exception is raised during the
9593 processing, the current working directory is reset to its initial
9594 value before propagating the exception.
9595
95962007-09-26 Vincent Celier <celier@adacore.com>
9597
9598 * gnatbind.adb: If there are several ALI files specified and there is
9599 a main program to bind, the first ALI is expected to contain the main
9600 subprogram and the names of the binder generated files will be derived
9601 from the first ALI file name.
9602 (Gnatbind): Fix insertion character in invocation of Error_Msg
9603
96042007-09-26 Vincent Celier <celier@adacore.com>
9605
9606 * gnatcmd.adb (Check_Files): Do not include sources that have been
9607 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
9608
96092007-09-26 Ed Schonberg <schonberg@adacore.com>
9610
9611 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
9612 information about each of its index types, following the type
9613 reference for its component type.
9614
96152007-09-26 Vincent Celier <celier@adacore.com>
9616
9617 * make.adb: (Kill): New procedure (__gnat_kill imported)
9618 (Running_Compile, Outstanding_Compiles): Global variables that
9619 were previously local to procedure Compile_Sources.
9620 (Sigint_Intercepted): Send signal SIGINT to all outstanding
9621 compilation processes.
9622
9623 (Gnatmake): If project files are used, create the mapping of all the
9624 sources, so that the correct paths will be found.
9625
9626 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
9627
96282007-09-26 Vincent Celier <celier@adacore.com>
9629
9630 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
9631
9632 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
9633 Replace components Compiler_Min_Options and Binder_Min_Options with
9634 Compiler_Required_Switches and Binder_Required_Switches in record
9635 Language_Config.
9636 Remove components Default_Language and Config in Project_Tree_Data,
9637 no longer used.
9638
9639 * prj-attr.adb: New attributes Required_Switches (<language>) in
9640 packages Compiler and Binder.
9641
9642 * prj-nmsc.adb: Major rewrite of the processing of configuration
9643 attributes for gprbuild. No impact on GNAT tools.
9644
9645 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
9646 process configuration attributes: this is done in Prj.Nmsc.Check.
9647 (Recursive_Process): Make a full copy of packages inherited from project
9648 being extended, instead of a shallow copy.
9649 (Process_Project_Tree_Phase_1): New procedure
9650 (Process_Project_Tree_Phase_1): New procedure
9651 (Process): Implementation now uses the two new procedures
9652
9653 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
9654 from the project config, not the tree config that no longer exists.
9655
96562007-09-26 Vincent Celier <celier@adacore.com>
9657
9658 * Make-lang.in: Update dependencies..
9659
96602007-09-26 Vincent Celier <celier@adacore.com>
9661
9662 * osint.adb, osint.ads: Minor reformatting
9663
9664 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
9665
96662007-09-26 Gary Dismukes <dismukes@adacore.com>
9667
9668 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
9669 message to cite use of <> in aggregate component associations rather
9670 than wrongly indicating use of limited aggregates.
9671
96722007-09-26 Robert Dewar <dewar@adacore.com>
9673
9674 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
9675 Address_Taken.
9676
96772007-09-26 Ed Schonberg <schonberg@adacore.com>
9678
9679 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
9680 ancestor of the derived type, the operations are inherited from the
9681 primary dispatch table of the parent.
9682 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
9683 when the context is an explicit type conversion.
9684
96852007-09-26 Ed Schonberg <schonberg@adacore.com>
9686
9687 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
9688 rule for qualified expressions properly, to detect improper conversions
9689 and resolve some cases of overloading.
9690
96912007-09-26 Ed Schonberg <schonberg@adacore.com>
9692
9693 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
9694 proper kind of reference to the primitive operation, for better source
9695 navigation.
9696 (Valid_Conversion): A tagged conversion is legal if both operands are
9697 tagged.
9698
96992007-09-26 Robert Dewar <dewar@adacore.com>
9700
9701 * sem_warn.adb (Check_References): Catch more cases of unreferenced
9702 packages.
9703
97042007-09-26 Vincent Celier <celier@adacore.com>
9705
9706 * snames.adb, snames.ads: Change Include_Option to Include_Switches
9707
97082007-09-26 Robert Dewar <dewar@adacore.com>
9709
9710 * s-wchstw.adb: provide messages for run time unit exceptions
9711
9712 * a-witeio.adb: Minor reformatting
9713
9714 * exp_ch13.adb: Minor reformatting
9715
97162007-09-26 Sergey Rybin <rybin@adacore.com>
9717
9718 * vms_data.ads: Revise gnatmetric qualifiers.
9719 Add qualified for the new gnatbind option '-y'
9720
9721 * gnat_ugn.texi: Revise the gnatmetric section.
9722 Add entry for new gnatbind option '-y'.
9723
9724 * gnat_rm.texi: Minor spelling correction.
9725 Document restriction on overlaying controlled types
9726
97272007-09-26 Vincent Celier <celier@adacore.com>
9728
9729 * makegpr.adb (Link_Executables): Do not fail when the root project has
9730 no sources, but is an extending project.
9731
0a86bcc9
EB
97322007-09-25 Eric Botcazou <ebotcazou@adacore.com>
9733
9734 * trans.c: Fix misplaced #define.
9735
b235734c
EB
97362007-09-22 Eric Botcazou <ebotcazou@adacore.com>
9737
9738 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
9739 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
9740
97237784
OH
97412007-09-21 Olivier Hainque <hainque@adacore.com>
9742
9743 * utils.c (type_for_nonaliased_component_p): Return false for
9744 all AGGREGATE_TYPEs.
9745
2adde4ff
EB
97462007-09-17 Eric Botcazou <ebotcazou@adacore.com>
9747
9748 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
9749 object covered by 13.3(19) volatile.
9750
b693daa7
EB
97512007-09-12 Eric Botcazou <ebotcazou@adacore.com>
9752
9753 PR ada/26797
9754 PR ada/32407
9755 * utils.c (unchecked_convert): Use a subtype as the intermediate type
9756 in the special VIEW_CONVERT_EXPR case.
9757
82da9a90
AC
97582007-09-12 Robert Dewar <dewar@adacore.com>
9759
9760 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
9761
9762 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
9763 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
9764 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
9765 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
9766 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
9767 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
9768 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
160c5065 9769 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9e81dbc7
AS
9770 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
9771 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
9772 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
9773 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
9774 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
9775 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
9776 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
9777 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
82da9a90
AC
9778 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
9779 pragma Compiler_Unit and adds it to relevant library units.
9780
97812007-09-12 Ed Schonberg <schonberg@adacore.com>
9782
9783 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
9784 a box need not correspond to any component.
9785
97862007-09-12 Robert Dewar <dewar@adacore.com>
9787
9788 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
9789 the tasking version of the Ada run time when foreign threads are
9790 present and there are no explicit Ada tasks or tasking constructs.
9791
9792 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
9793
97942007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
9795
9796 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
9797 the usage of switch -y.
9798
9799 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
9800 when switch -y is present.
9801
9802 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
9803 leap seconds in Ada.Calendar and its children.
9804
98052007-09-12 Jose Ruiz <ruiz@adacore.com>
9806
9807 * a-extiti.ads (Timer): The discriminant is a "not null access
9808 constant" in the Reference Manual.
9809 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
9810
98112007-09-12 Robert Dewar <dewar@adacore.com>
9812
9813 * a-swuwha.adb: Remove junk RM header
9814
98152007-09-12 Vincent Celier <celier@adacore.com>
9816
9817 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
9818 indicator
9819
9820 * g-bytswa.ads: Minor reformatting
9821
98222007-09-12 Thomas Quinot <quinot@adacore.com>
9823
9e81dbc7 9824 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
82da9a90
AC
9825 Add new constant Thread_Blocking_IO, always True by default, set False
9826 on a per-runtime basis.
9827 (Need_Netdb_Buffer): New constant.
9828
98292007-09-12 Arnaud Charlet <charlet@adacore.com>
9830
9831 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
9832 Added renames for corresponding functions in System.Partition_Interface.
9833
98342007-09-12 Doug Rupp <rupp@adacore.com>
9835
9836 * Makefile.in: Remove VMS specific System.CRTL packages which are no
9837 longer needed.
9838
9839 * s-crtl-vms64.ads: Removed.
9840
09528ed9
OH
98412007-09-12 Olivier Hainque <hainque@adacore.com>
9842
9843 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
9844 with discriminant constraints, generalize the code for BIT_FIELDs
9845 to PACKED fields of constant size and propagate DECL_PACKED.
9846
fa89b6ec
EB
98472007-09-11 Eric Botcazou <ebotcazou@adacore.com>
9848
9849 * decl.c (array_type_has_nonaliased_component): New predicate.
9850 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
9851 set the TYPE_NONALIASED_COMPONENT flag on the type.
9852 <E_Array_Subtype>: Likewise.
9853 * gigi.h (type_for_nonaliased_component_p): Declare.
9854 * utils.c (type_for_nonaliased_component_p): New predicate.
9855 (create_field_decl): Invoke the above predicate to set the
9856 DECL_NONADDRESSABLE_P flag on the field.
9857
e18d6a15
JM
98582007-09-11 Javier Miranda <miranda@adacore.com>
9859
9860 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
9861 in library level record type entities if we are generating statically
9862 allocated dispatch tables.
9863
9864 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
9865 importing/exporting the _tag declaration by new code
9866 importing/exporting the dispatch table wrapper. This change allows us
9867 to statically allocate of the TSD.
9868 (Make_DT.Export_DT): New procedure.
9869 (Build_Static_DT): New function.
9870 (Has_DT): New function.
9871
9872 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
9873 True_Constant and Current_Value. Required to statically
9874 allocate the dispatch tables.
9875 (Check_Allocator): Make function iterative instead of recursive.
9876 Also return inner allocator node, when present, so that we do not have
9877 to look for that node again in the caller.
9878
9e94c78f 98792007-09-11 Jan Hubicka <jh@suse.cz>
e89d6010
JH
9880
9881 * misc.c (gnat_expand_body): Kill.
9882 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
9883
281b604e
AC
98842007-09-10 Robert Dewar <dewar@adacore.com>
9885
9886 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
9887 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
9888 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
9889 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
9890 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
9891 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
9892 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
9893 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
9894 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
9895 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
9896 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
9897 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
9898 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
9899 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
9900 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
9901 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
9902 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
9903 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
9904 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
9905 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
9906 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
9907 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
9908 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
9909 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
9910 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
9911 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
9912 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
9913 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
9914 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
9915 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
9916 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
9917 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
9918 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
9919 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
9920 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
9921 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
9922 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
9923 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
9924 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
9925 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
9926 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
9927 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
9928 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
9929 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
9930 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
9931 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
9932 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
9933 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
9934 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
9935 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
9936 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
9937 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
9938 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
9939 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
9940 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
9941 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
9942 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
9943 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
9944 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
9945 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
9946 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
9947 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
9948 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
9949 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
9950 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
9951 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
9952 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
9953 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
9954 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
9955 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
9956 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
9957 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
9958 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
9959 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
9960 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
9961 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
9962 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
9963 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
9964 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
9965 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
9966 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
9967 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
9968 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
9969
99702007-09-10 Emmanuel Briot <briot@adacore.com>
9971
9972 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
9973 classes ("[]").
9974
99752007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
9976
9977 * adaint.c (__gnat_translate_vms): new function.
9978
99792007-09-10 Gary Dismukes <dismukes@adacore.com>
9980 Thomas Quinot <quinot@adacore.com>
9981
9982 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
9983 create an abstract subprogram in the case of 'Input. For 'Output we now
9984 create a real spec/body when the type is abstract, since it can
9985 potentially be called.
9986 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
9987 body for 'Output when the type is abstract (only the creation of the
9988 body for 'Input is excluded when the type is abstract).
9989 (Stream_Operation_OK): Add an additional condition in the return
9990 statement, so that False will be returned for TTS_Stream_Input if the
9991 associated tagged type is an abstract extension. Add comments for
9992 return statement.
9993 (Expand_N_Object_Declaration): For the case of a shared passive
9994 variable, insert init proc call only after the shared variable
9995 procedures have been processed, because the IP call needs to undergo
9996 shared passive variable reference expansion, which requires these
9997 procedures to be available (and elaborated).
9998
99992007-09-10 Vincent Celier <celier@adacore.com>
10000
10001 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10002 parameter Runtime_Project.
10003
100042007-09-10 Ed Schonberg <schonberg@adacore.com>
10005
10006 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10007 given a box association, the type of the component is discriminated,
10008 and the value of the discriminant is the discriminant of the enclosing
10009 type, retrieve its value from the aggregate itself, where it must have
10010 been supplied.
10011
10012 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10013 to remove other spurious ambiguities on arithmetic operations involving
10014 literals and addresses, on systems where Address is a visible integer
10015 type, when the operator is called in functional notation.
10016 (Try_Primitive_Operation): Within an instance, a call in prefixed form
10017 is legal when the types match, even if the operation is currently
10018 hidden.
10019
100202007-09-10 Ed Schonberg <schonberg@adacore.com>
10021
10022 * sem_ch12.adb (Build_Local_Package): A formal package with no
10023 associations is legal if all formals have defaults. It is not
10024 equivalent to a formal declared with a box.
10025
100262007-09-10 Sergey Rybin <rybin@adacore.com>
10027
10028 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10029
100302007-09-10 Sergey Rybin <rybin@adacore.com>
10031
10032 * gnat_ugn.texi: Add description of the new '-lratio' option
10033 Update 7.3.1 section about availability of the feature.
10034
100352007-09-10 Thomas Quinot <quinot@adacore.com>
10036
10037 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10038 inserted node.
10039
100402007-09-10 Olivier Hainque <hainque@adacore.com>
10041
10042 * Makefile.in: (mips-irix section): Activate build of libgmem.
10043
a56955b1
EB
100442007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10045
10046 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10047 x87 registers.
10048
c03550f6
EB
100492007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10050
10051 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10052 a debug renaming declaration specially.
10053
79646678
EB
100542007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10055
10056 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10057 which a constant renaming is treated as a normal object declaration.
10058 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10059 the N_Indexed_Component case.
10060 <N_Indexed_Component>: Fall through to above case.
10061 <N_Object_Renaming_Declaration>: Return true for all composite types.
10062
d9e161ce
EB
100632007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10064
10065 * decl.c (make_packable_type): If the new type has been given BLKmode,
10066 try again to get an integral mode for it.
10067
0ab29e91 100682007-09-07 Eric Botcazou <ebotcazou@adacore.com>
6ef9a246 10069
0ab29e91 10070 Re-apply accidentally reverted change:
6ef9a246 10071
0ab29e91 10072 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
6ef9a246 10073
0ab29e91 10074 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 10075 get_action_description_for): Replace _Unwind_Word with _uleb128_t
0ab29e91 10076 and _Unwind_SWord with _sleb128_t.
4b459ae4 10077
38f1f8cb
EB
100782007-09-06 Eric Botcazou <ebotcazou@adacore.com>
10079
10080 * trans.c (convert_with_check): Update call to real_2expN.
10081
db2960f4
SL
100822007-09-05 Sandra Loosemore <sandra@codesourcery.com>
10083
10084 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10085 * utils.c (end_subprog_body): Likewise.
10086
d70c0bd6
NC
100872007-09-03 Nick Clifton <nickc@redhat.com>
10088
10089 * Make-lang.in: Change copyright header to refer to version 3 of
10090 the GNU General Public License and to point readers at the
10091 COPYING3 file and the FSF's license web page.
10092 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10093 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10094 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10095 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10096 Likewise.
10097
8a26ebb6
AC
100982007-08-31 Vincent Celier <celier@adacore.com>
10099
10100 PR ada/4720
10101
9e81dbc7 10102 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
8a26ebb6
AC
10103 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10104 (Check_Version_And_Help): New procedure in package Switch to process
10105 switches --version and --help.
10106 Use Check_Version_And_Help in GNAT tools
10107
10108 * make.adb: Ditto.
10109 (Compile_Sources): Make sure that sources that are "excluded" are not
10110 compiled.
10111 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10112 project file is used.
10113 (Version_Switch): Remove, moved to Switch
10114 (Help_Switch): Remove, moved to Switch
10115 (Display_Version): Remove, moved to Switch
10116
10117 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10118 package Switch to process switches --version and --help.
10119 (Display_Version): New procedure
10120
10121 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10122
101232007-08-31 Javier Miranda <miranda@adacore.com>
10124
10125 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10126 internal tags.
10127
101282007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10129
10130 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10131 (Mark_Non_Null): If the node for which we just generated an access check
10132 is a reference to an *in* parameter and the reference appears in the
10133 declarative part of a subprogram body, mark the node as known non null.
10134
101352007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10136
10137 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10138 structure of E_Exception to reflect the new flag.
10139 (Is_Raised, Set_Is_Raised): New inlined routines.
10140 Update the usage of available flag to reflect the addition of Is_Raised.
10141 (Is_Raised, Set_Is_Raised): Bodies of new routines.
10142 (Write_Entity_Flags): Write the status of flag Is_Raised.
10143 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10144 spurious ambiguities when integer literals appear in the context of an
10145 address type that is a visible integer type.
10146
10147 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10148 exceptions never being raised.
10149 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10150 explicitly raised.
10151
101522007-08-31 Javier Miranda <miranda@adacore.com>
10153
10154 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10155 statement when compiling under restriction No_Exceptions_Proparation.
10156
101572007-08-31 Ed Schonberg <schonberg@adacore.com>
10158
10159 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10160 initialization aggregate for the type, generate itype references for
10161 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10162
101632007-08-31 Gary Dismukes <dismukes@adacore.com>
10164
10165 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10166 library-level package renaming, pass the declaration associated with
10167 the renaming's special debug variable to Qualify_Entity_Names to ensure
10168 that its encoded name is properly qualified.
10169
10170 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10171 occurring in the list of entities to qualify, and do not attempt to
10172 traverse an entity list in that case. Variables associated with
10173` library-level package renamings can now occur in the table.
10174
10175 * exp_dbug.ads: Revise documentation of the encoding for renaming
10176 declarations.
10177
101782007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10179
10180 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10181 access type points to an unconstrained array.
10182
101832007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10184
9e81dbc7 10185 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
8a26ebb6
AC
10186 conversion.
10187
10188 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10189 simple redundant qualifications. The check is performed whenever the
10190 expression is a non-overloaded identifier.
10191 (Resolve_Type_Conversion): Enchance the redundant type conversion check
10192 to include loop parameters.
10193 (Valid_Conversion): Avoid generation of spurious error message.
10194
101952007-08-31 Bob Duff <duff@adacore.com>
10196
10197 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10198 concatenations of string literals into a single literal, in order to
10199 avoid very deep recursion in the front end, which was causing stack
10200 overflow.
10201
10202 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10203 string, and the right operand is a string literal (the case of "" &
10204 "..."), optimize by avoiding copying the right operand -- just use the
10205 value of the right operand directly.
10206
10207 * stringt.adb (Store_String_Chars): Optimize by growing the
10208 String_Chars table all at once, rather than appending characters one by
10209 one.
10210 (Write_String_Table_Entry): If the string to be printed is very long,
10211 just print the first few characters, followed by the length. Otherwise,
10212 doing "pn(n)" in the debugger can take an extremely long time.
10213
10214 * sem_prag.adb (Process_Interface_Name): Replace loop doing
10215 Store_String_Char with Store_String_Chars.
10216
102172007-08-31 Vincent Celier <celier@adacore.com>
10218
10219 * prj-attr.adb: Add new attribute Excluded_Source_Files
10220
10221 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10222 Locally_Removed_Files.
10223
10224 * snames.ads, snames.adb: New standard name Excluded_Source_Files
10225
102262007-08-31 Ed Schonberg <schonberg@adacore.com>
10227
10228 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10229 clauses of subunits, ignore limited_with_clauses that are illegal and
10230 have not been fully analyzed.
10231
102322007-08-31 Ed Schonberg <schonberg@adacore.com>
10233
10234 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10235 flag, for effiency. It is called when analyzing arithmetic operators
10236 and also for actuals in calls that are universal_integers. The flag is
10237 set for the predefined type address, and for any type or subtype
10238 derived from it.
10239
10240 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10241 Universal_Integer, when the formal is a descendent of address and the
10242 call appears in user code.
10243 (Analyze_Selected_Component): if the prefix is a private extension, the
10244 tag component is visible.
10245
10246 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10247 entity flag.
10248
102492007-08-31 Robert Dewar <dewar@adacore.com>
10250
10251 * s-fileio.adb (Open): Normalize file name to lower case in non-case
10252 sensitive file name systems to avoid unexpected mismatch in Vista.
10253
102542007-08-31 Vincent Celier <celier@adacore.com>
10255
10256 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10257
102582007-08-31 Vincent Celier <celier@adacore.com>
10259
10260 * symbols-vms.adb (Initialize): Read symbol files with continuation
10261 lines
10262 (Finalize): If symbol is long, split the line
10263
102642007-08-31 Vincent Celier <celier@adacore.com>
10265
10266 * fmap.ads: Minor comment updates
10267
102682007-08-31 GNAT Script <nobody@adacore.com>
10269
10270 * Make-lang.in: Makefile automatically updated
10271
102722007-08-31 Bob Duff <duff@adacore.com>
10273
10274 * sinfo.ads: Minor comment fix.
10275
102762007-08-31 Thomas Quinot <quinot@adacore.com>
10277
10278 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10279 with implementation.
10280 Documentation cleanup only.
10281
102822007-08-31 Sergey Rybin <rybin@adacore.com>
10283
10284 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10285 gnatpp '--separate-stmt-name' option.
10286 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10287 option.
10288
10289 * gnat_ugn.texi: Add description for the new gnatpp
10290 '--separate-stmt-name' and '--use-on-new-line' options.
10291
22d2aa96
BE
102922007-08-31 Ben Elliston <bje@au.ibm.com>
10293
10294 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10295 when compiling for powerpc64-*-linux.
10296 * system-linux-ppc64.ads: New file.
10297
51743df8
KW
102982007-08-22 Krister Walfridsson <cato@df.lth.se>
10299
10300 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10301 NetBSD.
10302
ac7d7749
KG
103032007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10304
10305 * misc.c (gnat_type_max_size): Constify.
10306
833eddff
AC
103072007-08-16 Gary Dismukes <dismukes@adacore.com>
10308
10309 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10310 associated with Standard_Debug_Renaming_Type, to be used as the type of
10311 the special variables whose names provide debugger encodings for
10312 renaming declarations.
10313
10314 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10315 (Set_Debug_Renaming_Link): Change to set Node25.
10316 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10317 (Write_Field25_Name): Add case for E_Variable to output
10318 "Debug_Renaming_Link".
10319 (Write_Field23_Name): Correct the output string for "Limited_View".
10320
10321 * exp_dbug.adb: Add with and use of Tbuild.
10322 (Debug_Renaming_Declaration): Replace creation of an enumeration type
10323 and literal with creation of a variable of type
10324 Standard_Debug_Renaming_Type whose name encodes both the renamed object
10325 and the entity of the renaming declaration.
10326 (Qualify_Entity_Name): Add the delayed qualification of the entity name
10327 part of the name of a variable that has a Debug_Renaming_Link.
10328
10329 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10330 special type to be associated with variables that provide debugger
10331 encodings for renaming declarations.
10332
103332007-08-16 Gary Dismukes <dismukes@adacore.com>
10334 Ed Schonberg <schonberg@adacore.com>
10335 Javier Miranda <miranda@adacore.com>
10336
10337 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10338 ancestor part given by an aggregate to test for an unchecked conversion,
10339 since this can occur in some cases when the ancestor part is a function
10340 call, and we don't want to fall into the recursive call to this
10341 procedure in that case.
10342
10343 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10344 stream attributes on limited types to account for user-specified
10345 attributes as well as whether Input (resp. Output) becomes available
10346 due to Read (resp. Write) being available for the type. Change Boolean
10347 variable to the more accurate name
10348 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10349 double-"not" predicate at beginning of return statement to more
10350 understandable form.
10351
10352 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10353 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10354 in a block statement and use that as the first statement of the
10355 expanded return rather than incorrectly using the handled sequence as
10356 the first statement.
10357
10358 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10359 operation, generate an explicit freeze node for it rather than
10360 generating extra formals, to ensure that gigi has the proper order of
10361 elaboration for anonymous subtypes in the signature of the subprograms.
10362 (Build_In_Place_Formal): Move assertion to beginning of loop.
10363 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10364 applied to a function call (occurs for some cases of 'Input).
10365 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10366 applied to a function call (occurs for some cases of 'Input).
10367
10368 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10369 2005, generate an extended return statement enclosing the result object
10370 and 'Read call.
10371
10372 * freeze.adb (Freeze_Record_Type): Extend the current management of
10373 components that are access type with an allocator as default value: add
10374 missing support to the use of qualified expressions of the
10375 allocator (which also cause freezing of the designated type!)
10376 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10377 dispatching operation, since extra formals may be needed by calls to
10378 build-in-place functions (such as stream 'Input).
10379
10380 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10381 formals for 'Constrained and accessibility level in the case of a
10382 predefined dispatching operation.
10383
10384 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10385 point, no need to find the parent node.
10386
103872007-08-16 Javier Miranda <miranda@adacore.com>
10388
10389 * exp_attr.adb (Attribute_Priority): Add missing support for entries
10390 and entry barriers.
10391
103922007-08-16 Javier Miranda <miranda@adacore.com>
10393
10394 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10395 is not really required and can introduce regression with the debugger.
10396 The original problem is fixed with the patch written for checks.adb.
10397
103982007-08-16 Thomas Quinot <quinot@adacore.com>
10399
10400 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10401 Range_Check on Allocated_Table.
10402
104032007-08-16 Vincent Celier <celier@adacore.com>
10404
10405 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10406 Including_Non_Switch set to False.
10407 (Gnatmake): For the compiler, call Test_If_Relative_Path with
10408 Including_Non_Switch set to False.
10409
10410 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10411 parameter Including_Non_Switch, defaulted to True. When
10412 Including_Non_Switch is False, options that are not switches and
10413 appear as relative path are not converted to absolute paths.
10414
104152007-08-16 Nicolas Roche <roche@adacore.com>
10416
10417 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10418 makefiles
10419
10420 * Make-lang.in: Update dependencies
10421
104222007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10423
10424 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10425 currently inspected is a selected component, retrieve the entity of
10426 its selector.
10427 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10428 from the immediate ancestor of Main_Unit_Entity.
10429 (Install_Limited_Withed_Unit): Do not install the limited view of
10430 package P if P is reachable through an ancestor chain from package C
10431 and C also has a with clause for P in its body.
10432 (Has_Limited_With_Clause): New routine.
10433 (Has_With_Clause): New routine.
10434
104352007-08-16 Ed Schonberg <schonberg@adacore.com>
10436
10437 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10438 generic for an enclosing instance is a global reference, even though
10439 its scope is the enclosing instance.
10440
104412007-08-16 Gary Dismukes <dismukes@adacore.com>
10442 Javier Miranda <miranda@adacore.com>
10443
10444 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10445 initialize a limited object.
10446 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10447 13/2 and 14/2.
10448 Make sure Has_Complex_Representation is inherited by derived type.
10449
104502007-08-16 Robert Dewar <dewar@adacore.com>
10451
10452 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10453 exception case
10454
104552007-08-16 Ed Schonberg <schonberg@adacore.com>
10456
10457 * sem_disp.adb (Check_Dispatching_Operation): If the operation
10458 implements an operation inherited from a progenitor interface, verify
10459 that they are subtype-conformant.
10460
104612007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10462 Bob Duff <duff@adacore.com>
10463 Nicolas Setton <setton@adacore.com>
10464
10465 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10466 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10467 the statement which is being resolved comes from a predefined library
10468 unit, all non-predefined library interpretations are skipped.
10469 (Resolve_Op_Concat): If string concatenation was folded in the parser,
10470 but the "&" is user defined, give an error, because the folding would
10471 be wrong.
10472
10473 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10474 the parser has folded a long sequence of concatenations of string
10475 literals.
10476
10477 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10478 and "JMP_BUF" variables as artificial.
10479 (N_String_Literal): Do not use alloca for very long string literals. Use
10480 xmalloc/free instead. Otherwise the stack might overflow.
10481
10482 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10483 compiler.
10484
104852007-08-16 Vincent Celier <celier@adacore.com>
10486
10487 * vms_conv.adb (Process_Argument): Ensure that project related options
10488 are not put in the -cargs section when using GNAT COMPILE.
10489
104902007-08-16 Robert Dewar <dewar@adacore.com>
10491
10492 * gnat_ugn.texi: Add note on preprocessing (output file not written)
10493
104942007-08-16 Thomas Quinot <quinot@adacore.com>
10495
10496 * a-tags.adb: Minor reformatting.
10497
104982007-08-16 Bob Duff <duff@adacore.com>
10499
10500 * sem_type.ads, sem_ch4.adb: Minor reformatting.
10501
ab6328d0
AC
105022007-08-14 Thomas Quinot <quinot@adacore.com>
10503
9e81dbc7 10504 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
ab6328d0
AC
10505 s-osinte-interix.ads, system-interix.ads: Removed.
10506
105072007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
10508
10509 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10510 calls to Check_Within_Time_Bounds.
10511 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10512 (Difference): Account for possible rounding of the resulting difference
10513
105142007-08-14 Robert Dewar <dewar@adacore.com>
10515
10516 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10517 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10518 s-osinte-solaris.adb, s-osinte-solaris.ads,
10519 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10520
10521 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10522 switch -gnatyS. Enable -gnatyS in GNAT style check mode
10523
105242007-08-14 Robert Dewar <dewar@adacore.com>
10525 Ed Schonberg <schonberg@adacore.com>
10526
9e81dbc7 10527 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
ab6328d0
AC
10528 Suppress unmodified in-out parameter warning in some cases
10529 This patch is a also fairly significant change to the way suppressible
10530 checks are handled.
10531
10532 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10533 needed for access to concurrent record types generated by the expander.
10534 (Generate_Range_Check): When generating a temporary to capture the
10535 value of a conversion that requires a range check, set the type of the
10536 temporary before rewriting the node, so that the type is always
10537 properly placed for back-end use.
10538 (Apply_Float_Conversion_Check): Handle case where the conversion is
10539 truncating.
10540 (Get_Discriminal): Code reformatting. Climb the scope stack looking
10541 for a protected type in order to examine its discriminants.
10542
105432007-08-14 Robert Dewar <dewar@adacore.com>
10544 Gary Dismukes <dismukes@adacore.com>
10545 Ed Schonberg <schonberg@adacore.com>
10546 Thomas Quinot <quinot@adacore.com>
10547
9e81dbc7 10548 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
ab6328d0
AC
10549 a-stwisu.adb, a-strsup.adb: Fix warnings for range
10550 tests optimized out.
10551
10552 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10553 (Get_Allocator_Final_List): For the case of an anonymous access type
10554 that has a specified Associated_Final_Chain, do not go up to the
10555 enclosing scope.
10556 (Expand_N_Type_Conversion): Test for the case of renamings of access
10557 parameters when deciding whether to apply a run-time accessibility
10558 check.
10559 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10560 aggregate code before allocator, and ahead of declaration for
10561 temporary, to prevent access before elaboration when the allocator is
10562 an actual for an access parameter.
10563 (Expand_N_Type_Conversion): On an access type conversion involving an
10564 access parameter, do not apply an accessibility check when the
10565 operand's original node was an attribute other than 'Access. We now
10566 create access conversions for the expansion of 'Unchecked_Access and
10567 'Unrestricted_Access in certain cases and clearly accessibility should
10568 not be checked for those.
10569
10570 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
10571 includes a type conversion of a packed component that has been expanded,
10572 recover the original expression for the object, and use this expression
10573 in the post-call assignment statement, so that the assignment is made
10574 to the object and not to a back-end temporary.
10575 (Freeze_Subprogram): In case of primitives of tagged types not defined
10576 at the library level force generation of code to register the primitive
10577 in the dispatch table. In addition some code reorganization has been
10578 done to leave the implementation clear.
10579 (Expand_Call): When expanding an inherited implicit conversion,
10580 preserve the type of the inherited function after the intrinsic
10581 operation has been expanded.
10582
10583 * exp_ch2.ads, exp_ch2.adb
10584 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
10585 of an entry formal appearing in an assignment statement does not assign
10586 to the formal.
10587 (Expand_Current_Value): Instead of calling a routine to determine
10588 whether the prefix of an attribute reference should be optimized or
10589 not, prevent the optimization of such prefixes all together.
10590
10591 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
10592 component whose prefix is known to be of an access type is an implicit
10593 dereference and does not assign to the prefix.
10594
105952007-08-14 Ed Schonberg <schonberg@adacore.com>
10596 Robert Dewar <dewar@adacore.com>
10597
10598 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
10599 itype is visited, make an entry into table to link associated node and
10600 new itype.
10601 Add comments and correct harmless error in Build_NCT_Hash_Tables
10602 (Array_Aggr_Subtype): Associate each itype created for an index type to
10603 the corresponding range construct, and not to the aggregate itself. to
10604 maintain a one-to-one correspondence between itype and its associated
10605 node, to prevent errors when complex expression is copied.
10606 Fix mishandling of multiple levels of parens
10607
10608 * sem_aggr.adb: Create a limited view of an incomplete type, to make
10609 treatment of limited views uniform for all visible declarations in a
10610 limited_withed package.
10611 (New_Copy_Tree): If hash table is being used and itype is visited,
10612 make an entry into table to link associated node and new itype.
10613 (Resolve_Record_Aggregate): Do not add an others box association for a
10614 discriminated record component that has only discriminants, when there
10615 is a box association for the component itself.
10616
10617 * par-ch4.adb: Fix mishandling of multiple levels of parens
10618
106192007-08-14 Robert Dewar <dewar@adacore.com>
10620
10621 * comperr.adb: Fix problem with suppressing warning messages from gigi
10622
9e81dbc7 10623 * erroutc.ads, erroutc.adb, errout.ads,
ab6328d0
AC
10624 errout.adb (Write_Eol): Remove trailing spaces before writing the line
10625 (Write_Eol_Keep_Blanks): New procedure to write a line, including
10626 possible trailing spaces.
10627 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10628 Fix problem with suppressing warning messages from back end
10629 Improve handling of deleted warnings
10630
9e81dbc7 10631 * gnat1drv.adb:
ab6328d0
AC
10632 Fix problem with suppressing warning messages from back end
10633 Handle setting of Static_Dispatch_Tables flag.
10634
9e81dbc7 10635 * prepcomp.adb:
ab6328d0
AC
10636 Fix problem with suppressing warning messages from back end
10637
10638 * exp_intr.adb: Improve handling of deleted warnings
10639
106402007-08-14 Robert Dewar <dewar@adacore.com>
10641
10642 * debug.adb: Improve -gnatdI to cover all cases of serialization
10643 Add documentation of dZ, d.t
10644
10645 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
10646 serialization.
10647 (Sprint_Node_Actual): Generate new output associated with implicit
10648 importation and implicit exportation of object declarations.
10649
106502007-08-14 Ed Schonberg <schonberg@adacore.com>
10651 Robert Dewar <dewar@adacore.com>
10652 Javier Miranda <miranda@adacore.com>
10653 Gary Dismukes <dismukes@adacore.com>
10654
10655 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
10656 to make treatment of limited views uniform for all visible declarations
10657 in a limited_withed package.
10658 Improve warnings for in out parameters
10659 (Set_Related_Interaface/Related_Interface): Allow the use of this
10660 attribute with constants.
10661 (Write_Field26_Name): Handle attribute Related_Interface in constants.
10662 Warn on duplicate pragma Preelaborable_Initialialization
10663
10664 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
10665 generation of a freezing node to ensure proper management of null
10666 excluding access types in the backend.
10667 (Create_Extra_Formals): Test base type of the formal when checking for
10668 the need to add an extra accessibility-level formal. Pass the entity E
10669 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
10670 originally being done in a couple of cases), to ensure that the
10671 Extra_Formals list gets set on the entity E when the first entity is
10672 added.
10673 (Conforming_Types): Add missing calls to Base_Type to the code that
10674 handles anonymous access types. This is required to handle the
10675 general case because Process_Formals builds internal subtype entities
10676 to handle null-excluding access types.
10677 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10678 functions that need it, even when not marked Requires_Overriding.
10679 Improve warnings for in out parameters
10680 (Analyze_Function_Return): Warn for disallowed null return
10681 Warn on return from procedure with unset out parameter
10682 Ensure consistent use of # in error messages
10683 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
10684 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
10685 the implicit conversion of the expression done for anonymous access
10686 types. This is required to generate the code of the null excluding
10687 check (if required).
10688
10689 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
10690 A formal parameter is never publicly referenceable outside of its body.
10691 (Check_References): For an unreferenced formal parameter in an accept
10692 statement, use the same warning circuitry as for subprogram formal
10693 parameters.
10694 (Warn_On_Unreferenced_Entity): New subprogram, taken from
10695 Output_Unreferenced_Messages, containing the part of that routine that
10696 is now reused for entry formals as described above.
10697 (Goto_Spec_Entity): New function
10698 (Check_References): Do not give IN OUT warning for dispatching operation
10699 Improve warnings for in out parameters
10700 (Test_Ref): Check that the entity is not undefinite before calling
10701 Scope_Within, in order to avoid infinite loops.
10702 Warn on return from procedure with unset out parameter
10703 Improved warnings for unused variables
10704
107052007-08-14 Robert Dewar <dewar@adacore.com>
10706 Javier Miranda <miranda@adacore.com>
10707 Gary Dismukes <dismukes@adacore.com>
10708
10709 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
10710 (Expand_N_Attribute_Reference): Further unify the handling of the
10711 three forms of access attributes, using common code now for all three
10712 cases. Add a test for the case of applying an access attribute to
10713 an explicit dereference when the context is an access-to-interface
10714 type. In that case we need to apply the conversion to the prefix
10715 of the explicit dereference rather than the prefix of the attribute.
10716 (Attribute_Version, UET_Address): Set entity as internal to ensure
10717 proper dg output of implicit importation.
10718 (Expand_Access_To_Type): Removed.
10719 (Expand_N_Attribute_Reference): Merge the code from the three cases
10720 of access attributes, since the processing is largely identical for
10721 these cases. The substantive fix here is to process the case of a
10722 type name prefix (current instance case) before handling the case
10723 of interface prefixes.
10724
107252007-08-14 Thomas Quinot <quinot@adacore.com>
10726 Ed Schonberg <schonberg@adacore.com>
10727 Javier Miranda <miranda@adacore.com>
10728 Robert Dewar <dewar@adacore.com>
10729
10730 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
10731 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
10732 type that is an anonymous access to controlled object, establish
10733 an associated finalization chain to avoid corrupting the global
10734 finalization list when a dynamically allocated object designated
10735 by such a component is deallocated.
10736 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10737 functions that need it, even when not marked Requires_Overriding.
10738 (Initialize_Tag): Replace call to has_discriminants by call to
10739 Is_Variable_Size_Record in the circuitry that handles the
10740 initialization of secondary tags.
10741 (Is_Variable_Size_Record): New implementation.
10742 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
10743 Suppress_Initialization pragma for a derived type.
10744 (Is_Variable_Size_Record): New subprogram.
10745 (Build_Offset_To_Top_Functions): New implementation that simplifies the
10746 initial version of this routine and also fixes problems causing
10747 incomplete initialization of the table of interfaces.
10748 (Build_Init_Procedure): Improve the generation of code to initialize the
10749 the tag components of secondary dispatch tables.
10750 (Init_Secondary_Tags): New implementation that simplifies the previous
10751 version of this routine.
10752 (Make_DT): Add parameter to indicate when type has been frozen by an
10753 object declaration, for diagnostic purposes.
10754 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
10755 diagnose attemps to freeze a subprogram when some untagged type of its
10756 profile is a private type whose full view has not been analyzed yet.
10757 (Freeze_Array_Type): Generate init proc for packed array if either
10758 Initialize or Normalize_Scalars is set.
10759 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
10760 constructing the new profile, copy the null_exclusion indicator for each
10761 parameter, to ensure full conformance of the new body with the spec.
10762
10763 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
10764 Create wrappers for constructor functions that need it, even when not
10765 marked Requires_Overriding.
10766 (Covers): Handle properly designated types of anonymous access types,
10767 whose non-limited views are themselves incomplete types.
10768 (Add_Entry): Use an entity to store the abstract operation which hides
10769 an interpretation.
10770 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
10771 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
10772 initialization aggregate.
10773 (Function_Interp_May_Be_Hidden): Rename to
10774 Function_Interp_Has_Abstract_Op.
10775 (Has_Compatible_Type): Remove machinery that skips interpretations if
10776 they are labeled as potentially hidden by an abstract operator.
10777 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
10778 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
10779 (Write_Overloads): Output the abstract operator if present.
10780 (Add_Entry): Before inserting a new entry into the interpretation table
10781 for a node, determine whether the entry will be disabled by an abstract
10782 operator.
10783 (Binary_Op_Interp_May_Be_Hidden): New routine.
10784 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
10785 aggregate.
10786 (Function_Interp_May_Be_Hidden): New routine.
10787 (Has_Compatible_Type): Do not consider interpretations hidden by
10788 abstract operators when trying to determine whether two types are
10789 compatible.
10790 (Has_Hidden_Interp): New routine.
10791 (Set_May_Be_Hidden_Interp): New routine.
10792 (Write_Overloads): Write the status of flag May_Be_Hidden.
10793
107942007-08-14 Ed Schonberg <schonberg@adacore.com>
10795 Javier Miranda <miranda@adacore.com>
10796
10797 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
10798 types declared in the declarative part of a nested package body or in
10799 the proper body of a stub.
10800 (Set_All_DT_Position): Add missing check to avoid wrong assignation
10801 of the same dispatch table slot to renamed primitives.
10802 (Make_Select_Specific_Data_Table): Handle private types.
10803 (Tagged_Kind): Handle private types.
10804 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
10805 output of implicit importation and exportation.
10806 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
10807 first formal of the thunk is always associated with the controlling
10808 type. In addition perform the following code cleanup: remove formal
10809 Thunk_Alias which is no longer required, cleanup evaluation of the
10810 the controlling type, and update the documentation.
10811 Replace occurrence of Default_Prim_Op_Count by
10812 Max_Predef_Prims. Addition of compile-time check to verify
10813 that the value of Max_Predef_Prims is correct.
10814 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
10815 (Make_DT): Add parameter to indicate when type has been frozen by an
10816 object declaration, for diagnostic purposes.
10817 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
10818 construction of statically allocated dispatch tables.
10819 (Make_DT): In case of library-level tagged types export the declaration
10820 of the primary tag. Remove generation of tags (now done by Make_Tags).
10821 Additional modifications to handle non-static generation of dispatch
10822 tables. Take care of building tables for asynchronous interface types
10823 (Make_Tags): New subprogram that generates the entities associated with
10824 the primary and secondary tags of Typ and fills the contents of Access_
10825 Disp_Table. In case of library-level tagged types imports the forward
10826 declaration of the primary tag that will be declared later by Make_DT.
10827 (Expand_Interface_Conversion): In case of access types to interfaces
10828 replace an itype declaration by an explicit type declaration to avoid
10829 problems associated with the scope of such itype in transient blocks.
10830
108312007-08-14 Robert Dewar <dewar@adacore.com>
10832 Ed Schonberg <schonberg@adacore.com>
10833 Javier Miranda <miranda@adacore.com>
10834
9e81dbc7 10835 * exp_util.ads, exp_util.adb:
ab6328d0
AC
10836 This patch replaces a number of occurrences of explicit tests for N_Null
10837 with calls to Known_Null. This improves tracking of null values, since
10838 Known_Null also catches null constants, and variables currently known to
10839 be null, so we get better tracking.
10840 (Ensure_Defined): create an itype reference only in the scope of the
10841 itype.
10842 (Side_Effect_Free): A selected component of an access type that
10843 denotes a component with a rep clause must be treated as not
10844 side-effect free, because if it is part of a linked structure its
10845 value may be affected by a renaming.
10846 (Expand_Subtype_From_Expr): For limited objects initialized with build
10847 in place function calls, do nothing; otherwise we prematurely introduce
10848 an N_Reference node in the expression initializing the object, which
10849 breaks the circuitry that detects and adds the additional arguments to
10850 the called function. Bug found working in the new patch for statically
10851 allocated dispatch tables.
10852 (Is_Library_Level_Tagged_Type): New subprogram.
10853 (Remove_Side_Effects): If the expression of an elementary type is an
10854 operator treat as a function call.
10855 (Make_Literal_Range): If the index type of the array is not integer, use
10856 attributes properly to compute the constraint on the resulting aggregate
10857 which is a string.
10858
10859 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
10860 class-wide type whose base type is an incomplete private type, leave
10861 class-wide type unfrozen so that freeze nodes can be generated
10862 properly at a later point.
10863 (Freeze_Entity, array case): Handle case of pragma Pack and component
10864 size attributre clause for same array.
10865
108662007-08-14 Vincent Celier <celier@adacore.com>
10867
10868 * prj.ads, prj.adb: Update Project Manager to new attribute names for
10869 gprbuild.
10870 Allow all valid declarations in configuration project files
10871 (Reset): Initialize all tables and hash tables in the project tree data
10872 Major update of the Project Manager and of the project aware tools,
10873 including gprmake, so that the same sources in the GNAT repository
10874 can be used by gprbuild.
10875 (Slash_Id): Change type to be Path_Name_Type
10876 (Slash): Return a Path_Name_Type instead of a File_Name_Type
10877
10878 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
10879 gprbuild.
10880 Update Project Manager to new attribute names for ghprbuild
10881 Allow all valid declarations in configuration project files
10882 Major update of the Project Manager and of the project aware tools,
10883 including gprmake, so that the same sources in the GNAT repository
10884 can be used by gprbuild.
10885
9e81dbc7 10886 * prj-com.ads:
ab6328d0
AC
10887 Major update of the Project Manager and of the project aware tools,
10888 including gprmake, so that the same sources in the GNAT repository
10889 can be used by gprbuild.
10890
10891 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
10892 insensitive flag for attributes with optional index.
10893 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
10894 array attribute, put the index in lower case.
10895 Update Project Manager to new attribute names for ghprbuild
10896 Allow all valid declarations in configuration project files
10897 Major update of the Project Manager and of the project aware tools,
10898 including gprmake, so that the same sources in the GNAT repository
10899 can be used by gprbuild.
10900
9e81dbc7 10901 * prj-env.ads, prj-env.adb:
ab6328d0
AC
10902 Major update of the Project Manager and of the project aware tools,
10903 including gprmake, so that the same sources in the GNAT repository
10904 can be used by gprbuild.
10905 (Get_Reference): Change type of parameter Path to Path_Name_Type
10906
10907 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
10908 removing '-' from the path to start with the first character of the
10909 next directory.
10910 Major update of the Project Manager and of the project aware tools,
10911 including gprmake, so that the same sources in the GNAT repository
10912 can be used by gprbuild.
10913 Major update of the Project Manager and of the project aware tools,
10914 including gprmake, so that the same sources in the GNAT repository
10915 can be used by gprbuild.
10916
9e81dbc7 10917 * prj-nmsc.ads, prj-nmsc.adb:
ab6328d0
AC
10918 Update Project Manager to new attribute names for ghprbuild
10919 Allow all valid declarations in configuration project files
10920 (Search_Directories): Detect subunits that are specified with an
10921 attribute Body in package Naming. Do not replace a source/unit in the
10922 same project when the order of the source dirs are known. Detect
10923 duplicate sources/units in the same project when the order of the
10924 source dirs are not known.
10925 (Check_Ada_Name): Allow all identifiers that are not reserved words
10926 in Ada 95.
10927 Major update of the Project Manager and of the project aware tools,
10928 including gprmake, so that the same sources in the GNAT repository
10929 can be used by gprbuild.
10930 (Look_For_Sources): If the list of sources is empty, set the object
10931 directory of non extending project to nil.
10932 Change type of path name variables to be Path_Name_Type
10933 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
10934 otherwise creating missing directories will fail.
10935
9e81dbc7 10936 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
ab6328d0
AC
10937 prj-part.ads, prj-part.adb:
10938 Major update of the Project Manager and of the project aware tools,
10939 including gprmake, so that the same sources in the GNAT repository
10940 can be used by gprbuild.
10941
10942 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
10943 insensitive flag for attributes with optional index.
10944 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
10945 array attribute, put the index in lower case.
10946 (Parse_Variable_Reference): Allow the current project name to be used in
10947 the prefix of an attribute reference.
10948
10949 * prj-util.ads, prj-util.adb
10950 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
10951 defaulted to False. When True, always check against indexes in lower
10952 case.
10953
9e81dbc7 10954 * snames.ads, snames.h, snames.adb:
ab6328d0
AC
10955 Update Project Manager to new attribute names for gprbuild
10956 Allow all valid declarations in configuration project files
10957
109582007-08-14 Robert Dewar <dewar@adacore.com>
10959 Ed Schonberg <schonberg@adacore.com>
10960
10961 * opt.ads: Warning for non-local exception propagation now off by
10962 default
10963 New switch -gnatI to disable representation clauses
10964 Implement new pragma Implicit_Packing
10965
9e81dbc7 10966 * usage.adb:
ab6328d0
AC
10967 Warning for non-local exception propagation now off by default
10968 Add warning for unchecked conversion of pointers wi different
10969 conventions.
10970 New switch -gnatI to disable representation clauses
10971
10972 * usage.adb: new switch -gnatyS
10973
10974 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
10975 note that aggregates of anonymous array types are not flagged.
10976 -gnatwc now includes membership tests optimized away
10977 -gnatw.x warnings are now off by default
10978 Added conditional compilation Appendix
10979 Add documentation of -gnatI
10980 Add documentation for new -gnatyS style check
10981 Update documentation about SAL and auto-init on Windows.
10982
9e81dbc7 10983 * gnat_rm.texi:
ab6328d0
AC
10984 Add documentation for pragma Check_Name and 'Enabled attribute
10985 Document that Eliminate on dispatching operation is ignored
10986 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
10987 Document pragma Main
10988 Document pragma Implicit_Packing
10989
10990 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
10991 different conventions
10992 New switch -gnatI to disable representation clauses
10993
10994 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
10995 recognized, report the invalid characters including "-gnat" instead of
10996 just the first character in the switch.
10997 New switch -gnatI to disable representation clauses
10998 Set Warn_On_Object_Renames_Function true for -gnatg
10999
11000 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11001 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11002 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11003 to switch -aP (add directory to project search dir).
11004
11005 * par-prag.adb: Implement new pragma Implicit_Packing
11006
11007 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11008 type as having a non-standard representation, to force expansion on
11009 conversion to related types.
11010 (Analyze_Pragma): Warn on misspelled pragma
11011 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11012 Ensure consistent use of # in error messages
11013 Implement pragma Implicit_Packing
11014
110152007-08-14 Olivier Hainque <hainque@adacore.com>
11016 Eric Botcazou <ebotcazou@adacore.com>
11017
11018 * targtyps.c (get_target_maximum_default_alignment): New function.
11019 Maximum alignment
11020 that the compiler might choose by default for a type or object.
11021 (get_target_default_allocator_alignment): New function. Alignment known
11022 to be honored by the target default allocator.
11023 (get_target_maximum_allowed_alignment): New function. Maximum alignment
11024 we might accept for any type or object on the target.
11025 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11026
11027 * gigi.h (get_target_maximum_default_alignment): Declare new function.
11028 (get_target_default_allocator_alignment): Likewise.
11029 (get_target_maximum_allowed_alignment): Likewise.
11030
11031 PR ada/19037
11032 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11033 result of a function call, first try to use a stabilized reference for
11034 a constant renaming too.
11035 (validate_alignment): Use target_maximum_allowed_alignment instead of
11036 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11037 (gnat_to_gnu_entity): Use common nodes directly.
11038 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11039 alignment and size for the object.
11040 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11041 and N_Procedure_Call_Statement.
11042 (takes_address): Rename to lvalue_required_p, add third parameter
11043 'aliased' and adjust recursive calls.
11044 <N_Indexed_Component>: Update 'aliased' from the array type.
11045 <N_Selected_Component>: New case.
11046 <N_Object_Renaming_Declaration>: New Likewise.
11047 (Identifier_to_gnu): Adjust for above changes.
11048 (maybe_stabilize_reference) <CONST_DECL>: New case.
11049
11050 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11051 between type variants.
11052 (build_simple_component_ref): Likewise.
11053 (build_call_alloc_dealloc): Use target_default_allocator_alignment
11054 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11055 aligning type circuitry for allocations from the default storage pool.
11056 (build_allocator): Likewise.
11057 (build_simple_component_ref): Manually fold the reference for a
11058 constructor if the record type contains a template.
11059
11060 * utils.c (value_zerop): Delete.
11061 (gnat_init_decl_processing): Emit debug info for common types.
11062 (rest_of_record_type_compilation): If a union contains a field
11063 with a non-constant qualifier, treat it as variable-sized.
11064 (finish_record_type): Give the stub TYPE_DECL a name.
11065 (rest_of_record_type_compilation): Likewise.
11066 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
11067 types are equivalent array types.
11068 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11069 even if the type is not passed by reference.
11070 (static_ctors, static_dtors): Delete.
11071 (end_subprog_body): Do not record constructors and destructors.
11072 (build_global_cdtor): Delete.
11073 (gnat_write_global_declarations): Do not call build_global_cdtor.
11074
0ab29e91 11075 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
ab6328d0
AC
11076 -fRTS=rtp is specified.
11077 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11078 specified.
11079
11080 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11081 of the personality function with SJLJ exceptions.
11082
9e81dbc7 11083 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
ab6328d0
AC
11084 the name of the personality function with SJLJ exceptions.
11085
110862007-08-14 Robert Dewar <dewar@adacore.com>
11087 Ed Schonberg <schonberg@adacore.com>
11088
11089 * par.ads, par.adb: Improve handling of extra right parens.
11090 (Par): Remove flag From_Limited_With_Clause.
11091
11092 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11093 Improve handling of extra right parens.
11094
110952007-08-14 Robert Dewar <dewar@adacore.com>
11096
11097 * par-tchk.adb (TF_Semicolon): Improve error recovery
11098
110992007-08-14 Robert Dewar <dewar@adacore.com>
11100 Ed Schonberg <schonberg@adacore.com>
11101
11102 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11103 enumeration type, mark all literals as referenced.
11104 (Eval_Attribute, case 'Image): If the argument is an enumeration
11105 literal and names are available, constant-fold but mark nevertheless as
11106 non-static.
11107 Clean up function names.
11108 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11109 comment.
11110 (Requires_Simple_Name_Prefix): Removed.
11111
111122007-08-14 Robert Dewar <dewar@adacore.com>
11113 Ed Schonberg <schonberg@adacore.com>
11114
11115 * sem_ch11.adb: Improved warnings for unused variables
11116
11117 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11118 is a synchronized interface, the derived type is limited.
11119 (Analyze_Object_Declaration): Mark the potential coextensions in the
11120 definition and expression of an object declaration node.
11121 (Build_Derived_Type): For the completion of a private type declaration
11122 with a derived type declaration, chain the parent type's representation
11123 items to the last representation item of the derived type (not the
11124 first one) if they are not present already.
11125 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11126 object declaration of forward references to tags.
11127 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11128 subprogram types can appear as access discriminants of synchronized
11129 types.
11130 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11131 given in prefixed form as a selected component.
11132 (Process_Discriminants): If not all discriminants have defaults, place
11133 error message on a default that is present.
11134 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11135 extend a synchronized tagged type.
11136 Improved warnings for unused variables
11137 (Is_Visible_Component): Fix a visibility hole on a component inherited
11138 by a private extension when parent is itself declared as a private
11139 extension, and the derivation is in a child unit.
11140 (Find_Hidden_Interface): Move spec from the package body.
11141
111422007-08-14 Robert Dewar <dewar@adacore.com>
11143 Ed Schonberg <schonberg@adacore.com>
11144
11145 * sem_ch5.adb: Improve warnings on redundant assignments
11146
11147 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11148 parameter
11149 (Is_Synchronized_Tagged_Type): New subprogram that returns true
11150 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11151 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11152 is set to False. Improves handling of Known_[Not_]Null.
11153 (Wrong_Type): Special case address arithmetic attempt
11154 (Collect_Abstract_Interfaces): Add new formal to allow collecting
11155 abstract interfaces just using the partial view of private types.
11156 (Has_Abstract_Interfaces): Add new formal to allow checking types
11157 covering interfaces using the partial view of private types.
11158 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11159 component still needs to be defined in this case, but is never
11160 initialized as VMs are using other dispatching mechanisms.
11161 (Abstract_Interface_List): For a protected type, use base type to get
11162 proper declaration.
11163 Improve warnings on redundant assignments
11164 (Is_Variable): Handle properly an implicit dereference of a prefixed
11165 function call.
11166 (Build_Actual_Subtype): If this is an actual subtype for an
11167 unconstrained formal parameter, use the sloc of the body for the new
11168 declaration, to prevent anomalises in the debugger.
11169
111702007-08-14 Robert Dewar <dewar@adacore.com>
11171
11172 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11173 dispatching operation
11174
111752007-08-14 Ed Schonberg <schonberg@adacore.com>
11176 Gary Dismukes <dismukes@adacore.com>
11177
9e81dbc7 11178 * exp_aggr.ads,
ab6328d0
AC
11179 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11180 expanded aggregate code before allocator, and ahead of declaration for
11181 temporary, to prevent access before elaboration when the allocator is
11182 an actual for an access parameter.
11183 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11184 the TSD and the table of interfaces.
11185 (Convert_To_Assignments): Augment the test for delaying aggregate
11186 expansion for limited return statements to include the case of extended
11187 returns, to prevent creation of an unwanted transient scope.
11188 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11189 (Expand_Array_Aggregate): Handle aggregates associated with
11190 statically allocated dispatch tables.
11191 (Expand_Record_Aggregate): Handle aggregates associated with
11192 statically allocated dispatch tables.
11193 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11194 of anonymous access type.
11195
111962007-08-14 Ed Schonberg <schonberg@adacore.com>
11197
11198 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11199 is a variable that renames a slice, use the variable itself in the
11200 expannsion when the renamed expression itself may be modified between
11201 the declaration of the renaming and the array assignment.
11202
112032007-08-14 Jerome Guitton <guitton@adacore.com>
11204
9e81dbc7
AS
11205 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11206 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
ab6328d0
AC
11207 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11208 New functions; dummy implementations.
11209
11210 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11211 functions, used to implement the multi-tasks mode routines on VxWorks.
11212
11213 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11214 New functions, thin
11215 binding to the VxWorks routines which have changed between VxWorks 5
11216 and 6.
11217 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11218 which are not callable from a RTP.
11219
11220 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11221 implemented for the multi-tasks mode on VxWorks 5 and 6.
11222
11223 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11224
11225 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11226 functions.
11227
112282007-08-14 Vincent Celier <celier@adacore.com>
11229
9e81dbc7 11230 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
ab6328d0 11231 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
9e81dbc7
AS
11232 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11233 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11234 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
ab6328d0
AC
11235 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11236 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11237 procedure.
11238 (Major_Id_Name): New function.
11239 mlib-tgt.ads/mlib.tgt.adb:
11240 (Library_Major_Minor_Id_Supported): New function, default returns True
11241 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11242 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11243 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11244 Implementation of Library_Major_Minor_Id_Supported returns False
11245 clean.adb:
11246 (Clean_Library_Directory): If major/minor ids are supported, clean all
11247 library files.
11248 Major update of the Project Manager and of the project aware tools,
11249 including gprmake, so that the same sources in the GNAT repository
11250 can be used by gprbuild.
11251
112522007-08-14 Olivier Hainque <hainque@adacore.com>
11253
11254 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11255 (GCC_ZCX_Support): Switch to True.
9e81dbc7 11256
ab6328d0
AC
11257 * s-intman-solaris.adb (Notify_Exception): Call
11258 Adjust_Context_For_Raise before raising, as expected for signal
11259 handlers in general.
9e81dbc7 11260
ab6328d0
AC
11261 * s-intman-posix.adb (Notify_Exception): Remove declaration of
11262 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11263 to other implementation bodies.
9e81dbc7 11264
ab6328d0
AC
11265 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11266 be visible by multiple implementation bodies.
9e81dbc7 11267
ab6328d0
AC
11268 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11269 only for conditions coming from hardware.
11270 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11271 adjustments to signal context prior to exception raise from signal
11272 handler.
11273 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11274 mode.
11275 Solaris section: (__gnat_adjust_context_for_raise): New function.
11276 Implementation of the machine context adjustments to perform prior to
11277 raise from a signal handler. Version for both sparc and x86.
11278 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11279 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11280 prior to raising as expected for any handler, before possible nested
11281 faults to make sure all the contexts in a chain have been adjusted by
11282 the time we propagate.
11283
112842007-08-14 Pascal Obry <obry@adacore.com>
11285
11286 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11287 (SYSTEM_INFO): New record.
11288 (SetThreadIdealProcessor): New imported routine needed for supporting
11289 task_info pragma on Windows.
11290
11291 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11292 info can be applied to the current host.
11293 (Create_Task): Set the ideal processor if information is present.
11294
11295 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11296 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11297
112982007-08-14 Olivier Hainque <hainque@adacore.com>
11299
11300 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11301 stack size and initial stack pointer value for a given task.
11302 (Enter_Task): Get the stack attributes of the task we are entering and
11303 let the stack checking engine know about them.
11304
11305 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11306 Let the stack-checking engine know about the initial sp value and stack
11307 size associated with the current task.
11308 (Set_Stack_Info): If a stack base has been notified for the current
11309 task, honor it. Fallback to the previous less accurate method otherwise.
11310
11311 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11312
113132007-08-14 Ed Schonberg <schonberg@adacore.com>
11314
11315 * sem_ch10.adb: Create a limited view of an incomplete type, to make
11316 treatment of limited views uniform for all visible declarations in a
11317 limited_withed package.
11318 Set flag indicating that a subprogram body for a child unit has a
11319 generated spec.
11320 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11321 separate declaration, remove the unit name from visibility after
11322 compilation, so that environment is clean for subsequent compilations.
11323 (Install_Limited_Context_Clauses): Do not install a
11324 limited_private_with_clause unless the current unit is a body or a
11325 private child unit.
11326 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11327 in the same fashion.
11328 (Install_Limited_Withed_Unit): Do not install a limited with clause if
11329 it applies to the declaration of the current package body.
11330 (Remove_Private_With_Clauses): If there is a regular with_clause for
11331 the unit, delete Private_With_Clause from context, to prevent improper
11332 hiding when processing subsequent nested packages and instantiations.
11333
113342007-08-14 Jose Ruiz <ruiz@adacore.com>
11335
11336 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11337 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11338 representing absolute path names.
11339 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11340
11341 * cstreams.c (__gnat_full_name for VxWorks): Use
11342 __gnat_is_absolute_path to detect whether we need to add the current
11343 directory to normalize the path.
11344
113452007-08-14 Javier Miranda <miranda@adacore.com>
11346
9e81dbc7 11347 * a-tags.ads,
ab6328d0
AC
11348 a-tags.adb (Displace): Associate a message with the raised CE
11349 exception.
11350 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11351 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11352 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11353 spec.
11354 (Default_Prim_Op_Count): Removed.
11355 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11356 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11357 Remove pragma Inline_Always.
11358
11359 * rtsfind.ads (Default_Prim_Op_Count): Removed
11360 (Max_Predef_Prims): New entity
11361 (RE_Expanded_Name): Removed
11362 (RE_HT_Link): Removed
11363 (RE_Iface_Tag): Remmoved
11364 (RE_Ifaces_Table): Removed
11365 (RE_Interfaces_Array): Removed
11366 (RE_Interface_Data_Element): Removed
11367 (RE_Nb_Ifaces): Removed
11368 (RE_RC_Offset): Removed
11369 (RE_Static_Offset_To_Top): Removed
11370
11371 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11372 formal.
11373 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11374 Prim_Op_Count by Max_Predef_Prims.
11375
113762007-08-14 Thomas Quinot <quinot@adacore.com>
11377 Vincent Celier <celier@adacore.com>
11378
11379 * binde.adb (Elab_All_Links): Remove unnecessary call to
11380 Generic_Separately_Compiled (if a unit satisfies this predicate, there
11381 won't be an associated Afile).
11382 (Elab_All_Links): Fail if a referenced unit cannot be found
11383
9e81dbc7 11384 * bindgen.adb:
ab6328d0
AC
11385 Fix comments in bindgen regarding consistency checks done in Bcheck:
11386 the checks are made across units within a partition, not across several
11387 partitions.
11388 Fix generation of C binder file for VxWorks.
11389
11390 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11391 Generic_May_Lack_ALI, more descriptive of the current use of the
11392 predicate, and update documentation.
11393
11394 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11395 reorganization and documentation update for the case of predefined
11396 library generics (for which we do not reference an Afile).
11397
113982007-08-14 Robert Dewar <dewar@adacore.com>
11399
11400 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11401 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11402 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11403 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11404 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11405 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11406 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11407 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11408 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11409 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11410 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11411 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11412 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11413 g-altcon.adb: Minor reformatting
11414
11415 ada-tree.h: Delete empty line.
11416
11417 ali.ads: Minor reformatting
11418 Clarification of comments.
11419 Minor spelling correction
11420
11421 * exp_dbug.adb: Add Warnings Off to suppress new warning
11422
11423 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11424 formal
11425
11426 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11427 value
11428
11429 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11430
11431 * a-textio.ads: Reorder the standard input/output/error declarations
11432 for consistency.
11433
11434 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11435
11436 * par-ch2.adb: Recognize RM specially in errout
11437 Change 'R'M to RM in all error messages
11438
11439 * scng.adb: Recognize RM specially in errout
11440
11441 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11442 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11443
11444 * s-direio.adb: Add missing routine header box.
11445
11446 * sem_attr.ads: Add ??? comments
11447
11448 * sem_eval.adb: Recognize RM specially in errout
11449 Change 'R'M to RM in all error messages
11450
11451 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11452
11453 * s-tasinf.ads: Fix minor comment typo.
11454
11455 * a-cihama.adb: Minor comment addition
11456
11457 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11458 formal
11459
11460 * s-tasinf-tru64.ads: Fix minor comment typo.
11461
11462 * itypes.ads: Comment update.
11463
11464 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11465 anymore.
11466
11467 * argv.c: Added protection against null gnat_argv and gnat_envp.
11468
11469 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11470 warning message when Tolerate_Consistency_Errors is True.
11471
11472 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11473 Any_Id, as this subprogram is only applicable to *type* entities (it
11474 sets RM_Size). Instead initialize just Esize and Alignment.
11475
114762007-08-14 Bob Duff <duff@adacore.com>
11477
9e81dbc7
AS
11478 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11479 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11480 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
ab6328d0
AC
11481 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11482 a-coorse.ads (Next): Applied pragma Inline.
11483 Make all Containers packages Remote_Types (unless they are already
11484 Pure).
11485 (Previous): applied pragma Inline
11486 (Elements_Type): is now a record instead of an array
11487
114882007-08-14 Thomas Quinot <quinot@adacore.com>
11489
11490 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11491 of Set_Item.
11492 (Set_Item): When the new item is an element of the currently allocated
11493 table passed by reference, save a copy on the stack if we're going
11494 to reallocate. Also, in Table.Set_Item, make sure we test the proper
11495 variable to determine whether to call Set_Last.
11496
11497 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11498 symbols-vms.adb, symbols-processing-vms-alpha.adb,
11499 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11500 some occurrences of the pattern
11501 T.Increment_Last;
11502 T.Table (T.Last) := Value;
11503 with a cleaner call to
11504 T.Append (Value);
11505
115062007-08-14 Ed Schonberg <schonberg@adacore.com>
11507 Gary Dismukes <dismukes@adacore.com>
11508 Thomas Quinot <quinot@adacore.com>
11509
11510 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11511 derived type with interface progenitors use the analyzed formal as the
11512 parent of the actual, to create renamings for all the inherited
11513 operations in Derive_Subprograms.
11514 (Collect_Previous_Instances): new procedure within of
11515 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11516 unit being loaded, to ensure that the generation of global symbols is
11517 consistent in different compilation modes.
11518 (Is_Tagged_Ancestor): New function testing the ancestor relation that
11519 takes progenitor types into account.
11520 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11521 traversing over the primitives of the formal and actual types to locate
11522 any abstract subprograms of the actual type that correspond to a
11523 nonabstract subprogram of the formal type's ancestor type(s), and issue
11524 an error if such is found.
11525 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11526 Instantiate_Package_Body, Instantiate_Subprogram_Body):
11527 Remove bogus guard around calls to Inherit_Context.
11528 (Reset_Entity): If the entity is the selector of a selected component
11529 that denotes a named number, propagate constant-folding to the generic
11530 template only if the named number is global to the generic unit.
11531 (Set_Instance_Env): Only reset the compilation switches when compiling
11532 a predefined or internal unit.
11533
115342007-08-14 Ed Schonberg <schonberg@adacore.com>
11535
11536 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11537 parameter to determine whether operation applies to the prefix.
11538 (Complete_Object_Operation): If actual has an access type and
11539 controlling formal is not an in_parameter, reject the actual if it is
11540 an access_to_constant type.
11541 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11542 type, the candidate operations are found in the scope of declaration of
11543 the type, because the type has no primitive subprograms.
11544 (Analyze_Selected_Component): If prefix is class-wide, and root type is
11545 a private extension, only examine visible components before trying to
11546 analyze as a prefixed call.
11547 Change Entity_List to Type_To_Use, for better readability.
11548 (Has_Fixed_Op): Use base type when checking whether the type of an
11549 operator has a user-defined multiplication/division
11550 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11551 user-defined operators are available for fixed-point types.
11552
115532007-08-14 Thomas Quinot <quinot@adacore.com>
11554 Ed Schonberg <schonberg@adacore.com>
11555
11556 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11557 formal At_Any_Place indicating, when True, that we want to test for
11558 availability of the stream attribute at any place (as opposed to the
11559 current visibility context only).
11560 (Missing_Read_Write_Attributes): A stream attribute is missing for the
11561 purpose of enforcing E.2.2(8) only if it is not available at any place.
11562 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11563 when checking the legality of an extension aggregate in a preelaborable
11564 package. Treat the literal null as a valid default expression in a
11565 component declaration for a type with preelaborable initialization.
11566 A limited interface is a legal progenitor for the designated type of a
11567 remote access to class-wide type.
11568
115692007-08-14 Thomas Quinot <quinot@adacore.com>
11570 Ed Schonberg <schonberg@adacore.com>
11571
11572 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
11573 reference): Use correct entity as denoted entity for the selector of
11574 the rewritten node.
11575 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
11576 setting the Referenced_As_LHS flag for entities that are implicitly
11577 dereferenced.
11578 (Find_Type): If the type is an internally generated incomplete type,
11579 mark the full view as referenced, to prevent spurious warnings.
11580 (Find_Selected_Component, Has_Components): Handle properly non-limited
11581 views that are themselves incomplete types.
11582 Handle interfaces visible through limited-with clauses.
11583 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
11584 subprogram generic actual for which we have generated a renaming.
11585 Warn when the renaming introduces a homonym of
11586 the renamed entity, and the renamed entity is directly visible.
11587
115882007-08-14 Ed Schonberg <schonberg@adacore.com>
11589 Hristian Kirtchev <kirtchev@adacore.com>
11590
11591 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
11592 appear in the subtree to the current allocator if it is not a static
11593 coextension.
11594 (Resolve_Allocator): Perform cleanup if resolution has determined that
11595 the allocator is not a coextension.
11596 (Resolve): Skip an interpretation hidden by an abstract operator only
11597 when the type of the interpretation matches that of the context.
11598 (Resolve): When looping through all possible interpretations of a node,
11599 do not consider those that are hidden by abstract operators.
11600 (Resolve_Actuals): When verifying that an access to class-wide object
11601 is an actual for a controlling formal, ignore anonymous access to
11602 subprograms whose return type is an access to class_wide type.
11603 (Resolve_Slice): If the prefix of the slice is a selected component
11604 whose type depends on discriminants, build its actual subtype before
11605 applying range checks on the bounds of the slice.
11606 (Valid_Conversion): In an instance or inlined body, compare root types,
11607 to prevent anomalies between private and public views.
11608 (Resolve): Improve error message for ambiguous fixed multiplication
11609 expressions that involve universal_fixed multiplying operations.
11610
116112007-08-14 Javier Miranda <miranda@adacore.com>
11612 Hristian Kirtchev <kirtchev@adacore.com>
11613
11614 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
11615 location to allow the correct generation of errors in case of
11616 restrictions applied to the expanded code.
11617 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
11618 function if the condition does not reference them.
11619 (Expand_Entry_Body_Declarations): Mark the index constant as having a
11620 valid value.
11621
116222007-08-14 Thomas Quinot <quinot@adacore.com>
8a57e48f 11623 Pablo Oliveira <oliveira@adacore.com>
ab6328d0
AC
11624
11625 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
11626 typecode parameters for a union (in a variant record), remove
11627 extraneous layer of Any wrapping for member label.
11628 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
11629 elabration statements, register the package with the name server
11630 at the beginning, not at the end, of the elaboration statements so
11631 that they can create remote access to subprogram values that designate
11632 remote subprograms from the package.
11633
116342007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11635
11636 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
11637 values to compute the number of seconds since the Unix Epoc in order to
11638 account for Daylight Savings Time. Perform special processing for dates
11639 that are earlier than the Unix Epoc to obtain a negative number.
11640
116412007-08-14 Emmanuel Briot <briot@adacore.com>
11642
11643 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
11644 switches.
11645
116462007-08-14 Eric Botcazou <ebotcazou@adacore.com>
11647
11648 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
11649 binder-generated file is not in Ada.
11650 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
11651 recorded in the ALI file.
11652 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
11653
116542007-08-14 Vincent Celier <celier@adacore.com>
11655
11656 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
11657 (Output_Source): Do nothing if parameter is No_Sdep_Id
11658
11659 * make.adb (Gnatmake): Do not rebuild an archive simply because a
11660 shared library it imports has a later time stamp.
11661 (Check): Resolve the symbolic links in the path name of the object
11662 directory.
11663 Check that the ALI file is in the correct object directory
11664 Check if a file name does not correspond to the mapping of units
11665 to file names.
11666 (Display_Version): New procedure
11667 (Initialize): Process switches --version and --help
11668 Use type Path_Name_Type for path name
11669
116702007-08-14 Paul Hilfinger <hilfinger@adacore.com>
11671
11672 * impunit.adb: Re-organize System.Random_Numbers and
11673 GNAT.Random_Numbers and add to builds.
11674
11675 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
11676
11677 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
11678
11679 * a-assert.ads, a-assert.adb: New files.
11680
116812007-08-14 Gary Dismukes <dismukes@adacore.com>
11682
11683 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
11684 if AAMP_On_Target is True, then the size of the type encompasses two
11685 addresses (a static link and a subprogram address), except in the case
11686 of library-level access types.
11687
116882007-08-14 Vincent Celier <celier@adacore.com>
11689
11690 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
11691 writing the line.
11692 (Write_Eol_Keep_Blanks): New procedure to write a line, including
11693 possible trailing spaces.
11694 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11695
116962007-08-14 Javier Miranda <miranda@adacore.com>
11697
11698 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
11699 null-excluding access types.
11700
117012007-08-14 Javier Miranda <miranda@adacore.com>
11702
11703 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
11704 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
11705 of private types add missing check on matching interfaces in the
11706 partial and full declarations.
11707 (Analyze_Protected_Type): Code cleanup.
11708 (Analyze_Task_Type): Code cleanup.
11709
117102007-08-14 Javier Miranda <miranda@adacore.com>
11711
11712 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
11713 generated interface thunk.
11714
117152007-08-14 Ed Schonberg <schonberg@adacore.com>
11716
11717 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
11718 obsolescent warning on application of 'Class to an incomplete type.
11719
11720 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
11721 prevent obsolescent warning on application of 'Class to an incomplete
11722 type.
11723
117242007-08-14 Pascal Obry <obry@adacore.com>
11725
11726 * s-fileio.adb (Is_Open): Add check for usability of the underlying
11727 file stream.
11728
117292007-08-14 Cyrille Comar <comar@adacore.com>
11730
11731 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
11732 since it is potentially used in cases implying double finalization of
11733 the same object.
11734
117352007-08-14 Jose Ruiz <ruiz@adacore.com>
11736
11737 * s-tasini.adb (Get_Stack_Info): Move this function to
11738 System.Soft_Links.Tasking because it is common to the full and the
11739 restricted run times.
11740 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
11741 in SSL.Tasking.Init_Tasking_Soft_Links.
11742
11743 * s-solita.adb (Get_Stack_Info): Function moved from
11744 System.Tasking.Initialization because it is common to the full and the
11745 restricted run times.
11746 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
11747
117482007-08-14 Arnaud Charlet <charlet@adacore.com>
11749
11750 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
11751 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
11752 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
11753 parameter.
11754
11755 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
11756 guard to 12K.
11757
117582007-08-14 Gary Dismukes <dismukes@adacore.com>
11759
11760 * s-veboop.adb (SU): New named number initialized to
11761 System.Storage_Unit.
11762 (True_Val): The initialization expression is revised to use SU (=
11763 Storage_Unit) rather than assuming 8 for the component size of an
11764 unpacked Boolean array.
11765
117662007-08-14 Tristan Gingold <gingold@adacore.com>
11767
11768 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
11769
11770 * tb-ivms.c: New file.
11771
11772 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
11773
117742007-08-14 Geert Bosch <bosch@adacore.com>
11775
11776 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
11777 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
11778 Add required linker pragmas for automatically linking with the gnalasup
11779 linear algebra support library, and the systems math library.
11780 Rename cdot to cdotu and zdot to zdotu.
11781 Update header comment to describe purpose of package.
11782
117832007-08-14 Thomas Quinot <quinot@adacore.com>
11784
11785 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
11786 an explicitly specified Associated_Final_Chain, use that list.
11787 (Expand_N_Package_Body): Build dispatch tables of library level tagged
11788 types.
11789 (Expand_N_Package_Declaration): Build dispatch tables of library level
11790 tagged types. Minor code cleanup.
11791
117922007-08-14 Vincent Celier <celier@adacore.com>
11793
11794 * gnatchop.adb (Terminate_Program): Remove exception and use
11795 Types.Terminate_Program instead.
11796
11797 * osint.ads, osint.adb (Current_Exit_Status): New global variable
11798 (Find_Program_Name): Added protection against empty name.
11799 (OS_Exit_Through_Exception): New procedure
11800
11801 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
11802 (OS_Exit_Default): New procedure that contains the previous
11803 implementation of procedure OS_Exit.
11804 (Final_Value): Remove obsolete Interix stuff.
11805
118062007-08-14 Thomas Quinot <quinot@adacore.com>
11807
11808 * g-socket.ads: Reorganize example code so that it also works on
11809 Windows XP.
11810
118112007-08-14 Tristan Gingold <gingold@adacore.com>
11812
11813 * g-trasym.ads: AIX now supports symbolic backtraces.
11814
118152007-08-14 Ed Schonberg <schonberg@adacore.com>
11816
11817 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
11818 units being loaded to detect circularities. A circularity may be
11819 present even if the current chain of pending units to load starts from
11820 a limited_with_clause.
11821
11822 * lib-load.ads: Change profile of Load_Unit to use a with_clause
11823 rather than a boolean flag, in order to detect circularities in
11824 with_clauses.
11825
11826 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
11827 than propagating the From_Limited_With flag, in order to handle
11828 properly circularities involving with_clauses.
11829
118302007-08-14 Nicolas Setton <setton@adacore.com>
11831
11832 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
11833 warnings.
11834
118352007-08-14 Arnaud Charlet <charlet@adacore.com>
11836
11837 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
11838 to build for libgnala.
11839 libgnat: Add rules to build libgnala.a
11840 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
11841 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
11842 Add s-osinte-vxworks-kernel.adb to the target pairs of the
11843 kernel run-time lib for VxWorks 6, which would provide a different
11844 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
11845 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
11846 running ZCX by default.
11847 Add g-sttsne-locking to LynxOS version.
11848 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
11849 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
11850
11851 * system-darwin-x86.ads: New file.
11852
11853 * Make-lang.in: Delete files before copying onto them, so if they are
11854 read-only, the copy won't fail.
11855 Update dependencies
11856
118572007-08-14 Pascal Obry <obry@adacore.com>
11858
11859 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
11860 naming scheme.
11861
118622007-08-14 Vincent Celier <celier@adacore.com>
11863
11864 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
11865 (Gcc): Initialize Gcc_Name at the first call
11866
118672007-08-14 Ed Schonberg <schonberg@adacore.com>
11868
11869 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
11870 with_clauses of the enclosing unit when analyzing the package
11871 specification of a nested instance.
11872
118732007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11874
11875 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
11876 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
11877 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
11878 layout of N_Allocator.
11879
118802007-08-14 Thomas Quinot <quinot@adacore.com>
11881
11882 * rtsfind.adb (Check_RPC): Add PCS version check.
11883
11884 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
11885 (Gnat_Free_Software): New function.
11886
11887 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
11888 the PCS_Version value from s-parint, used to check that it is consistent
11889 with what exp_dist expects.
11890
11891 * s-parint.ads (PCS_Version): New entity for checking consistency
11892 between exp_dist and PCS.
11893
11894 * gen-soccon.c: (SO_REUSEPORT): New constant.
11895
118962007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11897
11898 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
11899 variable Sub_Second to Duration in order to accomodate a larger range
11900 of arithmetic operations.
11901
119022007-08-14 Bob Duff <duff@adacore.com>
11903
11904 * g-sttsne-locking.ads: Move comments from spec to body.
11905 * g-sttsne-locking.adb: Move comments from spec to body.
11906 * g-sttsne-vxworks.ads: Removed.
11907 * g-sttsne-vxworks.adb: Removed.
11908
4862826d
ILT
119092007-08-11 Ian Lance Taylor <iant@google.com>
11910
11911 * misc.c (gnat_get_alias_set): Change return type to
11912 alias_set_type.
11913
4d8a9bfe
KG
119142007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11915
11916 * decl.c, utils2.c: Fix whitespace in last change.
11917
39595763
KG
119182007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11919
11920 * decl.c (compare_field_bitpos): Constify.
11921 * utils2.c (compare_elmt_bitpos): Likewise.
11922
08e7e8cb
AJ
119232007-07-27 Aurelien Jarno <aurelien@aurel32.net>
11924
9e81dbc7 11925 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
08e7e8cb
AJ
11926 anonymous access type.
11927 (pthread_sigmask): Now take an access sigset_t.
11928
9e94c78f 119292007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
83983455 11930
9e81dbc7
AS
11931 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
11932
a8257e58
EB
119332007-06-21 Eric Botcazou <ebotcazou@adacore.com>
11934
11935 PR tree-optimization/25737
11936 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
11937
5be014d5
AP
119382007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
11939
11940 * trans.c (Attribute_to_gnu): When subtracting an
11941 offset from a pointer, use POINTER_PLUS_EXPR with
11942 NEGATE_EXPR instead of MINUS_EXPR.
11943 (gnat_to_gnu): Likewise.
11944 * utils.c (convert): When converting between
11945 thin pointers, use POINTER_PLUS_EXPR and sizetype
11946 for the offset.
11947 * utils2.c (known_alignment): POINTER_PLUS_EXPR
11948 have the same semantics as PLUS_EXPR for alignment.
11949 (build_binary_op): Add support for the semantics of
11950 POINTER_PLUS_EXPR's operands.
11951 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
11952
719bb4e3 119532007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
b0464c88 11954
a472f546
EB
11955 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
11956 of get_signed_or_unsigned_type.
b0464c88
RE
11957 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
11958
93e17a25 119592007-06-11 Bob Duff <duff@adacore.com>
9e81dbc7 11960 Thomas Quinot <quinot@adacore.com>
93e17a25
BD
11961
11962 * g-stsifd-sockets.adb (Create): Work around strange behavior of
11963 'bind' on windows that causes 'connect' to fail intermittently, by
11964 retrying the 'bind'.
11965 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
11966
1bbf8502
DS
119672007-06-10 Duncan Sands <baldrick@free.fr>
11968
11969 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
11970 than to void, for the fields when making a new fat pointer type.
11971 (gnat_substitute_in_type): Now substitute_in_type.
a472f546 11972 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
1bbf8502
DS
11973 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
11974 * utils.c (update_pointer_to): Update fat pointers by updating the
11975 dummy node pointers used for the fields.
11976
ec11296f
AC
119772007-06-06 Thomas Quinot <quinot@adacore.com>
11978 Bob Duff <duff@adacore.com>
11979
9e81dbc7
AS
11980 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
11981 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
ec11296f
AC
11982 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
11983 constant Thread_Blocking_IO, always True by default, set False
11984 on a per-runtime basis.
11985 (Need_Netdb_Buffer): New constant.
11986
11987 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
11988 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
11989 files.
11990
11991 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
11992 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
11993 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
11994 child package Task_Safe_NetDB
11995 (Host_Error_Messages): Add stub body.
11996 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
11997
11998 * g-soccon-mingw.ads: Add Windows-specific constants.
11999 (Need_Netdb_Buffer): New constant.
12000 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12001 wrapper and import inet_addr(3) from the standard sockets library
12002 directly instead.
12003 (In_Addr): Add alignment clause.
12004 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12005
120062007-06-06 Robert Dewar <dewar@adacore.com>
12007
12008 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12009 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12010 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12011 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12012 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12013 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12014 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12015 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12016 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12017 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12018 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12019 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12020 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12021 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12022 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12023 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12024 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12025 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12026 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12027 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12028 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12029 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12030 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12031 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12032 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12033 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12034 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12035 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12036 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12037 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12038 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12039 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12040 Unchecked_* by Ada.Unchecked_*
12041
120422007-06-06 Robert Dewar <dewar@adacore.com>
12043
12044 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12045 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12046 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12047 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12048 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12049 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12050
12051 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12052 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12053 s-tasloc.adb, s-tasloc.ads: New files.
12054
120552007-06-06 Bob Duff <duff@adacore.com>
12056
9e81dbc7 12057 * g-expect-vms.adb:
ec11296f
AC
12058 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12059 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12060 (Send_Signal, Close): Raise Invalid_Process if the process id is
12061 invalid.
12062 (Pattern_Matcher_Access): Is now a general access type to be able to
12063 use aliased string.
12064
120652007-06-06 Thomas Quinot <quinot@adacore.com>
12066 Arnaud Charlet <charlet@adacore.com>
12067
a472f546
EB
12068 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12069 (SIGEMT is now used instead of SIGTERM on AIX).
ec11296f
AC
12070
12071 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12072 (Time_Slice_Supported): Set to True.
a472f546 12073 Use SIGEMT instead of SIGTERM as SIGADAABORT.
ec11296f
AC
12074
120752007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12076
12077 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12078 (Time, Time)): Use To_Relative_Time rather than manual calculation to
12079 express the bounds of Duration as Time. Raise Time_Error when the
12080 result is greater or equal to the higher bound of Duration (on the
12081 margin case).
12082 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12083 Ada_High_And_Leaps.
12084 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12085 Ada_High_And_Leaps.
12086 ("-" (Time, Time)): Reorder code.
12087 (All_Leap_Seconds): Removed.
12088 (Arithmetic_Operations.Add): Remove sign related kludge.
12089 (Arithmetic_Operations.Difference): Control the leaps seconds processing
12090 with flag Leap_Support.
12091 (Arithmetic_Operations.Subtract): Remove sign related kludge.
12092 (Check_Within_Time_Bounds): New procedure.
12093 (Clock): Control the leap seconds processing with flag Leap_Support.
12094 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12095 (Formatting_Operations.Split): Control the leap seconds processing with
12096 flag Leap_Support.
12097 (Formatting_Operations.Time_Of): Control the leaps seconds processing
12098 with flag Leap_Support. Adjust the year, month and day (if applicable)
12099 when the value of day seconds designates a new day.
12100 (Split): Use parameter associations for better readability. Integrate
12101 flag Is_Ada_05.
12102 (Time_Of): Use parameter associations for better readability. Integrate
12103 flag Is_Ada_05.
12104
12105 * a-calfor.adb (Split): Use parameter associations for better
12106 readability. Integrate flag Is_Ada_05.
12107 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12108 better readability. Integrate flag Is_Ada_05.
12109
121102007-06-06 Arnaud Charlet <charlet@adacore.com>
12111
9e81dbc7
AS
12112 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12113 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12114 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12115 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12116 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12117 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12118 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12119 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12120 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
ec11296f 12121 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
9e81dbc7 12122 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
ec11296f
AC
12123 time when entering this routine to detect a backward clock setting
12124 (manual setting or DST adjustment), to avoid waiting for a longer delay
12125 than needed.
12126 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12127 Remove handling of deferred priority change, and replace by setting the
12128 task priority directly, as required by AI-188.
12129 Update comments.
12130 (Max_Task_Image_Length): New constant.
12131 Replace Warnings (Off) by Unreferenced pragma, cleaner.
12132 (Dynamic_Priority_Support): Removed, no longer needed.
12133 (Poll_Base_Priority_Change): Ditto.
12134 (Set_Ceiling): Add this procedure to change the ceiling priority
12135 associated to a lock. This is a dummy implementation because dynamic
12136 priority ceilings are not supported by the underlying system.
12137
12138 * a-dynpri.adb (Set_Priority): Take into account case where Target is
12139 accepting a RV with its priority boosted.
12140 Remove handling of deferred priority change, and replace by setting the
12141 task priority directly, as required by AI-188.
12142
12143 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12144 Succeeded = True.
12145 Remove handling of deferred priority change, and replace by setting the
12146 task priority directly, as required by AI-188.
12147 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12148 of Self_Id earlier.
12149
12150 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12151 (Poll_Base_Priority_Change): Removed.
12152 Code clean up: use SSL.Current_Target_Exception.
12153
12154 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12155 to run as this is a potentially dispatching point.
12156 (Call_Synchronous): Use Local_Defer_Abort.
12157 (Callable): Relax assertion.
12158 (Selective_Wait): Relax assertion in case abort is not allowed.
12159 Remove handling of deferred priority change, and replace by setting the
12160 task priority directly, as required by AI-188.
12161
12162 * s-tasuti.adb (Make_Passive): Adjust assertions.
12163 Remove handling of deferred priority change, and replace by setting the
12164 task priority directly, as required by AI-188.
12165
121662007-06-06 Arnaud Charlet <charlet@adacore.com>
12167
9e81dbc7
AS
12168 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12169 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12170 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12171 system-vxworks-mips.ads, system-vxworks-alpha.ads,
12172 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12173 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12174 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12175 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
ec11296f
AC
12176 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12177 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12178 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12179 This patch changes the largest non-binary modulus from 2**31-1 to
12180 2**32-1.
12181 (Compiler_System_Version): Removed, no longer used.
12182 Clean up system files by removing flags only used on a single target.
12183 Also remove obsolete flags, only used during bootstrap from system.ads
12184 (Address): Add a pragma Preelaborable_Initialization.
12185
12186 * system-aix.ads: Ditto.
12187 (GCC_ZCX_Support): Set to true.
12188 Update priority range on AIX and map Ada priorities to target
12189 priorities appropriately for different scheduling policies.
12190
12191 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12192
121932007-06-06 Vincent Celier <celier@adacore.com>
12194
12195 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12196 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12197
9e81dbc7
AS
12198 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12199 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12200 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12201 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
ec11296f 12202 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
a472f546
EB
12203 MLib.Tgt, containing the default versions of the exported subprograms.
12204 For each platform, create a specific version of the body of new child
12205 package MLib.Tgt.Specific that contains only the body of subprograms
12206 that are different from the default.
12207 (Archive_Builder_Append_Options): New function.
ec11296f
AC
12208
122092007-06-06 Matthew Gingell <gingell@adacore.com>
12210
a472f546
EB
12211 * s-osinte-aix.adb: Map Ada priorities to target priorities
12212 appropriately for different scheduling policies.
ec11296f
AC
12213
122142007-06-06 Arnaud Charlet <charlet@adacore.com>
12215
12216 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12217 its C counterpart.
12218 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
9e81dbc7 12219 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
ec11296f
AC
12220
122212007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
12222
a472f546
EB
12223 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12224 Noop on VMS, added for interface commonality.
ec11296f
AC
12225
122262007-06-06 Eric Botcazou <ebotcazou@adacore.com>
12227 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12228 Olivier Hainque <hainque@adacore.com>
12229
12230 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12231 renamed expression of a full renaming at toplevel.
12232 (gnat_to_gnu_entity, case object): If not defining, do not look inside
12233 the values the constant is initialized to if it is an N_Allocator.
12234 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12235 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12236 (make_aligning_type): Accept an extra ROOM argument for storage to be
12237 made available before the aligned field, and an extra BASE_ALIGN
12238 argument for callers to pass the alignment guaranteed to be honored for
12239 the whole aligning object. Avoid call to finish_record_type, which only
12240 interferes with the sizes we want to set.
12241 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12242 make_aligning_type for super-aligned objects on stack.
12243 (components_to_record): Pass the adjusted size of the type when creating
12244 fields in the qualified union for the variant part.
12245 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12246 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12247 packed array type.
12248 (maybe_pad_type): Set TYPE_USER_ALIGN.
12249 (make_aligning_type): Likewise.
12250 ALIGN argument is unsigned int.
12251 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12252 (gnat_to_gnu_param): Likewise, for parameters.
12253 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12254 if it is constant and stems from a function call.
12255 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12256 of the record is specified. Adjust accordingly.
12257 (adjust_packed): New static function.
12258 (gnat_to_gnu_field): Use it to adjust the packedness setting.
12259 (components_to_record): Likewise.
12260 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12261 side-effects if the object is deemed constant.
12262 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12263 type instead of merely finalizing it. Tidy.
12264 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12265 <E_Access_Type>: Likewise.
12266 (defer_debug_incomplete_list): Rename to defer_finalize_list.
12267 (defer_debug_level): Delete.
12268 (gnat_to_gnu_entity) <debug_deferred>: Likewise
12269 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12270 type.
12271 <E_Record_Type>: Do not explicitly defer finalizing the type.
12272 Adjust for write_record_type_debug_info renaming.
12273 <E_Subprogram_Type>: Likewise.
12274 Finalize deferred types right after deferred incomplete types are
12275 expanded.
12276 (rest_of_type_decl_compilation): New global function.
12277 (components_to_record): Rename defer_debug parameter to do_not_finalize.
12278 (components_to_record): Propagate the packedness to the fields of the
12279 qualified union type if there is a variant part.
12280 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12281 instead of inline code to adjust the XUT field offsets.
12282 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12283 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12284 and write the debug info if the type derives from a discriminated one.
12285 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12286 <E_Array_Subtype>: Likewise.
12287 <E_String_Literal_Subtype>: Likewise.
12288 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12289 an alignment clause.
12290 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12291 before giving warning.
12292 (prepend_one_attribute_to): New function, helper to prepend an attribute
12293 to an attribute list.
12294 (gnat_to_gnu_entity) <E_Procedure>: Use it.
12295 (prepend_attributes): Likewise.
12296 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12297 <E_Array_Type>: Declare the padding type for the element type, if any.
12298 <E_Array_Subtype>: Likewise.
12299 (defer_limited_with): New variable.
12300 (Gigi_Equivalent_Type): New function.
12301 (gnat_to_gnu_entity): Use it at start and use result throughout.
12302 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12303 Gigi_Equivalent_Type, support Limited_With, allow two levels of
12304 indirection, precompute if unconstrained array to simplify logic, and
12305 use defer_limited_with to defer elaboration of some types from limited
12306 with.
12307 (finalize_from_with_types): New function.
12308
123092007-06-06 Gary Dismukes <dismukes@adacore.com>
12310 Eric Botcazou <ebotcazou@adacore.com>
12311 Tristan Gingold <gingold@adacore.com>
12312 Olivier Hainque <hainque@adacore.com>
12313
a472f546
EB
12314 * trans.c (Identifier_to_gnu): Change test for deferred constant by
12315 adding guard that the entity is an E_Constant before testing presence
12316 of Full_view (and remove unnecessary test that entity is not a type).
ec11296f
AC
12317 For a CONST_DECL used by reference, manually retrieve
12318 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
12319 (struct language_function): Move from utils.c to here.
12320 (struct parm_attr): New structure.
12321 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12322 (f_parm_attr_cache): New macro.
12323 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12324 expressions for the 'First, 'Last and 'Length attributes of the
12325 unconstrained array IN parameters.
12326 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12327 Allocate the information structure for the function earlier, as well
12328 as the language-specific part.
12329 If the parameter attributes cache has been populated, evaluate the
12330 cached expressions on entry.
12331 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
12332 N_Procedure_Call_Statement and N_Indexed_Component.
12333 (Pragma_to_gnu): Translate inspection_point to an asm statement
12334 containaing a comment and a reference to the object (either its address
12335 for BLKmode or its value).
12336 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12337 to go to DECL_INITIAL. Together with the size constraint relaxation
12338 in create_var_decl, enlarges the set of situations in which an
12339 identifier may be used as an initializer without implying elaboration
12340 code.
12341 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12342 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12343 node.
12344 (maybe_stabilize_reference): Remove lvalues_only parameter.
12345 (gnat_stabilize_reference): Adjust for above change.
12346 (gnat_to_gnu): Do not set location information on the result
12347 if it is a reference.
12348 (add_cleanup): Add gnat_node parameter and set the location of the
12349 cleanup to it.
12350 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12351 (Exception_Handler_to_gnu_zcx): Likewise.
12352 (gigi): Remove the cgraph node if the elaboration procedure is empty.
12353 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12354 the former right after the latter.
12355 (start_stmt_group): Make global.
12356 (end_stmt_group): Likewise.
12357 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12358 vars.
12359 (gnu_program_error_label_stack): Likewise.
12360 (gigi): Initialize them.
12361 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12362 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12363 New cases.
12364 (push_exception_label_stack): New function.
12365 (takes_address): New function.
12366
12367 * utils.c (struct language_function): Move to trans.c from here.
12368 (unchecked_convert): Do not wrap up integer constants in
12369 VIEW_CONVERT_EXPRs.
12370 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12371 the latter for aggregate types, unexpected by later passes, and relax an
12372 arbitrary size constraint on the former.
12373 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12374 to compare the sizes.
12375 (convert_vms_descriptor): When converting to a fat pointer type, be
12376 prepared for a S descriptor at runtime in spite of a SB specification.
12377 (shift_unc_components_for_thin_pointers): New function.
12378 (write_record_type_debug_info): For variable-sized fields, cap the
12379 alignment of the pointer to the computed alignment.
12380 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12381 If REP_LEVEL is 2, do not compute the sizes.
12382 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12383 (build_unc_object_type): Likewise.
12384 (declare_debug_type): New function.
12385
9e81dbc7 12386 * ada-tree.def: USE_STMT: removed (not emitted anymore).
ec11296f 12387
9e81dbc7
AS
12388 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12389 no statement is expandable anymore.
12390 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12391 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12392 when the user requested it explicitely.
12393 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12394 to 0 for Ada.
12395 (get_alias_set): Return alias set 0 for a type if
12396 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
ec11296f 12397
9e81dbc7
AS
12398 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12399 (DECL_FUNCTION_STUB): New accessor macro.
12400 (SET_DECL_FUNCTION_STUB): New setter macro.
ec11296f 12401
9e81dbc7 12402 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
ec11296f
AC
12403
12404 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12405 declarations.
12406
124072007-06-06 Jose Ruiz <ruiz@adacore.com>
12408
12409 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12410 Rename to Abort_Task_Interrupt to be able to keep the same interface
12411 as the rest of the targets.
12412
12413 * s-osinte-vxworks.ads s-osinte-vxworks.adb
12414 (To_VxWorks_Priority): Remove explicit "in" mode indicator
12415
12416 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12417 New files.
12418
124192007-06-06 Robert Dewar <dewar@adacore.com>
12420
12421 * a-chahan.ads: Remove obsolescent pragmas
12422
12423 * a-chlat1.ads: Minor reformatting
12424
124252007-06-06 Robert Dewar <dewar@adacore.com>
12426
12427 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12428 for Errout
12429
12430 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12431 implementation
12432
12433 * errout.ads (Finalize): Changed interface
12434 (Output_Messages): New procedure
12435 (Compilation_Errors): New Interface
12436
12437 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12438 Finalize/Output_Messages interface for Errout
12439 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12440 Errout.
12441
124422007-06-06 Thomas Quinot <quinot@adacore.com>
12443 Olivier Hainque <hainque@adacore.com>
12444 Robert Dewar <dewar@adacore.com>
12445
12446 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12447 check.
12448 (Raise_Current_Excep): Call Debug_Raise_Exception just before
12449 propagation starts, to let debuggers know about the event in a reliable
12450 fashion.
12451 (Local_Raise): Moved to System.Exceptions
12452 More convenient to have this as a separate unit
12453
12454 * s-except.adb, s-except.ads: New files.
12455
12456 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12457 Debug_Unhandled_Exception in System.Exceptions where it belongs
12458 together with a couple of other debug helpers.
12459 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12460 the former Unhandled_Exception.
12461
12462 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12463 (Warn_No_Exception_Propagation): New procedure
12464 (Warn_If_No_Propagation): Rewritten for new warning generation
12465 (Expand_Exception_Handlers): New warning generation
12466 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12467 (Add_Exception_Label): Use Special_Exception_Package_Used for test
12468 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12469 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12470 even if restriction is set (makes life easier in Check_Returns)
12471 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12472 checking exception identities.
12473 (Expand_Local_Exception_Handlers): Do not optimize when all others case
12474 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12475 block for handler (used by Check_Returns)
12476 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12477 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12478 remove all exception handlers when optimizing local raise statements.
12479 (Find_Local_Handler): Use Get_Renamed_Entity
12480 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12481 marked analyzed after expanding exception handlers, do not generate
12482 redundant cleanup actions, because they have been constructed already.
12483
124842007-06-06 Thomas Quinot <quinot@adacore.com>
12485
12486 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12487 presence of this categorization pragma is mandated by the language.
12488 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12489 for this type.
12490
124912007-06-06 Vincent Celier <celier@adacore.com>
12492 Robert Dewar <dewar@adacore.com>
12493
9e81dbc7
AS
12494 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12495 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12496 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12497 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12498 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12499 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12500 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12501 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12502 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12503 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
ec11296f 12504 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
9e81dbc7 12505 ali.ads, ali.adb:
ec11296f
AC
12506 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12507 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12508 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12509 Use variables of types File_Name_Type and Unit_Name_Type in error
12510 messages.
12511 (Get_Name): Add parameter Ignore_Special, and set it reading file name
12512 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12513 here.
12514 Define flags Flag217-Flag230 with associated subprograms
12515 (Flag_Word5): New record type.
12516 (Flag_Word5_Ptr): New access type.
12517 (To_Flag_Word5): New unchecked conversion.
12518 (To_Flag_Word5_Ptr): Likewise.
12519 (Flag216): New function.
12520 (Set_Flag216): New procedure.
12521
125222007-06-06 Arnaud Charlet <charlet@adacore.com>
12523
12524 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12525 instead of 'Size.
12526
12527 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12528
125292007-06-06 Javier Miranda <miranda@adacore.com>
12530
12531 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12532 the package.
12533 (Object_Specific_Data_Array): This is now internal to the package.
12534 (Object_Specific_Data): This is now internal to the package.
12535 (Select_Specific_Data_Element): This is now internal to the package.
12536 (Select_Specific_Data_Array): This is now internal to the package.
12537 (Select_Specific_Data): This is now internal to the package.
12538 (Offset_To_Top_Function_Ptr): This is now public.
12539 (To_Offset_To_Top_Function_Ptr): Removed.
12540 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12541 local to subprogram Offset_To_Top.
12542 (Predefined_DT): Removed.
12543 (Typeinfo_Ptr): Removed.
12544 (OSD): This function is now internal to this package.
12545 (SSD): This function is now internal to this package.
12546 (DT): New function that displaces the pointer to the table of primitives
12547 to get access to the enclosing wrapper record.
12548 (IW_Membership): Code cleanup.
12549 (Offset_To_Top): Code cleanup.
12550 (Predefined_DT): Removed.
12551 (Register_Interface_Tag): Removed.
12552 (Set_Interface_Table): Removed.
12553 (Set_Offset_Index): Removed.
12554 (Set_Offset_To_Top): Code cleanup.
12555 (Set_OSD): Removed.
12556 (Set_Signature): Removed.
12557 (Set_SSD): Removed.
12558 (Set_Tagged_Kind): Removed.
12559 (Typeinfo_Ptr): Removed.
12560 (TSD): Removed.
12561 (Displace): Add missing check on null actual.
12562
12563 * exp_disp.ads, exp_disp.adb
12564 (Select_Expansion_Utilities): Removed.
12565 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
12566 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
12567 the interface requires a new parameter.
12568 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
12569 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
12570 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
12571 Done to remove package Select_Expansion_Utilities.
12572 (Make_DT): New implementation for statically allocated dispatch tables.
12573 (Make_Secondary_DT): Moved to the scope of Make_DT.
12574 (Register_Primitive): Code cleanup plus incoporate the use of the new
12575 function DT_Address_Attribute.
12576 (Expand_Interface_Thunk): The profile of this subprogram has been
12577 changed to return the Thunk_Id and the corresponding code.
12578 (Fill_DT_Entry): Removed. Its functionality is now provided by
12579 subprogram Register_Primitive.
12580 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
12581 subprogram Register_Primitive.
12582 (Register_Primitive): New subprogram that incorporates the previous
12583 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
12584 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
12585 was only required to call Make_DT_Access_Action, which is now removed.
12586 (Ada_Actions): Removed
12587 (Action_Is_Proc): Removed
12588 (Action_Nb_Arg): Removed
12589 Replace all the calls to Make_DT_Access_Action by direct calls to
12590 Make_Procedure_Call_Statement or Make_Function_Call.
12591 (Set_DTC_Entity_Value): New subprogram.
12592 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
12593 (Expand_Interface_Thunk): Add missing support for primitives that are
12594 functions with a controlling result (case in which there is no need
12595 to generate the thunk).
12596
12597 * exp_atag.ads, exp_atag.adb
12598 (Build_DT): New subprogram that displaces the pointer to reference the
12599 base of the wrapper record.
12600 (Build_Typeinfo_Offset): Removed.
12601 (RTE_Tag_Node): Removed.
12602 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
12603 (Build_Get_RC_Offset): Removed.
12604 (Build_Inherit_Predefined_Prims): Removed.
12605 (Build_Inherit_TSD: Removed.
12606 (Build_New_TSD): Removed.
12607 (Build_Set_External_Tag): Removed.
12608 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
12609 (Build_Set_Prim_Op_Address): Add documentation.
12610 (Build_Set_TSD): Removed.
12611
12612 * rtsfind.ads, rtsfind.adb
12613 (Load_Fail): If load fails and we are not in configurable run-time
12614 mode, then raise Unrecoverable_Error.
12615 (Text_IO_Kludge): Generate an error message if a run-time library is
12616 not available in a given run-time (ie. zfp run-time).
12617 (RTE_Record_Component): Add code to check that the component we search
12618 for is not found in two records in the given run-time package.
12619 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
12620 (RE_DT_Predef_Prims_Offset): New entity
12621 (RE_Static_Offset_To_Top): New entity
12622 (RE_HT_Link): New entity.
12623 (System_Address_Image): Addition of this run-time package.
12624 (RE_Address_Image): New entity.
12625 (RE_Abstract_Interface): Removed.
12626 (RE_Default_Prim_Op_Count): Removed.
12627 (RE_DT_Entry_Size): Removed.
12628 (RE_DT_Min_Prologue_Size): Removed.
12629 (RE_DT_Prologue_Size): Removed.
12630 (RE_Ifaces_Table_Ptr): Removed.
12631 (RE_Interface_Data_Ptr): Removed.
12632 (RE_Type_Specific_Data): Removed.
12633 (RE_Primary_DT): Removed.
12634 (RE_Register_Interface_Tag): Removed.
12635 (RE_Set_Offset_Index): Removed.
12636 (RE_Set_OSD): Removed.
12637 (RE_Set_SSD): Removed.
12638 (RE_Set_Signature): Removed.
12639 (RE_Set_Tagged_Kind): Removed.
12640 (RE_Address_Array): New entity.
12641 (RE_DT): New entity.
12642 (RE_Iface_Tag): New entity.
12643 (RE_Interfaces_Table): New entity.
12644 (RE_No_Dispatch_Table): New entity.
12645 (RE_NDT_Prims_Ptr): New entity.
12646 (RE_NDT_TSD): New entity.
12647 (RE_Num_Prims): New entity.
12648 (RE_Offset_To_Top_Function_Ptr): New entity.
12649 (RE_OSD_Table): New entity.
12650 (RE_OSD_Num_Prims): New entity.
12651 (RE_Predef_Prims): New entity
12652 (RE_Predef_Prims_Table_Ptr): New entity.
12653 (RE_Primary_DT): New entity.
12654 (RE_Signature): New entity.
12655 (RE_SSD): New entity.
12656 (RE_TSD): New entity.
12657 (RE_Type_Specific_Data): New entity.
12658 (RE_Tag_Kind): New entity.
12659
126602007-06-06 Thomas Quinot <quinot@adacore.com>
12661
12662 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
12663 C imported variable.
12664 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
12665 on entry.
12666
126672007-06-06 Robert Dewar <dewar@adacore.com>
12668
12669 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
12670 character
12671
126722007-06-06 Vincent Celier <celier@adacore.com>
12673
12674 * a-tifiio.adb (Put, internal): For negative numbers, check that there
12675 is room for at least one digit and the minus sign.
12676 (Put.Put_Character): Never put a character outside of the range of
12677 string To.
12678
126792007-06-06 Olivier Hainque <hainque@adacore.com>
12680 Eric Botcazou <ebotcazou@adacore.com>
12681
12682 * utils2.c (build_allocator): Provide the extra arguments to
12683 make_aligning_type for super-aligned objects allocated from the default
12684 pool. Leave enough room for a pointer before the aligning field, and
12685 store the system's allocator return value there.
12686 (build_call_alloc_dealloc): When releasing a super-aligned object,
12687 retrieve the system's allocator return value from where build_allocator
12688 has stored it, just ahead of the adjusted address we are passed.
12689 (build_call_raise): Handle properly the generation of line numbers when
12690 the node is marked No_Location.
12691 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
12692 by using DECL_UID on ties.
12693 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
12694 main variant.
12695 (build_call_raise): Handle converting exception into goto; support new
12696 argument KIND.
12697 (build_component_ref): Add new arg to build_call_raise.
12698
126992007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12700
12701 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
12702 "." in the case of nnn.xxx when nnn terminates with an underscore.
12703 Parse the remaining "#" or ":" in the case of nnn#.xxx#
12704
127052007-06-06 Robert Dewar <dewar@adacore.com>
12706
12707 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
12708
127092007-06-06 Arnaud Charlet <charlet@adacore.com>
12710 Vincent Celier <celier@adacore.com>
12711 Robert Dewar <dewar@adacore.com>
12712
12713 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
12714 needed.
12715 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
12716 ((destructor)) for adafinal, even when switch -a is used.
12717 Do not issue pragma Linker_Destructor for adafinal when switch -a is
12718 used.
12719 (Gen_Object_Files_Options): Add formatting of Linker Options, when
12720 Output_Linker_Option_List is set. Suppress this formatting when
12721 Zero_Formatting is set.
12722 Add case for CLI_Target.
12723 (System_Restrictions_Used): New flag, used to avoid generating with of
12724 System_Restrictions and initialization of the data unless there is
12725 some use of System.Restrictions in the partition.
12726 (Check_System_Restrictions_Used): New procedure
12727
9e81dbc7 12728 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
ec11296f
AC
12729 since we only with this unit in the binder file if it is used elsewhere
12730 in the partition.
12731
127322007-06-06 Vincent Celier <celier@adacore.com>
12733
12734 * bindusg.adb: Add line for @<response file>
12735 Add lines for new switches -R and -Z
12736
12737 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
12738 hierarchy in the list of files of the closure when -R is used
12739 (Gnatbind): Accept arguments starting with '@' to indicate response
12740 files and take the arguments from the response files.
12741 If List_Closure is set, display the referenced files
12742
127432007-06-06 Javier Miranda <miranda@adacore.com>
12744 Robert Dewar <dewar@adacore.com>
12745 Ed Schonberg <schonberg@adacore.com>
12746
12747 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
12748 which the address-clause is applied to in-mode actuals (allowed by
12749 13.1(22)).
12750 (Apply_Discriminant_Check): Do not generate a check if the type is
12751 constrained by a current instance.
12752 (Activate_Division_Check): New procedure
12753 (Activate_Overflow_Check): New procedure
12754 (Activate_Range_Check): New procedure
12755 Call these new Activate procedures instead of setting flags directly
12756 (Apply_Array_Size_Check): Removed, no longer needed.
12757 Code clean up: remove obsolete code related to GCC 2.
12758 (Get_E_Length): Protect against bomb in case scope is standard
12759 (Selected_Range_Checks): If the node to be checked is a conversion to
12760 an unconstrained array type, and the expression is a slice, use the
12761 bounds of the slice to construct the required constraint checks.
12762 Improve NOT NULL error messages
12763 (Apply_Constraint_Check): If the context is a null-excluding access
12764 type, diagnose properly the literal null.
12765
127662007-06-06 Pascal Obry <obry@adacore.com>
12767
12768 * clean.adb (Clean_Archive): Use untouched casing for the archive name
12769 and the corresponding .deps file.
12770 (Clean_Interface_Copy_Directory): Use untouched casing for the library
12771 src directory. Minor code-clean-up. Use untouched casing for files
12772 read into the library src dir.
12773 (Clean_Library_Directory): Idem.
12774 (Parse_Cmd_Line): Accept new switch -aP
12775
127762007-06-06 Javier Miranda <miranda@adacore.com>
12777 Ed Schonberg <schonberg@adacore.com>
12778 Robert Dewar <dewar@adacore.com>
12779 Eric Botcazou <ebotcazou@adacore.com>
12780 Arnaud Charlet <charlet@adacore.com>
12781
12782 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
12783 applicable to types that have the With_Type flag set. Returns the
12784 non-limited view of the type, if available, otherwise the type itself.
12785 For class-wide types, there is no direct link in the tree, so we have
12786 to retrieve the class-wide type of the non-limited view of the Etype.
12787 New attributes Static_Initialization and Static_Elaboration_Desired.
12788 Remove the pragma Thread_Body, and the associated flag
12789 Is_Thread_Body in entities, and all related code.
12790 (Suppress_Value_Tracking_On_Call): New flag
12791 E_Exception has Esize and Alignment fields
12792 (Universal_Aliasing): New function.
12793 (Set_Universal_Aliasing): New procedure.
12794 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
12795 (Check_Nested_Access): New procedure.
12796 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
12797 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
12798 (Related_Interface): New attribute. Present in dispatch table pointer
12799 components of records. Set to point to the entity of the corresponding
12800 interface type.
12801 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
12802 (Original_Access_Type): Remove, not needed.
12803 (Root_Type): Handle properly subtypes of class-wide-types.
12804 Update comments.
12805
12806 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
12807 class-wide types visible through limited-with clauses.
12808 (Try_Primitive_Operation): When examining all primitive operations of a
12809 tagged type, do not consider subprograms labeled as hidden unless they
12810 belong to a private generic type with a tagged parent.
12811 (Try_Object_Operation): Extensive rewriting, to handle properly various
12812 overloading cases, when several ancestors may have class-wide operations
12813 that are possible candidates, and when the overloaded functions return
12814 array types and have defaulted parameters so that the call may be
12815 interpreted as an indexing.
12816 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
12817 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
12818 successive actuals before analyzing the call itself.
12819 (Try_Primitive_Operation): A primitive operation is compatible with the
12820 prefix if the prefix has a synchronized type and the type of the formal
12821 is its corresponding record, as can be the case when the primitive
12822 operation is declared outside of the body of the type.
12823 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
12824 perform homonym traversal, looking for class-wide operation matches
12825 (formerly done in statements of Try_Class_Wide_Operation). Matches on
12826 access parameters are now restricted to anonymous access types.
12827 (Mark_Allocator): An allocator with a discriminant association parent is
12828 a coextension.
12829 (Try_One_Prefix_Interpretation): If the type of the object is
12830 incomplete, as can be happen when it is a limited view obtained through
12831 a limited_with_clause, the selected component is not part of a prefixed
12832 call.
12833 (Complete_Object_Operation): Diagnose properly an object that is not
12834 aliased when the corresponding controlling formal is an access
12835 parameter.
12836 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
12837 ambiguous calls in prefixed notation, where two primitives differ only
12838 in that the controlling argument of one is an access parameter.
12839
12840 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
12841 whether a function that returns an unconstrained type can be inlined.
12842 (Process_Formals): Diagnose properly the illegal use of an incomplete
12843 type in the profile of an access_to_subprogram declaration.
12844 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
12845 operations are attached to the corresponding record.
12846 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
12847 When processing a primitive of a concurrent type which implements an
12848 interface change the type of all controlling formals to that of the
12849 corresponding record type.
12850 (Check_Synchronized_Overriding): Relax the conditional logic when trying
12851 to determine the tagged type to which a primitive belongs.
12852 (Check_Conventions): Capture condition to ignore a primitive operation
12853 (which is shared between the loop in Check_Conventions and the one in
12854 Check_Convention) in a new local function Skip_Check.
12855 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
12856 confusion with Check_Conventions' own Prim_Op local variable.
12857 (Create_Extra_Formals): Test for a tagged result type rather than a
12858 controlling result when determining whether to add a BIP_Alloc_Form
12859 formal and a BIP_Final_List formal to the function.
12860 (Check_Conformance); For parameters that are anonymous access types,
12861 subtype conformance requires that the not null and the constant
12862 indicators must match
12863 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
12864 to retrieve the appropriate type when processing a concurrent type
12865 declared within a generic. Minor comment reformatting. Change invocation
12866 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
12867 mitive.
12868 (Analyze_Subprogram_Body): If the return type of a function is an
12869 anonymous access to the limited view of a class-wide type, and the
12870 non-limited view of the type is available, update the type of the
12871 function so that code can be generated.
12872 (Process_Formals): In case of access-subtype itype whose designated
12873 type is also an itype (situation that happens now with access to
12874 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
12875 attribute to avoid backend problems.
12876 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
12877 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
12878 anonymous types' designated types are same before testing
12879 Subtypes_Statically_Match.
12880 (Create_Extra_Formals): Test for a named access parameter that is a
12881 controlling formal as an additional condition for adding an
12882 accessibility level formal. This can occur in the subp type created for
12883 dispatching calls in Expand_Dispatching_Call, and allows calling
12884 Create_Extra_Formals from that procedure rather than special-casing the
12885 extra formals there.
12886 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
12887 when the function has a controlling result.
12888 (Check_Returns): Add much more knowledge of the optimization of local
12889 raise statements to gotos, to retain proper warnings in this case.
12890 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
12891 nodes when looking for last statement.
12892
12893 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
12894 class-wide types visible through limited with clauses.
12895 (Add_One_Interp): If the operands are anonymous access types, the
12896 predefined operator on universal_access is immediately visibles
12897 (Find_Unique_Type): Handle anonymous access to subprogram types just as
12898 other anonymous access types.
12899 (Disambiguate): Take into account CIL convention.
12900 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
12901
129022007-06-06 Robert Dewar <dewar@adacore.com>
12903
12904 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
12905 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
12906 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
12907 Fix lower bound of tables.
12908 Add rep clauses.
12909
12910 * nlists.adb: Ditto.
12911 (Prev_Node, Next_Node): Change index type to Int so that it properly
12912 covers the range First_Node_Id - 1 up.
12913
129142007-06-06 Javier Miranda <miranda@adacore.com>
12915 Ed Schonberg <schonberg@adacore.com>
12916 Bob Duff <duff@adacore.com>
12917 Hristian Kirtchev <kirtchev@adacore.com>
12918
9e81dbc7 12919 * exp_aggr.ads, exp_aggr.adb:
ec11296f
AC
12920 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
12921 in extension aggregates.
12922 (Flatten): Other conditions being met, an aggregate is static if the
12923 low bound given by component associations is different from the low
12924 bound of the base index type.
12925 (Packed_Array_Aggregate_Handled): If the component type is itself a
12926 packed array or record, the front-end must expand into assignments.
12927 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
12928 Init_Pr, instead of Ancestor_Is_Expression.
12929 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
12930 coextension chain root, either generate a list controller or use the
12931 already existing one.
12932 (Static_Array_Aggregate): New procedure to construct a positional
12933 aggregate that can be handled by the backend, when all bounds and
12934 components are compile-time known constants.
12935 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
12936 types covering interface types into assignments.
12937 (Replace_Type): move to Build_Record_Aggr_Code.
12938 (Expand_Record_Aggr_Code): if the target of the aggregate is an
12939 interface type, convert to the definite type of the aggregate itself,
12940 so that needed components are visible.
12941 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
12942 components and the context is an extended return statement do not
12943 create a transient block for it, to prevent premature finalization
12944 before the return is executed.
12945 (Gen_Assign): Do not generate a call to deep adjust routine if the
12946 component type is itself an array of controlled (sub)-components
12947 initialized with an inner aggregate.
12948 (Component_Check): New name for Static_Check. This name is now more
12949 appropriate, and documentation is added which was missing.
12950 (Component_Check): Add test for bit aligned component value
12951 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
12952 Tagged_Comps, name is more appropriate given added function below.
12953 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
12954
129552007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12956 Javier Miranda <miranda@adacore.com>
12957 Robert Dewar <dewar@adacore.com>
12958
12959 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
12960 Terminated: Add unchecked type conversion from System.Address to
12961 System.Tasking.Task_Id when calling the predefined primitive
12962 _disp_get_task_id.
12963 Disable new Ada 05 accessibility check for JVM.NET targets, which
12964 cannot be implemented in a practical way.
12965 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
12966 the sources always references the tag of the actual object. Therefore,
12967 if 'Tag is applied in the sources to class-wide interface objects we
12968 generate code that displaces "this" to reference the base of the object.
12969 (Expand_N_Attribute_Reference, case Size): Return specified size if
12970 known to front end.
12971 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
12972 has code that displaces the pointer of the object to manage interface
12973 types. However this code must not be executed when the prefix is a
12974 subprogram. This bug caused the wrong expansion of the internally
12975 generated assignment that fills the dispatch table when the primitive
12976 is a function returning a class-wide interface type.
12977 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
12978 Set_Attribute_Name for Name_Unaligned_Valid.
12979
129802007-06-06 Ed Schonberg <schonberg@adacore.com>
12981 Gary Dismukes <dismukes@adacore.com>
12982
12983 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
12984 If the initialization is the equivalent aggregate of the initialization
12985 procedure of the type, do not remove it.
12986 (Expand_N_Attribute_Definition_Clause): Exclude access variables
12987 initialized to null from having their expression reset to empty and
12988 note this exception in the comment.
12989
129902007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12991 Robert Dewar <dewar@adacore.com>
12992 Ed Schonberg <schonberg@adacore.com>
12993 Gary Dismukes <dismukes@adacore.com>
12994
12995 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
12996 Add "with" and "use" clauses for Sem_Attr.
12997 (Expand_Current_Value): Do not replace occurences of attribute
12998 references where the prefix must be a simple name.
12999
13000 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13001 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13002 Attribute_Requires_Simple_Name_Prefix.
13003 (Name_Modifies_Prefix): Body of new function.
13004 (Requires_Simple_Name_Prefix): Body of new function.
13005 (Resolve_Attribute, case Access): Improve error message for case of
13006 mismatched conventions.
13007 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13008 incomplete type.
13009 (Analyze_Attribute, case 'Access): If the type of the prefix is a
13010 constrained subtype for a nominal unconstrained type, use its base type
13011 to check for conformance with the context.
13012 (Resolve_Attribute): Remove test of the access type being associated
13013 with a return statement from condition for performing accessibility
13014 checks on access attributes, since this case is now captured by
13015 Is_Local_Anonymous_Access.
13016 (Analyze_Access_Attribute): Set Address_Taken on entity
13017 (Analyze_Attribute, case Address): Set Address_Taken on entity
13018 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13019 validating an access attribute whose prefix is a current instance.
13020 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13021 applied to dispatching operations, if freezing is required then we set
13022 the attribute Has_Delayed_Freeze in the prefix's entity.
13023 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13024 current scope if access of local subprogram taken
13025 (Analyze_Access_Attribute): Check legality of self-reference even if the
13026 expression comes from source, as when a single component association in
13027 an aggregate has a box association.
13028 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13029 the prefix if it is a protected operation and the attribute is
13030 Unrestricted_Access.
13031 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13032 reference to the base type of the context, to force a constraint check
13033 when the context is an access subtype with an explicit constraint.
13034 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13035 node is rewritten as an interface conversion. leave unanalyzed after
13036 resolution, to ensure that type checking against the context will take
13037 place.
13038
130392007-06-06 Ed Schonberg <schonberg@adacore.com>
13040 Javier Miranda <miranda@adacore.com>
13041 Robert Dewar <dewar@adacore.com>
13042
13043 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13044 wrapper when the full view of the controlling type of an inherited
13045 function that dispatches on result implements interfaces.
13046 (Expand_N_Object_Declaration): In cases where the type of the
13047 declaration is anonymous access, create finalization list for it.
13048 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13049 if the object has no explicit initialization, to match description of
13050 functionality of pragam Persistent_BSS.
13051 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13052 new function to build static aggregates, to replace initialization call
13053 when static initialization is desired.
13054 (Freeze_Type): Generate a list controller for an access type whenever
13055 its designated type has controlled anonymous access discriminants.
13056 (Build_Equivalent_Aggregate): New procedure to compute a static
13057 aggregate to be used as default initialization for composite types,
13058 instead of a generating a call to the initialization procedure for the
13059 type.
13060 (Build_Initialization_Call): When available, replace a call to the
13061 initialization procedure with a copy of the equivalent static aggregate
13062 for the type.
13063 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
13064 declarations for objects of a class-wide interface type, rather than
13065 just identifiers, to prevent visibility problems.
13066 (Expand_N_Object_Declaration): When expanding the declaration for an
13067 object of a class-wide interface type, preserve the homonym chain of
13068 the original entity before exchanging it with that of the generated
13069 renaming declaration.
13070 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13071 active, because there is no way to handle the exception.
13072 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13073 to do a minimum decoration of the Access_Disp_Table list.
13074 (Expand_Record_Controller): Avoid the addition of the controller between
13075 the component containing the tag of a secondary dispatch table and its
13076 adjacent component that stores the offset to the base of the object.
13077 This latter component is only generated when the parent type has
13078 discriminants ---documented in Add_Interface_Tag_Components).
13079 (Apply_Array_Size_Check): Removed, no longer needed.
13080 (Expand_N_Full_Type_Declaration): If the type has anonymous access
13081 components, create a Master_Entity for it only if it contains tasks.
13082 (Build_Init_Procedure): Suppress the tag assignment compiling under
13083 no run-time mode.
13084 (Freeze_Record_Type): Remove code associated with creation of dispatch
13085 table.
13086 (Init_Secondary_Tags): Update type of actuals when generating calls to
13087 Ada.Tags.Set_Offset_To_Top
13088 (Stream_Operation_OK): Disable use of streams compiling under no
13089 run-time mode
13090 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13091 if Has_Init_Expression set.
13092 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13093 Register_Primitive, which provides the same functionality.
13094 (Requires_Init_Proc): Return false in case of interface types.
13095 (Add_Secondary_Tables): Use the new attribute Related_Interface to
13096 cleanup the code.
13097 (Predefined_Primitive_Freeze): Do not assume that an internal entity
13098 is always associated with a predefined primitive because the internal
13099 entities associated with interface types are not predefined primitives.
13100 Therefore, the call to Is_Internal is replaced by a call to the
13101 function Is_Predefined_Dispatching_Operation.
13102 (Make_Eq_If): When generating the list of comparisons for the
13103 components of a given variant, omit the controller component that is
13104 present if the variant has controlled components.
13105
131062007-06-06 Javier Miranda <miranda@adacore.com>
13107 Hristian Kirtchev <kirtchev@adacore.com>
13108 Bob Duff <duff@adacore.com>
13109
13110 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13111 handle the creation of finalization lists and calls for nested
13112 coextensions when the root of the chains is part of a return statement.
13113 (Inside_A_Return_Statement): New function inside Complete_Coextension_
13114 Finalization.
13115 (Expand_Record_Equality): Skip components that are interface types.
13116 (Displace_Allocator_Pointer): Add missing support for interface subtypes
13117 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13118 with Rewrite_Coextension. Change the condition for detecting coextension
13119 root nodes.
13120 (Is_Local_Access_Discriminant): Removed.
13121 (Rewrite_Coextension): New routine which rewrites a static coextension
13122 as a temporary and uses its unrestricted access in the construction of
13123 the outer object.
13124 (Complete_Coextension_Finalization): New routine. Generate finalization
13125 attachment calls to all delayed coextensions.
13126 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13127 the allocator is not a coextension itself and has delayed coextensions.
13128 If the current allocator is controlled, but also a coextension, delay
13129 the generation of the finalization attachment call.
13130 Rename local variable "Node" to "Nod" in order to avoid confusion with
13131 "Elists.Node".
13132 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13133 limited types that are not inherently limited. Such an allocator is
13134 illegal, but is generated by the expander for a return statement, to
13135 copy the result onto the secondary stack. This is the only case where a
13136 limited object can be copied. Generate code to displace the pointer
13137 to the object if the qualified expression is a class-wide interface
13138 object. Such displacement was missing and hence the copy of the object
13139 was wrong.
13140 (Apply_Accessibility_Check): Handle allocated objects initialized in
13141 place.
13142 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13143 and Expand_Allocator_Expression. Allocating class-wide interface objects
13144 this routine displaces the pointer to the allocated object to reference
13145 the component referencing the corresponding secondary dispatch table.
13146 Expand_Allocator_Expression): Add missing support to allocate class-wide
13147 interface objects initialized with a qualified expression.
13148 (Get_Allocator_Final_List): Test for an anonymous access type that is a
13149 function result type, and use the finalization list associated with the
13150 function scope in that case (such an anonymous type should not be
13151 treated like an access parameter's type).
13152
131532007-06-06 Ed Schonberg <schonberg@adacore.com>
13154 Gary Dismukes <dismukes@adacore.com>
13155 Javier Miranda <miranda@adacore.com>
13156
13157 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13158 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13159 required exception handler.
13160 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13161 properly the case of a function whose return type is a limited
13162 class-wide interface type. Modify the code of the accessibility
13163 check to handle class-wide interface objects. In this case we need to
13164 displace "this" to reference the primary dispatch table to get access
13165 to the TSD of the object (to evaluate its accessibility level).
13166 (Expand_N_Extended_Return_Statement): Test for a tagged result type
13167 rather than a controlling result as one of the conditions for
13168 generating tests of the implicit BIP_Alloc_Form formal. The
13169 initialization assignment is also handled according to whether the
13170 result is tagged instead of controlling.
13171 In the case where the init assignment is inserted in the "then" part of
13172 the allocation conditional, rewrite the target to be a dereference of
13173 the implicit BIP_Object_Access formal.
13174 If the returned value is unconstrained and created on the secondary
13175 stack, mark the enclosing block and function so that the secondary
13176 stack is not reclaimed on return.
13177 Treat returns from functions with controlling results similarly to
13178 returns from functions with unconstrained result subtypes.
13179 If the object returned is unconstrained, and an allocator must be
13180 created for it, analyze the allocator once the block for the extended
13181 return is installed, to ensure that finalizable components
13182 of the expression use the proper finalization list. Guard the call to
13183 Move_Final_List with a check that there is something to finalize.
13184 (Make_Tag_Ctrl_Assignment): Use "old" handling
13185 of controlled type assignment for virtual machines, since new code uses
13186 unsupported features (such as direct access to bytes in memory).
13187
131882007-06-06 Gary Dismukes <dismukes@adacore.com>
13189 Ed Schonberg <schonberg@adacore.com>
13190
13191 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13192 accessibility actual, check for the case of an aliased object that has
13193 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13194 we fall into processing for the attribute rather than the name of the
13195 object.
13196 (Expand_Inline_Call): If an actual is a literal, and the corresponding
13197 formal has its address taken in the body, create a temporary to capture
13198 value. If the return type is a limited interface, do not treat the
13199 return value as Controlled.
13200 (Is_In_Place_Function): If the return type is a limited interface,
13201 treat as returning in place. The actual returned object may not always
13202 be limited, but the caller has to assume that it is returned in place.
13203 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13204 context of an allocator, use the correct finalization chain (that is,
13205 the chain belonging to the access type, rather than the chain belonging
13206 to the current scope).
13207 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13208 result type rather than a controlling result as a precondition for
13209 adding an allocation form actual to a build-in-place call.
13210 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13211 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13212 primitive in the dispatch tables. This work is now done by Make_DT when
13213 the type is frozen.
13214 (Register_Predefined_DT_Entry): Removed.
13215 (Add_Return): If end label is not present, use sloc of last statement
13216 for generated return statement in procedure, for better gdb behavior
13217 on expanded code.
13218 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13219 object address nodes to ensure proper processing by routines like
13220 Insert_After*.
13221 (Expand_Call): Fix generation of validity check for parameter
13222 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13223 the allocation form parameter if the result subtype is constrained,
13224 except when the function has a controlling result.
13225 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13226 rather than Is_Controlled and Has_Controlled_Component, since we want to
13227 include class-wide result types in this treatment. Also test for a
13228 controlling result, since that also requires passing a finalization
13229 list.
13230 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13231 even when the result subtype is constrained, to handle calls involving
13232 controlling results.
13233 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13234 is now called even when the result subtype is constrained, to handle
13235 calls involving controlling results.
13236 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13237 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13238 now performs the test).
13239 (Make_Build_In_Place_Call_In_Object_Declaration):
13240 Add_Alloc_Form_Actual_* is now called even when the result subtype is
13241 constrained, to handle calls involving controlling results.
13242 (Add_Return): Accomodate rewritten pattern from local raise to goto
13243 transformation, so that we still recognize an transfer statement
13244 and do the right thing here in that case.
13245 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13246 and end of subprogram code.
13247 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13248 support for primitives that are functions (without formals) with a
13249 controlling result.
13250 (Inherited_From_Formal): If the actual subtype has not generic parent
13251 type, it is not an actual for a formal derived type, and there is no
13252 operation to inherit from the formal.
13253
132542007-06-06 Ed Schonberg <schonberg@adacore.com>
13255 Thomas Quinot <quinot@adacore.com>
13256
13257 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13258 inserted cleanup code appropriately for GDB use.
13259 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13260 exception handler for Deep_Adjust or Deep_Finalize.
13261 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13262 Raise_From_Controlled_Operation is available, use a call to that
13263 subprogram instead of a plain "raise Program_Error" node to raise
13264 Program_Error if an exception is propagated from an Adjust or Finalize
13265 operation.
13266 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13267 appears in the optional statement list of a triggering alternative, the
13268 scope actions can be inserted directly there, and not in the list that
13269 includes the asynchronous select itself.
13270
132712007-06-06 Ed Schonberg <schonberg@adacore.com>
13272 Robert Dewar <dewar@adacore.com>
13273 Hristian Kirtchev <kirtchev@adacore.com>
13274
13275 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13276 generated exception handler appropriately when debugging generated code.
13277 Deal properly with No_Exception_Propagation restriction mode.
13278 (Expand_N_Abort_Statement): Add an unchecked type conversion from
13279 System.Address to System.Tasking.Task_Id when processing the result of
13280 the predefined primitive _disp_get_task_id.
13281 (Expand_N_Asynchronous_Select): Clarify comment.
13282 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13283 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13284 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13285 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13286 privals and for generated call to Complete_Entry_Body, for better gdb
13287 behavior.
13288 (Copy_Result_Type): Utility to construct a parameter and result profile
13289 for protected functions whose return type is an anonymous access to
13290 subprogram.
13291 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13292 call the above.
13293 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13294 point when the local-raise-to-goto transformation has taken place.
13295
132962007-06-06 Javier Miranda <miranda@adacore.com>
13297 Nicolas Setton <setton@adacore.com>
13298
13299 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13300 functionality when the backend is generating code.
13301 Otherwise any serious error
13302 reported by the backend calling the frontend routine Error_Msg
13303 changes the Compilation_Mode to Check_Semantics, disables the
13304 functionality of this routine and causes the generation of
13305 spureous additional errors.
13306
13307 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13308 debugging information now generated by the compiler for fat-pointer
13309 types.
13310 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13311 DWARF2/3.
13312 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13313
133142007-06-06 Thomas Quinot <quinot@adacore.com>
13315
13316 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13317 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13318 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13319 For a remote call to a function with a classwide return type, apply an
13320 E.4(18) check to the returned value.
13321 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13322 stream attributes of the designated type of an RACW, as they are not
13323 dispatching primitive operations.
13324
133252007-06-06 Geert Bosch <bosch@adacore.com>
13326
13327 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13328 negative literal
13329 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13330 positive
13331 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13332 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13333 positive
13334 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13335
133362007-06-06 Javier Miranda <miranda@adacore.com>
13337
13338 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13339 attribute compiling package Ada.Tags under No_Run_Time_Mode.
13340
133412007-06-06 Javier Miranda <miranda@adacore.com>
13342
13343 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13344 deallocation of class-wide interface objects.
13345 (Expand_Dispatching_Constructor_Call): Take into account that if the
13346 result of the dispatching constructor is an interface type, the
13347 function returns a class-wide interface type; otherwise the returned
13348 object would be actual. The frontend previously accepted returning
13349 interface types because Expand_Interface_Actuals silently performed
13350 the management of the returned type "as if" it were a class-wide
13351 interface type.
13352 (Expand_Dispatching_Constructor_Call): Replace call to
13353 Make_DT_Access_Action by direct call to Make_Function_Call.
13354
133552007-06-06 Robert Dewar <dewar@adacore.com>
13356 Ed Schonberg <schonberg@adacore.com>
13357
13358 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13359 compute masking constant, since we now set Esize properly to the
13360 underlying size.
13361 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13362 to match the alignment.
13363 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13364 packed arrays of 8 bits or less.
13365
13366 * freeze.adb (Freeze_Entity): When freezing the formals of a
13367 subprogram, freeze the designated type of a parameter of an access type
13368 only if it is an access parameter.
13369 Increase size of C convention enumeration object
13370 (Freeze_Entity, array type case): Make sure Esize value is properly
13371 adjusted for the alignment if it is known.
13372 (Freeze_Entity, array type case): When checking bit packed arrays for
13373 the size being incorrect, check RM_Size, not Esize.
13374 (Freeze_Record_Type): Check for bad discriminated record convention
13375 (In_Exp_Body): Return true if the body is generated for a subprogram
13376 renaming, either an attribute renaming or a renaming as body.
13377 (Check_Itype): If the designated type of an anonymous access component
13378 is a non-protected subprogram type, indicate that it is frozen, to
13379 prevent out-of-scope freeze node at some subsequent call.
13380 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13381 only if the subprogram is neither imported nor exported, as well as the
13382 NCA descriptor class if the subprogram is exported.
13383
133842007-06-06 Ed Schonberg <schonberg@adacore.com>
13385 Arnaud Charlet <charlet@adacore.com>
13386 Robert Dewar <dewar@adacore.com>
13387 Gary Dismukes <dismukes@adacore.com>
13388
13389 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13390 default initialization on an imported object, when there is no
13391 initialization call generated for it.
13392 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13393 restriction
13394
13395 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13396 Static_Elaboration_Desired.
13397 Remove pragma Thread_Body.
13398 Implement a new pragma No_Body
13399 Removes the Explicit_Overriding pragma
13400 Remove Optional_Overriding pragma
13401 (Prag): Deal with Universal_Aliasing.
13402 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13403 Pragma_CIL_Constructor): New names.
13404
13405 * sem_cat.adb (Validate_Object_Declaration): An initialization that
13406 uses the equivalent aggregate of a type must be treated as an implicit
13407 initialization.
13408 (Get_Categorization): Check a unit for pragma Preelaborate only if it
13409 has none of the other categories.
13410 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13411 to apply Import to an object renaming declaration.
13412
13413 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13414 from a C++ class should be declared as limited and that it will be
13415 considererd limited.
13416 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13417 should be declared as limited and that it will be considererd limited.
13418 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13419 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13420 (Analyze_Pragma): Deal with Universal_Aliasing.
13421 (Sig_Flags): Likewise.
13422 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13423 (Overflow_Checks_Unsuppressed): New flag.
13424 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13425 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13426 case of JVM or .NET targets, and compiling user code.
13427 Add debugging convenience routine rv
13428
134292007-06-06 Robert Dewar <dewar@adacore.com>
13430
13431 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13432 are interface type.
13433 (Build_Elementary_Input_Call): For floating-point use right type in the
13434 absence of strange size or stream size clauses.
13435 (Build_Elementary_Write_Call): Same fix
13436 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13437 set to value that does not match base type size.
13438
134392007-06-06 Ed Schonberg <schonberg@adacore.com>
13440
13441 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13442 object of a limited type can be initialized with a call to a function
13443 that returns in place. If the limited type has unknown discriminants,
13444 and the underlying type is a constrained composite type, build an actual
13445 subtype from the function call, as is done for private types.
13446 (Side_Effect_Free): An expression that is the renaming of an object or
13447 whose prefix is the renaming of a object, is not side-effect free
13448 because it may be assigned through the renaming and its value must be
13449 captured in a temporary.
13450 (Has_Controlled_Coextensions): New routine.
13451 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13452 as is done for other limited types.
13453 (Non_Limited_Designated_Type): new predicate.
13454 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13455 objects.
13456 Remove all handling of with_type clauses.
13457
9e81dbc7 13458 * par-ch10.adb: Remove all handling of with_type clauses.
ec11296f
AC
13459
13460 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13461 checksum if the main source could not be parsed.
13462 (Loat_Unit): When processing a child unit, determine properly whether
13463 the parent unit is a renaming when the parent is itself a child unit.
13464 Remove handling of with_type clauses.
13465
13466 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13467 (Set_Is_Static_Coextension): New procedure.
13468 (Has_Local_Raise): New function
13469 (Set_Has_Local_Raise): New procedure
13470 (Renaming_Exception): New field
13471 (Has_Init_Expression): New flag
13472 (Delay_Finalize_Attach): Remove because flag is obsolete.
13473 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13474 Remove all handling of with_type clauses.
13475 (Exception_Junk): Can now be set in N_Block_Statement
13476
134772007-06-06 Vincent Celier <celier@adacore.com>
13478 Robert Dewar <dewar@adacore.com>
13479
13480 * frontend.adb (Frontend): Return immediately if the main source could
13481 not be parsed, because of preprocessing errors.
13482
13483 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13484 (Gnat1drv): Exit with errors if the main source could not be parsed,
13485 because of preprocessing errors.
13486 (Check_Rep_Info): New procedure
13487
134882007-06-06 Robert Dewar <dewar@adacore.com>
13489
13490 * g-hesorg.ads, g-heasor.ads,
13491 g-busorg.ads, g-bubsor.ads: Update documentation
13492 GNAT.Heap/Bubble_Sort_G is now pure
13493
134942007-06-06 Robert Dewar <dewar@adacore.com>
13495
13496 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13497
134982007-06-06 Robert Dewar <dewar@adacore.com>
13499 Ed Schonberg <schonberg@adacore.com>
13500
9e81dbc7 13501 * g-comlin.ads, g-comlin.adb:
ec11296f
AC
13502 Add new warning for renaming of function return objects
13503
13504 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13505 (Tree_Read): Use size of object instead of type'object_size, since the
13506 latter is incorrect for packed array types.
13507 (Tree_Write): Same fix
13508
13509 * opt.ads: Add new warning for renaming of function return objects
13510 (Generating_Code): New boolean variable used to indicate that the
13511 frontend as finished its work and has called the backend to process
13512 the tree and generate the object file.
13513 (GCC_Version): Is now private
13514 (Static_Dispatch_Tables): New constant declaration.
13515 (Overflow_Checks_Unsuppressed): New flag.
13516 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13517 (List_Closure): New flag for gnatbind (-R)
13518 Zero_Formatting: New flag for gnatbind (-Z)
13519 (Special_Exception_Package_Used): New flag.
13520 (Warn_On_Unrepped_Components): New flag.
13521
13522 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13523 unit is a compilation unit, rather than relying on its scope, so that
13524 Standard can be renamed.
13525 (Analyze_Object_Renaming): Add new warning for renaming of function
13526 return objects.
13527 Also reject attempt to rename function return object in Ada 83 mode.
13528 (Attribute_Renaming): In case of tagged types, add the body of the
13529 generated function to the freezing actions of the type.
13530 (Find_Type): A protected type is visible right after the reserved word
13531 "is" is encountered in its type declaration. Set the entity and type
13532 rather than emitting an error message.
13533 (New_Scope): Properly propagate Discard_Names to inner scopes
13534 (Check_Nested_Access): New procedure.
13535 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13536 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13537
13538 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13539 Add new warning for renaming of function return objects
13540 (Check_References): Suppress warnings for objects whose type or
13541 base type has Warnings suppressed.
13542 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13543 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13544
135452007-06-06 Vincent Celier <celier@adacore.com>
13546 Emmanuel Briot <briot@adacore.com>
13547 Olivier Hainque <hainque@adacore.com>
13548
13549 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13550 absolute value of Header.Block_Size when displaying the freed physical
13551 memory in traces.
13552 (Allocate): Compute Storage_Address using Integer_Address, not
13553 Storage_Offset, because the range of Storage_Offset may not be large
13554 enough.
13555 (Configure): New parameter Low_Level_Traces
13556 (Allocate, Deallocation, Free_Physically): Added low-level traces
13557 (Configure): new parameter Errors_To_Stdout.
13558 (Output_File): new subprogram
13559 (Deallocate, Dereference): Send error messages to the proper stream
13560 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13561 documented. Previous code would send it to the current output file
13562 defined in GNAT.IO, which might not be stdout
13563 (Is_Valid): Adjust comment to mention that a positive reply means that
13564 Header_Of may be used to retrieve the allocation header associated with
13565 the subprogram Storage address argument. Return False early if this
13566 address argument is misaligned.
13567
135682007-06-06 Vincent Celier <celier@adacore.com>
13569
13570 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
13571 switch -P
13572 (ASIS_Main): New global variable
13573 (Get_Closure): New procedure
13574 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
13575 check, metric or pretty. Call Get_Closure in this case.
13576 (Check_Files): For GNAT LIST, check all sources of all projects when
13577 All_Projects is True.
13578 (GNATCmd): Accept -U for GNAT LIST
13579
135802007-06-06 Vincent Celier <celier@adacore.com>
13581
13582 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
13583 has been specified
13584 Correct error message when invocation of the linker fails
13585 Add explicit size clause for the C imported variables
13586 Object_List_File_Supported and Using_GNU_Linker to emphasize that
13587 we expect char size.
13588 Read target parameters earlier, since this is needed to set
13589 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
13590 targets.
13591
135922007-06-06 Vincent Celier <celier@adacore.com>
13593
9e81dbc7 13594 * gnatls.adb:
ec11296f
AC
13595 Add 3 spaces before the default project directory when displaying
13596 the project search path.
13597 Add new command line switch '-l' to display license information.
13598
135992007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
13600
13601 * gmem.c: Add support for timestamps on memory operations.
13602
13603 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
13604 operations (not used currently, just foundation for future
13605 enhancements). Add possibility to perform full dump of gmem.out file.
13606 (Print_Back_Traces): Declare accesses to root arrays constants since
13607 they aren't modified.
13608 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
13609
136102007-06-06 Vincent Celier <celier@adacore.com>
13611
13612 * gnatsym.adb: Update Copyright notice
13613 (Parse_Cmd_Line): Accept new switch -D
13614 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
13615 file.
13616
13617 * prj.ads (Policy): New policy Direct
13618 (Yes_No_Unknown): New enumeration type
13619 (Project_Data): New component Libgnarl_Needed
13620
13621 * prj-nmsc.adb (Check_For_Source): When recording a source file make
13622 use the untouched pathname casing.
13623 (Get_Directories): Ensure that the Display_Exec_Directory is using the
13624 proper casing on non case-sensitive platforms like Windows.
13625 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
13626 on all platforms, as it is not possible to know which one is allowed
13627 before processing the project files.
13628 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
13629 specified when symbol policy is Direct. Check that when there is a
13630 symbol file defined (either by default or with attribute
13631 Library_Symbol_File) it is not the same as the reference symbol file.
13632 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
13633 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
13634 extending projects.
13635 (Record_Ada_Source): Record a source that has been locally removed in an
13636 imported project.
13637
13638 * symbols.ads (Policy): New policy Direct
13639
13640 * symbols-vms.adb (Initialize): Take new policy Direct in case
13641 statement
13642
136432007-06-06 Vincent Celier <celier@adacore.com>
13644
13645 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
13646 Correct obvious bug (return Dir; instead of return Directory;).
13647 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
13648
136492007-06-06 Thomas Quinot <quinot@adacore.com>
13650
13651 * g-pehage.adb (Produce): Open output files in Binary mode, so that
13652 they have UNIX line endings (LF only) even on Windows, and thus pass
13653 all GNAT style checks.
13654
136552007-06-06 Emmanuel Briot <briot@adacore.com>
13656
13657 * g-regpat.adb (Quote): Fix improper quoting of '.'
13658
136592007-06-06 Thomas Quinot <quinot@adacore.com>
13660
13661 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
13662 default, set False on a per-runtime basis.
13663 (Need_Netdb_Buffer): New constant.
13664
13665 * g-socket.ads, g-socket.adb: Import new package
13666 GNAT.Sockets.Thin.Task_Safe_NetDB.
13667 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
13668 binding to obtain proper message.
13669 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
13670 Replace various occurrences of Arry (Arry'First)'Address with the
13671 equivalent Arry'Address (GNAT always follows implementation advice from
13672 13.3(14)).
13673 (Get_Host_By_Address, Get_Host_By_Name,
13674 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
13675 instead, rely on platform-specific task safe netdb operations provided
13676 by g-socthi.
13677
13678 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
13679 parameter Process_Blocking_IO.
13680 (Host_Error_Messages): Add stub body.
13681 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13682 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
13683 Safe_Getservbyport): Move functions into new child package
13684 Task_Safe_NetDB.
13685 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
13686 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
13687 (In_Addr): Add alignment clause.
13688
136892007-06-06 Robert Dewar <dewar@adacore.com>
13690
13691 * g-trasym.ads, g-traceb.ads: Update list of supported targets
13692 Add note about symbolic traceback
13693
136942007-06-06 Pascal Obry <obry@adacore.com>
13695
13696 * hostparm.ads (Normalized_CWD): Use the host directory separator
13697 instead of the hardcoded forward slash which is not the proper
13698 character on Windows for example.
13699 (Java_VM): Removed.
13700
137012007-06-06 Vincent Celier <celier@adacore.com>
13702 Arnaud Charlet <charlet@adacore.com>
13703
13704 * a-clrefi.adb, a-clrefi.ads: New files
13705
13706 * impunit.adb: Add s-os_lib in the list of user visible units.
13707 (Non_Imp_File_Names_95): Add a-clrefi to this list
13708 Remove obsolete run-time entries.
13709 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
13710 "a-exetim" -- Ada.Execution_Time
13711 "a-extiti" -- Ada.Execution_Time.Timers
13712
13713 * mlib-prj.ads, mlib-prj.adb
13714 (Build_Library): Use untouched object dir and library dir. At the
13715 same time makes sure that the checks are done using the canonical
13716 form. Removes hard-coded directory separator and use the proper host
13717 one instead.
13718 (Process_Project): Do not look in object directory to check if libgnarl
13719 is needed for a library, if there is no object directory.
13720 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
13721 linking.
13722 (Build_Library): When invoking gnatbind, use a response file if the
13723 total size of the arguments is too large.
13724
13725 * Makefile.rtl: (g-sttsne): New object file.
13726 Add entry for a-clrefi, s-utf_32, System.Exceptions
13727
13728 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
13729 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
13730 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
13731 Change g-string to s-string, g-os_lib to s-os_lib
13732 Change all g-utf_32 references to s-utf_32
13733
137342007-06-06 Tristan Gingold <gingold@adacore.com>
13735 Olivier Hainque <hainque@adacore.com>
13736
13737 * init.c: Do not adjust IP of an imported VMS exception of ia64.
13738 LIB$STOP is called to raise an exception and the IP of the exception
13739 is the instruction right after the call.
13740 (__gnat_adjust_context_for_raise, AIX): Implement.
13741 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
13742 adjust_context_for_raise before Raise_From_Signal_Hanler.
13743 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
13744 siginfo is passed to the handler, necessary to let the zcx propagation
13745 engine unwind past it.
13746
137472007-06-06 Olivier Hainque <hainque@adacore.com>
13748
13749 * initialize.c (__gnat_initialize for vxworks): Update documentation
13750 on the ZCX support, using different sets of crtstuff objects than with
13751 GCC 3.4.
13752
137532007-06-06 Robert Dewar <dewar@adacore.com>
13754
13755 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
13756 spec from body
13757 (Layout_Type): Fix recomputation of size from alignment.
13758
137592007-06-06 Ed Schonberg <schonberg@adacore.com>
13760 Javier Miranda <miranda@adacore.com>
13761
13762 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
13763 association in an instance.
13764 (Copy_Generic_Node): If the node is a string literal, no need to copy
13765 its descendants.
13766 (Is_Generic_Formal): For a formal subprogram, the declaration is the
13767 grandparent of the entity.
13768 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
13769 to simplify handling of formal interfaces that derive from other formal
13770 interfaces.
13771 (Instantiate_Subprogram_Body): The defining unit name of the body of
13772 the instance should be a defining identifier.
13773 (Install_Formal_Packages): make global to the package, for use in
13774 instantiations of child units.
13775 (Analyze_Package_Instantiation): Do not attempt to set information on an
13776 enclosing master of an entry when expansion is disabled.
13777 (Instantiate_Type): If the actual is a tagged synchronized type and the
13778 generic ancestor is an interface, create a generic actual for the
13779 corresponding record.
13780 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
13781 declaration, to ensure that the interface list is processed correctly.
13782 (Inline_Instance_Body): If enclosing scope is an instance body, remove
13783 its entities from visibiility as well.
13784 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
13785 given with a named association, analyze the expression only, not the
13786 discriminant association itself.
13787 (Reset_Entity): If the analysis of a selected component is transformed
13788 into an expanded name in the prefix of a call with parameters, do not
13789 transform the original node into an expanded name, to prevent visibility
13790 errors in the case of nested generics.
13791 (Check_Private_View): For an array type, check whether the index types
13792 may need exchanging.
13793
137942007-06-06 Arnaud Charlet <charlet@adacore.com>
13795 Vincent Celier <celier@adacore.com>
13796
13797 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
13798 since both are separated.
13799 Add support for imported CIL packages.
13800 Add further special handling of "value_type" for CIL.
13801 Add special handling of pragma Import for CIL.
13802
13803 * make.ads, make.adb: When switch -eS is used, direct all outputs to
13804 standard output instead of standard error, except errors.
13805 (Absolute_Path): Use untouched casing for the parent directory.
13806 (Add_Library_Search_Dir): Use the untouched directory name.
13807 (Add_Source_Search_Dir): Idem.
13808 (Change_To_Object_Directory): Update output to use proper casing.
13809 (Create_Binder_Mapping_File): Use the untouched filename to set
13810 ALI_Name.
13811 (Gnatmake): Use untouched library and executable directory names.
13812 (Insert_Project_Sources): Use untouched filename for spec and body.
13813 (Is_In_Object_Directory): Use untouched object directory.
13814 (Mark_Directory): Idem.
13815 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
13816 contains the non-canonical filename in all cases.
13817 (Change_To_Object_Directory): In verbose mode, display the name of the
13818 object directory we're changing to.
13819 (Compile_Sources): Make sure, when a project file is used, to compile
13820 the body of the unit, when there is one, even when only the spec is
13821 recorded in an ALI file.
13822 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
13823 spec to the body.
13824 (Report_Compilation_Failed): New procedure
13825 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
13826 procedures moved from the spec to the body.
13827 (Extract_Failure): Removed, not used
13828 Replace explicit raises of exception Bind_Failed and Link_Failed with
13829 calls to Make_Failed with the proper message.
13830 Replace explicit raises of exception Compilation_Failed with calls to
13831 procedure Report_Compilation_Failed.
13832 (Initialize): Create mapping files unconditionally when using project
13833 files.
13834
13835 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13836 Pragma_CIL_Constructor): New names.
13837
13838 * targparm.ads, targparm.adb
13839 (Compiler_System_Version): Removed, no longer used.
13840 (Get_Target_Parameters): Relax checks on system.ads validity. Add
13841 handling of two new system flags: JVM and CLI.
13842
138432007-06-06 Jose Ruiz <ruiz@adacore.com>
13844 Arnaud Charlet <charlet@adacore.com>
13845
13846 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
13847 time, use the default s-interr body that provides interrupt support
13848 based on signals.
13849 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
13850 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
13851 g-soccon.ads, and s-taprop.adb for the marte run time.
13852 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
13853 timers are supported on marte.
13854 (EH_MECHANISM for marte): Do not use ZCX.
13855 (THREADSLIB for marte): Use -lmarte.
13856 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
13857 Add mlib-tgt-specific.o to gnatmake objects
13858 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
13859 longer of MLib.Tgt.
13860 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
13861 6, either kernel or rtp, use a specialized version of s-osinte.ads.
13862
138632007-06-06 Pascal Obry <obry@adacore.com>
13864
13865 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
13866
138672007-06-06 Vincent Celier <celier@adacore.com>
13868
13869 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
13870 separator, use instead the proper host directory separator.
13871 (Copy_ALI_Files): Make sure that an already existing ALI file in the
13872 ALI copy dir is writable, before doing the copy.
13873
9e81dbc7 13874 * mlib-utl.ads, mlib-utl.adb:
ec11296f
AC
13875 (Gcc): If length of command line is too long, put the list of object
13876 files in a response file, if this is supported by the platform.
13877 (Ar): If invocation of the archive builder is allowed to be done in
13878 chunks and building it in one shot would go above an OS dependent
13879 limit on the number of characters on the command line, build the archive
13880 in chunks.
13881
138822007-06-06 Vincent Celier <celier@adacore.com>
13883
13884 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
13885 of specified object file is not equal to base name of source.
13886
138872007-06-06 Javier Miranda <miranda@adacore.com>
13888 Hristian Kirtchev <kirtchev@adacore.com>
13889 Ed Schonberg <schonberg@adacore.com>
13890
13891 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
13892 the full type declaration.
13893 (Analyze_Component_Declaration): Add local variable E to capture the
13894 initialization expression of the declaration. Replace the occurences of
13895 Expression (N) with E.
13896 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
13897 limited interface object with a function call.
13898 (Array_Type_Declaration): If the declaration lacks subtype marks for
13899 indices, create a simple index list to prevent cascaded errors.
13900 (Is_Null_Extension): Ignore internal components created for secondary
13901 tags when checking whether a record extension is a null extension.
13902 (Check_Abstract_Interfaces): Add missing support for interface subtypes
13903 and generic formals.
13904 (Derived_Type_Declaration): Add missing support for interface subtypes
13905 and generic formals.
13906 (Analyze_Object_Declaration): If an initialization expression is
13907 present, traverse its subtree and mark all allocators as static
13908 coextensions.
13909 (Add_Interface_Tag_Component): When looking for components that may be
13910 secondary tags, ignore pragmas that can appear within a record
13911 declaration.
13912 (Check_Abstract_Overriding): an inherited function that dispatches on
13913 result does not need to be overriden if the controlling type is a null
13914 extension.
13915 (Mentions_T): Handle properly a 'class attribute in an anonymous access
13916 component declaration, when the prefix is an expanded name.
13917 (Inherit_Component): If the derivation is for a private extension,
13918 inherited components remain visible and their ekind should not be set
13919 to Void.
13920 (Find_Type_Of_Object): In the case of an access definition, always set
13921 Is_Local_Anonymous_Access. We were previously not marking the anonymous
13922 access type of a return object as a local anonymous type.
13923 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
13924 range with character literal bounds.
13925 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
13926 (Access_Subprogram_Declaration): Indicate that the type declaration
13927 depends on an incomplete type only if the incomplete type is declared
13928 in an open scope.
13929 (Analyze_Subtype_Declaration): Handle properly subtypes of
13930 synchronized types that are tagged, and that may appear as generic
13931 actuals.
13932 (Access_Subprogram_Declaration): An anonymous access to subprogram can
13933 appear as an access discriminant in a private type declaration.
13934 (Add_Interface_Tag_Components): Complete decoration of the component
13935 containing the tag of a secondary dispatch table and the component
13936 containing the offset to the base of the object (this latter component
13937 is only generated when the parent type has discriminants --as documented
13938 in this routine).
13939 (Inherit_Components): Use the new decoration of the tag components to
13940 improve the condition that avoids inheriting the components associated
13941 with secondary tags of the parent.
13942 (Build_Discriminanted_Subtype): Indicate to the backend that the
13943 size of record types associated with dispatch tables is known at
13944 compile time.
13945 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
13946 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
13947 to include task, protected, and synchronized interfaces as limited
13948 interfaces.
13949 (Process_Discriminants): Remove the setting of
13950 Is_Local_Anonymous_Access on the type of (anonymous) access
13951 discriminants of nonlimited types.
13952 (Analyze_Interface_Type_Declaration): Complete the decoration of the
13953 class-wide entity it is is already present. This situation occurs if
13954 the limited-view has been previously built.
13955 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
13956 field.
13957 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
13958 Related_Interface.
13959
139602007-06-06 Ed Schonberg <schonberg@adacore.com>
13961
13962 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
13963 of the type that specify the position of interface tags when the type
13964 inherits discriminated array components from the parent type.
13965 If a component is initialized with a box, check for the presence of a
13966 default expression in its declaration before using its default
13967 initialization procedure.
13968 (Resolve_Record_Aggregate): If a component is box-initialized, and the
13969 component type has a discriminants, create a partial aggregate for it
13970 by copying the discriminants of the component subtype.
13971 Reject attempt to initialize a discriminant with a box.
13972 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
13973 associated with dispatch tables is known at compile time.
13974 (Get_Value): If an association in a record aggregate has a box
13975 association, and the corresponding record component has a default
13976 expression, always copy the default expression, even when the
13977 association has a single choice, in order to create a proper
13978 association for the expanded aggregate.
13979
139802007-06-06 Ed Schonberg <schonberg@adacore.com>
13981 Robert Dewar <dewar@adacore.com>
13982
13983 * par-ch12.adb (P_Generic_Associations): The source position of an
13984 Others association is that of the others keyword, not that of the token
13985 that follows the box.
13986 (P_Formal_Type_Definition): Handle formal access types that carry a
13987 not null indicator.
13988
13989 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
13990 multiple identifier are present, save Scan_State before scanning the
13991 colon, to ensure that separate trees are constructed for each
13992 declaration.
13993 (P_Identifier_Declarations): For object declaration, set new flag
13994 Has_Init_Expression if initialization expression present.
13995 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
13996 Improve NOT NULL error messages
13997
139982007-06-06 Robert Dewar <dewar@adacore.com>
13999
14000 * par-ch4.adb: (P_Name): Recover from literal used as name
14001
140022007-06-06 Vincent Celier <celier@adacore.com>
14003
14004 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14005 defaulted to False.
14006 In the "not" case, recursive call with Complemented set to True.
14007 Do not allow "or" or "and" operators when Complemented is True.
14008
140092007-06-06 Vincent Celier <celier@adacore.com>
14010
14011 * prj.adb (Project_Empty): Gives default value for new component
14012 Libgnarl_Needed
14013
14014 * prj-attr.ads: Minor reformatting
14015
14016 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14017 directory using the untouched casing.
14018 (For_All_Source_Dirs): Idem.
14019
14020 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14021 directories specified with switches -aP.
14022 (Add_Search_Project_Directory): New procedure
14023 (Initialize_Project_Path): Put the directories in table
14024 Search_Directories in the project search path.
14025 (Initialize_Project_Path): For VMS, transform into canonical form the
14026 project path.
14027
140282007-06-06 Arnaud Charlet <charlet@adacore.com>
14029
14030 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14031 true if configurable run-time or No_Run_Time is set.
14032 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14033 processing an unit which is not the one being compiled.
14034
140352007-06-06 Arnaud Charlet <charlet@adacore.com>
14036
14037 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14038 Replace UC by Ada.UC
14039
14040 * s-bitops.adb: Get rid of System.Pure_Exceptions.
14041 Replace UC by Ada.UC
14042
140432007-06-06 Robert Dewar <dewar@adacore.com>
14044
14045 * scng.adb: (Check_End_Of_Line): Deal with very long lines
14046
140472007-06-06 Robert Dewar <dewar@adacore.com>
14048
14049 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14050 Remove no longer used nodes.
14051
140522007-06-06 Javier Miranda <miranda@adacore.com>
14053 Ed Schonberg <schonberg@adacore.com>
14054 Robert Dewar <dewar@adacore.com>
14055
14056 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14057 on obsolescent withed unit in case of limited-withed units.
14058 (Analyze_Compilation_Unit): Add guard to code that removed an
14059 instantiation from visibility, to prevent compiler aborts when
14060 instantiation is abandoned early on.
14061 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14062 current unit being analyzed, and Distinguish local incomplete types
14063 from limited views of types declared elsewhere.
14064 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14065 to state that the class-wide entity is shared by the limited-view
14066 and the full-view.
14067 (Analyze_With_Clause): Improve placement of flag for case of
14068 unimplemented unit.
14069 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14070 manner similar to GNAT.Current_Exception. This is a violation of
14071 restriction (No_Exception_Propagation), and also inhibits the
14072 optimization of local raise to goto.
14073 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14074 and if so set Most_Recent_Exception_Used flag in Opt, and also check
14075 for violation of restriction No_Exception_Propagation.
14076
140772007-06-06 Javier Miranda <miranda@adacore.com>
14078 Hristian Kirtchev <kirtchev@adacore.com>
14079 Gary Dismukes <dismukes@adacore.com>
14080
14081 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14082 use of entity Exception_Occurrence if it is not available in the
14083 target run-time.
14084
14085 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14086 concurrent types are declared within an Ada 2005 generic, build their
14087 corresponding record types since they are needed for overriding-related
14088 semantic checks.
14089 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14090 protected type does not implement a task interface or a nonlimited
14091 interface.
14092 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14093 type does not implement a protected interface or a nonlimited interface.
14094 (Single_Task_Declaration, Single_Protected_Declaration): use original
14095 entity for variable declaration, to ensure that debugging information
14096 is correcty generated.
14097 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14098 routines if the expander is not active.
14099 (Analyze_Task_Body): Mark all handlers to stop optimization of local
14100 raise, since special things happen for task exception handlers.
14101
14102 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14103 concurrent types declared within a generic.
14104 (Check_Dispatching_Operation): Do not emit warning about late interface
14105 operations in the context of an instance.
14106 (Check_Dispatching_Call): Remove restriction against calling a
14107 dispatching operation with a limited controlling result.
14108 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14109 Register_Interface_DT_Entry by calls to Register_Primitive.
14110 (Check_Dispatching_Formals): Handle properly a function with a
14111 controlling access result.
14112
141132007-06-06 Robert Dewar <dewar@adacore.com>
14114 Arnaud Charlet <charlet@adacore.com>
14115
14116 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14117 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14118 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14119 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14120 message when using a VM, since this attribute is not supported.
14121 (Analyze_Record_Representation_Clause): Give unrepped component warnings
14122
14123 * usage.adb: Add new warning for renaming of function return objects
14124 Indicate that -gnatwp and -gnatwP concern front-end inlining
14125 Add line for -gnatyg
14126 Add usage information for -gnatw.c/C
14127
141282007-06-06 Robert Dewar <dewar@adacore.com>
14129 Ed Schonberg <schonberg@adacore.com>
14130
14131 * sem_ch5.adb
14132 (Find_Var): Do not consider function call in test for infinite loop
14133 warning if warnings set off for function entity.
14134 (One_Bound): Do not create a temporary for a loop bound if it is a
14135 character literal.
14136 (Analyze_Assignment): Traverse the right hand side of an assignment and
14137 mark all allocators as static coextensions.
14138 (Analyze_Assignment): Exempt assignments involving a dispatching call
14139 to a function with a controlling access result from the check requiring
14140 the target to be class-wide.
14141
141422007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14143 Ed Schonberg <schonberg@adacore.com>
14144 Robert Dewar <dewar@adacore.com>
14145 Javier Miranda <miranda@adacore.com>
14146
14147 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14148 chain of coextensions when an allocator serves as the root of such a
14149 chain.
14150 (Propagate_Coextensions): Remove the test for the root being an
14151 allocator.
14152 (Resolve_Allocator): Add condition to ensure that all future decoration
14153 occurs on an allocator node. Add processing and cleanup for static
14154 coextensions.
14155 (Valid_Conversion): If the operand type is the limited view of a
14156 class-wide type, use the non-limited view is available to determine
14157 legality of operation.
14158 (Ambiguous_Character): move to spec, for use elsewhere.
14159 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14160 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14161 character literals.
14162 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14163 Do_Division_Check flag explicitly.
14164 (Resolve_Actuals): If the actual is of a synchronized type, and the
14165 formal is of the corresponding record type, this is a call to a
14166 primitive operation of the type, that is declared outside of the type;
14167 the actual must be unchecked-converted to the type of the actual
14168 (Resolve_Call): Kill all current values for any subprogram call if
14169 flag Suppress_Value_Tracking_On_Call is set.
14170 (Resolve_Type_Conversion): Generate error message the the operand
14171 or target of interface conversions come from a limited view.
14172 (Check_Infinite_Recursion): Ignore generated calls
14173 (Check_Allocator_Discrim_Accessibility): New procedure for checking
14174 that an expression that constrains an access discriminant in an
14175 allocator does not denote an object with a deeper level than the
14176 allocator's access type.
14177 (Resolve_Allocator): In the case of an allocator initialized by an
14178 aggregate of a discriminated type, check that associations for any
14179 access discriminants satisfy accessibility requirements by calling
14180 Check_Allocator_Discrim_Accessibility.
14181 (Resolve_Equality_Op): Handle comparisons of anonymous access to
14182 subprogram types in the same fashion as other anonymous access types.
14183 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14184 message that is not a continuation message.
14185 (Resolve_Type_Conversion): Add missing support for conversion to
14186 interface type.
14187 (Resolve_Actuals): Introduce a transient scope around the call if an
14188 actual is a call to a function returning a limited type, because the
14189 resulting value must be finalized after the call.
14190 (Resolve_Actuals): If the call was given in prefix notations, check
14191 whether an implicit 'Access reference or implicit dereference must be
14192 added to make the actual conform to the controlling formal.
14193
141942007-06-06 Robert Dewar <dewar@adacore.com>
14195 Javier Miranda <miranda@adacore.com>
14196
14197 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14198 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14199 overriding of an inherited private subprogram now there is no need to
14200 inherit its dispatching slot and reduce the size of the dispatch table.
14201 Set_All_DT_Position now ensures that the same slot is now assigned to
14202 both entities. This is required to statically build the dispatch table.
14203 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14204 of calling Set_All_DT_Position to re-evaluate the position of the
14205 entries in the dispatch table. Such reevaluation is not desired if
14206 the tagged type is already frozen.
14207
142082007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14209 Gary Dismukes <dismukes@adacore.com>
14210 Robert Dewar <dewar@adacore.com>
14211 Javier Miranda <miranda@adacore.com>
14212
14213 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14214 reference acts as an lvalue when the attribute name modifies the prefix
14215 (Is_Coextension_Root): New routine.
14216 (Mark_Static_Coextensions): New routine.
14217 (Type_Access_Level): Revise code for checking the level of the
14218 anonymous access type of a return object.
14219 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14220 (Matches_Prefixed_View_Profile): Remove the no longer necessary
14221 retrieval of the corresponding controlling record type.
14222 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14223 concurrent types declared within a generic as well as class wide types.
14224 Emit a mode incompatibility error whenever a protected entry or routine
14225 override an interface routine whose first parameter is not of mode
14226 "out", "in out" or access to variable.
14227 (Overrides_Synchronized_Primitive): Rename to
14228 Find_Overridden_Synchronized_Primitive.
14229 (Collect_Interface_Components): New subprogram that collects all the
14230 components of a tagged record containing tags of secondary dispatch
14231 tables.
14232 (Add_Global_Declaration): New procedure
14233 (Abstract_Interface_List): Handle properly the case of a subtype of a
14234 private extension.
14235 (Type_Access_Level): In the case of a type whose parent scope is a
14236 return statement, call Type_Access_Level recursively on the enclosing
14237 function's result type to determine the level of the return object's
14238 type.
14239 (Build_Elaboration_Entity): Build name of elaboration entity from the
14240 scope chain of the entity, rather than the unit name of the file name.
14241 (Check_Nested_Access): New procedure.
14242 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14243 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14244 (Get_Renamed_Entity): Utility routine for performing common operation
14245 of chasing the Renamed_Entity field of an entity.
14246
142472007-06-06 Robert Dewar <dewar@adacore.com>
14248
14249 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14250 elaboration model
14251 (Check_A_Call): Add check for entry call which was causing blowup
14252
142532007-06-06 Olivier Hainque <hainque@adacore.com>
14254
14255 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14256 special code on ia64-vms to handle major incompatibilities between the
14257 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14258 this routine with a very different set of arguments and expectations on
14259 the return value.
14260
142612007-06-06 Thomas Quinot <quinot@adacore.com>
14262
14263 * socket.c (__gnat_close_signalling_fd): New function.
14264 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14265 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14266 New supporting functions for task safe Netdb operations.
14267
142682007-06-06 Thomas Quinot <quinot@adacore.com>
14269 Olivier Hainque <hainque@adacore.com>
14270
14271 * a-except-2005.ads, a-except-2005.adb
14272 (Raise_From_Controlled_Operation): New procedure in
14273 (private part of) Ada.Exceptions (standard runtime version). Used to
14274 provide informational exception message when Program_Error is raised as
14275 a result of an Adjust or Finalize operation propagating an exception.
14276 (Rmsg_28): Fix description for E.4(18) check.
14277 (Raise_Current_Excep): Call Debug_Raise_Exception just before
14278 propagation starts, to let debuggers know about the event in a reliable
14279 fashion.
14280 Take the address of E and dereference to make sure it is homed on stack
14281 and prevent the stores from being deleted, necessary for proper
14282 debugger behavior on "break exception" hits.
14283 (Local_Raise): Moved to System.Exceptions
14284
14285 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14286 exception message from the current occurrence and raise Program_Error
14287 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14288
142892007-06-06 Jose Ruiz <ruiz@adacore.com>
14290 Arnaud Charlet <charlet@adacore.com>
14291
14292 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14293 lock, if needed.
14294
14295 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14296 priority associated to a lock.
14297
14298 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14299 assertion to take into account case of no abort restriction.
14300 (Initialize_Protection_Entries): Add initialization for the field
14301 New_Ceiling associated to the protected object.
14302 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14303 needed.
14304
14305 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14306 since this function needs to be set consistently with Update_Exception.
14307
14308 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14309 since this function needs to be set consistently with Update_Exception.
14310
14311 * s-taskin.ads: Update comments on
14312 Interrupt_Server_Blocked_On_Event_Flag.
14313 (Unbind_Handler): Fix handling of server_task wakeup
14314 (Server_Task): Set self's state so that Unbind_Handler can take
14315 appropriate actions.
14316 (Common_ATCB): Now use a constant from System.Parameters to determine
14317 the max size of the Task_Image field.
14318
14319 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14320 Initialize_Analyzer function.
14321 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14322 take into account case of no abort restriction.
14323 ([Vulnerable_]Complete_Master): Modify assertion.
14324
14325 * s-tataat.adb (Finalize): Use the nestable versions of
14326 Defer/Undefer_Abort.
14327
14328 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14329
14330 * s-tpobop.ads: Update comments.
14331
14332 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14333 of locking the object manually, to avoid inconsistencies between
14334 Lock/Unlock_Entry assertions.
14335
14336 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14337 terminating
14338 application and System.Parameters.No_Abort is True.
14339 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14340 (Unbind_Handler): Fix handling of server_task wakeup
14341 (Server_Task): Set self's state so that Unbind_Handler can take
14342 appropriate actions.
14343
143442007-06-06 Thomas Quinot <quinot@adacore.com>
14345
14346 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14347 declarations instead of an explicit null body, for conciseness.
14348
143492007-06-06 Robert Dewar <dewar@adacore.com>
14350
14351 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14352 illegal aggregate and the type is still Any_Composite.
14353 (Subtypes_Statically_Match): Fix problem of empty discriminant list
14354
143552007-06-06 Ed Schonberg <schonberg@adacore.com>
14356
14357 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14358 to prevent subsequent expansion.
14359
143602007-06-06 Robert Dewar <dewar@adacore.com>
14361
14362 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14363
143642007-06-06 Ed Schonberg <schonberg@adacore.com>
14365 Robert Dewar <dewar@adacore.com>
14366
14367 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14368 exceptions.
14369 (Write_Itype): Handle case of string literal subtype, which
14370 comes up in this context.
14371 (Update_Itype): when debugging expanded code, update sloc of itypes
14372 associated with defining_identifiers and ranges, for gdb use.
14373 (Sprint_Node_Actual): Add static keyword to object or exception
14374 declaration output if Is_Statically_Allocated is True.
14375 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14376 or task body, so that the tree carries the proper Sloc information for
14377 debugging use.
14378 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14379
143802007-06-06 Arnaud Charlet <charlet@adacore.com>
14381
14382 * s-secsta.adb (Chunk): Ensure this object has a static size known at
14383 compile time, to avoid dynamic memory allocation
14384 (Elaboration code): Only use dynamic memory allocation when needed.
14385
143862007-06-06 Quentin Ochem <ochem@adacore.com>
14387
14388 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14389 "Overflow_Guard".
14390 (Stack_Analyzer): Added field "Overflow_Guard"
14391 (Task_Result): Added field "Overflow_Guard".
14392 (Index_Str): New constant.
14393 (Task_Name_Str): New constant.
14394 (Actual_Size_Str): New constant.
14395 (Pattern_Array_Element_Size): New constant.
14396 (Get_Usage_Range): New subprogram.
14397 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14398 Now align the output.
14399 Added comments.
14400 (Initialize): Added value for Overflow_Guard.
14401 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14402 Update the value of the overflow guard according to the actual
14403 beginning of the pattern array.
14404 (Initialize_Analyzer): Added parameter Overflow_Guard.
14405 Take this parameter into accound when computing the max size.
14406 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14407 (Report_Result): Removed extra useless procedure.
14408 Updated call to Output_Result.
14409 Moved full computation of the Task_Result here.
14410
144112007-06-06 Thomas Quinot <quinot@adacore.com>
14412
14413 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14414 Thread_Blocking_IO, always True by default, set False on a per-runtime
14415 basis.
14416 Add Windows-specific constants
14417 Add new constant Need_Netdb_Buffer.
14418 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14419 not, whether to use getXXXbyYYY_r.
14420
14421 * gsocket.h: Add new constant Need_Netdb_Buffer.
14422 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14423 not, whether to use getXXXbyYYY_r.
14424
144252007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14426
14427 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14428 than their first call.
14429 Add type Dummy_Communication_Block used in the generation of the pre-
14430 defined dispatching primitive _disp_asynchronous_select.
14431 (Storage_Element): Put Pragma Universal_Aliasing on it.
14432
144332007-06-06 Vincent Celier <celier@adacore.com>
14434
14435 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14436 function.
14437
14438 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14439 letter if it is not followed by a '/' or a '\'.
14440 (Windows): New Boolean function
14441
14442 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14443 Ada 2005.
14444 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14445 drive letter.
14446 (Containing_Directory): Raise Use_Error when the directory is a root
14447 directory.
14448 (Extension): When returning the result, use a conversion to Result_Type,
14449 not a qualification.
14450
144512007-06-06 Robert Dewar <dewar@adacore.com>
14452
14453 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14454 (Set_Style_Check_Options): Recognize new -gnatyg style switch
14455
14456 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14457 Warn_On_Non_Local_Exception to False, to turn off warnings for
14458 No_Exception_Propagation in ZFP runtime.
14459 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14460 back-ends.
14461 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14462
144632007-06-06 Vincent Celier <celier@adacore.com>
14464
14465 * switch-b.adb (Scan_Binder_Switches): Add processing for new
14466 switches -R and -Z
14467
14468 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14469 (Scan_Make_Switches): Recognize new switch -aP
14470
144712007-06-06 Matthew Gingell <gingell@adacore.com>
14472 Jose Ruiz <ruiz@adacore.com>
14473
14474 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14475 VxWorks task descriptor in the Ada run time, call a C subprogram
14476 (__gnat_get_stack_info) that extracts the required information.
14477
14478 * sysdep.c: Back out temporary lynxos workaround.
14479 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14480 time the stack information associated to the currently executing task.
14481 Only VxWorks systems require this function.
14482
144832007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14484
14485 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14486 add the stack bias if the offset is computed from a frame address.
14487 (__gnat_backtrace): Adjust for above change.
14488
144892007-06-06 Thomas Quinot <quinot@adacore.com>
14490
14491 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14492 PE_Non_Transportable_Actual.
14493 (By_Descriptor_Last): New constant.
14494 (By_Copy_Return): Likewise.
14495
144962007-06-06 Vincent Celier <celier@adacore.com>
14497
14498 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14499 is.
14500
14501 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14502 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14503 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14504 Add missing comment for /OPTIMIZE=SPACE
14505 Add entry for OPTIMIZE=SPACE
14506 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14507 Add documentation for new qualifiers corresponding to -gnatw.c/.C
14508
145092007-06-06 Vincent Celier <celier@adacore.com>
14510 Robert Dewar <dewar@adacore.com>
14511
14512 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14513 -gnatw.C)
14514
14515 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14516 Document gnatbind switch -a
14517 (case Constructions): Document that variables declarations are allowed
14518 for previously declared variables.
14519 Fix external lib project example
14520 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14521 Indicate that "#if not X or Y then" is not allowed in input files to
14522 gnatprep.
14523 Document gnatw.x and gnatw.X warning flags
14524 Mention -Winline switch to activate warnings when back-end inlining is
14525 ineffective.
14526 Add gnatcheck rule descriptions
14527 Describe how to use the GNAT driver to call a tool on a closure.
14528 Describe how to run project-wide checks or metrics.
14529 Document gnatbind's -R option
14530 Updated to account for Ada 2005 support
14531
14532 * gnat_rm.texi (Case Construction): Allow variable declarations for
14533 previously declared variables.
14534 (Representation Clauses and Pragmas): Lift restriction on alignment
14535 clauses for record types.
14536 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14537 Document No_Exception_Propagation restriction
14538 Document No_Body pragma
14539 Updated to account for Ada 2005 support; corrected some typos
14540 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14541
14542 * gnat-style.texi: Make it clear that we never use mode IN for
14543 procedures or functions
14544
14545 * ug_words: Add entries for -gnatw.x and -gnatw.X
14546 Add entries for -gnatw.c/.C
14547
145482007-06-06 Pascal Obry <obry@adacore.com>
14549 Vincent Celier <celier@adacore.com>
14550
14551 * makegpr.adb (Add_Archive_Path): Use untouched object and library
14552 dirs and library name.
14553 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14554 comments.
14555 (Build_Library): Idem.
14556 (Compile_Individual_Sources): Idem.
14557 (Compile_Link_With_Gnatmake): Idem.
14558 (Compile_Sources): Idem.
14559 (Get_Imported_Directories): Idem.
14560 (Link_Executables): Idem. Same change for the executable dir.
14561 (Check_Compilation_Needed): C_Source_Path new variable containing
14562 the canonical form of Source_Path to check against the source names
14563 in the dependency file.
14564 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14565 verbose mode, display the name of the object directory we're changing
14566 to.
14567 (Saved_Switches): New name of table X_Switches
14568 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
14569 (Usage): New line for switch -aP
14570 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
14571 testing if a directory should be added to the search path.
14572
145732007-06-06 Javier Miranda <miranda@adacore.com>
14574
9e81dbc7 14575 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
ec11296f
AC
14576 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
14577 declaration after freezing point of all its associated tagged types;
14578 otherwise such types are frozen too early.
14579
145802007-06-06 Robert Dewar <dewar@adacore.com>
14581
14582 * a-reatim.adb: Documentation addition
14583
14584 * g-cgideb.adb: Minor code reorganization
14585
14586 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
14587 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
14588 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
14589
14590 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
14591 function. Change name New_Scope to Push_Scope
14592 (Get_Debug_Flag_K): Remove unused obsolete function.
14593
14594 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
14595 Push_Scope.
14596
14597 * makeusg.adb: Update Copyright notice
14598 Add line for switch -aP
14599
14600 * makeusg.adb: Fix wording of some usage messages
14601
14602 * s-assert.adb (Raise_Assert_Failure): Add call to
14603 Debug_Raise_Assert_Failure.
14604
14605 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
14606 (2, Standard'Alignment) for compatibility with AAMP (where alignment
14607 is restricted to 1).
14608
14609 * s-wchjis.adb: Remove use of System.Pure_Exceptions
14610
14611 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
14612 node location to No_Location when we're not debugging the expanded
14613 code.
14614
dbc30a96
AO
146152007-05-22 Alexandre Oliva <aoliva@redhat.com>
14616
14617 * misc.c (enumerate_modes): Consider log2_b to always be one.
14618
719bb4e3 146192007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
ca5ba2a3
RAE
14620
14621 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
14622
d7598e11
PO
146232007-05-02 Pascal Obry <obry@adacore.com>
14624
14625 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
14626 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
14627 encoding support of Stream_IO.
14628 (Write_Unit): Idem.
14629
14630 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
14631 filename and corresponding encoding to match the OS requirement.
14632 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
14633 routine will fail on specific devices like CON: AUX: ...
14634
14635 PR ada/29856: Add missing braces
14636
1be52f61
AP
146372007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
14638
14639 PR ada/31660
14640 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
14641
395a40e0
JH
146422007-04-21 Jan Hubicka <jh@suse.cz>
14643
14644 * misc.c (gnat_expand_body): Don't call target for destructors,
14645 avoid redundant check on syntax errors.
14646
3d95caa4
AP
146472007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
14648
14649 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
14650 instead of checking GIMPLE_STMT_P in chain_next.
14651
ea30850a
AK
146522007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
14653
14654 PR ada/31576
14655 * system-linux-alpha.ads: Disable constant condition warning for the
14656 Default_Bit_Order variable.
14657 * system-linux-s390.ads: Likewise.
14658 * system-linux-s390x.ads: Likewise.
14659 * system-linux-sparc.ads: Likewise.
14660
4b437c6b
AC
146612007-04-06 Javier Miranda <miranda@adacore.com>
14662 Matt Heaney <heaney@adacore.com>
14663 Robert Dewar <dewar@adacore.com>
14664
14665 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
14666 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
14667 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
14668 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
14669 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
14670 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
14671 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
14672 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
14673 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
14674 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
14675 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
14676 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
14677 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
14678 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
14679 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
14680 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
14681 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
14682 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
14683 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
14684 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
14685 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
14686 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
14687 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
14688 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
14689 s-taprop-tru64.adb, s-taprop-irix.adb,
14690 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
14691 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
14692 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
9e81dbc7
AS
14693 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
14694 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
14695 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
14696 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
14697 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
14698 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
14699 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
14700 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
14701 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
14702 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
14703 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
14704 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
14705 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
14706 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
4b437c6b 14707 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
9e81dbc7 14708 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
4b437c6b
AC
14709 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
14710 access types.
14711 Update documentation.
14712 Minor rewording.
14713
147142007-04-06 Robert Dewar <dewar@adacore.com>
14715
14716 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
14717 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14718 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
14719 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
14720 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
14721 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
14722 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
14723 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
14724 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
9e81dbc7 14725 system-hpux-ia64.ads, targparm.adb,
4b437c6b
AC
14726 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
14727
14728 * system.ads: Move Functions_Return_By_DSP to obsolete section,
14729 kept for bootstrap purposes only.
14730
147312007-04-06 Arnaud Charlet <charlet@adacore.com>
14732
14733 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
14734 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
14735 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
14736 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
14737
147382007-04-06 Robert Dewar <dewar@adacore.com>
14739
14740 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
14741 (Local_Raise): New dummy procedure called when a raise is converted
14742 to a local goto. Used for debugger to detect that the exception
14743 is raised.
14744
14745 * debug.adb: Document new d.g flag (expand local raise statements to
14746 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
14747
14748 * exp_sel.adb: Use Make_Implicit_Exception_Handler
14749
14750 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
14751 suppress warnings for unused handlers.
14752 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
14753 warnings for raise statements not handled locally.
14754 (Get_RT_Exception_Entity): New function
14755 (Get_Local_Call_Entity): New function
14756 (Find_Local_Handler): New function
14757 (Warn_If_No_Propagation): New procedure
14758 (Expand_At_End_Handler): Call Make_Implicit_Handler
14759 (Expand_Exception_Handlers): Major additions to deal with local handlers
14760 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
14761 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
14762 for local raise
14763
14764 * exp_ch11.ads (Get_RT_Exception_Entity): New function
14765 (Get_Local_Call_Entity): New function
14766
14767 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
14768 of restrictions that the binder will never suggest adding.
14769
14770 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
14771 to No_Elist.
14772
14773 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
14774 be with'ed in the presence of pragma Restriction
14775 (No_Exception_Propagation).
14776
14777 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
14778
14779 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
14780 parameter, then the handler is not a suitable target for a local raise,
14781 and this is a violation of restriction No_Exception_Propagation.
14782 (Analyze_Handled_Statements): Analyze choice parameters in exception
14783 handlers before analyzing statement sequence (needed for proper
14784 detection of local raise statements).
14785 (Analyze_Raise_Statement): Reraise statement is a violation of the
14786 No_Exception_Propagation restriction.
14787
14788 * s-rident.ads: Add new restriction No_Exception_Propagation
14789
14790 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
14791 function, like Make_Exception_Handler but sets Local_Raise_Statements
14792 to No_List.
14793 (Add_Unique_Serial_Number): Deal with case where this is called during
14794 processing of configuration pragmas.
14795
147962007-04-06 Thomas Quinot <quinot@adacore.com>
14797 Pat Rogers <rogers@adacore.com>
14798 Pascal Obry <obry@adacore.com>
14799
14800 * g-stsifd-sockets.adb: New file.
14801
14802 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
14803 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
14804 g-socthi-vms.adb: Move signalling
14805 fd management to a nested package, so that they can conveniently be
14806 moved to a subunit that is shared across Windows, VMS, and VxWorks
14807 (Ada implementation) or completed with imported bodies from socket.c
14808 (UNIX case).
14809 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
14810 subprograms.
14811 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
14812 the signalling file descriptor.
14813 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
14814 signalling file descriptor.
14815 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
14816 instead of creating a pair of sockets for signalling here.
14817
14818 * g-socthi.adb: Ditto.
14819 Set the runtime process to ignore SIGPIPEs on platforms that support
14820 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14821
14822 * g-socthi-mingw.adb: Ditto.
14823 (WS_Version): Use Windows 2.2.
14824 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14825
14826 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
14827 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
14828
14829 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
14830 added GNAT byte swapping facility
14831 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
14832
14833 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
14834
14835 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
14836 New subprograms.
14837 (__gnat_create_signalling_fds): New subprogram.
14838 Set the runtime process to ignore SIGPIPEs on platforms that support
14839 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
14840
148412007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
14842 Vincent Celier <celier@adacore.com>
14843
14844 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
14845 New version of Ada.Calendar which supports the new upper bound of Ada
14846 time (2399-12-31 86_399.999999999).
14847 The following modifications have been made to the package:
14848 - New representation of time as count of nanoseconds since the start of
14849 Ada time (1901-1-1 0.0).
14850 - Target independent Split and Time_Of routines which service both
14851 Ada 95 and Ada 2005 code.
14852 - Target independent interface to the Ada 2005 children of Calendar.
14853 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
14854 - Handling of non-leap centenial years.
14855 - Updated clock function.
14856 - Updated arithmetic and comparison operators.
14857
14858 * a-caldel.adb (To_Duration): Add call to target independent routine in
14859 Ada.Calendar to handle the conversion of time to duration.
14860
14861 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
14862 (UTC Offset).
14863 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
14864 set off to 0.
14865 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
14866 targets do not have a natural time zone, GMT is used as a default.
14867 (__gnat_get_task_options): New.
14868
14869 * a-direct.adb (Modification_Time): Add with and use clauses for
14870 Ada.Calendar and Ada.
14871 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
14872 since it is no longer needed.
14873 (Duration_To_Time): Removed.
14874 (OS_Time_To_Long_Integer): Removed.
14875 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
14876 Formatting Time_Of routines which automatically handle time zones,
14877 buffer periods and leap seconds.
14878
14879 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
14880 target independent routines in Ada.Calendar.
14881
9e81dbc7 14882 * a-calfor.ads, a-calfor.adb:
4b437c6b
AC
14883 Code cleanup and addition of validity checks in various routines.
14884 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
14885 Ada.Calendar.
14886
14887 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
14888 independent routine in Ada.Calendar.
14889
148902007-04-06 Olivier Hainque <hainque@adacore.com>
14891
9e81dbc7 14892 * adaint.c:
4b437c6b
AC
14893 (convert_addresses): Adjust prototype and dummy definition to expect an
14894 extra file_name argument.
14895
14896 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
14897 filling the now expected file_name argument with the appropriate
14898 argv[0] expansion.
14899 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
14900 (tracebk): Array of void * instead of char *, corresponding to what
14901 convert_addresses expects.
14902 (exename): New static global, to hold the executable file name to be
14903 used in all convert_addresses invocations.
14904 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
14905 change.
14906 (__gnat_gmem_a2l_initialize): Resolve exename.
14907 (__gnat_convert_addresses): Use exename as the convert_addresses
14908 file_name argument.
14909
14910 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
14911 "convert_addresses", now expecting a filename argument. Import the
14912 necessary entities to compute the filename to use and pass it to
14913 convert_addresses.
14914
149152007-04-06 Matt Gingell <gingell@adacore.com>
14916
14917 * system-aix.ads: Back out previous change.
14918 (Functions_Return_By_DSP): Removed
14919
149202007-04-06 Pascal Obry <obry@adacore.com>
14921
14922 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
14923 or the monotonic used by Ada.Real_Time) to compute the sleep duration
14924 on Windows.
14925
149262007-04-06 Jose Ruiz <ruiz@adacore.com>
14927
14928 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
14929 function. Its value changes in different VxWorks versions, and it is
14930 now handled by the function __gnat_get_task_options.
14931
14932 * s-taprop-vxworks.adb (Create_Task): Call the function
14933 __gnat_get_task_options to get the required options for creating a task.
14934
149352007-04-06 Pascal Obry <obry@adacore.com>
14936 Thomas Quinot <quinot@adacore.com>
14937
14938 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
14939 dealing with filename.
14940 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
14941 filename from a standard string to a wide-string depending on the
14942 encoding value.
14943 (__gnat_freopen): Idem.
14944 (__gnat_current_time): New function (wrapper for time(3) standard C
14945 function).
14946
14947 * g-os_lib.ads (Current_Time): New function. Returns the current
14948 system time as an OS_Time value.
14949
14950 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
14951 (Monotonic_Clock): Same.
14952
149532007-04-06 Quentin Ochem <ochem@adacore.com>
14954
14955 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
14956 not on a natural.
14957 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
14958
149592007-04-06 Jose Ruiz <ruiz@adacore.com>
14960
14961 * a-retide.adb: Add elaboration code to ensure that the tasking run
14962 time is initialized when using delay operations even when no task is
14963 created.
14964
149652007-04-06 Javier Miranda <miranda@adacore.com>
14966
14967 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
14968 component Num_Prim_Ops.
14969 (Set_Num_Prim_Ops): Removed.
14970 Remove all the assertions because all the routines of this
14971 package are inline always.
14972 (Get_Offset_Index): Add support to primary dispatch tables.
14973 Move the documentation about the dispatch table to a-tags.ads
14974 (Set_External_Tag): Removed
14975 (Inherit_TSD): Removed.
14976 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
14977 moved to a-tags.ads
14978 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
14979 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
14980 of the TSD field "Table" because this field has been renamed to
14981 "Ifaces_Table".
14982 (Inherit_CPP_DT): Removed.
14983 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
14984 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
14985 declarations have been moved to a-tags.ads
14986 (Check_Size): Removed.
14987 (Expanded_Name): Updated to get access to the new field of TSD
14988 containing the address of the expanded name.
14989 (Get_Access_Level/Set_Access_Level): Removed.
14990 (Get_Predefined_Prim_Op_Address): Removed.
14991 (Set_Predefined_Prim_Op_Address): Removed.
14992 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
14993 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
14994 (Set_Expanded_Name): Removed.
14995 (Inherit_DT): Removed.
14996 (Inherit_CPP_DT): Removed.
14997 (Set_RC_Offset): Removed.
14998 (Set_TSD): Removed.
14999 (Base_Address): New function that displaces "this" to point to the base
15000 of the object (that is, to point to the primary tag of the object).
15001
150022007-04-06 Ed Schonberg <schonberg@adacore.com>
15003 Javier Miranda <miranda@adacore.com>
15004
15005 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15006 anonymous access component, do not create a master_id if type already
15007 has one, as may happen if the type is a subcomponent of a packed array
15008 type.
15009 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15010 Initialize_Tag): Remove code associated with the old CPP pragmas.
15011 CPP_Virtual and CPP_Vtable are no longer supported.
15012 (Build_Offset_To_Top_Internal): Add support for concurrent record types
15013 (Build_Offset_To_Top_Functions): Add support for concurrent record types
15014 (Freeze_Record_Type): Remove call to
15015 Init_Predefined_Interface_Primitives.
15016 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15017 code required to initialize the tags of the secondary dispatch tables.
15018 This leaves the algoritm more clear.
15019 (Init_Secondary_Tags): Add support for concurrent record types
15020 (Make_Predefined_Primitive_Specs): Code cleanup.
15021 (Predefined_Primitive_Bodies): Code cleanup.
15022 (Build_Master_Renaming): New local subprogram.
15023 (Expand_N_Full_Type_Declaration): Build the master_id associated with
15024 anonymous access to task type components.
15025 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15026 subtype indication are resolved during analysis, and must not be done
15027 here.
15028 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15029
150302007-04-06 Geert Bosch <bosch@adacore.com>
15031 Ed Schonberg <schonberg@adacore.com>
15032 Javier Miranda <miranda@adacore.com>
15033 Bob Duff <duff@adacore.com>
15034
15035 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15036 for conversion of a Float_Type'Truncation to integer.
15037
15038 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15039 check if a node is an attribute that can be handled directly by the
15040 back end.
15041 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15042 attributes that can be handled directly by the back end.
15043 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15044 use new predicate Is_Access_Protected_Subprogram_Type.
15045 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15046 and Unchecked_Union if it is generated as part of the default Output
15047 procedure for a type with default discriminants.
15048 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15049 if we are compiling under restriction No_Dispatching_Calls.
15050 (Constrained): Use Underlying_Type, in case the type is private without
15051 discriminants, but the full type has discriminants.
15052 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15053 call to Build_Get_Access_Level.
15054 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15055 interface objects requires a call to the run-time subprogram that
15056 returns the base address of the object.
15057 (Valid_Conversion): Improve error message on illegal attempt to store
15058 an anonymous access to subprogram value into a record component.
15059
15060 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15061 null".
15062 (Simplify_Type_Conversion): New procedure that performs simplification
15063 of Int_Type (Float_Type'Truncation (X)).
15064 (Resolve_Type_Conversion): Call above procedure after resolving operand
15065 and before performing checks. This replaces the existing ineffective
15066 code in Exp_Ch4.
15067 (Set_String_Literal_Subtype): When creating the internal static lower
15068 bound subtype for a string literal, use a newly created copy of the
15069 subtree representing the lower bound.
15070 (Resolve_Call): Exclude build-in-place function calls from transient
15071 scope treatment. Update comments to describe this exception.
15072 (Resolve_Equality_Op): In case of dispatching call check violation of
15073 restriction No_Dispatching_Calls.
15074 (Resolve_Call): If the call returns an array, the context imposes the
15075 component type of the array, and the function has one non-defaulted
15076 parameter, rewrite the call as the indexing of a call with a single
15077 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15078 in prefix form.
15079 (Resolve_Actuals): If an actual is an allocator for an access parameter,
15080 the master of the created object is the innermost enclosing statement.
15081 (Remove_Conversions): For a binary operator, check if type of second
15082 formal is numeric, to check if an abstract interpretation is present
15083 in the case of exponentiation as well.
15084
150852007-04-06 Ed Schonberg <schonberg@adacore.com>
15086 Bob Duff <duff@adacore.com>
15087
15088 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15089 copying a parameter list in a call, set properly the First_Named_Formal
15090 and Next_Named_Formal fields in the new list and in the enclosing call.
15091 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15092 names, to ease typing in the debugger. Improve comments.
15093 (Watch_Node): New variable, intended to be set in the debugger.
15094 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15095 called when the watched node is created.
15096 (New_Node_Debugging_Output): Combined version of local procedures
15097 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15098 with a parameter so that conditional breakpoints like "if Node = 12345"
15099 work.
15100 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15101 Add Elist1 function
15102
151032007-04-06 Thomas Quinot <quinot@adacore.com>
15104 Ed Schonberg <schonberg@adacore.com>
15105 Gary Dismukes <dismukes@adacore.com>
15106
15107 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15108 required for a conversion between two access-to-unconstrained-array
15109 types.
15110 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15111 to discriminant constraints on discriminant objects. This rule must
15112 apply as well to discriminants of protected types in private components.
15113 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15114 object of a null-excluding access type then don't require the
15115 the object declaration to have an expression and don't emit a
15116 run-time check.
15117
151182007-04-06 Arnaud Charlet <charlet@adacore.com>
9e94c78f 15119 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15120
15121 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15122 and made constant.
15123
15124 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15125 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15126 carry any.
15127
15128 * fe.h (Compiler_Abort): Add third parameter.
15129
15130 * misc.c (internal_error_function): Build third argument from current
15131 input location and pass it to Compiler_Abort.
15132
151332007-04-06 Gary Dismukes <dismukes@adacore.com>
15134
15135 * cstand.adb (Create_Standard): When the target's storage unit size is
15136 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15137 Standard_String.
15138
151392007-04-06 Nicolas Roche <roche@adacore.com>
15140
15141 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15142 absolute path can have the following form: device:/a/b. In this case
15143 '/' should be inserted between the path and the filename.
15144
151452007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 15146 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15147
15148 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15149 VAR_DECL to a CONST_DECL we make for a public constant when we know the
15150 corresponding definition has created the so made visible variable.
15151 Handle anonymous access to protected subprogram.
15152 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15153 object with an address clause volatile. Re-enable original fix.
15154 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15155 too.
15156 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15157 associated with either the Equivalent or Root type, instead of the
15158 naked type node.
15159 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15160 subtree for every field of a global record type.
15161 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15162 discriminants, invoke again variable_size on its newly computed sizes.
15163
151642007-04-06 Robert Dewar <dewar@adacore.com>
15165 Thomas Quinot <quinot@adacore.com>
15166 Ed Schonberg <schonberg@adacore.com>
15167 Bob Duff <duff@adacore.com>
15168
15169 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15170 (Next_Component_Or_Discriminant): New function and procedure
15171 (First_Index, First_Literal, Master_Id,
15172 Set_First_Index, Set_First_Literal, Set_Master_Id):
15173 Add missing Ekind assertions.
15174 (Is_Access_Protected_Subprogram_Type): New predicate.
15175 (Has_RACW): New entity flag, set on package entities to indicate that
15176 the package contains the declaration of a remote accecss-to-classwide
15177 type.
15178 (E_Return_Statement): This node type has the Finalization_Chain_Entity
15179 attribute, in case the result type has controlled parts.
15180 (Requires_Overriding): Add this new flag, because "requires
15181 overriding" is subtly different from "is abstract" (see AI-228).
15182 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15183 Is_Abstract_Type. Make sure these are called only when appropriate.
15184 (Has_Pragma_Unreferenced_Objects): New flag
15185
15186 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15187 class-wide, the tag of the right-hand side must be an exact match, not
15188 an ancestor of that of the object on left-hand side.
15189 (Move_Activation_Chain): New procedure to create the call to
15190 System.Tasking.Stages.Move_Activation_Chain.
15191 (Expand_N_Extended_Return_Statement): Generate code to call
15192 System.Finalization_Implementation.Move_Final_List at the end of a
15193 return statement if the function's result type has controlled parts.
15194 Move asserts to Build_In_Place_Formal.
15195 (Move_Final_List): New function to create the call statement.
15196 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15197 tagged type, replace generation of call to the run-time subprogram
15198 CW_Membership by call to Build_CW_Membership.
15199 (Expand_N_Return_Statement): Replace generation of call to the run-time
15200 subprogram Get_Access_Level by call to Build_Get_Access_Level.
15201 (Expand_N_Simple_Function_Return): Replace generation of call to the
15202 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15203
15204 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15205 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15206 access to protected operations.
15207 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15208 master and chain actual parameters to a build-in-place function call
15209 involving tasks.
15210 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15211 statement.
15212 (Make_Build_In_Place_Call_In_Allocator,
15213 Make_Build_In_Place_Call_In_Anonymous_Context,
15214 Make_Build_In_Place_Call_In_Assignment,
15215 Make_Build_In_Place_Call_In_Object_Declaration): Call
15216 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15217 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15218 stubbed procedure with a null body, replace the call with a null
15219 statement without using the full inlining machinery, for efficiency
15220 and to avoid invalid values in source file table entries.
15221
15222 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15223 renamings of calls to build-in-place functions.
15224
15225 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15226 provides the functionality of RTE_Available to record components.
15227 (RTU_Entity): The function Entity has been renamed to RTU_Entity
15228 to avoid undesired overloading.
15229 (Entity): New subprogram that returns the entity for the referened
15230 unit. If this unit has not been loaded, it returns Empty.
15231 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15232 Remove no longer used entities.
15233 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15234 (RE_Type_Specific_Data): New entity.
15235 (RE_Move_Any_Value): New entity.
15236 (RE_TA_A, RE_Get_Any_Type): New entities.
15237 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15238 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15239 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15240 (Entity): New subprogram that returns the entity for the referened
15241 unit. If this unit has not been loaded, it returns Empty.
15242 (RTE): Addition of a new formal that extends the search to the scopes
15243 of the record types found in the chain of the package.
15244
15245 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15246 "abstract subprograms must be visible" message, whether or not the type
15247 is an interface; that is, remove the special case for interface types.
15248 (Analyze_Function_Return): Remove error message "return of task objects
15249 is not yet implemented" because this is now implemented.
15250 (Create_Extra_Formals): Add the extra master and activation chain
15251 formals in case the result type has tasks.
15252 Remove error message "return of limited controlled objects is not yet
15253 implemented".
15254 (Create_Extra_Formals): Add the extra caller's finalization list formal
15255 in case the result type has controlled parts.
15256 (Process_Formals): In case of access formal types there is no need
15257 to continue with the analysis of the formals if we already notified
15258 errors.
15259 (Check_Overriding_Indicator): Add code to check overriding of predefined
15260 operators.
15261 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15262 flags for formals that do not require them,.
15263 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15264 hidden entity is use visible or directly visible.
15265 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15266 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15267 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15268 New_Overloaded_Entity): Split Is_Abstract flag into
15269 Is_Abstract_Subprogram and Is_Abstract_Type.
15270
15271 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15272 a return statement's finalization list to the caller's list, used for
15273 build-in-place functions with result type with controlled parts.
15274 Remove no longer used entities.
15275
15276 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15277 longer needed, because the full type is now limited, and therefore a
15278 pass-by-reference type.
15279 (Foreign_Task_Level): New constant.
15280
15281 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15282 move tasks from the activation chain belonging to a return statement to
15283 the one passed in by the caller, and update the master to the one
15284 passed in by the caller.
15285 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15286 of unactivated tasks, so we don't kill the ones that are being returned
15287 by a build-in-place function.
15288 (Create_Task): Ignore AI-280 for foreign threads.
15289
152902007-04-06 Ed Schonberg <schonberg@adacore.com>
15291 Robert Dewar <dewar@adacore.com>
15292 Bob Duff <duff@adacore.com>
15293 Gary Dismukes <dismukes@adacore.com>
15294
15295 * errout.adb (Unwind_Internal_Type): Use predicate
15296 Is_Access__Protected_Subprogram_Type.
15297
15298 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15299 (Freeze_Entity, packed array case): Do not override explicitly set
15300 alignment and size clauses.
15301 (Freeze_Entity): An entity declared in an outer scope can be frozen if
15302 the enclosing subprogram is a child unit body that acts as a spec.
15303 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15304 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15305 Remove all code for DSP option
15306
15307 * layout.adb (Layout_Record_Type): Use First/
15308 Next_Component_Or_Discriminant
15309 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15310 to handle properly the anonymous access case.
15311
15312 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15313 for all access attributes, because overload resolution should work the
15314 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15315 causes the error message for the ambiguous "X'Access = Y'Access" and
15316 "X'Unrestricted_Access = Y'Access" and so forth to match.
15317 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15318 now that anonymous access to protected operations have their own kind.
15319 (Resolve_Attribute): In case of dispatching call check the violation of
15320 restriction No_Dispatching_Calls.
15321 (Check_Array_Type): Check new -gnatyA array index style option
15322
15323 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15324 attempt to derive from a synchronized tagged type.
15325 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15326 type, inherit the class-wide type already created, because it may
15327 already have been used in a self-referential anonymous access component.
15328 (Mentions_T): Recognize self-referential anonymous access components
15329 that use (a subtype of) the class-wide type of the enclosing type.
15330 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15331 Derived_Type for Prev formal on call to
15332 Check_Anonymous_Access_Components rather than Empty.
15333 (Make_Incomplete_Type_Declaration): Add test for case where the type has
15334 a record extension in deciding whether to create a class-wide type,
15335 rather than just checking Tagged_Present.
15336 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15337 to stand-alone object declarations as well as component declarations.
15338 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15339 prevent accidental overwriting when enclosing package appears in
15340 a limited_with_clause.
15341 (Array_Type_Declaration): If the component type is an anonymous access,
15342 the associated_node for the itype is the type declaration itself.
15343 (Add_Interface_Tag_Components): Modified to support concurrent
15344 types with abstract interfaces.
15345 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15346 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15347 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15348 to complete the decoration of synchronized interface types. Add also
15349 a call to Check_Abstract_Interfaces to verify the ARM rules.
15350 (Derive_Interface_Subprograms): Modified to support concurrent types
15351 with abstract interfaces.
15352 (Analyze_Subtype_Indication): Resolve the range with the given subtype
15353 mark, rather than delaying the full resolution depending on context.
15354 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15355 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15356 Array_Type_Declaration,Build_Derived_Record_Type,
15357 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15358 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15359 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15360 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15361 called only when appropriate.
15362 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15363 to private type.
15364 (Analyze_Subtype_Declaration): For an access subtype declaration, create
15365 an itype reference for the anonymous designated subtype, to prevent
15366 scope anonmalies in gigi.
15367 (Build_Itype_Reference): New utility, to simplify construction of such
15368 references.
15369
153702007-04-06 Vincent Celier <celier@adacore.com>
15371
15372 * errutil.adb (Initialize): Initialize warnings table, if all warnings
15373 are suppressed, supply an initial dummy entry covering all possible
15374 source locations.
15375
15376 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15377 and start with only one, such as "-RTS=none".
15378 (Collect_Arguments): Do not check for sources outside of projects.
15379 Do not collect arguments if project is externally built.
15380 (Compile_Sources): Do nothing, not even check if the source is up to
15381 date, if its project is externally built.
15382 (Compile): When compiling a predefined source, add -gnatpg
15383 as the second switch, after -c.
15384 (Compile_Sources): Allow compilation of Annex J renames without -a
15385 (Is_In_Object_Directory): Check if the ALI file is in the object
15386 even if there is no project extension.
15387 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15388 gnatbind if the ALI file effectively exists.
15389 (Initialize): Add the directory where gnatmake is invoked in front of
15390 the path if it is invoked from a bin directory, even without directory
15391 information, so that the correct GNAT tools will be used when spawned
15392 without directory information.
15393
15394 * makeusg.adb: Change switch -S to -eS
15395 Add lines for new switches -we, -wn and -ws
15396 Add line for new switch -p
15397
15398 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15399 Treat_As_Error and there are warnings.
15400
15401 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15402 -gnatww Change gnatmake switch -S to -eS
15403 (Scan_Make_Switches): Code reorganisation. Process separately multi
15404 character switches and single character switches.
15405 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15406 False when switch is not recognized by gnatmake.
15407 (Scan_Make_Switches): Set Setup_Projects True when -p or
15408 --create-missing-dirs is specified.
15409
15410 * fname.adb (Is_Predefined_File_Name): Return True for annex J
15411 renamings Calendar, Machine_Code, Unchecked_Conversion and
15412 Unchecked_Deallocation only when Renamings_Included is True.
15413
15414 * par.adb: Allow library units Calendar, Machine_Code,
15415 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15416 when -gnatg is not specified.
15417 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15418 there is no need to generate always a record_definition_node in case
15419 of synchronized interface types.
15420 (SIS_Entry_Active): Initialize global variable to False
15421 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15422 indicate cases where AI-447 says "not null" is legal.
15423
15424 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15425
15426 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15427 files with with several lines starting with the object fileb name.
15428 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15429 is specified.
15430 (Initialize): Add the directory where gprmake is invoked in front of the
15431 path, if it is invoked from a bin directory or with directory
15432 information, so that the correct GNAT tools will be used when invoked
15433 directly.
15434 (Check_Compilation_Needed): Process correctly backslashes on Windows.
15435
15436 * vms_data.ads: Update switches/qualifiers
15437
154382007-04-06 Ed Schonberg <schonberg@adacore.com>
15439 Thomas Quinot <quinot@adacore.com>
15440
15441 * exp_aggr.adb:
15442 If the array component is a discriminated record, the array aggregate
15443 is non-static even if the component is given by an aggregate with
15444 static components.
15445 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15446 (Convert_Aggr_In_Allocator): If the allocator is for an access
15447 discriminant and the type is controlled. do not place on a finalization
15448 list at this point. The proper list will be determined from the
15449 enclosing object.
15450 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15451 initialize record controller if needed, before the components, to ensure
15452 that they are properly finalized.
15453 (Build_Record_Aggr_Code): For the case of an array component that has a
15454 corresponding array aggregate in the record aggregate, perform sliding
15455 if required.
15456
154572007-04-06 Javier Miranda <miranda@adacore.com>
15458 Gary Dismukes <dismukes@adacore.com>
15459 Ed Schonberg <schonberg@adacore.com>
15460
15461 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15462 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15463
15464 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15465 accessibility on class-wide allocators if the allocator occurs at the
15466 same scope level as the allocator's type. The check is guaranteed to
15467 succeed in that case, even when the expression originates from a
15468 parameter of the containing subprogram.
15469 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15470 under No_Dispatching_Calls restriction. During the semantic analysis
15471 we already notified such violation.
15472 (Tagged_Membership): Constant folding. There is no need to check
15473 the tag at run-time if the type of the right operand is non
15474 class-wide abstract.
15475 Replace call to Is_Ancestor by call to Is_Parent
15476 to support concurrent types with interface types.
15477 (Expand_N_Allocator): Add an assertion associated with the generation
15478 of the master_id.
15479 (Expand_N_Slice): Do not enable range check to nodes associated
15480 with the frontend expansion of the dispatch table.
15481 (Is_Local_Access_Discriminant): Subsidiary function to
15482 Expand_N_Allocator.
15483 (Tagged_Membership): Replace generation of call to the run-time
15484 subprogram CW_Membership by call to Build_CW_Membership.
15485 (Expand_Allocator_Expression): Replace generation of call to the
15486 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15487
15488 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15489 initialize most the TSD components by means of an aggregate.
15490 Modify the declaration of the object containing the TSD
15491 because we now expand code that has a higher level of abstraction.
15492 The TSD has a discriminant containing the Inheritance Depth Level,
15493 value that is used in the membership test but also to fix the size
15494 of the table of ancestors.
15495 (Expand_Interface_Conversion): Insert function body at the closest place
15496 to the conversion expression, to prevent access-before-elaboration
15497 errors in the backend.
15498 Code improved to reduce the size of the dispatch table if
15499 compiling under restriction No_Dispatching_Calls plus code cleanup.
15500 Code reorganization plus removal of calls to Set_Num_Prim_Ops
15501 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15502 (Expand_Dispatching_Call): Minor code reorganization plus addition of
15503 code to return immediately if compiling under No_Dispatching_Calls
15504 restriction.
15505 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15506 CPP_Virtual and CPP_Vtable are no longer supported.
15507 (Expand_Interface_Conversion): Add missing support for interface type
15508 derivations.
15509 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15510 Is_Parent to support concurrent types with interfaces.
15511 (Init_Predefined_Interface_Primitives): Removed.
15512 (Make_Secondary_DT): Modified to support concurrent record types.
15513 (Set_All_DT_Position): Modified to support concurrent record types.
15514 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15515 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15516 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15517 with CW_Membership.
15518 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15519 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15520 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15521 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15522 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15523 (Expand_Dispatching_Call): Replace generation of call to the run-time
15524 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15525 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15526 Address.
15527 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15528 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15529 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15530 Build_Set_Prim_Op_Address.
15531 (Get_Remotely_Callable): Subprogram removed.
15532 (Init_Predefined_Interface_Primitives): Replace generation of call to
15533 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15534 Prims.
15535
15536 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15537 First (Parameter_Associations ()) with the call to First_Actual that
15538 returns an actual parameter expression for both named and positional
15539 associations.
15540
15541 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15542 check violation of restriction No_Dispatching_Calls.
15543 (Check_Controlling_Type): A formal of a tagged incomplete type is a
15544 controlling argument.
15545
15546 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15547 First/Next_Component_Or_Discriminant
15548 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15549 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15550 specify Any_Limited_Interface, and this functionality is already
15551 provided by the function Has_Abstract_Interfaces.
15552 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15553 support concurrent types implementing interfaces.
15554 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15555 specify kind Any_Limited_Interface, and this functionality is already
15556 provided by the function Has_Abstract_Interfaces.
15557 (Remove_Side_Effects): replace Controlled_Type by
15558 CW_Or_Controlled_Type whenever the issue is related to
15559 using or not the secondary stack.
15560
15561 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15562 P_Interface_Type_Definition to fulfill the new interface (the formal
15563 Is_Synchronized is no longer required).
15564
15565 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
15566 Update dependencies.
15567
15568 * exp_atag.ads, exp_atag.adb: New file
15569
155702007-04-06 Ed Schonberg <schonberg@adacore.com>
15571 Bob Duff <duff@adacore.com>
15572 Cyrille Comar <comar@adacore.com>
15573
15574 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
15575 anonymous, use finalization list of enclosing dynamic scope.
15576 (Expand_N_Package_Declaration): For a library package declaration
15577 without a corresponding body, generate RACW subprogram bodies in the
15578 spec (just as we do for the task activation call).
15579 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
15580 Is_Abstract_Type. Make sure these are called only when appropriate.
15581 Remove all code for DSP option
15582 (CW_Or_Controlled_Type): new subprogram.
15583
9e94c78f 155842007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15585 Ed Schonberg <schonberg@adacore.com>
15586 Gary Dismukes <dismukes@adacore.com>
15587
15588 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
15589 parameter. If it is set to true, return a result capped according to
15590 the global upper bound for the index of an entry family.
15591 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
15592 (Build_Find_Body_Index): Adjust for above change.
15593 (Entry_Index_Expression): Likewise.
15594 (Is_Potentially_Large_Family): New function extracted from...
15595 (Collect_Entry_Families): ...here. Call it to detect whether the family
15596 is potentially large.
15597 (Build_Entry_Count_Expression): If the family is potentially large, call
15598 Family_Size with 'Cap' set to true.
15599 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
15600 a protected version of an operation declared in the private part of
15601 a protected object, because they may be invoked through a callback.
15602 (Set_Privals): If the type of a private component is an anonymous access
15603 type, do not create a new itype for each protected body.
15604 If the body of a protected operation creates
15605 controlled types (including allocators for class-widetypes), the
15606 body of the corresponding protected subprogram must include a
15607 finalization list.
15608 (Build_Activation_Chain_Entity): Build the chain entity for extended
15609 return statements.
15610 (Type_Conformant_Parameters): Use common predicate Conforming_Types
15611 to determine whether operation overrides an inherited primitive.
15612 (Build_Wrapper_Spec): Add code to examine the parents while looking
15613 for a possible overriding candidate.
15614 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
15615 hold an actual parameter value since its initialization is separated
15616 from the the declaration. Prevents errors on null-excluding access
15617 formals.
15618
156192007-04-06 Thomas Quinot <quinot@adacore.com>
8a57e48f 15620 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
15621
15622 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
15623 Do an Unchecked_Conversion to handle the passage from the Underlying
15624 Type to the Base Type when calling Build_To_Any_Call and
15625 Build_From_Any_Call.
15626 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
15627 E_Constant, depending upon Variable formal.
15628 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15629 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
15630 parameter that requires an extra constrained parameter, declare
15631 temporary for actual as a variable, not a constant.
15632 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
15633 the unit being compiled is the one that contains the stub type.
15634 Change primitive operation name for the RACW associated with a RAS
15635 from Call to _Call so it cannot clash with any legal identifier.
15636 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
15637 Is_RAS.
15638 (Append_RACW_Bodies): New subprogram.
15639 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
15640 Add_Receiving_Stubs_To_Declarations functions.
15641 When expanding a package body, this list correspond to the
15642 statements in the HSS at the end of the pacakge.
15643 When expanding a package spec, this list correspond to the
15644 spec declarations.
15645 (Add_Receiving_Stubs_To_Declarations): Append the function
15646 registering the receiving stubs at the end of the 'Stmts' list.
15647 (RCI_Package_Locator): Pass the new Version generic formal when
15648 instantiating a RCI_Locator package.
15649 (Build_From_Any_Function): To compute the High bound for an
15650 unconstrained array actual, we add the Low bound with the length.
15651 Thus we must convert the low bound and the length to an appropriate
15652 type before doing the sum.
15653 (Build_Subprogram_Receiving_Stubs, PolyORB):
15654 * Retrieve the extra formals parameters at the
15655 end of the parameter stream.
15656 * Use Move_Any_Value to write back out parameters
15657 after executing the request as it is more efficient
15658 than Copy_Any_Value.
15659 * Build the any containing Extra Formals with the
15660 appropriate typecode.
15661 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
15662 empty Component_List.
15663 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
15664 the tree the declaration for an object that serves as actual parameter
15665 in server-side stubs.
15666 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15667 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
15668 Use Build_Actual_Object_Declaration to prepare the actuals.
15669 (Add_Parameter_To_NVList): Set the parameter mode to In for
15670 Extra Constrained Parameters.
15671 (Build_General_Calling_Stubs): Set the parameter type to boolean for
15672 Extra Constrained parameters.
15673 (Build_To_Any_Function, Build_From_Any_Function,
15674 Built_TypeCode_Function): When Typ is implicit, call the correct
15675 function with the first not implicit parent type.
15676 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
15677 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
15678 typecode from the Etype. Therefore we retrieve the correct typecode
15679 with a call to Get_Any_Type.
15680 (Copy_Specification): Do controlling formal type substitution based on
15681 Is_Controlling_Formal flag, instead of caller-provided object type.
15682 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
15683 a RACW primitive operation, we might get a subprogram declaration for an
15684 ancestor of the RACW designated type (not for the designated type
15685 itself), in the case where this operation is inherited. In this case we
15686 have no easy means of determining the original tagged type for which
15687 the primitive was declared, so instead we now rely on
15688 Copy_Specification to use the Is_Controlling_Formal flag to determine
15689 which formals require type substitution.
15690
156912007-04-06 Robert Dewar <dewar@adacore.com>
15692 Ed Schonberg <schonberg@adacore.com>
15693
15694 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
15695 GNAT.Current_Exception are not allowed if pragma Restrictions
15696 (No_Exception_Propagation) is set and in any case make the associated
15697 handler unsuitable as a target for a local raise statement.
15698 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
15699 run-time subprogram CW_Membership by call to Build_CW_Membership.
15700 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
15701 by a function call, a temporary must be created before expanding the
15702 Constructor_Call itself, to prevent out-of-order elaboration in the
15703 back-end when stack checking is enabled..
15704
157052007-04-06 Ed Schonberg <schonberg@adacore.com>
15706
15707 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
15708 result are the bounds of the left operand, not the right.
15709
157102007-04-06 Ed Schonberg <schonberg@adacore.com>
15711
15712 * exp_strm.adb
15713 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
15714 discriminant defaults.
15715 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
15716 (Make_Component_List_Attributes): Ditto.
15717
157182007-04-06 Ed Schonberg <schonberg@adacore.com>
15719 Bob Duff <duff@adacore.com>
15720
15721 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
15722 an association with a box as providing a value even though the
15723 initialization procedure for the type is not available.
15724 (Resolve_Record_Aggregate): Check that a choice of an association with a
15725 box corresponds to a component of the type.
15726 (Resolve_Record_Aggregate): Split Is_Abstract flag into
15727 Is_Abstract_Subprogram and Is_Abstract_Type.
15728
15729 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
15730 assert.
15731
15732 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
15733 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15734 called only when appropriate.
15735
157362007-04-06 Olivier Hainque <hainque@adacore.com>
15737
15738 * g-alleve.ads (Low Level Vector type definitions): Map each to the
15739 associated vector view instead of all to the unsigned char view.
15740
15741 * g-altcon.adb (Generic_Conversions): New internal generic package,
15742 offering facilities for all the Vector/View conversion routines
15743 implemented by this unit.
15744 (To_View/To_Vector - all versions): Reimplemented in a systematic
15745 manner, using the internal Generic_Conversions facilities.
15746
157472007-04-06 Pascal Obry <obry@adacore.com>
15748
15749 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
15750 string.
15751 (Create): Free the source string before storing the new one.
15752
157532007-04-06 Vincent Celier <celier@adacore.com>
15754
15755 * g-debpoo.adb (Validity): New package with a complete new
15756 implementation of subprograms Is_Valid and Set_Valid.
15757 (Is_Valid): Move to local package Validity
15758 (Set_Valid): Move to local package Validity
15759
157602007-04-06 Arnaud Charlet <charlet@adacore.com>
8a57e48f 15761 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
15762
15763 * g-expect.adb (Get_Command_Output): When expanding the output buffer
15764 we must ensure that there is enough place for the new data we are going
15765 to copy in.
15766
157672007-04-06 Thomas Quinot <quinot@adacore.com>
15768
15769 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
15770 computation.
15771
157722007-04-06 Jose Ruiz <ruiz@adacore.com>
15773 Vincent Celier <celier@adacore.com>
15774
15775 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
15776 (Stack_String): Add this String that contains the name of the Stack
15777 package in the project file.
15778 (Packages_To_Check_By_Stack): Add this list that contains the packages
15779 to be checked by gnatstack, which are the naming and the stack packages.
15780 (Check_Files): If no .ci files were specified for gnatstack we add all
15781 the .ci files belonging to the projects, including binder generated
15782 files.
15783 (Non_VMS_Usage): Document that gnatstack accept project file switches.
15784 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
15785 Add gnatstack to the list of commands that use project file related
15786 switches, and get the single attribute Switches from the stack package
15787 in a project file when calling gnatstack. Parse the -U flag for
15788 processing files belonging to all projects in the project tree.
15789 Remove all processing for command Setup
15790
15791 * prj-attr.adb: Add new package Stack with single attribute Switches
15792
15793 * vms_conv.ads (Command_Type): Add command Stack.
15794 Move to body declarations that are only used in the body: types Item_Id,
15795 Translation_Type, Item_Ptr, Item and its subtypes.
15796
15797 * vms_conv.adb: (Initialize): Add data for new command Stack.
15798 Add declarations moved from the spec: types Item_Id, Translation_Type,
15799 Item_Ptr, Item and its subtypes.
15800 (Cargs_Buffer): New table
15801 (Cargs): New Boolean global variable
15802 (Process_Buffer): New procedure to create arguments
15803 (Place): Put character in table Buffer or Cargs_Buffer depending on the
15804 value of Cargs.
15805 (Process_Argument): Set Cargs when processing qualifiers for GNAT
15806 COMPILE
15807 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
15808 empty, for table Cargs_Buffer.
15809 (Initialize): Remove component Setup in Command_List
15810
158112007-04-06 Vincent Celier <celier@adacore.com>
15812
15813 * gprep.adb (Process_Files.Process_One_File): Use full file name when
15814 issuing pragma Source_Reference.
15815
158162007-04-06 Emmanuel Briot <briot@adacore.com>
15817
15818 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
15819 [[:xdigit:]] character class.
15820 Also raise an exception when an invalid character class is used.
15821
158222007-04-06 Pascal Obry <obry@adacore.com>
15823
15824 * i-cstrea.ads: (fopen): Add encoding parameter.
15825 (freopen): Idem.
15826 Change reference from a-sysdep.c to sysdep.c in comment.
15827 Update copyright notice.
15828 This set of patch add support for the encoding form parameter.
15829
15830 * mingw32.h (S2WSU): New macro to convert from a string to a
15831 wide-string using the UTF-8 encoding. The S2WS macro supports now only
15832 standard 8bits encoding.
15833 (WS2SU): As above but converting from wide-sring to string.
15834 This is needed as it is necessary to have access to both versions in the
15835 runtime for the form parameter encoding support.
15836 This set of patch add support for the encoding form parameter.
15837 (S2WS): Improve implementation to handle cases where the filename is not
15838 UTF-8 encoded. In this case we default to using the current code page
15839 for the conversion.
15840
15841 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
15842 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
15843 the constants defined in adaint.h.
15844 (fopen): Add encoding parameter.
15845 (freopen): Idem.
15846
15847 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
15848 encoding. This is needed for the Reset routine (freopen low level-call).
15849
15850 * s-fileio.adb (Open): Decode encoding form parameter and set the
15851 corresponding encoding value into AFCB structure.
15852 (Reset): Pass the encoding value to freopen.
15853 (Close): Move the call to Lock_Task to the beginning of the procedure.
15854
158552007-04-06 Geert Bosch <bosch@adacore.com>
15856 Robert Dewar <dewar@adacore.com>
15857
15858 * i-fortra.ads: Add Double_Complex type.
15859
15860 * impunit.adb: (Is_Known_Unit): New function
15861 Add Gnat.Byte_Swapping
15862 Add GNAT.SHA1
15863 Add new Ada 2005 units
15864 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
15865 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
15866 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
15867 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
15868
15869 * impunit.ads (Is_Known_Unit): New function
15870
15871 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
15872 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
15873 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
15874 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
15875 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
15876 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
15877 New files.
15878
15879 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
15880
15881 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
15882
9e94c78f 158832007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
15884 Arnaud Charlet <charlet@adacore.com>
15885
15886 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
15887 __gnat_adjust_context_for_raise.
15888 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
15889 implementation of floating point operations as native x86 targets.
15890 So the FPU should be initialized in the same way using finit. Fix
15891 floating point operations accuracy issues.
15892 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
15893 member in struct sigaction, so as to avoid warning for incompatible
15894 pointer types.
15895
9e94c78f 158962007-04-06 Serguei Rybin <rybin@adacore.com>
4b437c6b
AC
15897
15898 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
15899 switches from previously loaded tree
15900
159012007-04-06 Thomas Quinot <quinot@adacore.com>
15902
15903 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
15904 cases where a given dependency has a body or not.
15905 (Write_With_File_Names): New subprogram, common code for the two cases
15906 above.
15907
159082007-04-06 Ed Schonberg <schonberg@adacore.com>
15909 Javier Miranda <miranda@adacore.com>
15910
9e81dbc7 15911 * lib-xref.ads, lib-xref.adb:
4b437c6b
AC
15912 Modify the loop that collects type references, to include interface
15913 types that the type implements. List each of these interfaces when
15914 building the entry for the type.
15915 (Generate_Definition): Initialize component Def and Typ of new entry
15916 in table Xrefs, to avoid to have these components unitialized.
15917 (Output_References): Split Is_Abstract flag into
15918 Is_Abstract_Subprogram and Is_Abstract_Type.
15919 (Generate_Reference): Add barrier to do not generate the warning
15920 associated with Ada 2005 entities with entities generated by the
15921 expander.
15922
159232007-04-06 Robert Dewar <dewar@adacore.com>
15924 Arnaud Charlet <charlet@adacore.com>
15925 Vincent Celier <celier@adacore.com>
15926
15927 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
15928 Update 'Exception Handling Control' chapter which was outdated.
15929 Minor fix to documentation of -gnatwq
15930 Remove section "Adapting the Run Time to a New C++ Compiler" because
15931 it is now obsolete.
15932 Add passage on need of -nostart-files in some non-ada-main cases.
15933 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
15934 Update documentation about Interfacing with C++
15935 Add documentation for new gnatmake switch -p
15936 Add missing protocol part in URLs.
15937 Document -gnatyA
15938 Document pragma Compile_Time_Error
15939 Add documentation for Object_Size indicating that stand alone
15940 objects can have a larger size in some cases.
15941 Add node for GNAT.Byte_Swapping, GNAT.SHA1
15942 Update reference to the Ravenscar profile.
15943 Document pragma Unreferenced_Objects
15944
15945 * gnat-style.texi: Fix typo
15946
159472007-04-06 Vincent Celier <celier@adacore.com>
15948
15949 * mlib.adb (Building_Library): Only output "building a library..." in
15950 verbose mode
15951
15952 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
15953 files in verbose mode.
15954
15955 * mlib-utl.adb (Ar): Only output the first object files when not in
15956 verbose mode.
15957 (Gcc): Do not display all the object files if not in verbose mode, only
15958 the first one.
15959
159602007-04-06 Robert Dewar <dewar@adacore.com>
15961
15962 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
15963 it no longer destroys the contents of Name_Buffer or Name_Len and
15964 non-standard and invalid names are handled better.
15965 (Get_Decoded_Name_String): Improve performance by using
15966 Name_Has_No_Encodings flag in the name table.
15967 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
15968 Used for debugging printouts.
15969
159702007-04-06 Robert Dewar <dewar@adacore.com>
15971 Javier Miranda <miranda@adacore.com>
15972 Bob Duff <duff@adacore.com>
15973
15974 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
15975 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15976 there is no need to generate always a record_definition_node in case
15977 of synchronized interface types.
15978 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
15979 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
15980 illegal in Ada 95, in cases where it is legal. Change the warnings to
15981 errors in other cases. Don't give the error unless the "not null"
15982 parses properly. Correct the source position at which the error occurs.
15983 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
15984 P_Null_Exclusion, to suppress "not null" warnings.
15985 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
15986 associated goto statements.
15987
15988 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
15989 of END RECORD
15990
15991 * scans.ads (Type_Token_Location): New flag
15992
15993 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
15994 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
15995 P_Null_Exclusion, to suppress "not null" warnings.
15996
159972007-04-06 Robert Dewar <dewar@adacore.com>
15998 Javier Miranda <miranda@adacore.com>
15999 Bob Duff <duff@adacore.com>
16000 Vincent Celier <celier@adacore.com>
16001
16002 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16003 (Extensions_Allowed): No longer sets Ada_Version
16004 Entry for pragma Unreferenced_Objects
16005
16006 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16007 system.tasking if pragma priority used in a procedure
16008 (Analyze_Pragma, case Warning): Handle dot warning switches
16009 (Process_Compile_Time_Warning_Or_Error): New procedure
16010 (Analyze_Pragma): Add processing for Compile_Time_Error
16011 Add support for extra arguments External_Name and Link_Name.
16012 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16013 (Process_Import_Or_Interface): Add support for the use of pragma Import
16014 with tagged types.
16015 (Extensions_Allowed): No longer affects Ada_Version
16016 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16017 Is_Abstract_Type. Make sure these are called only when appropriate.
16018 Add processing for pragma Unreferenced_Objects
16019
16020 * snames.h, snames.ads, snames.adb: Add entry for pragma
16021 Compile_Time_Error
16022 Add new standard name Minimum_Binder_Options for new gprmake
16023 Add new standard names for gprmake: Archive_Suffix,
16024 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16025 Library_Support, Library_Version_Options,
16026 Shared_Library_Minimum_Options,
16027 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16028 Change Name_Call to Name_uCall so that it cannot clash with a legal
16029 subprogram name.
16030 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16031 Append C_Plus_Plus to convention identifiers as synonym for CPP
16032 Add new standard names Stack and Builder_Switches
16033 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16034 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16035 Run_Path_Option, Toolchain_Version.
16036 Entry for pragma Unreferenced_Objects
16037
16038 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16039 switches, without repetition of "eD". Make sure that last character of
16040 -gnatep= switch is not taken as -gnat switch character.
16041 Complete rewrite of circuit for handling saving compilation options
16042 Occasioned by need to support dot switchs for -gnatw, but cleans up
16043 things in general.
16044 -gnatX does not affect Ada_Version
16045 Include -gnatyA in -gnatg style switches
16046
16047 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16048 warnings on return objects.
16049 (Warn_On_Useless_Assignment): Exclude warnings on return objects
16050 (Set_Dot_Warning_Switch): New procedure
16051 (Check_References): Add missing case of test for
16052 Has_Pragma_Unreferenced_Objects
16053 (Output_Unreferenced_Messages): Implement effect of new pragma
16054 Unreferenced_Objects, remove special casing of limited controlled
16055 variables.
16056
160572007-04-06 Vincent Celier <celier@adacore.com>
16058
16059 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16060 the default project path, initially done during elaboration of the
16061 package.
16062 If the prefix returned by Sdefault is null, get the prefix from a call
16063 to Executable_Prefix_Path.
16064 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16065 null.
16066
16067 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16068 canonical directory name to open the directory from which files are
16069 retrieved.
16070 (Record_Other_Sources): Idem.
16071 (Locate_Directory): Add the possibility to create automatically missing
16072 directories when Setup_Projects is True.
16073 Call Locate_Directory so that the directory will be created when
16074 Setup_Projects is True, for object dir, library dir, library ALI dir,
16075 library source copy dir and exec dir.
16076
16077 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16078 versions of GNAT.
16079
160802007-04-06 Robert Dewar <dewar@adacore.com>
16081
16082 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16083 Use First/Next_Component_Or_Discriminant
16084 (Analyze_Record_Representation_Clause):
16085 Use First/Next_Component_Or_Discriminant
16086 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16087 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16088 definition if type is unconstrained.
16089 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16090 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16091 Is_Abstract_Subprogram and Is_Abstract_Type.
16092 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16093
16094 * repinfo.adb (List_Record_Info): Use First/
16095 Next_Component_Or_Discriminant.
16096
16097 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16098 New procedure.
16099
16100 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16101 Include -gnatyA in default switches
16102
16103 * opt.ads: (Warn_On_Non_Local_Exception): New flag
16104 (Warn_On_Reverse_Bit_Order): New flag
16105 (Extensions_Allowed): Update the documentation.
16106 (Warn_On_Questionable_Missing_Parens): Now on by default
16107
16108 * usage.adb: Add documentation of -gnatw.x/X switches
16109 Document new -gnatyA style switch
16110 -gnatq warnings are on by default
16111
161122007-04-06 Ed Falis <falis@adacore.com>
16113
16114 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16115 full word is no longer compared twice.
16116
161172007-04-06 Ed Schonberg <schonberg@adacore.com>
16118
16119 * sem_ch10.adb (Install_Limited_Context_Clauses.
16120 Expand_Limited_With_Clause): Use a new copy of selector name in the
16121 call to Make_With_Clause. This fixes the tree structure for ASIS
16122 purposes. Nothing is changed in the compiler behaviour.
16123 (Process_Body_Clauses): Handle properly use clauses whose prefix is
16124 a package renaming.
16125 (Install_Limited_With_Clauses): Do not install non-limited view when it
16126 is still incomplete.
16127
161282007-04-06 Ed Schonberg <schonberg@adacore.com>
16129 Gary Dismukes <dismukes@adacore.com>
16130
16131 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16132 when capturing size information, instead of base type, which for a
16133 formal array type will be the unconstrained type.
16134 (Analyze_Formal_Object_Declaration): Add check for illegal default
16135 expressions for a formal in object of a limited type.
16136 (Instantiate_Object): Ditto.
16137 (Check_Formal_Package_Instance): Skip entities that are formal objects,
16138 because they were defaulted in the formal package and no check applies
16139 to them.
16140 (Check_Formal_Package_Instance): Extend conformance check to other
16141 discrete types beyond Integer.
16142 (Process_Default): Copy directly the unmatched formal. A generic copy
16143 has already been performed in Analyze_Formal_Package.
16144 (Analyze_Associations): If a formal subprogram has no match, check for
16145 partial parametrization before looking for a default, to prevent
16146 spurious errors.
16147 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16148 not set the instantiation environment before analyzing the actuals.
16149 Fixes regression on 8515-003 with implementation of AI-133.
16150 Set_Instance_Env checks whether the generic unit is a predefined
16151 unit, in which case the instance must be analyzed with the latest Ada
16152 mode. This setting must take place after analysis of the actuals,
16153 because the actuals must be analyzed and frozen in the Ada mode extant
16154 outside of the current instantiation.
16155 (Save_Env, Restore_Env): Preserve and restore the configuration
16156 parameters so that predefined units can be compiled in the proper Ada
16157 mode.
16158 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16159 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16160 and Is_Abstract_Type.
16161 (Analyze_Formal_Package): For better error recovery, Add exception
16162 handler to catch Instantion_Error, which can be raised in
16163 Analyze_Associations
16164
161652007-04-06 Ed Schonberg <schonberg@adacore.com>
16166 Bob Duff <duff@adacore.com>
16167 Gary Dismukes <dismukes@adacore.com>
16168
16169 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16170 prefix type is a discriminated subtype of the type of the formal.
16171 (Analyze_Allocator): Collect all coextensions regardless of the context.
16172 Whether they can be allocated statically is determined in exp_ch4.
16173 (Analyze_Selected_Component): If the prefix is a limited view and the
16174 non-limited view is available, use the non-limited one.
16175 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16176 therefore illegal), suggest a qualified expression rather than a type
16177 conversion, because a type conversion would be illegal in this context.
16178 (Anayze_Allocator): Trace recursively all nested allocators so that all
16179 coextensions are on the corresponding list for the root. Do no mark
16180 coextensions if the root allocator is within a declaration for a stack-
16181 allocated object, because the access discriminants will be allocated on
16182 the stack as well.
16183 (Analyze_Call): Remove restriction on calls to limited functions for the
16184 cases of generic actuals for formal objects, defaults for formal objects
16185 and defaults for record components.
16186 (Analyze_Allocator): Before analysis, chain coextensions on the proper
16187 element list. Their expansion is delayed until the enclosing allocator
16188 is processed and its finalization list constructed.
16189 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16190 for an operation with the given name among the primitive operations of
16191 the corresponding record type.
16192 (Analyze_Selected_Component): If the prefix is a task type that
16193 implements an interface, and there is no entry with the given name,
16194 check whether there is another primitive operation (e.g. a function)
16195 with that name.
16196 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16197 properly the indexing of a function call written in prefix form, where
16198 the function returns an array type, and all parameters of the function
16199 except the first have defaults.
16200 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16201 the original operands, rather than relocating them, for efficiency and
16202 to work properly when an operand is overloaded.
16203 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16204 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16205 (Analyze_Selected_Component): If the prefix is a private extension, only
16206 scan the visible components, not those of the full view.
16207 (Try_Primitive_Operation): If the operation is a procedure, collect all
16208 possible interpretations, as for a function, because in the presence of
16209 classwide parameters several primitive operations of the type can match
16210 the given arguments.
16211
162122007-04-06 Ed Schonberg <schonberg@adacore.com>
16213 Robert Dewar <dewar@adacore.com>
16214
16215 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16216 tag-indeterminate call to an abstract function, when the left-hand side
16217 is not classwide.
16218 (Analyze_Loop_Statement): Improve detection of infinite loops
16219
162202007-04-06 Ed Schonberg <schonberg@adacore.com>
16221 Thomas Quinot <quinot@adacore.com>
16222
16223 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16224 out of Analyze_Package_Declaration, because processing must be applied
16225 to package bodies as well, for deferred constants completed by pragmas.
16226 (Analyze_Package_Declaration): When the package declaration being
16227 analyzed does not require an explicit body, call Check_Completion.
16228 (May_Need_Implicit_Body): An implicit body is required when a package
16229 spec contains the declaration of a remote access-to-classwide type.
16230 (Analyze_Package_Body): If the package contains RACWs, append the
16231 pending subprogram bodies generated by exp_dist at the end of the body.
16232 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16233 Is_Abstract_Subprogram and Is_Abstract_Type.
16234 (Preserve_Full_Attributes): The full entity list is not an attribute
16235 that must be preserved from full to partial view.
16236
9e81dbc7
AS
16237 * sem_dist.adb (Add_RAS_Dereference_TSS):
16238 Change primitive name to _Call so it cannot clash with any legal
16239 identifier, and be special-cased in Check_Completion.
16240 Mark the full view of the designated type for the RACW associated with
16241 a RAS as Comes_From_Source to get proper view switching when installing
16242 private declarations.
16243 Provite a placeholder nested package body along with the nested spec
16244 to have a place for Append_RACW_Bodies to generate the calling stubs
16245 and stream attributes.
4b437c6b
AC
16246
162472007-04-06 Ed Schonberg <schonberg@adacore.com>
16248 Robert Dewar <dewar@adacore.com>
16249
16250 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16251 that is a limited view, check the non-limited view if available.
16252 (Undefined): Refine error message for missing with of Text_IO
16253 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16254 to distinguish real missing with cases.
16255 Fix format of all missing with messages
16256 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16257 renaming as body when renamed entity is abstract.
16258
162592007-04-06 Ed Schonberg <schonberg@adacore.com>
16260 Javier Miranda <miranda@adacore.com>
16261
16262 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16263 predicate recursive, to handle complex expressions on literals whose
16264 spurious ambiguity comes from the abstract interpretation of some
16265 subexpression.
16266 (Interface_Present_In_Ancestor): Add support to concurrent record
16267 types.
16268 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16269 Is_Abstract_Subprogram and Is_Abstract_Type.
16270
162712007-04-06 Ed Schonberg <schonberg@adacore.com>
16272 Javier Miranda <miranda@adacore.com>
16273
16274 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16275 dereference of a local object R created as a reference to another
16276 object O, use the access level of O.
16277 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16278 rather than local Same_Formal_Type, to check whether protected operation
16279 overrides an inherited one.
16280 (Same_Formal_Type): New predicate, used when matching signatures of
16281 overriding synchronized operations, to handle the case when a formal
16282 has a type that is a generic actual.
16283 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16284 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16285 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16286 syntactic ambiguities involving indexing of function calls that return
16287 arrays.
16288 (Abstract_Interface_List): New subprogram that returns the list of
16289 abstract interfaces associated with a concurrent type or a
16290 concurrent record type.
16291 (Interface_Present_In_Parent): New subprogram used to check if a
16292 given type or some of its parents implement a given interface.
16293 (Collect_Abstract_Interfaces): Add support for concurrent types
16294 with interface types.
16295 (Has_Abstract_Interfaces): Add support for concurrent types with
16296 interface types.
16297 (Is_Parent): New subprogram that determines whether E1 is a parent
16298 of E2. For a concurrent type its parent is the first element of its
16299 list of interface types; for other types this function provides the
16300 same result than Is_Ancestor.
16301 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16302 (Collect_Synchronized_Interfaces): Removed because the subprogram
16303 Collect_Abstract_Interfaces provides this functionality.
16304 (Collect_Abstract_Interfaces): Minor update to give support to
16305 concurrent types and thus avoid undesired code duplication.
16306 (Get_Subprogram_Entity): Handle entry calls.
16307 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16308 entry calls.
16309 (Enter_Name): Do not give -gnatwh hiding warning for record component
16310 entities, they never result in hiding.
16311
163122007-04-06 Ed Schonberg <schonberg@adacore.com>
16313 Robert Dewar <dewar@adacore.com>
16314
16315 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16316 to chain nested components that are allocators for access discriminants
16317 of the enclosing object.
16318 Add N_Push and N_Pop nodes
16319 New field Exception_Label added
16320 (Local_Raise_Statements): New field in N_Exception_Handler_Node
16321 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16322 (Is_Coextension): New flag for allocators, to mark allocators that
16323 correspond to access discriminants of dynamically allocated objects.
16324 (N_Block_Statement): Document the fact that the corresponding entity
16325 can be an E_Return_Statement.
16326 (Is_Coextension): New flag for allocators.
16327 Remove all code for DSP option
16328
16329 * sprint.ads, sprint.adb: Display basic information for class_wide
16330 subtypes. Add handling of N_Push and N_Pop nodes
16331
163322007-04-06 Arnaud Charlet <charlet@adacore.com>
16333
16334 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16335 before propagating exception.
16336
163372007-04-06 Olivier Hainque <hainque@adacore.com>
16338
16339 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16340 an address always within the call instruction from a return address.
16341
163422007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 16343 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16344
16345 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16346 expression with a COMPOUND_EXPR including the call instead of emitting
16347 the call directly here.
16348 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16349 high bound is constant and the slice is empty. Tidy.
16350 (tree_transform, case N_Op_Not): Handle properly the case where the
16351 operation applies to a private type whose full view is a modular type.
16352 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16353 Address_Clause, use the associated Expression as the GNAT tree
16354 representing the choice value to ensure the corresponding GCC tree is
16355 of the proper kind.
16356 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16357 instead of just the operands, as the base GCC stabilize_reference does.
16358 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16359 requested; otherwise fail.
16360 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16361
163622007-04-06 Thomas Quinot <quinot@adacore.com>
16363
16364 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16365 implementation of UI_Div.
16366 (UI_Div): Reimplement as a call to UI_Div_Rem.
16367 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16368 remainder, avoiding the cost of a multiplication and a subtraction.
16369 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16370 provides both quotient and remainder in a single computation.
16371 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16372 functions for uint.
16373 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16374 is undefined if the given n is not inversible.
16375
163762007-04-06 Olivier Hainque <hainque@adacore.com>
16377
16378 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16379 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16380 opcodes.
16381
9e94c78f 163822007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
16383 Olivier Hainque <hainque@adacore.com>
16384
16385 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16386 when updating the contents of the old pointer to an unconstrained array.
16387 (end_subprog_body): Set error_gnat_node to Empty.
16388 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16389 (unchecked_convert): For subtype to base type conversions, require that
16390 the source be a subtype if it is an integer type.
16391 (builtin_decls): New global, vector of available builtin functions.
16392 (gnat_pushdecl): Add global builtin function declaration nodes to the
16393 builtin_decls list.
16394 (gnat_install_builtins): Adjust comments.
16395 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16396 calling gnat_pushdecl, so that it knows when it handed a builtin
16397 function declaration node.
16398 (builtin_decl_for): Search the builtin_decls list.
16399
9e94c78f 164002007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b 16401
9e81dbc7 16402 * s-stchop-vxworks.adb:
4b437c6b
AC
16403 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16404
164052007-04-06 Robert Dewar <dewar@adacore.com>
16406 Arnaud Charlet <charlet@adacore.com>
16407
16408 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16409
16410 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16411 of files
16412 Add mention of -Sev (set initialize_scalars option from environment
16413 variable at run time) in gnatbind usage message.
16414
16415 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16416
16417 * fname-uf.ads: Minor comment fix
16418
16419 * osint.ads: Change pragma Elaborate to Elaborate_All
16420
16421 * par-load.adb: Add documentation.
16422
16423 * sem_cat.ads, sem_cat.adb: Minor code reorganization
16424
16425 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16426
16427 * s-secsta.ads: Extra comments
16428
16429 * s-soflin.ads: Minor comment fixes
16430
16431 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16432
16433 * s-wchcon.ads: Minor comment addition
16434
16435 * treepr.adb: Minor change in message
16436 (Print_Name,Print_Node): Make these debug printouts more robust: print
16437 "no such..." instead of crashing on bad input.
16438
719bb4e3 164392007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
47ecd38d
RAE
16440
16441 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16442 instead of gnat_signed_or_unsigned_type.
16443 * utils.c (gnat_signed_or_unsigned_type): Remove.
16444 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16445 * gigi.h (gnat_signed_or_unsigned_type): Remove
16446
9645c3c5
RS
164472007-03-09 Roger Sayle <roger@eyesopen.com>
16448
16449 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16450 fold with the result of buildN.
16451 * decl.c (gnat_to_gnu_entity): Likewise.
16452 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16453 * utils.c (finish_record_type, merge_sizes, max_size, convert):
16454 Likewise.
16455 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16456 nonbinary_modular_operation, build_binary_op, build_unary_op,
16457 build_cond_expr): Likewise.
16458
16459 * utils.c (convert): Use fold_build1 when casting values to void.
16460 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16461 fold_convert instead of convert when appropriate.
16462
c279aa90
BM
164632007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
16464
16465 * Make-lang.in: Add install-pdf target as copied from
16466 automake v1.10 rules.
16467
c2615f30
AS
164682007-02-28 Andreas Schwab <schwab@suse.de>
16469
16470 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16471 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16472 (doc/gnat-style.info): Likewise.
16473
7771bb62
BM
164742007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16475
16476 * gnat-style.texi: Standardize title page.
16477 * gnat_rm.texi: Likewise.
16478 * gnat_ugn.texi: Likewise.
16479
ae19c041
MM
164802007-02-25 Mark Mitchell <mark@codesourcery.com>
16481
16482 * decl.c (annotate_value): Adjust for refactoring of tree_map
16483 hierarchy.
16484
fc8600f9
MM
164852007-02-24 Mark Mitchell <mark@codesourcery.com>
16486
16487 * decl.c (annotate_value): Adjust for refactoring of tree_map
16488 hierarchy.
16489
c0bca7e1
EB
164902007-02-21 Ed Schonberg <schonberg@adacore.com>
16491
16492 PR ada/18819
16493 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16494 untagged derived type, add hidden components to keep discriminant
16495 layout consistent, when a given discriminant of the derived type
16496 constraints several discriminants of the parent type.
16497
9f3432b8 164982007-02-16 Eric Botcazou <ebotcazou@adacore.com>
6f7f72f9 16499 Sandra Loosemore <sandra@codesourcery.com>
9f3432b8
EB
16500
16501 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
16502 build the call expression.
16503 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16504 * utils.c (max_size) <tcc_exceptional>: Delete.
16505 <tcc_vl_exp>: New case.
16506 <tcc_expression>: Delete CALL_EXPR subcase.
16507 (build_global_cdtor): Use build_call_nary instead of build3.
16508 * utils2.c (build_call_1_expr): Likewise.
16509 (build_call_2_expr): Likewise.
16510 (build_call_0_expr): Likewise.
16511 (build_call_alloc_dealloc): Likewise.
16512
8438091f
AK
165132007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
16514
16515 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9e81dbc7 16516 get_action_description_for): Replace _Unwind_Word with _uleb128_t
8438091f
AK
16517 and _Unwind_SWord with _sleb128_t.
16518
0802f6a2
PB
165192007-02-06 Paolo Bonzini <bonzini@gnu.org>
16520
16521 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16522 * decl.c: Include gt-ada-decl.h.
16523 (annotate_value_cache): New.
16524 (annotate_value): Use it instead of TREE_COMPLEXITY.
16525
326f9a75
KH
165262007-02-03 Kazu Hirata <kazu@codesourcery.com>
16527
16528 * misc.c, utils2.c: Fix comment typos.
16529
cd259a98
RS
165302007-01-24 Roger Sayle <roger@eyesopen.com>
16531
16532 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16533 TREE_CONSTANT_OVERFLOW.
16534 (allocatable_size_p, annotate_value): Likewise.
16535 * trans.c (gnat_to_gnu): Likewise.
16536 * utils.c (unchecked_convert): Likewise.
16537 * utils2.c (build_simple_component_ref): Likewise.
16538
5305be7e
RG
165392007-01-23 Richard Guenther <rguenther@suse.de>
16540
16541 PR bootstrap/30541
16542 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16543 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16544 (gnatboot3): Likewise.
16545 (GNATBIND): Do not define.
16546 * Makefile.in (GNATBIND): Do not define.
16547
2ac7cbb5
RG
165482007-01-08 Richard Guenther <rguenther@suse.de>
16549
16550 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16551 * trans.c (gnat_to_gnu): Likewise.
16552
2989d30c
GK
165532006-12-07 Geoffrey Keating <geoffk@apple.com>
16554
16555 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16556 * adaint.c: Likewise.
16557
5848e34a
EB
165582006-12-05 Aldy Hernandez <aldyh@redhat.com>
16559
6f7f72f9 16560 Merge from gimple-tuples-branch:
5848e34a 16561 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
6f7f72f9 16562
5848e34a
EB
16563 * ada-tree.h (lang_tree_node): Handle gimple tuples.
16564 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16565 GIMPLE_MODIFY_STMT.
16566
d3c56bc8
KH
165672006-12-02 Kazu Hirata <kazu@codesourcery.com>
16568
16569 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
16570 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
16571 Fix typos.
16572
9fa25ead
EB
165732006-11-17 Eric Botcazou <ebotcazou@adacore.com>
16574
16575 PR ada/27936
16576 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
16577 if the initializer takes into account the padding.
16578
f9f770a8
RG
165792006-11-11 Richard Guenther <rguenther@suse.de>
16580
16581 * trans.c (maybe_stabilize_reference): Remove handling of
16582 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
16583
75c0ed05
AC
165842006-11-05 Arnaud Charlet <charlet@adacore.com>
16585
ed41063a 16586 PR ada/29707
75c0ed05
AC
16587 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
16588 (To_Target_Priority): New function.
75c0ed05 16589
70198b9f
AC
165902006-10-31 Robert Dewar <dewar@adacore.com>
16591
16592 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
16593 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
16594 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
16595 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
16596 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
16597 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
16598 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
16599 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
16600 a-szbzha.adb: Minor reformatting. Fix header.
16601
16602 * a-numaux-x86.adb: Add parentheses for use of unary minus
16603 * a-ngcefu.adb: Supply missing parentheses for unary minus
16604 * a-ngcoty.adb: Add parens for use of unary minus
16605 * a-ngelfu.adb: Add missing parens for unary minus
16606 * a-tifiio.adb: Add parentheses for uses of unary minus
16607
166082006-10-31 Robert Dewar <dewar@adacore.com>
16609 Bob Duff <duff@adacore.com>
16610 Ed Schonberg <schonberg@adacore.com>
16611
6f7f72f9 16612 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
70198b9f
AC
16613 with multiplying operator.
16614 (Expected_Type_Is_Any_Real): New function to determine from the Parent
16615 pointer whether the context expects "any real type".
16616 (Resolve_Arithmetic_Op): Do not give an error on calls to the
16617 universal_fixed "*" and "/" operators when they are used in a context
16618 that expects any real type. Also set the type of the node to
16619 Universal_Real in this case, because downstream processing requires it
16620 (mainly static expression evaluation).
16621 Reword some continuation messages
16622 Add some \\ sequences to continuation messages
16623 (Resolve_Call): Refine infinite recursion case. The test has been
16624 sharpened to eliminate some false positives.
16625 Check for Current_Task usage now includes entry barrier, and is now a
16626 warning, not an error.
16627 (Resolve): If the call is ambiguous, indicate whether an interpretation
16628 is an inherited operation.
16629 (Check_Aggr): When resolving aggregates, skip associations with a box,
16630 which are priori correct, and will be replaced by an actual default
16631 expression in the course of expansion.
16632 (Resolve_Type_Conversion): Add missing support for conversion from
16633 a class-wide interface to a tagged type. Minor code cleanup.
16634 (Valid_Tagged_Converion): Add support for abstact interface type
16635 conversions.
16636 (Resolve_Selected_Component): Call Generate_Reference here rather than
16637 during analysis, and use May_Be_Lvalue to distinguish read/write.
16638 (Valid_Array_Conversion): New procedure, abstracted from
16639 Valid_Conversion, to incorporate accessibility checks for arrays of
16640 anonymous access types.
16641 (Valid_Conversion): For a conversion to a numeric type occurring in an
16642 instance or inlined body, no need to check that the operand type is
16643 numeric, since this has been checked during analysis of the template.
16644 Remove legacy test for scope name Unchecked_Conversion.
16645
16646 * sem_res.ads: Minor reformatting
16647
16648 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
16649 (PE_Current_Task_In_Entry_Body): New exception code
16650 (SE_Restriction_Violation): Removed, not used
16651
16652 * a-except.ads: Update comments.
16653
16654 * types.h, types.ads: Add definition for Validity_Check
16655 (PE_Current_Task_In_Entry_Body): New exception code
16656 (SE_Restriction_Violation): Removed, not used
16657
166582006-10-31 Thomas Quinot <quinot@adacore.com>
16659
16660 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
16661 error status.
16662
166632006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
16664 Jose Ruiz <ruiz@adacore.com>
16665
16666 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
16667 part of Ada.Calendar: all subprogram raise Unimplemented.
16668 (Split_W_Offset): Temp function body, raising Unimplemented
16669
9e81dbc7 16670 * a-calend.ads, a-calend-vms.ads:
70198b9f
AC
16671 Add imported variable Invalid_TZ_Offset used to designate targets unable
16672 to support time zones.
16673 (Unimplemented): Temporary function raised by the body of new
16674 subprograms below.
16675 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
16676 unit provides handling of leap seconds and is used by the new Ada 2005
16677 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
16678 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
16679 version returns an extra value which is the offset to UTC.
16680
16681 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
16682 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
16683 (Split_W_Offset): New function body.
16684 (Time_Of): When a date is close to UNIX epoch, compute the time for
16685 that date plus one day (that amount is later substracted after
16686 executing mktime) so there are no problems with time zone adjustments.
16687
16688 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
16689
16690 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
16691 a-catizo.ads, a-catizo.adb: New files.
16692
6f7f72f9 16693 * impunit.adb: Add new Ada 2005 entries
70198b9f
AC
16694
16695 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
16696 Rename all occurences of "__gnat_localtime_r" to
16697 "__gnat_localtime_tzoff".
16698 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
16699 zone data and calculate the GMT offset.
16700 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
16701 Use the field "tm_gmtoff" to extract the GMT offset.
16702 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
16703 the external variable "timezone" to calculate the GMT offset.
16704
167052006-10-31 Arnaud Charlet <charlet@adacore.com>
16706 Jose Ruiz <ruiz@adacore.com>
16707
9e81dbc7
AS
16708 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
16709 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
70198b9f
AC
16710 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
16711 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
16712 System.Any_Priority to a POSIX priority on the target.
16713
9e81dbc7 16714 * system-linux-ia64.ads:
70198b9f
AC
16715 Extend range of Priority types on Linux to use the whole range made
16716 available by the system.
16717
16718 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
16719 function maps from System.Any_Priority to a POSIX priority on the
16720 target.
16721 (PTHREAD_PRIO_PROTECT): Set real value.
16722 (PTHREAD_PRIO_INHERIT): Now a function.
16723 (SIGCPUFAIL): New signal.
16724 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
16725 are documented as reserved by the OS.
16726
16727 * system-aix.ads: Use the full range of priorities provided by the
16728 system on AIX.
16729
16730 * s-taprop-posix.adb: Call new function To_Target_Priority.
16731 (Set_Priority): Take into account Task_Dispatching_Policy and
16732 Priority_Specific_Dispatching pragmas when determining if Round Robin
16733 must be used for scheduling the task.
16734
9e81dbc7 16735 * system-linux-x86_64.ads, system-linux-x86.ads,
70198b9f
AC
16736 system-linux-ppc.ads: Extend range of Priority types on Linux to use
16737 the whole range made available by the system.
16738
9e81dbc7
AS
16739 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
16740 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
70198b9f
AC
16741 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
16742 when deallocating the TCB in order to avoid potential references to
16743 deallocated data.
16744 (Set_Priority): Take into account Task_Dispatching_Policy and
16745 Priority_Specific_Dispatching pragmas when determining if Round Robin
16746 or FIFO within priorities must be used for scheduling the task.
16747
16748 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
16749 the Thread field (to be used internally by the run-time system) and the
16750 kernel-level task id in the LWP field (to be used by the debugger).
16751 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
16752 instance, and propagate the current task options to the spawned task.
16753 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
16754 (Initialize): Set Round Robin dispatching when the corresponding pragma
16755 is in effect.
16756
167572006-10-31 Robert Dewar <dewar@adacore.com>
16758
9e81dbc7
AS
16759 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16760 system-linux-hppa.ads, system-hpux-ia64.ads,
16761 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
16762 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
16763 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
16764 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
16765 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
16766 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
70198b9f
AC
16767 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
16768 Default_Bit_Order) to kill constant condition warnings for references
16769 to this switch.
16770
167712006-10-31 Vincent Celier <celier@adacore.com>
16772 Eric Botcazou <ebotcazou@adacore.com>
16773
16774 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
16775 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
16776 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
16777 Ext_To, when building the library file name
16778
16779 * mlib-tgt-vxworks.adb: ditto.
16780 (Get_Target_Suffix): Add support for x86 targets.
16781
16782 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
16783
9e81dbc7 16784 * mlib-tgt-darwin.adb:
70198b9f
AC
16785 Use Append_To, instead of Ext_To, when building the library file name
16786 (Flat_Namespace): New global variable.
16787 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
16788 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
16789 (Link_Shared_Libgcc): Delete.
16790 (Build_Dynamic_Library): Adjust for above changes.
16791 Use Opt package.
16792 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
16793
167942006-10-31 Eric Botcazou <ebotcazou@adacore.com>
16795
16796 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
16797 (Initialize): Add type conversions required by above change.
16798
167992006-10-31 Jose Ruiz <ruiz@adacore.com>
16800
9e81dbc7 16801 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
70198b9f
AC
16802 (getpid): New body for this function that uses the underlying taskIdSelf
16803 function for VxWorks 5 and VxWorks 6 in kernel mode.
16804 (unsigned_int): New type, modular to allow logical bit operations.
16805 (taskOptionsGet): New imported function.
16806
16807 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
16808 field to be compliant with the type used by the corresponding operating
16809 system primitive.
16810
168112006-10-31 Pascal Obry <obry@adacore.com>
16812 Eric Botcazou <ebotcazou@adacore.com>
16813 Vincent Celier <celier@adacore.com>
16814
16815 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
16816 ASCII version of the registry API. This is needed as the GNAT runtime
16817 is now UNICODE by default.
16818 Include version.h.
16819 (get_gcc_version): Do not hardcode the return value.
16820 (__gnat_file_time_name): On Windows properly set the default returned
16821 value to -1 which corresponds to Invalid_Time.
16822 (__gnat_fopen): New routine. A simple wrapper on all plateforms
16823 except on Windows where it does conversion for unicode support.
16824 (__gnat_freopen): Idem.
16825 (__gnat_locate_exec_on_path): If environment variable PATH does not
16826 exist, return a NULL pointer
16827
16828 * adaint.h: (__gnat_fopen): Declare.
16829 (__gnat_freopen): Likewise.
16830
16831 * mingw32.h (_tfreopen): Define this macro here for older MingW
16832 version.
16833 Activate the unicode support on platforms using a MingW runtime
16834 version 3.9 or newer.
16835
16836 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
16837 This is needed for proper unicode support on Windows.
16838 (freopen): Idem.
16839
168402006-10-31 Eric Botcazou <ebotcazou@adacore.com>
16841 Nicolas Setton <setton@adacore.com>
16842 Olivier Hainque <hainque@adacore.com>
16843 Gary Dismukes <dismukes@adacore.com>
16844
16845 * gigi.h: (tree_code_for_record_type): Declare.
16846 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
16847 (get_global_renaming_pointers): Rename to
16848 invalidate_global_renaming_pointers.
16849 (static_ctors): Delete.
16850 (static_dtors): Likewise.
16851 (gnat_write_global_declarations): Declare.
16852 (create_var_decl): Adjust descriptive comment to indicate that the
16853 subprogram may return a CONST_DECL node.
16854 (create_true_var_decl): Declare new function, similar to
16855 create_var_decl but forcing the creation of a VAR_DECL node.
16856 (get_global_renaming_pointers): Declare.
16857 (add_global_renaming_pointer): Likewise.
16858
16859 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
16860
16861 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
16862 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
16863 processing.
16864 (gnat_to_gnu_entity): Remove From_With_Type from computation for
16865 imported_p.
16866 <E_Access_Type>: Use the Non_Limited_View as the full view of the
16867 designated type if the pointer comes from a limited_with clause. Make
16868 incomplete designated type if it is in the main unit and has a freeze
16869 node.
16870 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
16871 Underlying_Full_View similarly. Return earlier if the full view already
16872 has an associated tree.
16873 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
16874 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
16875 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
16876 reference type built for objects with an address clause.
16877 Use create_true_var_decl with const_flag set for
16878 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
16879 TREE_READONLY set.
16880 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
16881 for Character and Wide_Character types. This info is read by the
16882 dwarf-2 writer, and is needed to be able to use the command "ptype
16883 character" in the debugger.
16884 (gnat_to_gnu_entity): When generating a type representing
16885 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
16886 so that debug writers can distinguish it from ordinary integers.
16887 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
16888 addition to TREE_READONLY to assert the constantness of variables for
16889 elaboration purposes.
16890 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
16891 parameters to call new Einfo function First_Formal_With_Extras.
16892 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
16893 protected type with its corresponding discriminant, to obtain a usable
16894 declaration
16895 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
16896 for a multiple elaboration of the "equivalent" type.
16897 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
16898 into record_global_renaming_pointer.
16899 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
16900 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
16901 <E_Array_Subtype>: Likewise.
16902 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
16903 incomplete subtypes and incomplete subtypes of incomplete types visible
16904 through a limited with clause.
16905 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
16906 the base index type for the maximum size of the array only if they are
16907 constant.
16908 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
16909 expression into a SAVE_EXPR if stabilization failed.
16910
16911 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
16912 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
16913 by lower level compilation passes.
16914 (gnat_genericize): New function, lowering a function body to GENERIC.
16915 Turn the type of RESULT_DECL into a real reference type if the decl
16916 has been marked DECL_BY_REFERENCE, and adjust references to the latter
16917 accordingly.
16918 (gnat_genericize_r): New function. Tree walking callback for
16919 gnat_genericize.
16920 (convert_from_reference, is_byref_result): New functions. Helpers for
16921 gnat_genericize_r.
16922 (create_type_decl): Call gnat_pushdecl before calling
16923 rest_of_decl_compilation, to make sure that field TYPE_NAME of
16924 type_decl is properly set before calling the debug information writers.
16925 (write_record_type_debug_info): The heuristics which compute the
16926 alignment of a field in a variant record might not be accurate. Add a
16927 safety test to make sure no alignment is set to a smaller value than
16928 the alignment of the field type.
16929 (make_dummy_type): Use the Non_Limited_View as the underlying type if
16930 the type comes from a limited_with clause. Do not loop on the full view.
16931 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
16932 (dummy_node_table): New global variable, moved from decl.c.
16933 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
16934 (save_gnu_tree): Use above macros.
16935 (get_gnu_tree): Likewise.
16936 (present_gnu_tree): Likewise.
16937 (init_dummy_type): New function, moved from decl.c. Use above macros.
16938 (make_dummy_type): Likewise.
16939 (tree_code_for_record_type): New function extracted from make_dummy_type
16940 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
16941 (static_ctors): Change it to a vector, make static.
16942 (static_dtors): Likewise.
16943 (end_subprog_body): Adjust for above change.
16944 (build_global_cdtor): Moved from trans.c.
16945 (gnat_write_global_declarations): Emit global constructor and
16946 destructor, and call cgraph_optimize before emitting debug info for
16947 global declarations.
16948 (global_decls): New global variable.
16949 (gnat_pushdecl): Store the global declarations in global_decls, for
16950 later use.
16951 (gnat_write_global_declarations): Emit debug information for global
16952 declarations.
16953 (create_var_decl_1): Former create_var_decl, with an extra argument to
16954 state whether the creation of a CONST_DECL is allowed.
16955 (create_var_decl): Behavior unchanged. Now a wrapper around
16956 create_var_decl_1 allowing CONST_DECL creation.
16957 (create_true_var_decl): New function, similar to create_var_decl but
16958 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
16959 (create_field_decl): Do not always mark the field as addressable
16960 if its type is an aggregate.
16961 (global_renaming_pointers): New static variable.
16962 (add_global_renaming_pointer): New function.
16963 (get_global_renaming_pointers): Likewise.
16964
16965 * misc.c (gnat_dwarf_name): New function.
16966 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
16967 (gnat_post_options): Add comment about structural alias analysis.
16968 (gnat_parse_file): Do not call cgraph_optimize here.
16969 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
16970
16971 * trans.c (process_freeze_entity): Don't abort if we already have a
16972 non dummy GCC tree for a Concurrent_Record_Type, as it might
16973 legitimately have been elaborated while processing the associated
16974 Concurrent_Type prior to this explicit freeze node.
16975 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
16976 exception handler volatile if it is of variable size.
16977 (process_type): Remove bypass for types coming from a limited_with
16978 clause.
16979 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
16980 actual, convert the corresponding gnu_actual to the real destination
16981 type when necessary.
16982 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
16983 originally TREE_READONLY but whose elaboration cannot be performed
16984 statically.
16985 Part of fix for F504-021.
16986 (tree_transform, subprogram cases): Change loops on formal parameters to
16987 call new Einfo function First_Formal_With_Extras.
16988 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
16989 stemming from type conversion for the lhs.
16990 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
16991 number of bits per unit for components of records.
16992 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
16993 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
16994 with At_End_Proc after the SJLJ EH cleanup.
16995 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
16996 compilation unit.
16997 (elaborate_all_entities): Do not retest type_annotate_only.
16998 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
16999 result type of an abstract subprogram, which may be an itype associated
17000 with an anonymous access result (related to AI-318-02).
17001 (build_global_cdtor): Move to utils.c.
17002 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17003 this choice is not a null tree nor an integer constant.
17004 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17005 on the body of elaboration routines instead of mark_unvisited.
17006 (add_stmt): Do not mark the tree.
17007 (add_decl_expr): Tweak comment.
17008 (mark_unvisited): Delete.
17009 (unshare_save_expr): New static function.
17010 (call_to_gnu): Issue an error when making a temporary around a
17011 procedure call because of non-addressable actual parameter if the
17012 type of the formal is by_reference.
17013 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17014 after building the elaboration routine.
17015
170162006-10-31 Bob Duff <duff@adacore.com>
17017
17018 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17019 as finalization-started, so we can raise Program_Error on 'new'.
17020
17021 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17022 collection has already started.
17023
17024 * s-finimp.ads (Collection_Finalization_Started): Added new special
17025 flag value for indicating that a collection's finalization has started.
17026
17027 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17028 create a task whose master has already waited for dependent tasks.
17029
170302006-10-31 Robert Dewar <dewar@adacore.com>
17031
17032 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17033
9e81dbc7
AS
17034 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17035 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17036 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17037 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17038 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
70198b9f
AC
17039 a-except-2005.ads: Add pragma Preelaborable_Warning
17040
170412006-10-31 Robert Dewar <dewar@adacore.com>
17042 Jose Ruiz <ruiz@adacore.com>
17043
17044 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17045
17046 * ali.adb (Get_Name): Properly handle scanning of wide character names
17047 encoded with brackets notation.
17048 (Known_ALI_Lines): Add S lines to this list.
17049 (Scan_ALI): Acquire S (priority specific dispatching) lines.
17050 New flag Elaborate_All_Desirable in unit table
17051
17052 * ali.ads (Priority_Specific_Dispatching): Add this range of
17053 identifiers to be used for Priority_Specific_Dispatching table entries.
17054 (ALIs_Record): Add First_Specific_Dispatching and
17055 Last_Specific_Dispatching that point to the first and last entries
17056 respectively in the priority specific dispatching table for this unit.
17057 (Specific_Dispatching): Add this table for storing each S (priority
17058 specific dispatching) line encountered in the input ALI file.
17059 New flag Elaborate_All_Desirable in unit table
17060
17061 * bcheck.adb: (Check_Configuration_Consistency): Add call to
17062 Check_Consistent_Dispatching_Policy.
17063 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17064 verifying that the use of Priority_Specific_Dispatching,
17065 Task_Dispatching_Policy, and Locking_Policy is consistent across the
17066 partition.
17067
17068 * bindgen.adb: (Public_Version_Warning): function removed.
17069 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17070 required information from ALI files in order to initialize the table
17071 containing the specific dispatching policy.
17072 (Gen_Adainit_Ada): Generate the variables required for priority specific
17073 dispatching entries (__gl_priority_specific_dispatching and
17074 __gl_num_specific_dispatching).
17075 (Gen_Adainit_C): Generate the variables required for priority specific
17076 dispatching entries (__gl_priority_specific_dispatching and
17077 __gl_num_specific_dispatching).
17078 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17079 pragma entries.
17080 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17081 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17082 (Tab_To): Removed.
17083 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17084 a call to gnat_set_globals.
17085 Generate a string containing settings from
17086 Priority_Specific_Dispatching pragma entries.
17087 (Gen_Object_Files_Options): Do not include the runtime libraries when
17088 pragma No_Run_Time is specified.
17089
17090 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17091 consistency with s-intman-posix.adb.
17092 (__gnat_error_handler, case FreeBSD): Account for the fact that the
17093 handler is installed with SA_SIGINFO.
17094 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17095 FreeBSD ZCX support, copied from Linux version.
17096 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17097 sigfillset, and sigemptyset so the routines defined by MaRTE.
17098 (__gl_priority_specific_dispatching): Add this variable that stores the
17099 string containing priority specific dispatching policies in the
17100 partition.
17101 (__gl_num_specific_dispatching): Add this variable that indicates the
17102 highest priority for which a priority specific dispatching pragma
17103 applies.
17104 (__gnat_get_specific_dispatching): Add this routine that returns the
17105 priority specific dispatching policy, as set by a
17106 Priority_Specific_Dispatching pragma appearing anywhere in the current
17107 partition. The input argument is the priority number, and the result
17108 is the upper case first character of the policy name.
17109 (__gnat_set_globals): Now a dummy function.
17110 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17111 mechargs instead of sigargs, as the latter can be retrieved from the
17112 former and sigargs is not what we want on ia64.
17113 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17114 mechargs argument.
17115 (__gnat_adjust_context_for_raise, ia64-vms): New function.
17116 (tasking_error): Remove unused symbol.
17117 (_abort_signal): Move this symbol to the IRIX specific part since this
17118 is the only target that uses this definition.
17119 (Check_Abort_Status): Move this symbol to the IRIX specific part since
17120 this is the only target that uses this definition.
17121 (Lock_Task): Remove unused symbol.
17122 (Unlock_Task): Remove unused symbol.
17123
17124 * lib-writ.adb (Write_ALI): Output new S lines for
17125 Priority_Specific_Dispatching pragmas.
17126 Implement new flag BD for elaborate body desirable
17127
17128 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17129 (Specific_Dispatching): Add this table for storing the entries
17130 corresponding to Priority_Specific_Dispatching pragmas.
17131 Document new BD flag for elaborate body desirable
17132
17133 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17134 of known pragmas.
17135
171362006-10-31 Javier Miranda <miranda@adacore.com>
17137
9e81dbc7 17138 * a-tags.ads, a-tags.adb:
70198b9f
AC
17139 (Predefined_DT): New function that improves readability of the code.
17140 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17141 Inherit_DT): Use the new function Predefined_DT to improve code
17142 readability.
17143 (Register_Interface_Tag): Update assertion.
17144 (Set_Interface_Table): Update assertion.
17145 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17146 determining progenitor interfaces in Tags.
17147 (Inherit_CPP_DT): New subprogram.
17148
6f7f72f9 17149 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
70198b9f 17150 analysis of the thunk code.
6f7f72f9
EB
17151 (Expand_Interface_Conversion): Handle run-time conversion of
17152 access to class wide types.
70198b9f
AC
17153 (Expand_Dispatching_Call): When generating the profile for the
17154 subprogram itype for a dispatching operation, properly terminate the
17155 formal parameters chaind list (set the Next_Entity of the last formal
17156 to Empty).
17157 (Collect_All_Interfaces): Removed. This routine has been moved to
17158 sem_util and renamed as Collect_All_Abstract_Interfaces.
17159 (Set_All_DT_Position): Hidden entities associated with abstract
17160 interface primitives are not taken into account in the check for
17161 3.9.3(10); this check is done with the aliased entity.
17162 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17163 interfacing with CPP by default.
17164 (Expand_Interface_Conversion): Add missing support for static conversion
17165 from an interface to a tagged type.
17166 (Collect_All_Interfaces): Add new out formal containing the list of
17167 abstract interface types to cleanup the subprogram Make_DT.
17168 (Make_DT): Update the code to generate the table of interfaces in case
17169 of abstract interface types.
17170 (Is_Predefined_Dispatching_Alias): New function that returns true if
17171 a primitive is not a predefined dispatching primitive but it is an
17172 alias of a predefined dispatching primitive.
17173 (Make_DT): If the ancestor of the type is a CPP_Class and we are
17174 compiling under full ABI compatibility mode we avoid the generation of
17175 calls to run-time services that fill the dispatch tables because under
17176 this mode we currently inherit the dispatch tables in the IP subprogram.
17177 (Write_DT): Emit an "is null" indication for a null procedure primitive.
17178 (Expand_Interface_Conversion): Use an address as the type of the formal
17179 of the internally built function that handles the case in which the
17180 target type is an access type.
17181
171822006-10-31 Robert Dewar <dewar@adacore.com>
17183
17184 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17185
171862006-10-31 Robert Dewar <dewar@adacore.com>
17187
17188 * bindusg.ads, bindusg.adb:
17189 Change to package and rename procedure as Display, which
17190 now ensures that it only outputs usage information once.
17191
171922006-10-31 Jose Ruiz <ruiz@adacore.com>
17193
17194 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17195 using RTPs.
17196
17197 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17198 when using RTPs.
17199
172002006-10-31 Robert Dewar <dewar@adacore.com>
17201 Ed Schonberg <schonberg@adacore.com>
17202
17203 * treepr.adb: Use new subtype N_Membership_Test
17204
6f7f72f9
EB
17205 * checks.ads, checks.adb: Add definition for Validity_Check
17206 (Range_Or_Validity_Checks_Suppressed): New function
17207 (Ensure_Valid): Test Validity_Check suppressed
17208 (Insert_Valid_Check): Test Validity_Check suppressed
17209 (Insert_Valid_Check): Preserve Do_Range_Check flag
70198b9f
AC
17210 (Validity_Check_Range): New procedure
17211 (Expr_Known_Valid): Result of membership test is always valid
17212 (Selected_Range_Checks): Range checks cannot be applied to discriminants
17213 by themselves. Disabling those checks must also be done for task types,
17214 where discriminants may be used for the bounds of entry families.
17215 (Apply_Address_Clause_Check): Remove side-effects if address expression
17216 is non-static and is not the name of a declared constant.
17217 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17218 Code cleanup and new error messages.
17219 (Enable_Range_Check): Test for some cases of suppressed checks
17220 (Generate_Index_Checks): Suppress index checks if index checks are
17221 suppressed for array object or array type.
17222 (Apply_Selected_Length_Checks): Give warning for compile-time detected
17223 length check failure, even if checks are off.
17224 (Ensure_Valid): Do not generate a check on an indexed component whose
17225 prefix is a packed boolean array.
17226 * checks.adb: (Alignment_Checks_Suppressed): New function
17227 (Apply_Address_Clause_Check): New procedure, this is a completely
17228 rewritten replacement for Apply_Alignment_Check
17229 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17230 we request a discriminal value only in case of discriminants.
17231 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17232 assignments where the target subtype is unconstrained and the target
17233 object is a parameter or dereference (other aliased cases are known
17234 to be unconstrained).
17235
172362006-10-31 Robert Dewar <dewar@adacore.com>
17237
17238 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17239 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17240 vms_conv.adb: Fix bad table increment values (much too small)
17241
17242 * table.adb (Realloc): Make sure we get at least some new elements
17243 Defends against silly small values for table increment
17244
172452006-10-31 Robert Dewar <dewar@adacore.com>
17246 Ed Schonberg <schonberg@adacore.com>
17247 Bob Duff <duff@adacore.com>
17248
17249 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17250 entities. Move other fields around to make this possible
17251 (Is_Derived_Type): Add missing call to Is_Type.
17252 (Extra_Formals): New function for subprograms, entries, subprogram
17253 types.
17254 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17255 (First_Formal_With_Extras): New function for subprogs, entries, subp
17256 types.
17257 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17258 Add node information for E_Return_Statement.
17259 (Elaborate_Body_Desirable): New flag
17260 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17261 to be Is_Inherently_Limited_Type, because return-by-reference has
17262 no meaning in Ada 2005.
17263 (E_Return_Statement): New entity kind.
17264 (Return_Applies_To): Field of E_Return_Statement.
17265 (Is_Return_Object): New flag in object entities.
17266 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17267 (Must_Have_Preelab_Init): New flag
17268 (Known_To_Have_Preelab_Init): New flag
17269 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17270 (Is_Visible_Formal): New flag on entities in formal packages.
17271 (Low_Bound_Known): New flag
17272 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17273 Incomplete_Kind.
17274 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17275 output when Id is an incomplete subtype.
17276
172772006-10-31 Robert Dewar <dewar@adacore.com>
17278
17279 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17280 Avoid abbreviation Creat
17281 (Finalize): List all sources in extended mail source if -gnatl
17282 switch is active.
17283 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17284 (Finalize): Implement new -gnatl=xxx switch to output listing to file
17285 (Set_Specific_Warning_On): New procedure
17286 (Set_Specific_Warning_Off): New procedure
17287 Add implementation of new insertion \\
17288 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17289 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17290 types.
17291 (Error_Msg_Internal): Make sure that we set Last_Killed to
17292 True when a message from another package is suppressed.
17293 Implement insertion character ~ (insert string)
17294 (First_Node): Minor adjustments to get better placement.
17295
9e81dbc7 17296 * frontend.adb:
70198b9f
AC
17297 Implement new -gnatl=xxx switch to output listing to file
17298
9e81dbc7 17299 * gnat1drv.adb:
70198b9f
AC
17300 Implement new -gnatl=xxx switch to output listing to file
17301
6f7f72f9 17302 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
70198b9f
AC
17303 (Commands_To_Stdout): New flag
17304 Implement new -gnatl=xxx switch to output listing to file
17305 New switch Dump_Source_Text
17306 (Warn_On_Deleted_Code): New warning flag for -gnatwt
17307 Define Error_Msg_Line_Length
17308 (Warn_On_Assumed_Low_Bound): New switch
17309
17310 * osint.ads, osint.adb
17311 (Normalize_Directory_Name): Fix bug.
17312 Implement new -gnatl=xxx switch to output listing to file
17313 (Concat): Removed, replaced by real concatenation
17314 Make use of concatenation now allowed in compiler
17315 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17316 we find the 'lib' or 'bin' directory even when the tool has been
17317 invoked with a relative path.
17318 (Executable_Name): New function taking string parameters.
17319
9e81dbc7 17320 * osint-c.ads, osint-c.adb:
70198b9f
AC
17321 Implement new -gnatl=xxx switch to output listing to file
17322
17323 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17324
9e81dbc7 17325 * switch-c.adb:
70198b9f
AC
17326 Implement new -gnatl=xxx switch to output listing to file
17327 Recognize new -gnatL switch
17328 (no longer keep in old warning about old style usage)
17329 Use concatenation to simplify code
17330 Recognize -gnatjnn switch
17331 (Scan_Front_End_Switches): Clean up handling of -gnatW
17332 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17333
173342006-10-31 Robert Dewar <dewar@adacore.com>
17335
17336 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17337 (Set_Specific_Warning_Off): New procedure
17338 (Warning_Specifically_Suppressed): New function
17339 (Validate_Specific_Warnings): New procedure
17340 (Output_Msg_Text): Complete rewrite to support -gnatjnn
17341
17342 * err_vars.ads: Implement insertion character ~ (insert string)
17343
173442006-10-31 Bob Duff <duff@adacore.com>
17345 Ed Schonberg <schonberg@adacore.com>
17346
17347 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17348 the parent part is a build-in-place function call, generate assignments.
17349 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17350 are build-in-place function calls.
17351 (Replace_Self_Reference): New subsidiary of
17352 Make_OK_Assignment_Statement, to replace an access attribute that is a
17353 self-reference into an access to the appropriate component of the
17354 target object. Generalizes previous mechanism to handle self-references
17355 nested at any level.
17356 (Is_Self_Referential_Init): Remove, not needed.
17357 (Is_Self_Referential_Init): New predicate to simplify handling of self
17358 referential components in record aggregates.
17359 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17360 check for presence of entity before checking for self-reference.
17361 (Has_Default_Init_Comps): Return True if a component association is a
17362 self-reference to the enclosing type, which can only come from a
17363 default initialization.
17364 (Make_OK_Assignment_Statement): If the expression is of the form
17365 Typ'Acc, where Acc is an access attribute, the expression comes from a
17366 default initialized self-referential component.
17367 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17368 that has been derived from several abstract interfaces we must also
17369 initialize the tags of the secondary dispatch tables.
17370
173712006-10-31 Ed Schonberg <schonberg@adacore.com>
17372 Thomas Quinot <quinot@adacore.com>
17373 Javier Miranda <miranda@adacore.com>
17374 Robert Dewar <dewar@adacore.com>
6f7f72f9 17375
9e81dbc7 17376 * exp_attr.adb:
6f7f72f9
EB
17377 (Expand_Access_To_Protected_Op): If the context indicates that an access
17378 to a local operation may be transfered outside of the object, create an
17379 access to the wrapper operation that must be used in an external call.
70198b9f
AC
17380 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17381 target, pass the Valid attribute applied to a floating-point prefix on
17382 to the back end without expansion.
17383 (Storage_Size): Use the new run-time function Storage_Size to retrieve
17384 the allocated storage when it is specified by a per-object expression.
17385 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17386 Nothing to do here, the attribute has been rewritten during semantic
17387 analysis.
17388 (Expand_Attribute_Reference): Handle expansion of the new Priority
17389 attribute
17390 (Find_Fat_Info): Handle case of universal real
17391 (Expand_Access_To_Protected_Op): Fix use of access to protected
17392 subprogram from inside the body of a protected entry.
17393 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17394 'Access and 'Unrestricted_Access, to transform the attribute reference
17395 into a fat pointer.
17396 (Is_Constrained_Aliased_View): New predicate to help determine whether a
17397 subcomponent's enclosing variable is aliased with a constrained subtype.
17398 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17399 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17400 an aliased prefix must be known to be constrained in order to use True
17401 for the attribute value, and now it's possible for some aliased views
17402 to be unconstrained.
17403
174042006-10-31 Robert Dewar <dewar@adacore.com>
17405
17406 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17407 (Expand_Entity_Reference): Correct error of not handling subprogram
17408 formals in current_value processing.
17409
174102006-10-31 Javier Miranda <miranda@adacore.com>
17411 Robert Dewar <dewar@adacore.com>
17412 Ed Schonberg <schonberg@adacore.com>
17413 Gary Dismukes <dismukes@adacore.com>
17414
6f7f72f9 17415 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
70198b9f
AC
17416 register in the final list objects containing class-wide interfaces;
17417 otherwise we incorrectly register the tag of the interface in the final
17418 list.
6f7f72f9
EB
17419 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17420 generate the wrapper if the parent primitive is abstract. This is
17421 required to report the correct error message.
17422 (Expand_N_Subtype_Indication): Do validity checks on range
70198b9f
AC
17423 (Clean_Task_Names): If an initialization procedure includes a call to
17424 initialize a task (sub)component, indicate that the procedure will use
17425 the secondary stack.
17426 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17427 compatibility for interfacing with CPP by default.
17428 (Expand_N_Object_Declaration): Only build an Adjust call when the
17429 object's type is a nonlimited controlled type.
17430 * exp_ch3.adb: Add with and use of Exp_Ch6.
17431 (Expand_N_Object_Declaration): Check for object initialization that is a
17432 call to build-in-place function and apply Make_Build_In_Place_Call_In_
17433 Object_Declaration to the call.
17434 (Freeze_Type): When the designated type of an RACW was not frozen at the
17435 point where the RACW was declared, validate the primitive operations
17436 with respect to E.2.2(14) when it finally is frozen.
17437 (Build_Initialization_Call,Expand_Record_Controller): Rename
17438 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17439 return-by-reference has no meaning in Ada 2005.
17440 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17441 to register tag of the immediate ancestor interfaces in the
17442 run-time structure.
17443 (Init_Secondary_Tags): Moved to the specification to allow the
17444 initialization of extension aggregates with abstract interfaces.
17445 (Build_Master_Renaming): Make public, for use by function declarations
17446 whose return type is an anonymous access type.
17447 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17448 Insert_List_Before_And_Analyze after the generation of the specs
17449 associated with null procedures.
17450 (Expand_Tagged_Root): Update documentation in its specification.
17451 (Init_Secondary_Tags): Update documentation.
17452 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17453 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17454 then generate code to inherit the contents of the dispatch table
17455 directly from the ancestor.
17456 (Expand_Record_Controller): Insert controller component after tags of
17457 implemented interfaces.
17458 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17459 create null procedure overridings when null procedures are inherited
17460 from interfaces.
17461 (Make_Null_Procedure_Specs): New procedure to generate null procedure
17462 declarations for overriding null primitives inherited from interfaces.
17463 (Is_Null_Interface_Procedure): New function in
17464 Make_Null_Procedure_Specs.
17465 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17466 immediate ancestor of a tagged type is an abstract interface type we
17467 must generate the specification of the predefined primitives associated
17468 with controlled types (because the dispatch table of the ancestor is
17469 null and hence these entries cannot be inherited). This is required to
17470 elaborate well the dispatch table.
17471
174722006-10-31 Javier Miranda <miranda@adacore.com>
17473 Ed Schonberg <schonberg@adacore.com>
17474 Bob Duff <duff@adacore.com>
17475 Gary Dismukes <dismukes@adacore.com>
17476 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
17477
17478 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
70198b9f 17479 conversion.
6f7f72f9 17480 (Expand_N_In): Do validity checks on range
70198b9f
AC
17481 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17482 (Expand_N_Allocator): For "new T", if the object is constrained by
17483 discriminant defaults, allocate the right amount of memory, rather than
17484 the maximum for type T.
17485 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17486 when the allocator is initialized by a build-in-place call, since the
17487 allocator is already rewritten as a reference to the function result,
17488 and this prevents an unwanted duplication of the function call.
17489 Add with and use of Exp_Ch6.
17490 (Expand_Allocator_Expresssion): Check for an allocator whose expression
17491 is a call to build-in-place function and apply
17492 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17493 untagged designated types).
17494 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17495 optimization if source or target is biased.
17496 (Expand_N_Allocator): Add comments for case of an allocator within a
17497 function that returns an anonymous access type designating tasks.
17498 (Expand_N_Allocator): apply discriminant checks for access
17499 discriminants of anonymous access types (AI-402, AI-416)
17500
175012006-10-31 Bob Duff <duff@adacore.com>
17502 Robert Dewar <dewar@adacore.com>
17503 Gary Dismukes <dismukes@adacore.com>
17504 Ed Schonberg <schonberg@adacore.com>
17505
17506 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17507
6f7f72f9 17508 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
70198b9f
AC
17509 (Expand_N_Assignment_Statement): Call
17510 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17511 build-in-place function call. Currently, this can happen only for
17512 assignments that come from aggregates.
17513 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17514 in order to alleviate the upward compatibility introduced by AI-318.
17515 (Expand_N_Extended_Return_Statement): Add support for handling the
17516 return object as a build-in-place result.
17517 (Expand_Non_Function_Return): Implement simple return statements nested
17518 within an extended return.
17519 (Enable_New_Return_Processing): Turn on the new processing of return
17520 statements.
17521 (Expand_Non_Function_Return): For a return within an extended return,
17522 don't raise Program_Error, because Sem_Ch6 now gives a warning.
17523 (Expand_N_Extended_Return_Statement): Implement AI-318
17524 (Expand_Simple_Function_Return): Ditto.
17525 (Expand_N_If_Statement): Handle new -gnatwt warning
17526 (Expand_N_Case_Statement): Handle new -gnatwt warning
17527 (Expand_N_Assignment): Handle assignment to the Priority attribute of
17528 a protected object.
17529 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17530 validity checking of assignments to elementary record components.
17531 (Expand_N_Return_Statement): return Class Wide types on the secondary
17532 stack independantly of their controlled status since with HIE runtimes,
17533 class wide types are not potentially controlled anymore.
17534
17535 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17536 node kind.
17537
17538 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17539 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17540 it expects a block, procedure, or task. The return statement will get
17541 turned into a block, and Expand_Cleanup_Actions will happen then.
17542
175432006-10-31 Robert Dewar <dewar@adacore.com>
17544 Ed Schonberg <schonberg@adacore.com>
17545 Bob Duff <duff@adacore.com>
17546 Gary Dismukes <dismukes@adacore.com>
17547
17548 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17549 capability.
17550 (Expand_Inlined_Call): Tagged types are by-reference types, and
17551 therefore should be replaced by a renaming declaration in the expanded
17552 body, as is done for limited types.
17553 (Expand_Call): If this is a call to a function with dispatching access
17554 result, propagate tag from context.
17555 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17556 CPP by default.
17557 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17558 build-in-place when the right-hand side of an assignment is a
17559 build-in-place function call.
17560 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17561 of the explicit dereference of the allocator to the result subtype of
17562 the build-in-place function. This is needed to satisfy type checking
17563 in cases where the caller's return object is created by an allocator for
17564 a class-wide access type and the type named in the allocator is a
17565 specific type.
17566 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
17567 conversion of the reference to the declared object to the result subtype
17568 of the build-in-place function. This is needed to satisfy type checking
17569 in cases where the declared object has a class-wide type. Also, in the
17570 class-wide case, change the type of the object entity to the specific
17571 result subtype of the function, to avoid passing a class-wide object
17572 without explicit initialization to the back end.
17573 (Register_Interface_DT_Entry): Moved outside the body of
17574 Freeze_Subprogram because this routine is now public; it is called from
17575 Check_Dispatching_Overriding to handle late overriding of abstract
17576 interface primitives.
17577 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
17578 adding an implicit access actual on a call to a build-in-place function.
17579 (Expand_Actuals): Test for an actual parameter that is a call to a
17580 build-in-place function and apply
17581 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
17582 (Is_Build_In_Place_Function): New function to determine whether an
17583 entity is a function whose calls should be handled as build-in-place.
17584 (Is_Build_In_Place_Function_Call): New function to determine whether an
17585 expression is a function call that should handled as build-in-place.
17586 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
17587 calls to build-in-place functions as the initialization of an allocator.
17588 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
17589 handling calls to build-in-place functions in contexts that do not
17590 involve init of a separate object (for example, actuals of subprogram
17591 calls).
17592 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
17593 handling calls to build-in-place functions as the initialization of an
17594 object declaration.
17595 (Detect_Infinite_Recursion): Add explicit parameter Process to
17596 instantiation of Traverse_Body to avoid unreferenced warning.
17597 (Check_Overriding_Inherited_Interfaces): Removed.
17598 (Register_Interface_DT_Entry): Code cleanup.
17599 (Register_Predefined_DT_Entry): Code cleanup.
17600 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
17601 inlined statements if within a transient scope.
17602 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
17603 formal parameters with occurrences of actuals in inlined body, establish
17604 visibility on the proper view of the actual's subtype for the body's
17605 context.
17606 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
17607 compatibility mode and we have an imported CPP subprogram because
17608 for now we assume that imported CPP primitives correspond with
17609 objects whose constructor is in the CPP side (and therefore we
17610 don't need to generate code to register them in the dispatch table).
17611 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
17612 aligned selected component.
17613 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
17614 the actual of an in-mode parameter is a type conversion.
17615 (Expand_Actuals): If the call does not come from source and the actual
17616 is potentially misaligned, let gigi handle it rather than rejecting the
17617 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
17618 Class Wide types as returning by reference independantly of their
17619 controlled status since with HIE runtimes class wide types are not
17620 potentially controlled anymore.
17621
6f7f72f9 176222006-10-31 Ed Schonberg <schonberg@adacore.com>
70198b9f 17623
6f7f72f9 17624 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
70198b9f
AC
17625 references that are private components of the protected object.
17626 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
17627 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
17628 instantiation to deal with warnings.
17629 (Initialize_Protection): If expression for priority is non-static, use
17630 System_Priority as its expected type, in case the expression has not
17631 been analyzed yet.
17632
176332006-10-31 Robert Dewar <dewar@adacore.com>
17634
17635 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
17636 initialization of Homonym_Len.
17637 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
17638 names from fully qualified name. Fixes problem of duplicate
17639 external names differing only in the presence of such a block name.
17640
176412006-10-31 Thomas Quinot <quinot@adacore.com>
17642 Pablo Oliveira <oliveira@adacore.com>
6f7f72f9
EB
17643
17644 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
70198b9f
AC
17645 subprogram Ids, even if they are not yet assigned.
17646 (Build_Subprogram_Id): It is now this function that will take care of
17647 calling Assign_Subprogram_Ids if necessary.
17648 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
17649 should be done only once they are assigned.
17650 (Build_From_Any_Function, case of tagged types): Add missing call to
17651 Allocate_Buffer.
17652 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
17653 type for an RACW type.
17654 (Add_RACW_Features): When processing an RACW declaration for which the
17655 designated type is already frozen, enforce E.2.2(14) rules immediately.
17656 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
17657 special reordering of controlling formals.
17658
17659 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
17660 associated stub type for an RACW type.
17661
176622006-10-31 Ed Schonberg <schonberg@adacore.com>
17663
17664 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
17665 fixed-point operations in an integer context, i.e. as operands of a
17666 conversion to an integer type, indicate that result must be rounded.
17667
176682006-10-31 Robert Dewar <dewar@adacore.com>
17669
17670 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
17671 cases, pass the encoding method, since it is now required by the run
17672 time.
17673
17674 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
17675 assumption that Str'First = 1.
17676 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
17677 it on to the Value_Wide_Wide_Character call.
17678 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
17679 properly handles a string of the form quote-encoded_wide_char-quote.
17680
17681 * s-wchcnv.adb: Minor reformatting
17682
176832006-10-31 Javier Miranda <miranda@adacore.com>
6f7f72f9 17684
70198b9f
AC
17685 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
17686 run-time membership test to ensure that the constructed object
17687 implements the target abstract interface.
17688
176892006-10-31 Robert Dewar <dewar@adacore.com>
17690
17691 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
17692 Machine_Attribute pragma internally to implement the user pragma.
17693 Add processing for pragma Interface so that it is now completely
17694 equivalent to pragma Import.
17695
17696 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
17697 so that it can be applied to all entities, including record components
17698 and enumeration literals.
17699 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
17700 priority ranges are correct, verify compatibility against task
17701 dispatching and locking policies, and if everything is correct an entry
17702 is added to the table containing priority specific dispatching entries
17703 for this compilation unit.
17704 (Delay_Config_Pragma_Analyze): Delay processing
17705 Priority_Specific_Dispatching pragmas because when processing the
17706 pragma we need to access run-time data, such as the range of
17707 System.Any_Priority.
17708 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
17709 Allow pragma Unreferenced as a context item
17710 Add pragma Preelaborable_Initialization
17711 (Analyze_Pragma, case Interface): Interface is extended so that it is
17712 now syntactically and semantically equivalent to Import.
17713 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
17714 insertion characters.
17715 Add handling for Pragma_Wide_Character_Encoding
17716 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
17717 never supercedes a real restriction, and that a real restriction
17718 always supercedes a warning.
17719 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
17720 appropriate form.
17721
177222006-10-31 Bob Duff <duff@adacore.com>
17723 Ed Schonberg <schonberg@adacore.com>
17724 Robert Dewar <dewar@adacore.com>
17725
17726 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
17727 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
17728 Is_Inherently_Limited_Type, because return-by-reference has no meaning
17729 in Ada 2005.
17730 (Find_Node_To_Be_Wrapped): Use new method of determining the result
17731 type of the function containing a return statement, because the
17732 Return_Type field was removed. We now use the Return_Applies_To field.
17733
6f7f72f9 17734 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
70198b9f
AC
17735 (Build_Task_Image_Decl): If procedure is not called from an
17736 initialization procedure, indicate that function that builds task name
17737 uses the sec. stack. Otherwise the enclosing initialization procedure
17738 will carry the indication.
17739 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
17740 N_Object_Declaration instead.
17741 (Kill_Dead_Code): New interface to implement -gnatwt warning for
17742 conditional dead code killed, and change implementation accordingly.
17743 (Insert_Actions): Add N_Return_Object_Declaration case.
17744 Correct comment to mention N_Extension_Aggregate node.
17745 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
17746 attempts to save information for global variables which cannot be
17747 safely tracked.
17748 (Get_Current_Value_Condition): Handle conditions the other way round
17749 (constant on left). Also handle right operand of AND and AND THEN
17750 (Set_Current_Value_Condition): Corresponding changes
17751 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
17752 (Get_Current_Value_Condition): Handle simple boolean operands
17753 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
17754 (Get_Current_Value_Condition): If the variable reference is within an
17755 if-statement, does not appear in the list of then_statments, and does
17756 not come from source, treat it as being at unknown location.
17757 (Get_Current_Value_Condition): Enhance to allow while statements to be
17758 processed as well as if statements.
17759 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
17760 come from source.
17761 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
17762 of loop. This is safe now that we fixed Kill_Current_Values.
17763 (OK_To_Do_Constant_Replacement): Check whether current scope is
17764 Standard, before examining outer scopes.
17765
177662006-10-31 Vincent Celier <celier@adacore.com>
17767
17768 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
17769 When True, apply VMS treatment to children of packages A, G, I and S.
17770 For F320-016
17771
17772 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
17773
177742006-10-31 Robert Dewar <dewar@adacore.com>
17775 Ed Schonberg <schonberg@adacore.com>
17776
17777 * freeze.adb: Add handling of Last_Assignment field
17778 (Warn_Overlay): Supply missing continuation marks in error msgs
17779 (Freeze_Entity): Add check for Preelaborable_Initialization
17780
17781 * g-comlin.adb: Add Warnings (Off) to prevent new warning
17782
17783 * g-expect.adb: Add Warnings (Off) to prevent new warning
17784
17785 * lib-xref.adb: Add handling of Last_Assignment field
17786 (Generate_Reference): Centralize handling of pragma Obsolescent here
17787 (Generate_Reference): Accept an implicit reference generated for a
17788 default in an instance.
17789 (Generate_Reference): Accept a reference for a node that is not in the
17790 main unit, if it is the generic body corresponding to an subprogram
17791 instantiation.
17792
17793 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
17794
6f7f72f9 17795 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
70198b9f
AC
17796 -gnatwq/Q.
17797 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
17798 exception handler.
17799 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
17800 use clauses, to avoid messages on packages used to qualify, and also
17801 to avoid messages from obsolescent units.
17802 (Warn_On_Useless_Assignments): Don't generate messages for imported
17803 and exported variables.
17804 (Warn_On_Useless_Assignments): New procedure
17805 (Output_Obsolescent_Entity_Warnings): New procedure
17806 (Check_Code_Statement): New procedure
17807
6f7f72f9 17808 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
70198b9f
AC
17809 Change name Is_Ada_2005 to Is_Ada_2005_Only
17810 (Last_Assignment): New field for useless assignment warning
17811
178122006-10-31 Olivier Hainque <hainque@adacore.com>
17813
17814 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
17815 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
17816
178172006-10-31 Bob Duff <duff@adacore.com>
17818 Robert Dewar <dewar@adacore.com>
17819 Ed Schonberg <schonberg@adacore.com>
17820
17821 * g-awk.adb (Default_Session, Current_Session): Compile this file in
17822 Ada 95 mode, because it violates the new rules for AI-318.
17823
17824 * g-awk.ads: Use overloaded subprograms in every case where we used to
17825 have a default of Current_Session. This makes the code closer to be
17826 correct for both Ada 95 and 2005.
17827
17828 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
17829 code, relying on the fact that the compiler generates a warning
17830 instead of an error in -gnatg mode.
17831
17832 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
17833 E_Return_Statement entity kind.
17834 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
17835
17836 * par.adb (P_Interface_Type_Definition): Addition of one formal to
17837 report an error if the reserved word abstract has been previously found.
17838 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
6f7f72f9
EB
17839
17840 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
70198b9f
AC
17841 parenthesized range attribute usage
17842 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
17843
17844 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
17845 in the syntax for extended_return_statement. This is not in the latest
17846 RM, but the ARG is expected to issue an AI allowing this.
17847 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
17848 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
17849 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
17850 P_Return_Statement): Parse the new syntax for extended_return_statement.
17851
17852 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
17853 Output_End_Missing): Add error-recovery code for the new
17854 extended_return_statement syntax; that is, the new E_Return entry on
17855 the scope stack.
17856
17857 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
17858 limited to nonlimited, because otherwise we violate the new Ada 2005
17859 rules about returning limited types in function Create_AST_Handler in
17860 s-asthan.adb.
17861
17862 * sem.adb (Analyze): Add cases for new node kinds
17863 N_Extended_Return_Statement and N_Return_Object_Declaration.
17864
17865 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
17866 type is in the same category as type of context before applying check,
17867 to prevent anomalies in instantiations.
17868 (Resolve_Aggregate): Remove test for limited components in aggregates.
17869 It's unnecessary in Ada 95, because if it has limited components, then
17870 it must be limited. It's wrong in Ada 2005, because limited aggregates
17871 are now allowed.
17872 (Resolve_Record_Aggregate): Move check for limited types later, because
17873 OK_For_Limited_Init requires its argument to have been resolved.
17874 (Get_Value): When copying the component default expression for a
17875 defaulted association in an aggregate, use the sloc of the aggregate
17876 and not that of the original expression, to prevent spurious
17877 elaboration errors, when the expression includes function calls.
17878 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
17879 were missing. We also didn't handle qualified expressions. Now also
17880 allow function calls. Use new common routine OK_For_Limited_Init.
17881 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
17882 with space can upper case letter).
17883
6f7f72f9 17884 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
70198b9f 17885 Has_Static_Discriminants flag
6f7f72f9
EB
17886 (Record_Type_Declaration): Diagnose an attempt to declare an interface
17887 type with discriminants.
17888 (Process_Range_Expr_In_Decl): Do validity checks on range
70198b9f
AC
17889 (Build_Discriminant_Constraints): Use updated form of
17890 Denotes_Discriminant.
17891 (Process_Subtype): If the subtype is a private subtype whose full view
17892 is a concurrent subtype, introduce an itype reference to prevent scope
17893 anomalies in gigi.
17894 (Build_Derived_Record_Type, Collect_Interface_Primitives,
17895 Record_Type_Declaration): The functionality of the subprograms
17896 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
17897 is now performed by a single routine.
17898 (Build_Derived_Record_Type): If the type definition includes an explicit
17899 indication of limitedness, then the type must be marked as limited here
17900 to ensure that any access discriminants will not be treated as having
17901 a local anonymous access type.
17902 (Check_Abstract_Overriding): Issue a detailed error message when an
17903 abstract subprogram was not overridden due to incorrect mode of its
17904 first parameter.
17905 (Analyze_Private_Extension_Declaration): Add support for the analysis of
17906 synchronized private extension declarations. Verify that the ancestor is
17907 a limited or synchronized interface or in the generic case, the ancestor
17908 is a tagged limited type or synchronized interface and all progenitors
17909 are either limited or synchronized interfaces.
17910 Derived_Type_Declaration): Check for presence of private extension when
17911 dealing with synchronized formal derived types.
17912 Process_Full_View): Enchance the check done on the usage of "limited" by
17913 testing whether the private view is synchronized.
17914 Verify that a synchronized private view is completed by a protected or
17915 task type.
17916 (OK_For_Limited_Init_In_05): New function.
17917 (Analyze_Object_Declaration): Move check for limited types later,
17918 because OK_For_Limited_Init requires its argument to have been resolved.
17919 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17920 in order to alleviate the upward compatibility introduced by AI-318.
17921 (Constrain_Corresponding_Record): If the constraint is for a component
17922 subtype, mark the itype as frozen, to avoid out-of-scope references to
17923 discriminants in the back-end.
17924 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
17925 this subprogram against wrong sources.
17926 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
17927 discriminant of limited type completed with a protected type, when the
17928 discriminant is used to constrain a private component of the type, and
17929 expansion is disabled.
17930 (Find_Type_Of_Object): Do not treat a return subtype that is an
17931 anonymous subtype as a local_anonymous_type, because its accessibility
17932 level is the return type of the enclosing function.
17933 (Check_Initialization): In -gnatg mode, turn the error "cannot
17934 initialize entities of limited type" into a warning.
17935 (OK_For_Limited_Init): Return true for generated nodes, since it
17936 sometimes violates the legality rules.
17937 (Make_Incomplete_Declaration): If the type for which an incomplete
17938 declaration is created happens to be the currently visible entity,
17939 preserve the homonym chain when removing it from visibility.
17940 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
17941 inherited subprograms.
17942 (Access_Definition): If this is an access to function that is the return
17943 type of an access_to_function definition, context is a type declaration
17944 and the scope of the anonymous type is the current one.
17945 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
17946 incomplete subtype to the set of private dependents of the original
17947 incomplete type.
17948 (Constrain_Discriminated_Type): Emit an error message whenever an
17949 incomplete subtype is being constrained.
17950 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
17951 corresponding subtype of the full view of the original incomplete type.
17952 (Check_Incomplete): Properly detect invalid usage of incomplete types
17953 and subtypes.
17954
179552006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
17956
17957 * g-catiio.ads, g-catiio.adb (Value): New function.
17958 Given an input String, try and parse a valid Time value.
17959
179602006-10-31 Vincent Celier <celier@adacore.com>
17961
17962 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
17963 Integer_Address arithmetic, as in Set_Valid.
17964
179652006-10-31 Arnaud Charlet <charlet@adacore.com>
17966 Robert Dewar <dewar@adacore.com>
17967
17968 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
17969 handling executable extension manually and duplicating code.
17970
17971 * make.adb: Implement new -S switch
17972 (Gnatmake): Use new function Osint.Executable_Name instead
17973 of handling executable extension manually.
17974
17975 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
17976 is specified, the executable name ends with this suffix.
17977 Take advantage of Osint.Executable_Name instead of duplicating code.
17978
17979 * switch-m.adb: Recognize new gnatmake -S switch
17980
17981 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
17982 variable.
17983 (Get_Target_Parameters): Set Executable_Extension_On_Target if
17984 available.
17985
17986 * makeusg.adb: Add line for gnatmake -S switch
17987
179882006-10-31 Vincent Celier <celier@adacore.com>
17989
17990 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
17991 call it with -static-libgcc, as there are some platforms, such as
17992 Darwin, where one of these two switches is compulsory to link.
17993
179942006-10-31 Vincent Celier <celier@adacore.com>
6f7f72f9 17995
70198b9f
AC
17996 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
17997 instead of ADA_PROJECT_PATH, for the project path.
17998 (Gnatls): When displaying the project path directories, use host dir
17999 specs.
18000
18001 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18002 names in the project path, as absolute paths may correspond to
18003 multi-valued VMS logical names.
18004
180052006-10-31 Vincent Celier <celier@adacore.com>
18006
18007 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18008 absolute path name.
18009 (Locate_Regular_File): Ditto
18010 (Change_Dir): Remove, no longer used
18011 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18012 on Windows. Get it calling Get_Current_Dir.
18013 (OpenVMS): Remove imported boolean, no longer needed.
18014 (Normalize_Pathname)[VMS]: Do not resolve directory names.
18015 (Pid_To_Integer): New function to convert a Process_Id to Integer
18016
180172006-10-31 Thomas Quinot <quinot@adacore.com>
18018
18019 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18020 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18021 to No_Socket.
18022 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18023 W_Sig_Socket.
18024
180252006-10-31 Robert Dewar <dewar@adacore.com>
18026
18027 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18028 initial letter o as a zero.
18029
180302006-10-31 Robert Dewar <dewar@adacore.com>
18031
18032 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18033
180342006-10-31 Robert Dewar <dewar@adacore.com>
18035
6f7f72f9
EB
18036 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18037 variant records
18038 (Layout_Variant_Record): Retrieve the discriminants from the entity
70198b9f
AC
18039 rather than from the type definition, because in the case of a full
18040 type for a private type we need to take the discriminants from the
18041 partial view.
6f7f72f9
EB
18042 (Layout_Component_List): When applying the Max operator to variants with
18043 a nonstatic size, check whether either operand is static and scale that
18044 operand from bits to storage units before applying Max.
70198b9f
AC
18045 (Layout_Type): In VMS, if a C-convention access type has no explicit
18046 size clause (and does not inherit one in the case of a derived type),
18047 then the size is reset to 32 from 64.
18048
180492006-10-31 Vincent Celier <celier@adacore.com>
18050
18051 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18052 its file has already been loaded, according to the unit being loaded,
18053 not to the current value of Multiple_Unit_Index.
18054
180552006-10-31 Thomas Quinot <quinot@adacore.com>
18056 Eric Botcazou <ebotcazou@adacore.com>
18057 Arnaud Charlet <charlet@adacore.com>
18058
18059 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18060 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18061 possible.
18062 (a-except.o): Pass it to the compiler.
18063 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18064 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18065 a-calend-mingw.adb version.
18066
6f7f72f9 18067 * Makefile.rtl: Added s-dsaser.
70198b9f
AC
18068 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18069 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18070 Ada.Dispatching.Round_Robin.
18071 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18072
18073 * Make-lang.in: Remove all references to gt-ada-decl.h.
18074 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18075 sources.
18076 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18077 Update dependencies.
18078
18079 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18080
180812006-10-31 Vincent Celier <celier@adacore.com>
18082
18083 * mlib-utl.adb (Initialized): Remove, no longer used
18084 (Initialize): Remove, no longer used
18085 (Ar): If Ar_Exec is null, get the location of the archive builder and,
18086 if there is one, the archive indexer. Fail if the archive builder cannot
18087 be found.
18088 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18089 be found.
18090
180912006-10-31 Ed Schonberg <schonberg@adacore.com>
18092
18093 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18094 Process_Body_Clauses): If the context of a body includes a use clause
18095 for P.Q then a with_clause for P in the same body is not redundant,
18096 even if the spec also has a with_clause on P.
18097 Add missing continuation mark to error msg
18098 (Build_Limited_Views): A limited view of a type is tagged if its
18099 declaration includes a record extension.
18100 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18101 node, even if the subunit has errors. This avoids malfunction by
18102 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18103 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18104 generation of obsolescent messages for with statements (cannot do
18105 this too early, or we cannot implement avoiding the messages in the
18106 case of obsolescent units withing obsolescent units).
18107 (Install_Siblings): If the with_clause is on a remote descendant of
18108 an ancestor of the current compilation unit, find whether there is
18109 a sibling child unit that is immediately visible.
18110 (Remove_Private_With_Clauses): New procedure, invoked after completing
18111 the analysis of the private part of a nested package, to remove from
18112 visibility the private with_clauses of the enclosing package
18113 declaration.
18114 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18115 now centralized in Generate_Reference.
18116 (Install_Limited_Context_Clauses): Remove superfluous error
18117 message associated with unlimited view visible through use
18118 and renamings. In addition, at the point in which the error
18119 is reported, we add the backslash to the text of the error
18120 to ensure that it is reported as a single error message.
18121 Use new // insertion for some continuation messages
18122 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18123 to create implicit with_clause for parent unit mentioned in original
18124 limited_with_clause.
18125 (Install_Limited_With_Unit): Set entity of parent identifiers if the
18126 unit is a child unit. For ASIS queries.
18127 (Analyze_Subunit): If the subunit appears within a child unit, make all
18128 ancestor child units directly visible again.
18129
181302006-10-31 Robert Dewar <dewar@adacore.com>
18131
18132 * par-ch10.adb (P_Context_Clause): Minor error message fix
18133
181342006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18135 Javier Miranda <miranda@adacore.com>
18136
18137 * par-ch12.adb: Grammar update and cleanup.
18138 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18139 support for synchronized derived type definitions.
18140 Add the new actual Abstract_Present to every call to
18141 P_Interface_Type_Definition.
18142 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18143 a formal object declaration with an access definition or a subtype mark
18144 with a null exclusion.
18145 (P_Generic_Association): Handle association with box, and others_choice
18146 with box, to support Ada 2005 partially parametrized formal packages.
18147
181482006-10-31 Robert Dewar <dewar@adacore.com>
18149 Javier Miranda <miranda@adacore.com>
6f7f72f9 18150
70198b9f
AC
18151 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18152 (P_Type_Declaration): Remove barrier against the reserved word "limited"
18153 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18154 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18155 private extensions.
18156 (P_Type_Declaration): Add the new actual Abstract_Present to every call
18157 to P_Interface_Type_Definition.
18158 (P_Interface_Type_Definition): Addition of one formal to report an error
18159 if the reserved word abstract has been previously found.
18160 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18161 object renaming declaration with an access definition or subtype mark
18162 with a possible null exclusion.
18163
18164 * par-ch9.adb: Minor error msg fix
18165
18166 * par-load.adb: Add missing continuation mark to error msg
18167
18168 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18169
181702006-10-31 Vincent Celier <celier@adacore.com>
18171
18172 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18173 unknown attribute in unknown package or in package that does not need
18174 to be checked.
18175 (Parse_Package_Declaration): Do not issue warning for unknown package in
18176 quiet output.
18177
181782006-10-31 Vincent Celier <celier@adacore.com>
18179
18180 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18181 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18182 Packages_To_Check.
18183
181842006-10-31 Vincent Celier <celier@adacore.com>
18185
18186 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18187 on VMS, change "__" to '.' before checking the name.
18188 (Record_Ada_Source): Always add the source file name in the list of
18189 of sources, even if it is not the first time, as it is for another
18190 source index.
18191 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18192 dot, instead of replacing only the first '_'.
18193
18194 * prj-part.adb (Parse): Convert project file path to canonical form
18195
18196 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18197 extended, the project id of the project extending it is recorded in its
18198 data, even when it has already been processed as an imported project.
18199
182002006-10-31 Robert Dewar <dewar@adacore.com>
18201
18202 * repinfo.adb (List_Entities): Don't list entities from renaming
18203 declarations.
18204
182052006-10-31 Arnaud Charlet <charlet@adacore.com>
18206 Robert Dewar <dewar@adacore.com>
18207
18208 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18209 only a restriction warning is active for the given restriction. This is
18210 desirable because we do not want to modify code in the case where only
18211 a warning is set.
18212 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18213 causes overriding of real restrictions.
18214 Take advantage of new No_Restrictions constant.
18215
18216 * raise.h: (__gnat_set_globals): Change profile.
18217
182182006-10-31 Arnaud Charlet <charlet@adacore.com>
70198b9f 18219
6f7f72f9
EB
18220 * rtsfind.adb: Remove s-polint from comment as it exists no more.
18221
9e81dbc7 18222 * rtsfind.ads:
6f7f72f9
EB
18223 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18224 Move all the entities in obsolete package System.PolyORB_Interface to
18225 System.Partition_Interface.
70198b9f
AC
18226 (RE_Storage_Size): New function in System.Tasking.
18227 (RE_Get_Ceiling): New entity.
18228 (RE_Set_Ceiling): New entity.
18229 (RO_PE_Get_Ceiling): New entity.
18230 (RO_RE_Set_Ceiling): New entity.
18231 (Inherit_CPP_DT): New entity
18232
182332006-10-31 Robert Dewar <dewar@adacore.com>
18234
18235 * scng.adb (Scan, case of numeric literal): Better msg for identifier
18236 starting with a digit.
18237
182382006-10-31 Ed Schonberg <schonberg@adacore.com>
18239 Thomas Quinot <quinot@adacore.com>
18240 Javier Miranda <miranda@adacore.com>
18241 Gary Dismukes <dismukes@adacore.com>
18242
18243 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18244 properly an attempt to apply Unchecked_Access to a protected operation.
18245 (OK_Self_Reference): New subprogram to check the legality of an access
18246 attribute whose prefix is the type of an enclosing aggregate.
18247 Generalizes previous mechanism to handle attribute references nested
18248 arbitrarily deep within the aggregate.
18249 (Analyze_Access_Attribute): An access attribute whose prefix is a type
18250 can appear in an aggregate if this is a default-initialized aggregate
18251 for a self-referential type.
18252 (Resolve_Attribute, case Access): Ditto.
18253 Add support for new implementation defined attribute Stub_Type.
18254 (Eval_Attribute, case Attribute_Stub_Type): New case.
18255 (Analyze_Attribute, case Attribute_Stub_Type): New case.
18256 (Stream_Attribute_Available): Implement using new subprogram from
18257 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18258 Has_Specified_Stream_Attribute flag.
18259 Disallow Storage_Size and Storage_Pool for access to subprogram
18260 (Resolve_Attribute, case 'Access et al): Take into account anonymous
18261 access types of return subtypes in extended return statements. Remove
18262 accessibility checks on anonymous access types when Unchecked_Access is
18263 used.
18264 (Analyze_Attribute): Add support for the use of 'Class to convert
18265 a class-wide interface to a tagged type.
18266 Add support for the attribute Priority.
18267 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18268 whether the designated type is discriminated with a constrained partial
18269 view and require static matching in that case.
18270 Add local variable Des_Btyp. The Designated_Type
18271 of an access to incomplete subtype is either its non-limited view if
18272 coming from a limited with or its etype if regular incomplete subtype.
18273
18274 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18275 Fix predicate to identify and allow cases of (expander-generated)
18276 references to tag of designated object of a RACW.
18277 (Validate_Static_Object_Name): In Ada 2005, a formal object is
18278 non-static, and therefore cannot appear as a primary in a preelaborable
18279 package.
18280 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18281 Has_Read_Write_Attributes.
18282 (Has_Read_Write_Attributes): Reimplement in termes of
18283 Has_Stream_Attribute_Definition.
18284 (Missing_Read_Write_Attributes): When checking component types in a
18285 record, unconditionally call Missing_Read_Write_Attributes recursively
18286 (remove guard checking for Is_Record_Type / Is_Access_Type).
18287
182882006-10-31 Robert Dewar <dewar@adacore.com>
18289
18290 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18291 useless assignments here and conditionalize it on absence of exception
18292 handlers.
18293 (Analyze_Exception_Handlers): Small code reorganization of error
18294 detection code, for new handling of formal packages.
18295
182962006-10-31 Ed Schonberg <schonberg@adacore.com>
18297 Hristian Kirtchev <kirtchev@adacore.com>
6f7f72f9
EB
18298
18299 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
70198b9f
AC
18300 that has been constant-folded, preserve information of original tree,
18301 for ASIS uses.
18302 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18303 generated private extension declaration if the formal derived type is
18304 synchronized. Carry synchronized present over to the generated private
18305 extension.
18306 (Validate_Derived_Type_Instance): Ensure that the actual of a
18307 synchronized formal derived type is a synchronized tagged type.
18308 (Instantiate_Formal_Package): When creating the instantiation used to
18309 validate the actual package of a formal declared without a box, check
18310 whether the formal itself depends on a prior actual.
18311 (Instantiate_Formal_Subprogram): Create new entities for the defining
18312 identifiers of the formals in the renaming declaration, for ASIS use.
18313 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18314 a renaming declaration or a subtype declaration for an actual in an
18315 instance, capture location information of declaration in generic, for
18316 ASIS use.
18317 (Instantiate_Formal_Package): Add comments on needed additional tests.
18318 AI-317 (partial parametrization) is fully implemented.
18319 (Validate_Private_Type_Instance): Add check for actual which
18320 must have preelaborable initialization
18321 Use new // insertion for some continuation messages
18322 (Analyze_Formal_Object_Declaration): Change usage of Expression to
18323 Default_Expression. Add type retrieval when the declaration has an
18324 access definition. Update premature usage of incomplete type check.
18325 (Check_Access_Definition): New subsidiary routine. Check whether the
18326 current compilation version is Ada 05 and the supplied node has an
18327 access definition.
18328 (Instantiate object): Alphabetize local variables. Handle the creation
18329 of new renaming declarations with respect to the kind of definition
18330 used - either an access definition or a subtype mark. Guard against
18331 unnecessary error message in the context of anonymous access types after
18332 they have been resolved. Add check for required null exclusion in a
18333 formal object declaration.
18334 (Switch_View): A private subtype of a non-private type needs to be
18335 switched (the base type can have been switched without its private
18336 dependents because of the last branch of Check_Private_View.
18337 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18338 value from BT.
18339 (Instantiate_Type): Emit an error message whenever a class-wide type of
18340 a tagged incomplete type is used as a generic actual.
18341 (Find_Actual_Type): Extend routine to handle a component type in a child
18342 unit that is imported from a formal package in a parent.
18343 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18344 agree on constrainedness, rather than checking against ultimate ancestor
18345 (Instantiate_Subprogram_Body): Create a cross-reference link to the
18346 generic body, for navigation purposes.
18347
183482006-10-31 Robert Dewar <dewar@adacore.com>
18349 Thomas Quinot <quinot@adacore.com>
18350
18351 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18352 type.
18353 (New_Stream_Subprogram): When processing an attribute definition clause
18354 for a stream-oriented subprogram, record an entity node occurring at
18355 the point of clause to use for checking the visibility of the clause,
18356 as defined by 8.3(23) as amended by AI-195.
18357 (New_Stream_Subprogram): New procedure, factoring behaviour from both
18358 New_Stream_Function and New_Stream_Procedure.
18359 (New_Stream_Function, New_Stream_Procedure): Removed.
18360 (Analyze_Attribute_Definition_Clause, case Address): Check new
18361 Alignment_Check check
18362
183632006-10-31 Ed Schonberg <schonberg@adacore.com>
18364 Javier Miranda <miranda@adacore.com>
18365 Robert Dewar <dewar@adacore.com>
18366
18367 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18368 generate the same errors compiling under -gnatc.
18369 (Try_Object_Operation): If no candidate interpretation succeeds, but
18370 there is at least one primitive operation with the right name, report
18371 error in call rather than on a malformed selected component.
18372 (Analyze_Selected_Component): If the prefix is an incomplete type from
18373 a limited view, and the full view is available, use the full view to
18374 determine whether this is a prefixed call to a primitive operation.
18375 (Operator_Check): Verify that a candidate interpretation is a binary
18376 operation before checking the type of its second formal.
18377 (Analyze_Call): Add additional warnings for function call contexts not
18378 yet supported.
18379 (Analyze_Allocator): Move the check for "initialization not allowed for
18380 limited types" after analyzing the expression. This is necessary,
18381 because OK_For_Limited_Init looks at the structure of the expression.
18382 Before analysis, we don't necessarily know what sort of expression it
18383 is. For example, we don't know whether F(X) is a function call or an
18384 indexed component; the former is legal in Ada 2005; the latter is not.
18385 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18386 were missing. We also didn't handle qualified expressions. Now also
18387 allow function calls. Use new common routine OK_For_Limited_Init.
18388 (Analyze_Type_Conversion): Do not perform some legality checks in an
18389 instance, because the error message will be redundant or spurious.
18390 (Analyze_Overloaded_Selected_Component): Do not do style check when
18391 setting an entity, since we do not know it is the right entity yet.
18392 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18393 (Analyze_Overloaded_Selected_Component): Same change
18394 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18395 since regular incomplete subtypes are transformed into corresponding
18396 subtypes of their full views.
18397 (Complete_Object_Operation): Treat name of transformed subprogram call
18398 as coming from source, for browsing purposes.
18399 (Try_Primitive_Operation): If formal is an access parameter, compare
18400 with base type of object to determine whether it is a primitive
18401 operation.
18402 (Operator_Check): If no interpretation of the operator matches, check
18403 whether a use clause on any candidate might make the operation legal.
18404 (Try_Class_Wide_Operation): Check whether the first parameter is an
18405 access type whose designated type is class-wide.
18406
184072006-10-31 Robert Dewar <dewar@adacore.com>
18408 Ed Schonberg <schonberg@adacore.com>
18409 Gary Dismukes <dismukes@adacore.com>
18410
18411 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18412 warn on infinite loops.
18413 Add \\ to some continuation messages
18414 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18415 (Process_Bounds): If the bounds are integer literals that result from
18416 constant-folding, and they carry a user-defined type, preserve that type
18417 rather than treating this as an integer range.
18418 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18419 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18420 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18421 left hand side of assignment.
18422 (Analyze_Assignment): Add suport to manage assigments to the attribute
18423 priority of a protected object.
18424 (Check_Possible_Current_Value_Condition): Allow fully qualified names
18425 not just identifiers.
18426 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18427 or AND THEN for possible tracking.
18428 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18429 case of while loops so we can track values in the loop body.
18430
184312006-10-31 Ed Schonberg <schonberg@adacore.com>
18432 Hristian Kirtchev <kirtchev@adacore.com>
18433 Bob Duff <duff@adacore.com>
6f7f72f9 18434
70198b9f
AC
18435 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18436 procedure cannot be a protected operation (it is a basic_declaration,
18437 not a subprogram_declaration).
18438 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18439 Subp. Add logic for entry processing.
18440 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18441 Determine whether an entry or subprogram of a protected or task type
18442 override an inherited primitive of an implemented interface.
18443 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18444 Update the actual used in calls to Check_Overriding_Indicator.
18445 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18446 generate the proper reference to the parent unit, for cross-reference.
18447 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18448 Is_Formal.
18449 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18450 (Add_Extra_Formal): Revise procedure to allow passing in associated
18451 entity, scope, and name suffix, and handle setting of the new
18452 Extra_Formals field.
18453 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18454 pass new parameters. Add support for adding the new extra access formal
18455 for functions whose calls are treated as build-in-place.
18456 (Analyze_A_Return_Statement): Correct casing in error message.
18457 Move Pop_Scope to after Analyze_Function_Return, because an extended
18458 return statement really is a full-fledged scope. Otherwise, visibility
18459 doesn't work right. Correct use of "\" for continuation messages.
18460 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18461 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18462 the node doesn't get properly marked as analyzed.
18463 (Analyze_Subprogram_Body): If subprogram is a function that returns
18464 an anonymous access type that denotes a task, build a Master Entity
18465 for it.
18466 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18467 proper usage of null exclusion in a result definition.
18468 (Process_Formals): Code cleanup and new error message.
18469 (Process_Formals): Detect incorrect application of null exclusion to
18470 non-access types.
18471 (Conforming_Types): Handle conformance between [sub]types and itypes
18472 generated for entities that have null exclusions applied to them.
18473 (Maybe_Primitive_Operation): Add an additional type retrieval when the
18474 base type is an access subtype. This case arrises with null exclusions.
18475 (New_Overloaded_Entity): Do not remove the overriden entity from the
18476 homonym chain if it corresponds with an abstract interface primitive.
18477 (Process_Formals): Replace membership test agains Incomplete_Kind with a
18478 call to the synthesized predicate Is_Incomplete_Type.
18479 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18480 primitives.
18481 (Analyze_Subprogram_Declaration): Check that abstract interface
18482 primitives are abstract or null.
18483 (Analyze_Subprogram_Specification): Remove previous check for abstract
18484 interfaces because it was not complete.
18485 (Has_Interface_Formals): Removed.
18486
184872006-10-31 Ed Schonberg <schonberg@adacore.com>
18488 Javier Miranda <miranda@adacore.com>
18489
18490 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18491 of Analyze_Package_Body, to create Itype references for anonymous
18492 access types created in the package declaration, whose designated types
18493 may have only a limited view.
18494 (Analyze_Package_Specification): For the private part of a nested
18495 package, install private_with_clauses of enclosing compilation unit if
18496 we are in its visible part.
18497 (Declare_Inherited_Private_Subprograms): Complete barrier
18498 to ensure that the primitive operation has an alias to some parent
18499 primitive. This is now required because, after the changes done for the
18500 implementation of abstract interfaces, the contents of the list of
18501 primitives has entities whose alias attribute references entities of
18502 such list of primitives.
18503 (Analyze_Package_Specification): Simplify code that handles parent units
18504 of instances and formal packages.
18505 (Uninstall_Declarations): Check the convention consistency among
18506 primitive overriding operations of a tagged record type.
18507
185082006-10-31 Robert Dewar <dewar@adacore.com>
18509 Hristian Kirtchev <kirtchev@adacore.com>
18510 Javier Miranda <miranda@adacore.com>
18511 Ed Schonberg <schonberg@adacore.com>
6f7f72f9 18512
70198b9f
AC
18513 * sem_ch8.adb: Minor error msg rewording
18514 (Undefined): When checking for misspellings, invert arguments (to get
18515 expected and found set right)
18516 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18517 (Analyze_Generic_Renaming): Same fix
18518 (Use_One_Package): Do not take into account the internal entities of
18519 abstract interfaces during the analysis of entities that are marked
18520 as potentially use-visible.
18521 (Find_Type): Handle the case of an attribute reference for
18522 implementation defined attribute Stub_Type (simply let the analysis of
18523 the attribute reference rewrite it).
18524 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18525 type that appears in a Use_Type clause.
18526 (Analyze_Object_Renaming): Add support for renaming of the Priority
18527 attribute.
18528 (Find_Type): In Ada 2005, a task type can be used within its own body,
18529 when it appears in an access definition.
18530 (Analyze_Object_Renaming): Remove warning on null_exclusion.
18531 (Analyze_Object_Renaming): Introduce checks for required null exclusion
18532 in a formal object declaration or in a subtype declaration.
18533 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18534 (Check_Null_Exclusion): New local routine to
18535 Analyze_Subprogram_Renaming. Check whether the formals and return
18536 profile of a renamed subprogram have required null exclusions when
18537 their counterparts of the renaming already impose them.
18538 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18539 Determine whether an entity is inside a generic scope.
18540 (In_Open_Scope): First pass of documentation update.
18541 (Find_Expanded_Name): Add support for shadow entities associated with
18542 limited withed packages. This is required to handle nested packages.
18543 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18544 that makes a renaming of a limited withed package illegal.
18545
185462006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18547 Ed Schonberg <schonberg@adacore.com>
18548
18549 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18550 Check_Overriding_Indicator.
18551 (Analyze_Task_Definition): Ditto.
18552 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18553 (Check_Overriding_Indicator): To find overridden interface operation,
18554 examine only homonyms that have an explicit subprogram declaration, not
18555 inherited operations created by an unrelated type derivation.
18556 (Check_Overriding_Indicator): When checking for the presence of "null"
18557 in a procedure, ensure that the queried node is a procedure
18558 specification.
18559 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18560 type when the formal is an access to variable.
18561 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18562 (Analyze_Task_Type): Same addition
18563 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18564 provide navigation capabilities for entries.
18565
185662006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18567 Ed Schonberg <schonberg@adacore.com>
18568 Javier Miranda <miranda@adacore.com>
18569 Gary Dismukes <dismukes@adacore.com>
18570
18571 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
18572 inherited from an interface ancestor by another interface in the
18573 context of an instance as 'late'.
18574 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
18575 of a call to a function that dispatches on access result.
18576 (Check_Dispatching_Operation): In case of late overriding of a primitive
18577 that covers abstract interface subprograms we register it in all the
18578 secondary dispatch tables associated with abstract interfaces.
18579 (Check_Dispatching_Call): Add check that a dispatching call is not made
18580 to a function with a controlling result of a limited type. This is a
18581 current implementation restriction.
18582 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
18583 (Check_Dispatching_Operation): Do no emit a warning if the controlling
18584 argument is an interface type that is a generic formal.
18585 (Is_Interface_Subprogram): Removed.
18586 (Check_Dispatching_Operation): If the subprogram is not a dispatching
18587 operation, check the formals to handle the case in which it is
18588 associated with an abstract interface type.
18589
185902006-10-31 Robert Dewar <dewar@adacore.com>
18591 Ed Schonberg <schonberg@adacore.com>
18592
18593 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
18594 Add new calls to this procedure during traversal
18595 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
18596 another unit if expansion is disabled.
18597
185982006-10-31 Robert Dewar <dewar@adacore.com>
18599
18600 * sem_eval.adb (Compile_Time_Compare): Make use of information from
18601 Current_Value in the conditional case, to evaluate additional
18602 comparisons at compile time.
18603
186042006-10-31 Ed Schonberg <schonberg@adacore.com>
18605 Hristian Kirtchev <kirtchev@adacore.com>
18606 Javier Miranda <miranda@adacore.com>
18607
18608 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
18609 subprogram type to provide better diagnostics in case of ambiguity.
18610 (Covers): Handle coverage of formal and actual anonymous access types in
18611 the context of generic instantiation.
18612 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
18613 abstract interface types; this is required to handle concurrent types
18614 with discriminants and abstract interface types.
18615 (Covers): Include type coverage of both regular incomplete subtypes and
18616 incomplete subtypes of incomplete type visibles through a limited with
18617 clause.
18618
186192006-10-31 Robert Dewar <dewar@adacore.com>
18620 Hristian Kirtchev <kirtchev@adacore.com>
18621 Ed Schonberg <schonberg@adacore.com>
6f7f72f9
EB
18622
18623 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
70198b9f
AC
18624 messages for entities in packages which are not used.
18625 (Collect_Synchronized_Interfaces): New procedure.
18626 (Overrides_Synchronized_Primitive): New function.
18627 (Denotes_Discriminant): Extend predicate to apply to task types.
18628 Add missing continuation marks in error msgs
18629 (Unqualify): New function for removing zero or more levels of
18630 qualification from an expression. There are numerous places where this
18631 ought to be used, but we currently only deal properly with zero or one
18632 level.
18633 (In_Instance); The analysis of the actuals in the instantiation of a
18634 child unit is not within an instantiation, even though the parent
18635 instance is on the scope stack.
18636 (Safe_To_Capture_Value): Exclude the case of variables that are
18637 renamings.
18638 (Check_Obsolescent): Removed
18639 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
18640 is an aliased view, even when rewritten as a reference to the target
18641 object in an assignment.
18642 (Get_Subprogram_Entity): New function
18643 (Known_To_Be_Assigned): New function
18644 (Type_Access_Level): Compute properly the access level of a return
18645 subtype that is an anonymous access type.
18646 (Explain_Limited_Type): Correct use of "\" for continuation messages.
18647 (Is_Transfer): The new extended_return_statement causes a transfer of
18648 control.
18649 (Has_Preelaborable_Initialization): New function
18650 (Has_Null_Exclusion): New function. Given a node N, determine whether it
18651 has a null exclusion depending on its Nkind.
18652 Change Is_Lvalue to May_Be_Lvalue
18653 (May_Be_Lvalue): Extensive additional code to deal with subprogram
18654 arguments (IN parameters are not Lvalues, IN OUT parameters are).
18655 (Safe_To_Capture_Value): Extend functionality so it can be used for
18656 the current value condition case.
18657 (Has_Compatible_Alignment): New function
18658 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
18659 objects to handle the Ada 2005 case, where aliasedness no longer implies
18660 that the object is constrained. In particular, for dereferenced names,
18661 the designated object must be assumed to be unconstrained.
18662 (Kill_Current_Values): Properly deal with the case where we encounter
18663 a loop in the scope chain.
18664 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
18665 a value.
18666 (Compile_Time_Constraint_Error): Improve error message in error case
18667
18668 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
18669 associated with entities of abstract interface primitives.
18670 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
18671
186722006-10-31 Robert Dewar <dewar@adacore.com>
18673
9e81dbc7 18674 * s-osinte-tru64.adb:
70198b9f
AC
18675 Mark Asm statements Volatile to prevent warnings (seems a
18676 reasonable change anyway)
18677 Fixes new warnings
18678
18679 * s-mastop-irix.adb: Add Volatile to Asm statements
18680 Suppresses warning, and seems appropriate in any case
18681
18682 * s-osinte-vms.adb: Add Volatile to Asm statement
18683
18684 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
18685
18686 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
18687 returned.
18688 Add call to Check_Code_Statement
18689
186902006-10-31 Robert Dewar <dewar@adacore.com>
18691 Ed Schonberg <schonberg@adacore.com>
18692 Bob Duff <duff@adacore.com>
18693
18694 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
18695 Synchronized_Present): Add Formal_Derived_Type_Definition and
18696 Private_Extension_Declaration to the list of assertions.
18697 (Is_Entry_Barrier_Function): New flag
18698 (Has_Self_Reference): New flag on aggregates, to indicate that they
18699 contain a reference to the enclosing type, inserted through a default
18700 initialization.
18701 (Next_Rep_Item): Move from Node4 to Node5.
18702 (Entity): Add this field for N_Attribute_Definition_Clause.
18703 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
18704 (N_Return_Object_Declaration): Remove this node kind. We now use
18705 N_Object_Declaration instead.
18706 (Actual_Designated_Subtype): Move to a different place to make room in
18707 N_Extended_Return_Statement.
18708 (Procedure_To_Call): Move to a different place to make room in
18709 N_Extended_Return_Statement.
18710 (Return_Type): Removed this field to make room in return statements
18711 (both kinds).
18712 (Return_Statement_Entity): New field in return statements, in part to
18713 replace Return_Type, and in part to support the fact that return
18714 statements are now pushed on the scope stack during semantic analysis.
18715 (Return_Object_Declarations): New field to support extended return
18716 statements.
18717 (N_Extended_Return_Statement): New node for extended_return_statement
18718 nonterminal.
18719 (N_Return_Object_Declaration): New node for part of
18720 extended_return_statement nonterminal. Needed because all the necessary
18721 fields won't fit in N_Extended_Return_Statement.
18722 Generic_associations now carry the Box_Present flag, to indicate a
18723 default for an actual in a partially parametrized formal package.
18724
6f7f72f9 18725 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
70198b9f
AC
18726 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
18727 and for the new predefined dispatching policies: EDF_Across_Priorities,
18728 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
18729 Introduce new name Stub_Type for implementation defined attribute.
18730 Add pragma Preelaborable_Initialization
18731 Add entry for Priority attribute.
18732 Add Pragma_Wide_Character_Encoding
18733 (Get_Convention_Name): Given a convention id, this function returns the
18734 corresponding name id from the names table.
18735
187362006-10-31 Ed Schonberg <schonberg@adacore.com>
18737 Robert Dewar <dewar@adacore.com>
18738 Bob Duff <duff@adacore.com>
18739
18740 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
18741 print null exclusion twice in the case of an access definition,
18742 Implement new -gnatL switch
18743 Remove N_Return_Object_Declaration. We now use
18744 N_Object_Declaration instead. Implement the case for
18745 N_Extended_Return_Statement. Alphabetize the cases.
18746 Add cases for new nodes N_Extended_Return_Statement and
18747 N_Return_Object_Declaration. The code is not yet written.
18748 Update the output for N_Formal_Object_Declaration
18749 and N_Object_Renaming_Declaration.
18750 (Write_Itype): Account for the case of a modular integer subtype whose
18751 base type is private.
18752
187532006-10-31 Arnaud Charlet <charlet@adacore.com>
18754
18755 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
18756 Remove elaboration code, now done in the binder.
18757
18758 * s-rident.ads: Make this unit Preelaborate.
18759 (No_Restrictions): New constant used to clean up code and follow
18760 preelaborate constraints.
18761
9e81dbc7 18762 * s-stalib.adb:
70198b9f
AC
18763 Add System.Restrictions dependence, referenced directly from the
18764 binder generated file.
18765
187662006-10-31 Gary Dismukes <dismukes@adacore.com>
18767
18768 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
18769 True when AAMP extended floating-point is in use (48-bit). Change type
18770 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
18771 the two byte array types on AFloat. Change type of IV_Ilf overlay
18772 variable from Byte8 to ByteLF. Add appropriate initializations of
18773 floating-point overlays for AAMP cases.
18774
187752006-10-31 Javier Miranda <miranda@adacore.com>
18776
18777 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
18778 (Get_Ceiling): New subprogram that returns
18779 the ceiling priority of the protected object.
18780 (Set_Ceiling): New subprogram that sets the new ceiling priority of
18781 the protected object.
18782
18783 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
18784
18785 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
18786
187872006-10-31 Jose Ruiz <ruiz@adacore.com>
18788
18789 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
18790 requeuing to the same protected object to give higher priority tasks
18791 the opportunity to execute.
18792
187932006-10-31 Robert Dewar <dewar@adacore.com>
18794
18795 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
18796 add more precise check for the character sequence that follows '[' to
18797 avoid possible confusion in case if '[' is the last character of a
18798 string literals.
18799 (Scan_Wide): Always allow brackets encoding
18800
188012006-10-31 Olivier Hainque <hainque@adacore.com>
18802
18803 * s-stchop.ads: make this unit preelaborate. This is desirable in
18804 general and made mandatory by the use of this unit by s-taprop which
18805 is itself preelaborate.
18806
18807 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
18808 Td_Events component.
18809
188102006-10-31 Vincent Celier <celier@adacore.com>
18811
18812 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
18813 in file names.
18814
188152006-10-31 Vincent Celier <celier@adacore.com>
18816
18817 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
18818
188192006-10-31 Vincent Celier <celier@adacore.com>
18820
18821 * makegpr.adb (Check_Compilation_Needed): Take into account path names
18822 with spaces.
18823 (Check_Compilation_Needed): When checking a C or C++ source, do not
18824 resolve symbolic links.
18825 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
18826 When not in verbose mode and Ellipse is True, display "..." for the
18827 first argument with Display set to False.
18828 (Build_Global_Archive): Always set Display True for the first object
18829 file. Call Display_Command with Ellipse set to True.
18830
188312006-10-31 Matt Heaney <heaney@adacore.com>
18832
18833 * a-crbtgo.ads: Commented each subprogram
18834
18835 * a-crbtgo.adb: Added reference to book from which algorithms were
18836 adapted.
18837
6f7f72f9 18838 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
70198b9f
AC
18839 indicate which child.
18840 (Generic_Conditional_Insert): changed parameter name from "Success" to
18841 "Inserted".
18842 (Generic_Unconditional_Insert_With_Hint): improved algorithm
18843
18844 * a-coorse.adb (Replace_Element): changed parameter name in call to
18845 conditional insert operation.
18846
18847 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
18848
18849 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
18850 Generic_Iteration
18851
18852 * a-ciorse.adb (Replace_Element): changed parameter name in call to
18853 conditional insert operation.
18854
18855 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
18856 Generic_Iteration.
18857
18858 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
18859 instead of mode inout.
18860
18861 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
18862 draft
18863 (Generic_Read): preserve existing buckets array if possible
18864 (Generic_Write): don't send buckets array length anymore
18865
18866 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
18867 instead of mode inout.
18868
18869 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
18870 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
18871
18872 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
18873 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
18874 (Replace_Element): local operation is now an instantiation
18875
18876 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
18877 check current length.
18878 (Generic_Replace_Element): new operation
18879
188802006-10-31 Doug Rupp <rupp@adacore.com>
18881
18882 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
18883 Call TBK$SYMBOLIZE without omitting parameters.
18884
188852006-10-31 Vincent Celier <celier@adacore.com>
18886
18887 * symbols-processing-vms-ia64.adb,
18888 symbols-processing-vms-alpha.adb (Process): Do not include symbols
18889 that come from generic instantiations in bodies.
18890
188912006-10-31 Pat Rogers <rogers@adacore.com>
18892
9e81dbc7 18893 * a-rttiev.ads, a-rttiev.adb:
70198b9f
AC
18894 This is a significant redesign primarily for the sake of automatic
18895 timer task termination but also to fix a design flaw.
18896 Therefore we are now using an RTS lock, instead of a protected
18897 object, to provide mutual exclusion to the queue of pending events
18898 and the type Timing_Event is no longer a protected type.
18899
189002006-10-31 Robert Dewar <dewar@adacore.com>
18901 Cyrille Comar <comar@adacore.com>
18902 Ben Brosgol <brosgol@adacore.com>
18903
18904 * debug.adb: Update flags documentation
18905
6f7f72f9
EB
18906 * gnat_ugn.texi: Add documentation for new -gnatwq switch
18907 Clean up documentation for several other warning switches
18908 Clarify how task stack size can be specified with various
18909 versions of Windows.
18910 Add note that -gnatVo includes ranges including loops
70198b9f
AC
18911 Add documentation for -gnatL switch
18912 Add note on elaboration warning for initializing variables
18913 Add documentation for new -gnatwt warning switch
18914 Document new form of pragma Warnings (On|Off, string)
18915 Add comment on use of pragma Warnings to control warnings
18916 Add documentation for -gnatjnn switch
18917 Modify section on interfacing with C for VMS 64-bit.
18918 Add doc for -gnatVe/E
18919 Add documentation of new warning flags -gnatww/-gnatwW
18920 Add warnings about address clause overlays to list of warnings
18921 (Exception Handling Control): Document that the option --RTS must be
18922 used consistently for gcc and gnatbind.
18923 Clarify that inlining is not always possible
18924 Update documentation on pragma Unchecked_Union.
18925
9e81dbc7 18926 * gnat_rm.texi:
70198b9f
AC
18927 Add documentation for new extended version of pragma Obsolescent
18928 Add documentation for implementation defined attribute 'Stub_Type.
18929 Add note on use of Volatile in asm statements
18930 Add documentation on use of pragma Unreferenced in context clause
18931 Document new form of pragma Warnings (On|Off, pattern)
18932 Document pragma Wide_Character_Encoding
18933 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
18934 enforced if code generation is active.
18935 Add section on pragma Suppress to document GNAT specific check
18936 Alignment_Check
18937 Clarify difference between No_Dispatching_Calls & No_Dispatch.
18938 Add documentation for pragma Restrictions (No_Elaboration_Code)
18939
9e81dbc7 18940 * gnat-style.texi:
70198b9f
AC
18941 Add comments on layout of subprogram local variables in the
18942 presence of nested subprograms.
18943
6f7f72f9 18944 * ug_words: Resync.
70198b9f
AC
18945
18946 * elists.ads: Minor reformatting
18947 Node returns Node_Or_Entity_Id (doc change only)
18948
18949 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
18950
18951 * g-arrspl.ads (Create): Update comments.
18952
18953 * sem.ads: Add details on the handling of the scope stack.
18954
6f7f72f9 18955 * usage.adb: Update documentation.
70198b9f 18956
9e81dbc7 18957 * validsw.ads, validsw.adb:
70198b9f
AC
18958 Add definition of Validity_Check_Components and implement -gnatVe/E
18959
6f7f72f9 18960 * vms_data.ads: Add missing VMS qualifiers.
70198b9f
AC
18961
18962 * s-addope.ads: Add documentation on overflow and divide by zero
18963
189642006-10-31 Robert Dewar <dewar@adacore.com>
18965 Thomas Quinot <quinot@adacore.com>
18966 Arnaud Charlet <charlet@adacore.com>
18967
18968 * fmap.adb: Put routines in alpha order
18969
18970 * g-boumai.ads: Remove redundant 'in' keywords
18971
18972 * g-cgi.adb: Minor reformatting
18973
18974 * g-cgi.ads: Remove redundant 'in' keywords
18975
18976 * get_targ.adb: Put routines in alpha order
18977
18978 * prj-attr.ads: Minor reformatting
18979
18980 * s-atacco.ads: Minor reformatting
18981
18982 * scn.adb: Put routines in alpha order
18983
18984 * sinput-l.adb: Minor comment fix
18985
18986 * sinput-p.adb: Minor comment fix
18987
18988 * s-maccod.ads: Minor reformatting
18989
18990 * s-memory.adb: Minor reformatting
18991
18992 * s-htable.adb: Fix typo in comment.
18993
18994 * s-secsta.adb: Minor comment update.
18995
18996 * s-soflin.adb: Minor reformatting
18997
9e81dbc7 18998 * s-stoele.ads:
70198b9f
AC
18999 Add comment about odd qualification in Storage_Offset declaration
19000
9e81dbc7 19001 * s-strxdr.adb:
70198b9f
AC
19002 Remove unnecessary 'in' keywords for formal parameters.
19003
19004 * treeprs.adt: Minor reformatting
19005
19006 * urealp.adb: Put routines in alpha order
19007
19008 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19009 taking string.
19010
19011 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19012
19013 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19014
19015 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19016 workaround as on other platforms.
19017
19018 * g-eacodu-vms.adb: Remove redundant 'in' keywords
19019 * g-expect-vms.adb: Remove redundant 'in' keywords
19020
19021 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19022 clear error message if the list-of-files file cannot be opened.
19023
19024 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19025 equality operator is always visible.
19026
19027 * lang.opt: Woverlength-strings: New option.
19028
9e81dbc7 19029 * nmake.adt:
70198b9f
AC
19030 Update copyright, since nmake.ads and nmake.adb have changed.
19031
19032 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19033 (Binder_Output_Time_Stamps_Set): removed.
19034 (Old_Binder_Output_Time_Stamp): idem.
19035 (New_Binder_Output_Time_Stamp): idem.
19036 (Recording_Time_From_Last_Bind): idem.
19037 (Recording_Time_From_Last_Bind): Make constant.
19038
19039 * output.ads, output.adb (Write_Str): Allow LF characters
19040 (Write_Spaces): New procedure
19041
19042 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19043
19044 * inline.adb: Minor reformatting
19045
19046 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19047
19048 * s-mastop-vms.adb: Remove redundant 'in' keywords
19049
19050 * s-osprim-vms.adb: Remove redundant 'in' keywords
19051
19052 * s-trafor-default.adb: Remove redundant 'in' keywords
19053
19054 * 9drpc.adb: Remove redundant 'in' keywords
19055
19056 * s-osinte-mingw.ads: Minor reformatting
19057
19058 * s-inmaop-posix.adb: Minor reformatting
19059
19060 * a-direio.ads: Remove quotes from Compile_Time_Warning message
19061
19062 * a-exexda.adb: Minor code reorganization
19063
19064 * a-filico.adb: Minor reformatting
19065
19066 * a-finali.adb: Minor reformatting
19067
19068 * a-nudira.ads: Remove quote from Compile_Time_Warning message
19069
19070 * a-numeri.ads: Minor reformatting
19071
19072 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19073
19074 * exp_pakd.ads: Fix obsolete comment
19075
19076 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19077 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19078 Probably not a bug, but certainly neater and more efficient.
19079
19080 * a-tienio.adb: Minor reformatting
19081
19082 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19083 Avoid assuming low bound of string is 1.
19084
19085 * gnatbind.adb: Change Bindusg to package and rename procedure as
19086 Display, which now ensures that it only outputs usage information once.
19087 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19088
19089 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19090 Table'First.
19091
19092 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19093 warning.
19094 (Match): Add pragma Assert to ensure that Matches'First is zero
19095
19096 * g-regpat.ads (Match): Document that Matches lower bound must be zero
19097
19098 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19099 documented preconditions (also kills warnings about bad indexes).
19100
19101 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19102 is 1.
19103 (Build_Import_Library): Ditto;
19104
19105 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19106
19107 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19108
19109 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19110 lower bound of choice table is 1.
19111
19112 * sem_case.ads (Analyze_Choices): Document that lower bound of
19113 Choice_Table is 1.
19114
19115 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19116 string is 1.
19117
19118 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19119 and add appropriate Assert pragma to suppress warnings.
19120
19121 * atree.h, atree.ads, atree.adb
19122 Change Elist24 to Elist25
19123 Add definitions of Field28 and Node28
19124 (Traverse_Field): Use new syntactic parent table in sinfo.
19125
19126 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19127
19128 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19129
19130 * exp_tss.adb: Put routines in alpha order
19131
19132 * fe.h: Remove redundant declarations.
19133
719bb4e3 191342006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
ed41063a 19135
c79efc4d
RÁE
19136 * utils.c (builtin_function): Rename to gnat_builtin_function.
19137 Move common code to add_builtin_function.
19138 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19139 gnat_builtin_function.
19140 * gigi.h (builtin_function): Rename to gnat_builtin_function.
19141 Change the signature.
19142
a8384928
BM
191432006-10-16 Brooks Moses <bmoses@stanford.edu>
19144
19145 * Makefile.in: Add TEXI2PDF definition.
19146 * Make-lang.in: Add "ada.pdf" target.
19147
2285b053
KH
191482006-10-03 Kazu Hirata <kazu@codesourcery.com>
19149
19150 * decl.c, utils.c: Fix comment typos.
c0a69967
KH
19151 * utils.c: Fix a typo.
19152
b55e7f34
EB
191532006-09-28 Eric Botcazou <ebotcazou@adacore.com>
19154
19155 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19156 on "pure" Ada subprograms if SJLJ exceptions are used.
19157 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19158 on the declaration node of JMPBUF_SAVE.
19159 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19160 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19161 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19162
9e94c78f 191632006-08-20 Laurent Guerby <laurent@guerby.net>
d2b40c09 19164
7a197678
EB
19165 PR ada/28716
19166 g-socket.adb (Bind_Socket): Call Set_Address.
19167
41d9adc7
EB
191682006-09-15 Eric Botcazou <ebotcazou@adacore.com>
19169
19170 PR ada/15802
19171 * decl.c (same_discriminant_p): New static function.
19172 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19173 subtype and we have discriminants, fix up the COMPONENT_REFs
19174 for the discriminants to make them reference the corresponding
19175 fields of the parent subtype after it has been built.
19176
21cc3719
RS
191772006-09-15 Roger Sayle <roger@eyesopen.com>
19178
19179 PR ada/18817
19180 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19181 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19182
6f2789da
OH
191832006-09-13 Olivier Hainque <hainque@adacore.com>
19184
19185 PR ada/29025
19186 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19187 of a SAVE_EXPR, just make the operand addressable/not-readonly and
19188 let the common gimplifier code make and propagate a temporary copy.
19189 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19190 out/in-out actuals and defer setting the addressable/readonly bits
19191 to the gimplifier.
19192
efaa616e
EB
191932006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19194
19195 PR ada/28591
19196 * decl.c (components_to_record): Defer emitting debug info for the
19197 record type associated with the variant until after we are sure to
19198 actually use it.
19199
2655f1c6
EB
192002006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19201
19202 PR ada/21952
19203 * gigi.h (gnat_internal_attribute_table): Declare.
19204 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19205 * utils.c (gnat_internal_attribute_table): New global variable.
19206 (builtin_function): Always call decl_attributes on the builtin.
19207 (handle_const_attribute): New static function.
19208 (handle_nothrow_attribute): Likewise.
19209
48779194
VR
192102006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
19211
19212 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19213
8df7d439
EB
192142006-06-23 Olivier Hainque <hainque@adacore.com>
19215
19216 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19217 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19218
83fdc7c4 192192006-06-20 James A. Morrison <phython@gcc.gnu.org>
6f7f72f9 19220 Eric Botcazou <ebotcazou@adacore.com>
83fdc7c4
JM
19221
19222 PR ada/18692
19223 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
19224 check-gnat into check-acats.
19225
5f516f59
KB
192262006-06-17 Karl Berry <karl@gnu.org>
19227
6f7f72f9 19228 * gnat-style.texi (@dircategory): Use "Software development"
5f516f59
KB
19229 instead of "Programming", following the Free Software Directory.
19230
ce0d1b88
JDA
192312006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19232
19233 PR ada/27944
19234 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19235
9e94c78f 192362006-06-06 Laurent Guerby <laurent@guerby.net>
8c60f779 19237
6f7f72f9
EB
19238 PR ada/27769
19239 mlib-utl.adb: Use Program_Name.
19240
ce2e12c2
KH
192412006-05-28 Kazu Hirata <kazu@codesourcery.com>
19242
19243 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19244 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19245 trans.c, utils.c: Fix comment typos. Follow spelling
19246 conventions.
19247 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
19248 conventions.
19249
ba4ac682
EB
192502006-05-19 Nicolas Setton <setton@adacore.com>
19251
19252 * misc.c (gnat_dwarf_name): New function.
19253 (LANG_HOOKS_DWARF_NAME): Define to it.
19254
05b44921
L
192552006-05-14 H.J. Lu <hongjiu.lu@intel.com>
19256
19257 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19258 (ada/misc.o): Likewise.
19259 (ada/utils.o): Likewise.
19260
a3bd7058
AJ
192612006-04-08 Aurelien Jarno <aurel32@debian.org>
19262
19263 * Makefile.in: Add Ada support for GNU/kFreeBSD.
19264 * s-osinte-kfreebsd-gnu.ads: New file.
19265
ad3a7ce3
CD
192662006-03-29 Carlos O'Donell <carlos@codesourcery.com>
19267
19268 * Make-lang.in: Rename docdir to gcc_docdir.
19269
936a6fa7
EB
192702006-03-04 Eric Botcazou <ebotcazou@adacore.com>
19271
19272 * gigi.h (get_ada_base_type): Delete.
19273 * utils2.c (get_ada_base_type): Likewise.
19274 * trans.c (convert_with_check): Operate in the real base type.
19275
93f978b7
RK
192762006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19277
19278 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19279
434aeebb
RS
192802006-03-02 Richard Sandiford <richard@codesourcery.com>
19281
19282 * utils.c (create_var_decl): Use have_global_bss_p when deciding
19283 whether to make the decl common.
19284
719bb4e3 192852006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
93f978b7 19286
ed41063a 19287 * Make-lang.in (Ada): Remove.
9d29a5b7
RE
19288 (.PHONY): Remove Ada
19289
c63f730e
AC
192902006-02-17 Ed Schonberg <schonberg@adacore.com>
19291
19292 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19293 aggregate, check the interpretations of the other operand to find one
19294 that may be a boolean array.
19295
19296 (Analyze_Selected_Component): Fix flow-of-control typo in case where
19297 the prefix is a private extension.
19298
192992006-02-17 Eric Botcazou <botcazou@adacore.com>
19300
19301 PR ada/26315
c63f730e
AC
19302 * utils2.c (find_common_type): If both input types are BLKmode and
19303 have the same constant size, keep using the first one.
19304
19305 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19306
19307 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19308
19309 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19310
193112006-02-17 Jose Ruiz <ruiz@adacore.com>
19312
9e81dbc7
AS
19313 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19314 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19315 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
c63f730e
AC
19316 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19317 Abort_Defer/Undefer pairs to avoid the possibility of a task being
19318 aborted while owning a lock.
19319
193202006-02-17 Javier Miranda <miranda@adacore.com>
19321 Robert Dewar <dewar@adacore.com>
19322
19323 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19324 through an access to class-wide interface we force the displacement of
19325 the pointer to the allocated object to reference the corresponding
19326 secondary dispatch table.
19327 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19328 if Long_Shifts are supported on the target, even if 64 bit divides
19329 are not supported (configurable run time mode).
19330 (Expand_N_Type_Conversion): Do validity check if validity checks on
19331 operands are enabled.
19332 (Expand_N_Qualified_Expression): Do validity check if validity checks
19333 on operands are enabled.
19334
193352006-02-17 Ed Schonberg <schonberg@adacore.com>
19336
19337 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19338 must be materialized when the renamed expression is an explicit
19339 dereference.
19340
193412006-02-17 Ed Schonberg <schonberg@adacore.com>
19342
19343 * freeze.adb (Statically_Discriminated_Components): Return false if
19344 the bounds of the type of the discriminant are not static expressions.
19345
19346 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19347 the bounds of the discriminant type are not static.
19348
193492006-02-17 Robert Dewar <dewar@adacore.com>
19350
19351 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19352 then we close To if it is valid.
19353
193542006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19355
19356 * init.c (facility_resignal_table): new array
19357 (__gnat_default_resignal_p): enhance default predicate to resignal if
19358 VMS condition has one of the predefined facility codes.
19359
193602006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19361
19362 * Makefile.in: Use VMS64 specialized versions of several units in
19363 Interfaces.C hierarchy to be compatible with HP C default size choices.
19364 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19365
193662006-02-17 Ed Schonberg <schonberg@adacore.com>
19367
19368 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19369 instantiation, the corresponding entity is the related_instance of the
19370 wrapper package created for the instance.
19371
193722006-02-17 Ed Schonberg <schonberg@adacore.com>
19373
19374 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19375 the current instance is nested within another instance in a child unit.
19376
193772006-02-17 Javier Miranda <miranda@adacore.com>
19378 Ed Schonberg <schonberg@adacore.com>
19379
19380 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19381 type we cannot inherit the primitive operations; we inherit the
19382 Corresponding_Record_Type (which has the list of primitive operations).
19383 (Check_Anonymous_Access_Types): When creating anonymous access types for
19384 access components, use Rewrite in order to preserve the tree structure,
19385 for ASIS use.
19386 (Analyze_Object_Declaration): For limited types with access
19387 discriminants with defaults initialized by an aggregate, obtain
19388 subtype from aggregate as for other mutable types.
19389 (Derived_Type_Declaration): If the derived type is a limited interface,
19390 set the corresponding flag (Is_Limited_Record is not sufficient).
19391
193922006-02-17 Ed Schonberg <schonberg@adacore.com>
19393
19394 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19395 to inline a function that returns an unconstrained type, the return
19396 expression must be the first variable declared in the body of the
19397 function.
19398
193992006-02-17 Javier Miranda <miranda@adacore.com>
19400
19401 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19402 abstract interface type, the static analysis is not enough to know if
19403 the interface is implemented or not by the source tagged type. Hence
19404 we must pass the work to the expander to generate the required code to
19405 evaluate the conversion at run-time.
19406 (Resolve_Equality_Op): Do not apply previous
19407 transformation if expansion is disasbled, to prevent anomalies when
19408 locating global references in a generic unit.
19409
194102006-02-17 Vincent Celier <celier@adacore.com>
19411
19412 * snames.ads, snames.adb: New standard names for new project attributes:
19413 archive_builder, archive_indexer, compiler_pic_option,
19414 config_body_file_name, config_body_file_name_pattern,
19415 config_file_switches, config_file_unique, config_spec_file_name,
19416 config_spec_file_name_pattern, default_builder_switches,
19417 default_global_compiler_switches, default_language,
19418 dependency_file_kind, global_compiler_switches, include_path,
19419 include_path_file, language_kind, linker_executable_option,
19420 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19421 roots, runtime_project.
19422
194232006-02-17 Matthew Heaney <heaney@adacore.com>
19424
9e81dbc7 19425 * a-convec.ads, a-convec.adb:
c63f730e
AC
19426 (operator "&"): handle potential overflow for large index types
19427 (Insert): removed Contraint_Error when using large index types
19428 (Insert_Space): removed Constraint_Error for large index types
19429 (Length): moved constraint check from Length to Insert
19430
19431 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19432 as not null access.
19433 Explicit raise statements now include an exception message.
19434 (operator "&"): handle potential overflow for large index types
19435 (Insert): removed Contraint_Error when using large index types
19436 (Insert_Space): removed Constraint_Error for large index types
19437 (Length): moved constraint check from Length to Insert
19438
194392006-02-17 Robert Dewar <dewar@adacore.com>
19440
19441 * s-wchcnv.adb: Document handling of [ on output (we do not change
19442 this to ["5B"] and the new comments say why not.
19443
9e81dbc7 19444 * gnat_ugn.texi:
c63f730e
AC
19445 Add note for -gnatVo that this now includes the cases of type
19446 conversions and qualified expressions.
19447 Add comments on handling of brackets encoding for Text_IO
19448
194492006-02-17 Ramon Fernandez <fernandez@adacore.com>
19450 Thomas Quinot <quinot@adacore.com>
19451 Robert Dewar <dewar@adacore.com>
19452 Javier Miranda <miranda@adacore.com>
19453
19454 * expander.adb: Fix typo in comment
19455
19456 * exp_pakd.adb: Fix typo
19457 Minor comment reformatting.
19458
19459 * g-dyntab.adb: Minor reformatting
19460
19461 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19462 aliased subprograms to look for the abstract interface subprogram.
19463
fd7927cd
EB
194642006-02-16 Eric Botcazou <ebotcazou@adacore.com>
19465
19466 * env.c (__gnat_setenv): Use size_t.
19467 (__gnat_unsetenv): Likewise.
19468 (__gnat_clearenv): Likewise.
19469
3f806915
AC
194702006-02-16 Arnaud Charlet <charlet@adacore.com>
19471
19472 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19473
cc26ad97
AC
194742006-02-13 Arnaud Charlet <charlet@adacore.com>
19475
19476 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19477 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19478 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19479 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19480 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19481 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19482 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19483 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19484 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19485 no longer used.
19486
194872006-02-13 Jose Ruiz <ruiz@adacore.com>
19488
19489 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19490 protection against race conditions is not needed.
19491 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19492 fallback handler.
19493 (Set_Specific_Handler): Add mutual exclusive access to the specific
19494 handler.
19495 (Specific_Handler): Add mutual exclusive access for retrieving the
19496 specific handler.
19497
19498 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19499 back handler.
19500
19501 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19502 Fall_Back_Handler and Specific_Handler.
19503
19504 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19505 termination handlers.
19506 Set two different owerflow depending on the maximal stack size.
19507
19508 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19509 protection against race conditions is not needed when executing the
19510 task termination handler.
19511
195122006-02-13 Robert Dewar <dewar@adacore.com>
19513
19514 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19515 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19516 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19517 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19518 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19519 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19520 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19521 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19522 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19523 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19524 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19525 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19526 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19527 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19528 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19529 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19530 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19531 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19532 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19533 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19534 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19535 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19536 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19537 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19538 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19539 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19540 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19541 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19542 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19543 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19544 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19545 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19546 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19547 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19548 reformatting.
19549
195502006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
19551
19552 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19553 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19554 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19555 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19556 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19557 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19558 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19559 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19560 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19561
195622006-02-13 Arnaud Charlet <charlet@adacore.com>
19563
9e81dbc7
AS
19564 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19565 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
19566 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
19567 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
19568 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
cc26ad97
AC
19569 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
19570 replaced by anonymous access type.
19571 (pthread_sigmask): Now take an access sigset_t
19572
19573 * s-osinte-hpux.ads: Ditto.
19574 (pthread_mutex_t, pthread_cond_t): Update definitions to support
19575 properly 32 and 64 bit ABIs.
19576
195772006-02-13 Pascal Obry <obry@adacore.com>
19578
9e81dbc7
AS
19579 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
19580 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
cc26ad97
AC
19581 s-taprop-linux.adb, s-taprop-solaris.adb,
19582 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
19583 adjustement is already done when calling this routine.
19584
195852006-02-13 Pascal Obry <obry@adacore.com>
19586
19587 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
19588 table to take advantage of the 16 priority levels available on Windows
19589 2000 and XP. On NT4 there are only 7 priority levels, this is properly
19590 supported by this new mapping.
19591
195922006-02-13 Nicolas Setton <setton@adacore.com>
19593
19594 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
19595 (get_encoding): New subprogram. Extracts the encodings from an encoded
19596 Ada name.
19597
195982006-02-13 Pascal Obry <obry@adacore.com>
19599 Nicolas Roche <roche@adacore.com>
19600 Arnaud Charlet <charlet@adacore.com>
19601
19602 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
19603 support.
19604 (__gnat_try_lock): Add unicode support by using a specific section on
19605 Windows.
19606 (__gnat_get_current_dir): Idem.
19607 (__gnat_open_read): Idem.
19608 (__gnat_open_rw): Idem.
19609 (__gnat_open_create): Idem.
19610 (__gnat_create_output_file): Idem.
19611 (__gnat_open_append): Idem.
19612 (__gnat_open_new): Idem.
19613 (__gnat_file_time_name): Idem.
19614 (__gnat_set_file_time_name): Idem.
19615 (__gnat_stat): Idem.
19616 (win32_no_block_spawn): Idem.
19617 (__gnat_locate_exec_on_path): Idem.
19618 (__gnat_opendir): New routine.
19619 (__gnat_closedir): Idem.
19620 (__gnat_readdir): Add new parameter length (pointer to int). Update
19621 implementation to use it and add specific Win32 code for Unicode
19622 support.
19623 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
19624 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
19625 (convert_addresses): Do not define this dummy routine on VMS.
19626
19627 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
19628 runtime Unicode support will be activated.
19629 (S2WS): String to Wide-String conversion. This version just copy a
19630 string in non Unicode version.
19631 (WS2S): Wide-String to String conversion. This version just copy a
19632 string in non Unicode version.
19633
19634 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
19635 (Open): Now import __gnat_opendir from adaint.c.
19636 (Read): Change the implementation to support unicode characters. It is
19637 not possible to use strlen() on Windows as this version supports only
19638 standard ASCII characters. So the length of the directory entry is now
19639 returned from the imported __gnat_readdir routine.
19640 Update copyright notice.
19641
19642 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
19643 (opendir): Moved to adaint.c.
19644
19645 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
19646 (Get_Directory): Fix wrong indexing.
19647 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
19648 __gnat_getenv from env.c
19649 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
19650 from env.c
19651
19652 * env.h, env.c: New file.
19653
19654 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
19655 adaint.c by __gnat_getenv from env.c
19656
19657 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
19658 adaint.c by __gnat_getenv from env.c
19659
19660 * Make-lang.in: Add env.o in the list of C object needed by gnat1
19661 and gnatbind.
19662 Update dependencies.
19663
196642006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19665 Olivier Hainque <hainque@adacore.com>
19666 Eric Botcazou <ebotcazou@adacore.com>
19667
19668 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
9e81dbc7 19669
cc26ad97
AC
19670 * gigi.h (value_factor_p): Add prototype and description, now public.
19671
19672 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
19673 promotion for field with rep clause if the associated size was proven
19674 to be in error.
19675 Expand comments describing attempts to use a packable type.
19676 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
19677 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
19678 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
19679 necessary since these are not different types and pointers may
19680 actually designate any subtype in this hierarchy.
19681 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
19682 discriminants but put them into record only if not Unchecked_Union;
19683 pass flag to components_to_record showing Unchecked_Union.
19684 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
19685 components before variants; don't set TYPE_UNCHECKED_UNION_P.
19686 (components_to_record): New argument UNCHECKED_UNION.
19687 Remove special case code for Unchecked_Union and instead use main code
19688 with small changes.
19689
19690 PR ada/26096
ed41063a
EB
19691 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
19692 variable with the expression being built, only its inner field.
cc26ad97
AC
19693
19694 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
19695 emit_sequence_entry_statements.
19696 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
19697 (establish_gnat_vms_condition_handler): Move before
19698 Subprogram_Body_to_gnu.
19699 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
19700 for a subprogram if it has a foreign convention or is exported.
19701 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
19702 substituted for a CONST_DECL.
19703 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
19704 Etype to assoc_to_constructor.
19705 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
19706 discriminants of Unchecked_Union.
19707 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
19708 don't need cluttering preprocessor directives.
19709 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
19710 condition handler as current in the compiled function.
19711 (body_with_handlers_p): New function. Tell whether a given sequence of
19712 statements node is attached to a package or subprogram body and involves
19713 exception handlers possibly nested within inner block statements.
19714 (emit_sequence_entry_statements): New function, to emit special
19715 statements on entry of sequences when necessary. Establish GNAT
19716 condition handler in the proper cases for VMS.
19717 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
19718 emit_sequence_entry_statements.
19719
19720 * utils2.c (find_common_type): If both input types are BLKmode and
19721 have a constant size, use the smaller one.
19722 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
19723 the same.
19724
19725 * utils.c (value_factor_p): Make public, to allow uses from other gigi
19726 units.
19727 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
19728 (convert, case UNION_TYPE): Remove special treatment for unchecked
19729 unions.
19730
19731 PR ada/18659
ed41063a
EB
19732 (update_pointer_to): Update variants of pointer types to unconstrained
19733 arrays by attaching the list of fields of the main variant.
cc26ad97
AC
19734
197352006-02-13 Arnaud Charlet <charlet@adacore.com>
19736 Robert Dewar <dewar@adacore.com>
19737
19738 * a-exexpr.adb, a-exexpr-gcc.adb
19739 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
19740 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
19741 Remove code unused for exception propagation for the compiler itself
19742 from a-except.adb and update to still share separate packages.
19743
19744 * a-except.ads, a-except.adb: Ditto.
19745 Add comments that this version is now used only by the compiler and
19746 other basic tools. The full version that includes the Ada 2005 stuff
19747 is in separate files a-except-2005.ads/adb. The reason is that we do
19748 not want to cause bootstrap problems with compilers not recognizing
19749 Wide_Wide_String.
19750 Add exception reason code PE_Implicit_Return
19751 Add new exception reason code (Null Exception_Id)
19752
19753 * a-except-2005.adb, a-except-2005.ads: New files.
19754
19755 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
19756
19757 * s-wchcon.adb: New file.
19758
19759 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
19760 (traceback.o deps): Likewise.
19761 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
19762 Activate build of GMEM instrumentation library on VMS targets.
19763 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
19764 Use a-except-2005.ads/adb for all run-time library builds unless
19765 specified otherwise.
19766 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
19767 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
19768 Use s-parame.adb on all native platforms.
19769 Use s-parame-vxworks.adb on all vxworks platforms.
19770 Add env.c env.h in LIBGNAT_SRCS
19771 Add env.o in LIBGNAT_OBJS
19772 (GNATMAKE_OBJS): Remove ctrl_c.o object.
19773 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
19774 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
19775 supports VxWorks 6 RTPs.
19776 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
19777 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
19778
19779 * types.h, types.ads (Terminate_Program): New exception
19780 Add comment on modifying multiple versions of a-except.adb when the
19781 table of exception reasons is modified.
19782 Add exception reason code PE_Implicit_Return
19783 Add new exception reason code (Null Exception_Id)
19784
6f7f72f9
EB
19785 * clean.adb (Initialize): Get the target parameters before checking
19786 if target is OpenVMS. Move the OpenVMS specific code here from package
19787 body elaboration code.
cc26ad97
AC
19788
197892006-02-13 Thomas Quinot <quinot@adacore.com>
19790 Vincent Celier <celier@adacore.com>
19791 Robert Dewar <dewar@adacore.com>
19792
19793 * ali-util.adb (Get_File_Checksum): Update to account for change in
19794 profile of Initialize_Scanner.
19795
19796 * gprep.adb (Gnatprep): Update to account for change in profile of
19797 Initialize_Scanner.
19798 (Process_One_File): Same.
19799
19800 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
19801 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
19802 that behaviour using the new Unit information recorded in the source
19803 files table, rather than going through all units every time.
19804 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
19805 (Get_Source_Unit): Same.
19806
19807 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
19808 change in profile of Initialize_Scanner.
19809 (Prepare_To_Preprocess): Same.
19810
19811 * lib.ads: Fix typo in comment (templace -> template).
19812
19813 * prj-part.adb (Parse_Single_Project): Update to account for change in
19814 profile of Initialize_Scanner.
19815
19816 * scn.adb (Initialize_Scanner): Account for change in profile of
19817 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
19818 Also record the association of the given Source_File_Index to the
19819 corresponding Unit_Number_Type.
19820
19821 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
19822 procedure.
19823 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
19824 Remove Unit formal for generic scanner: this formal
19825 is only relevant to Scn (the scanner instance used to parse Ada source
19826 files), not to other instances. Update comment accordingly.
19827 (Scan): Use new function Snames.Is_Keyword_Name.
19828
19829 * sinfo-cn.adb: Fix typo in comment.
19830
19831 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
19832 Unit.
19833
19834 * sinput.ads (Source_File_Record): New component Unit, used to capture
19835 the unit identifier (if any) associated to a source file.
19836
19837 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
19838 Unit in Source_File_Record.
19839
19840 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
19841 in profile of Initialize_Scanner.
19842
19843 * scans.adb (Initialize_Ada_Keywords): New procedure
19844
19845 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
19846 Ada keywords in the Namet table, without the need to call
19847 Initialize_Scanner.
19848
19849 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
19850 (Is_Keyword_Name): New function
19851
19852 * snames.ads: Add subtype Configuration_Pragma_Names
19853 Add pragma Ada_2005 (synonym for Ada_05)
19854 (Is_Keyword_Name): New function
19855
19856 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
19857
198582006-02-13 Arnaud Charlet <charlet@adacore.com>
19859
19860 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
19861 index.
19862
19863 * a-stwima.adb (To_Set): Add extra check when N = 0.
19864
19865 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
19866
198672006-02-13 Arnaud Charlet <charlet@adacore.com>
19868
19869 * s-parame-mingw.adb, s-parame-linux.adb,
19870 s-parame-solaris.adb: Removed, replaced by s-parame.adb
19871
19872 * s-parame-vxworks.ads: Fix typo.
19873
19874 * s-parame-vxworks.adb: New file.
19875
19876 * s-parame.adb: Version now used by all native platforms.
19877 (Default_Stack_Size): Use 2 megs for default stack size and use
19878 __gl_default_stack_size when available.
19879 (Minimum_Stack_Size): Use 12K.
19880
19881 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
19882 (Create_Task): Refine implementation taking advantage of the XP stack
19883 size support. On XP, we now create the thread using the flag
19884 STACK_SIZE_PARAM_IS_A_RESERVATION.
19885
19886 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
19887
19888 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
19889 XP and 0 on older Windows versions.
19890
19891 * interfac-vms.ads: Removed, no longer used.
19892
198932006-02-13 Matthew Heaney <heaney@adacore.com>
19894
9e81dbc7
AS
19895 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
19896 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
cc26ad97
AC
19897 a-cohase.adb: All explicit raise statements now include an exception
19898 message.
19899
19900 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
19901 (Update_Element_Preserving_Key): renamed op to just Update_Element.
19902 Explicit raise statements now include an exception message
19903
19904 * a-cihase.ads, a-cohase.ads: Removed comment.
19905
19906 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
19907 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
19908 a-szbzha.adb, a-szfzha.ads: New files.
19909
199102006-02-13 Matthew Heaney <heaney@adacore.com>
19911
19912 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
19913 quicksort.
19914
199152006-02-13 Eric Botcazou <ebotcazou@adacore.com>
19916
19917 * lang.opt: Wvariadic-macros: New option.
19918 Wold-style-definition: Likewise.
19919 Wmissing-format-attribute: Likewise.
19920
19921 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
19922 -Wold-style-definition and -Wmissing-format-attribute.
19923
199242006-02-13 Robert Dewar <dewar@adacore.com>
19925
19926 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
19927
19928 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
19929
199302006-02-13 Nicolas Roche <roche@adacore.com>
19931
19932 * a-envvar.adb, a-envvar.ads: New files.
19933
199342006-02-13 Douglas Rupp <rupp@adacore.com>
19935
19936 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
19937
19938 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
19939
199402006-02-13 Pat Rogers <rogers@adacore.com>
19941
19942 * a-rttiev.adb, a-rttiev.ads: New files.
19943
199442006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
19945
19946 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
19947 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
19948
19949 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
19950
199512006-02-13 Robert Dewar <dewar@adacore.com>
19952
9e81dbc7 19953 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
cc26ad97
AC
19954 sem_case.adb: Minor code reorganization (not Present should be No)
19955
199562006-02-13 Geert Bosch <bosch@adacore.com>
19957 Gary Dismukes <dismukes@adacore.com>
19958
19959 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
19960 0, since the lower bound of the actual string may be greater than one.
19961
19962 PR ada/20753
ed41063a 19963 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
cc26ad97
AC
19964 layout is requested.
19965
199662006-02-13 Vincent Celier <celier@adacore.com>
19967
19968 * back_end.adb (Scan_Compiler_Arguments): Check if
19969 Search_Directory_Present is True and, if it is, add the argument in
19970 the source search directory path.
19971
19972 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
19973 Search_Directory_Present to True.
19974
199752006-02-13 Joel Brobecker <brobecke@adacore.com>
19976
19977 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
19978 volatile, to tell the compiler to preserve this variable at any level
19979 of optimization.
19980 (Gen_Versions_Ada): Temporarily work around codegen bug.
19981
199822006-02-13 Vincent Celier <celier@adacore.com>
19983
19984 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
19985 gcc to link with option -shared-libgcc.
19986 (Gnatlink): Remove duplicate switches -shared-libgcc
19987
199882006-02-13 Robert Dewar <dewar@adacore.com>
19989
19990 * gnatvsn.ads (Current_Year): New constant, used to easily update
19991 copyright on all GNAT tools.
19992
19993 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
19994 copyright notice.
19995
199962006-02-13 Robert Dewar <dewar@adacore.com>
19997
19998 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
19999 after hyphen (small aesthetic change useful for a range of numbers
20000 using ^-^.
20001 Suppress range checks for a couple of assignments which otherwise
20002 cause validity checks with validity checking turned on.
20003
20004 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20005 Improvement in error message for object.
20006 (Rep_Item_Too_Late): Remove '!' in warning message.
20007
200082006-02-13 Robert Dewar <dewar@adacore.com>
20009 Eric Botcazou <ebotcazou@adacore.com>
20010
20011 * err_vars.ads: Suppress range checks for a couple of assignments
20012 which otherwise cause validity checks with validity checking turned on.
20013 Update comments.
20014
20015 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20016 Make message unconditional if it is a warning.
20017 (Error_Msg_NEL): Always output warning messages.
20018 Suppress range checks for a couple of assignments which otherwise
20019 cause validity checks with validity checking turned on.
20020
20021 * errout.ads (Message Insertion Characters): Document that '!' is
20022 implied by '?' in error messages.
20023
20024 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20025 (Gnat1drv): Use a goto to end of main subprogram instead of
20026 Exit_Program (E_Success) so that finalization can occur normally.
20027
200282006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20029
20030 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20031 wrapped around.
20032
200332006-02-13 Vincent Celier <celier@adacore.com>
20034
20035 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20036 Unchecked_Conversion functions.
20037 (Modification_Time): Use direct conversion of OS_Time to Calendar time
20038 when OpenVMS returns False.
20039
20040 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20041 a-dirval.adb (OpenVMS): New Boolean function
20042
200432006-02-13 Ed Schonberg <schonberg@adacore.com>
20044 Thomas Quinot <quinot@adacore.com>
20045
20046 * checks.adb (Build_Discriminant_Checks): If the expression being
20047 checks is an aggregate retrieve the values of its discriminants to
20048 generate the check, rather than creating a temporary and a reference
20049 to it.
20050 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20051 (Install_Null_Excluding_Check): Ditto
20052 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20053 not for the renamed object, so that the actual itype is attached in the
20054 proper context.
20055
200562006-02-13 Robert Dewar <dewar@adacore.com>
20057 Vincent Celier <celier@adacore.com>
20058
20059 * debug.adb: Eliminate numeric switches for binder/gnatmake
20060
20061 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20062 switches for the compiler.
20063 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20064 (Scan_Make_Switches): When failing with an illegal switch, output an
20065 error message with the full switch.
20066 Eliminate numeric switches for binder/gnatmake
20067
20068 * switch.ads, switch.adb (Bad_Switch): New procedure
20069
20070 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20071 Remove 0-9 as debug flag character possibilities
20072 -d is now controlling the primary stack size when its value is a
20073 positive. Also add checks against invalid values, and support for kb,
20074 mb. Ditto for -D switch.
20075
200762006-02-13 Robert Dewar <dewar@adacore.com>
20077 Serguei Rybin <rybin@adacore.com>
20078
20079 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20080 save/restore routines.
20081 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20082 were not always properly handled previously.
20083 Since we are changing the tree format anyway, also get rid of the
20084 junk obsolete Immediate_Errors flag.
20085 (Tree_Read): Change the way of reading Tree_Version_String - now we
20086 read the version string from the tree even if its length is not the
20087 same as the length of the version string computed from Gnatvsn.
20088 (Search_Directory_Present): New Boolean flag for the compiler.
20089 Define Tree_Version_String as a dynamic string.
20090 (Default_Stack_Size): new variable, used to handle switch -d.
20091
9e81dbc7 20092 * par-prag.adb:
cc26ad97
AC
20093 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20094 only for main unit.
20095 Add pragma Ada_2005 (synonym for Ada_05)
20096 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20097 were not always properly handled previously.
20098
20099 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20100 explicit Ada_95 to Ada_2005.
20101
201022006-02-13 Javier Miranda <miranda@adacore.com>
20103 Robert Dewar <dewar@adacore.com>
20104 Ed Schonberg <schonberg@adacore.com>
20105
20106 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20107 against errors in the source program: a private types for which the
20108 corresponding full type declaration is missing and pragma CPP_Virtual
20109 is used.
20110 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20111 (Is_Known_Null): New flag
20112 (Has_Pragma_Pure): New flag
20113 (No_Return): Present in all entities, set only for procedures
20114 (Is_Limited_Type): A type whose ancestor is an interface is limited if
20115 explicitly declared limited.
20116 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20117 entities. Only used for component marked Is_Tag. If present it stores
20118 the Offset_To_Top function used to provide this value in tagged types
20119 whose ancestor has discriminants.
20120
20121 * exp_ch2.adb: Update status of new Is_Known_Null flag
20122
20123 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20124
20125 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20126 the categorization sense if Is_Pure was set by pragma Pure_Function.
20127
201282006-02-13 Quentin Ochem <ochem@adacore.com>
20129 Olivier Hainque <hainque@adacore.com>
20130
20131 * bindusg.adb: Updated documentation for -d and -D switches.
20132
20133 * raise.h (__gnat_set_globals): added new parameter for
20134 Default_Stack_Size.
20135
20136 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20137 (__gnat_handle_vms_condition): Adjust context before raise.
20138 (__gnat_install_handler): Restore the global vector setup for GCC
20139 versions before 3.4, as the frame based circtuitry is not available
20140 in this case.
20141 (__gnat_set_globals): added a parameter default_stack_size
20142 (__gl_default_stack_size): new variable.
20143
201442006-02-13 Ed Schonberg <schonberg@adacore.com>
20145
20146 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20147 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20148 does not exist in the Ada RM.
20149 (Compatible_Int_Bounds): Determine whether two integer range bounds
20150 are of equal length and have the same start and end values.
20151 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20152 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20153 aggregate when it is part of an object declaration.
20154 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
20155 constrains discriminants of its parent, add explicitly the discriminant
20156 constraints of the ancestor by retrieving them from the
20157 stored_constraint of the parent.
20158
201592006-02-13 Robert Dewar <dewar@adacore.com>
20160
20161 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20162 attribute Mechanism_Code is applied to renamed subprogram, modify
20163 prefix to point to base subprogram.
20164 Max/Min attributes now violate Restriction No_Implicit_Conditionals
20165
20166 * sinfo.ads: Document that Mechanism_Code cannot be applied to
20167 renamed subprograms so that the front-end must replace the prefix
20168 appropriately.
20169
201702006-02-13 Javier Miranda <miranda@adacore.com>
20171 Gary Dismukes <dismukes@adacore.com>
20172
20173 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20174 availability of RE_Interface_Tag.
20175 (Build_Initialization_Call): Fix wrong access to the discriminant value.
20176 (Freeze_Record_Type): Do not generate the tables associated with
20177 timed and conditional dispatching calls through synchronized
20178 interfaces if compiling under No_Dispatching_Calls restriction.
20179 When compiling for Ada 2005, for a nonabstract
20180 type with a null extension, call Make_Controlling_Function_Wrappers
20181 and insert the wrapper function declarations and bodies (the latter
20182 being appended as freeze actions).
20183 (Predefined_Primitive_Bodies): Do not generate the bodies of the
20184 predefined primitives associated with timed and conditional
20185 dispatching calls through synchronized interfaces if we are
20186 compiling under No_Dispatching_Calls.
20187 (Build_Init_Procedure): Use RTE_Available to check if a run-time
20188 service is available before generating a call.
20189 (Make_Controlling_Function_Wrappers): New procedure.
20190 (Expand_N_Full_Type_Declaration): Create a class-wide master for
20191 access-to-limited-interfaces because they can be used to reference
20192 tasks that implement such limited interface.
20193 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20194 procedure spec and body of the Offset_To_Top function that is generated
20195 when the parent of a type with discriminants has secondary dispatch
20196 tables.
20197 (Init_Secondary_Tags): Handle the case in which the parent of the type
20198 containing secondary dispatch tables has discriminants to generate the
20199 correct arguments to call Set_Offset_To_Top.
20200 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20201
20202 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20203 Add Wide_[Wide_]Expanded_Name.
20204 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20205 the same functionality of Get_Prim_Op_Address but applied to predefined
20206 primitive operations because the pointers to the predefined primitives
20207 are now saved in a separate table.
20208 (Parent_Size): Modified to get access to the separate table of primitive
20209 operations or the parent type.
20210 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20211 functionality of Set_Prim_Op_Address but applied to predefined primitive
20212 operations.
20213 (Set_Signature): New subprogram used to store the signature of a DT.
20214 (Displace): If the Offset_To_Top value is not static then call the
20215 function generated by the expander to get such value; otherwise use
20216 the value stored in the table of interfaces.
20217 (Offset_To_Top): The type of the actual has been changed to Address to
20218 give the correct support to tagged types with discriminants. In this
20219 case this value is stored just immediately after the tag field.
20220 (Set_Offset_To_Top): Two new formals have been added to indicate if the
20221 offset_to_top value is static and hence pass this value to the run-time
20222 to store it in the table of interfaces, or else if this value is dynamic
20223 and then pass to the run-time the address of a function that is
20224 generated by the expander to provide this value for each object of the
20225 type.
20226
20227 * rtsfind.ads (Default_Prin_Op_Count): Removed.
20228 (Default_Prim_Op_Count): New entity
20229 (Get_Predefined_Prim_Op_Address): New entity
20230 (Set_Predefined_Prim_Op_Address): New entity
20231 (RE_Set_Signature): New entity
20232
202332006-02-13 Thomas Quinot <quinot@adacore.com>
20234 Ed Schonberg <schonberg@adacore.com>
20235
20236 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20237 Make_Adjust_Call done for a newly-allocated object.
20238
20239 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20240 in a subprogram are wrapped in a cleanup block, indicate that the
20241 subprogram contains an inner block with an exception handler.
20242 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20243 Adjust call is for a newly-allocated object. In that case we must not
20244 assume that the finalization list chain pointers are correct (since they
20245 come from a bit-for-bit copy of the original object's pointers) so if
20246 the attach level would otherwise be zero (no change), we set it to 4
20247 instead to cause the pointers to be reset to null.
20248
20249 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20250 reset chain pointers to null.
20251
202522006-02-13 Ed Schonberg <schonberg@adacore.com>
20253
20254 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20255 string, and the context requires a loop for the assignment (e.g.
20256 because the left-hand side is packed), generate a unique name for the
20257 temporary that holds the string, to prevent spurious name clashes.
20258
202592006-02-13 Ed Schonberg <schonberg@adacore.com>
20260 Javier Miranda <miranda@adacore.com>
20261 Robert Dewar <dewar@adacore.com>
20262 Gary Dismukes <dismukes@adacore.com>
20263
20264 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20265 return unconstrained arrays.
20266 Update comments.
20267 (Expand_Call): An indirect call through an access parameter of a
20268 protected operation is not a protected call.
20269 Add circuit to raise CE in Ada 2005 mode following call
20270 to Raise_Exception.
20271 (Register_DT_Entry): Do nothing if
20272 the run-time does not give support to abstract interfaces.
20273 (Freeze_Subprogram): In case of dispatching operations, do not generate
20274 code to register the operation in the dispatch table if the source
20275 is compiled with No_Dispatching_Calls.
20276 (Register_Predefined_DT_Entry): Generate code that calls the new
20277 run-time subprogram Set_Predefined_Prim_Op_Address instead of
20278 Set_Prim_Op_Address.
20279
20280 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20281 on array assignments if the right-hand side is a function call that has
20282 been inlined. Check is performed on the assignment in the block.
20283 (Process_Bounds): If bounds and range are overloaded, apply preference
20284 rule for root operations to disambiguate, and diagnose true ambiguity.
20285 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20286 a tag-indeterminate right-hand side even when Expander_Active is True.
20287 Needed to ensure that dispatching calls to T'Input are allowed and
20288 get the tag of the target class-wide object.
20289
20290 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20291 an inherited primitive operation that already overrides several
20292 abstract interface primitives. For transitivity, the new entity must
20293 also override all the abstract interface primitives covered by the
20294 inherited overriden primitive.
20295 Emit warning if new entity differs from homograph in same scope only in
20296 that one has an access parameter and the other one has a parameter of
20297 a general access type with the same designated type, at the same
20298 position in the signature.
20299 (Make_Inequality_Operator): Use source locations of parameters and
20300 subtype marks from corresponding equality operator when creating the
20301 tree structure for the implicit declaration of "/=". This does not
20302 change anything in behaviour except that the decoration of the
20303 components of the subtree created for "/=" allows ASIS to get the
20304 string images of the corresponding identifiers.
20305 (Analyze_Return_Statement): Remove '!' in warning message.
20306 (Check_Statement_Sequence): Likewise.
20307 (Analyze_Subprogram_Body): For an access parameter whose designated type
20308 is an incomplete type imported through a limited_with clause, use the
20309 type of the corresponding formal in the body.
20310 (Check_Returns): Implicit return in No_Return procedure now raises
20311 Program_Error with a compile time warning, instead of beging illegal.
20312 (Has_Single_Return): Function returning unconstrained type cannot be
20313 inlined if expression in unique return statement is not an identifier.
20314 (Build_Body_To_Inline): It is possible to inline a function call that
20315 returns an unconstrained type if all return statements in the function
20316 return the same local variable. Subsidiary procedure Has_Single_Return
20317 verifies that the body conforms to this restriction.
20318
20319 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20320 same type, and one of them is of an anonymous access type, convert
20321 the other operand to it, so that this is a valid binary operation for
20322 gigi.
20323 (Resolve_Type_Conversion): Handle subtypes of protected types and
20324 task types when accessing to the corresponding record type.
20325 (Resolve_Allocator): Add '\' in 2-line warning message.
20326 Remove '!' in warning message.
20327 (Resolve_Call): Add '\' in 2-line warning message.
20328 (Valid_Conversion): Likewise.
20329 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20330 resulting type may be an access type with an implicit dereference.
20331 Obtain the proper component from the designated type.
20332 (Make_Call_Into_Operator): Handle properly a call to predefined equality
20333 given by an expanded name with prefix Standard, when the operands are
20334 of an anonymous access type.
20335 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20336 Explicit_Dereference and Resolve_Selected_Component, to verify that the
20337 prefix of the expression is not of an incomplete type. Allows full
20338 diagnoses of all semantic errors.
20339 (Resolve_Actuals): If the actual is an allocator whose directly
20340 designated type is a class-wide interface we build an anonymous
20341 access type to use it as the type of the allocator. Later, when
20342 the subprogram call is expanded, if the interface has a secondary
20343 dispatch table the expander will add a type conversion to force
20344 the displacement of the pointer.
20345 (Resolve_Call): If a function that returns an unconstrained type is
20346 marked Inlined_Always and inlined, the call will be inlined and does
20347 not require the creation of a transient scope.
20348 (Check_Direct_Boolean_Op): Removed
20349 (Resolve_Comparison_Op): Remove call to above
20350 (Resolve_Equality_Op): Remove call to above
20351 (Resolve_Logical_Op): Inline above, since this is only call.
20352 (Valid_Conversion): Handle properly conversions between arrays of
20353 convertible anonymous access types.
20354
20355 PR ada/25885
cc26ad97
AC
20356 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20357 the literal in an unchecked conversion, because GCC 4.x needs a static
20358 value for a string bound.
20359
203602006-02-13 Ed Schonberg <schonberg@adacore.com>
20361 Hristian Kirtchev <kirtchev@adacore.com>
20362
20363 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20364 components of the corresponding record, take into account component
20365 definitions that are access definitions.
20366 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20367 procedure is not considered a dispatching call and will be expanded
20368 properly.
20369
203702006-02-13 Javier Miranda <miranda@adacore.com>
20371
20372 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20373 controlling argument of the dispatching call is an abstract interface
20374 class-wide type then we use it directly.
20375 Check No_Dispatching_Calls restriction.
20376 (Default_Prim_Op_Position): Remove the code that looks for the last
20377 entity in the list of aliased subprograms. This code was wrong in
20378 case of renamings.
20379 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20380 when the source is compiled with the No_Dispatching_Calls restriction.
20381 (Init_Predefined_Interface_Primitives): No need to inherit primitives
20382 if we are compiling with restriction No_Dispatching_Calls.
20383 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20384 subprograms if we are compiling under No_Dispatching_Calls restriction.
20385 (Make_DT): Generate a dispatch table with a single dummy entry if
20386 we are compiling with the No_Dispatching_Calls restriction. In
20387 addition, in this case we don't generate code that calls to the
20388 following run-time subprograms: Set_Type_Kind, Inherit_DT.
20389 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20390 of this subprogram if compiling with the No_Dispatching_Calls
20391 restriction.
20392 (Expand_Type_Conversion): Instead of using the actual parameter,
20393 the argument passed as parameter to the conversion function was
20394 erroneously referenced by the expander.
20395 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20396 Set_Predefined_Primitive_Op_Address and Set_Signature.
20397 (Expand_Dispatching_Call): Generate call to
20398 Get_Predefined_Prim_Op_Address for predefined primitives.
20399 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20400 predefined primitives.
20401 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20402 primitives we reserve one dummy entry to ensure that the tag does not
20403 point to some memory that is associated with some other object. In
20404 addition, remove all the old code that generated the assignments
20405 associated with the signature of the dispatch table and replace them
20406 by a call to the new subprogram Set_Signature.
20407 (Set_All_DT_Position): Change the algorithm because now we have a
20408 separate dispatch table associated with predefined primitive operations.
20409 (Expand_Interface_Conversion): In case of non-static offset_to_top
20410 add explicit dereference to get access to the object after the call
20411 to displace the pointer to the object.
20412 (Expand_Interface_Thunk): Modify the generation of the actual used
20413 in the calls to the run-time function Offset_To_Top to fulfil its
20414 new interface.
20415 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20416
204172006-02-13 Ed Schonberg <schonberg@adacore.com>
20418
20419 * exp_dist.adb (Copy_Specification): For access parameters, copy
20420 Null_Exclusion flag, which will have been set for stream subprograms
20421 in Ada2005 mode.
20422
204232006-02-13 Pascal Obry <obry@adacore.com>
20424
20425 * expect.c (__gnat_expect_portable_execvp): New implementation. The
20426 previous implementation was using the C runtime spawnve routine but
20427 the corresponding wait was using directly the Win32 API. This was
20428 causing some times a lock when waiting for an event using
20429 WaitForSingleObject in __gnat_waitpid. This new implementation uses
20430 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20431 API fixes this problem.
20432
204332006-02-13 Robert Dewar <dewar@adacore.com>
20434
20435 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20436 call.
20437
204382006-02-13 Thomas Quinot <quinot@adacore.com>
20439
20440 * exp_pakd.ads: Fix typos in comments.
20441
20442 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20443 array reference that is an explicit dereference, mark the converted
20444 (packed) array reference as analyzed to prevent a forthcoming
20445 reanalysis from resetting its type to the original (non-packed) array
20446 type.
20447
204482006-02-13 Ed Schonberg <schonberg@adacore.com>
20449 Javier Miranda <miranda@adacore.com>
20450 Eric Botcazou <ebotcazou@adacore.com>
20451
20452 * exp_util.ads, exp_util.adb (Find_Prim_Op,
20453 Is_Predefined_Primitive_Operation): When
20454 searching for the predefined equality operator, verify that operands
20455 have the same type.
20456 (Is_Predefined_Dispatching_Operation): Remove the code that looks
20457 for the last entity in the list of aliased subprograms. This code
20458 was wrong in case of renamings.
20459 (Set_Renamed_Subprogram): New procedure
20460 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20461 Exp_Type constant computed when entering this subprogram.
20462 (Known_Null): New function
20463 (OK_To_Do_Constant_Replacement): New function
20464 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20465 (Side_Effect_Free): An attribute reference 'Input is not free of
20466 side effect, unlike other attributes that are functions. (from code
20467 reading).
20468 (Remove_Side_Effects): Expressions that involve packed arrays or records
20469 are copied at the point of reference, and therefore must be marked as
20470 renamings of objects.
20471 (Is_Predefined_Dispatching_Operation): Return false if the operation is
20472 not a dispatching operation.
20473
20474 PR ada/18819
20475 (Remove_Side_Effects): Lift enclosing type conversion nodes for
20476 elementary types in all cases.
20477
204782006-02-13 Javier Miranda <miranda@adacore.com>
20479
20480 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20481 task types when accessing to the corresponding record type.
20482 Remove '!' in warning message.
20483
204842006-02-13 Olivier Hainque <hainque@adacore.com>
20485
20486 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20487 to avoid useless and space inefficient overalignments on targets where
20488 Max_Alignment is larger than 16.
20489
204902006-02-13 Pascal Obry <obry@adacore.com>
20491
20492 * g-catiio.adb (Sec_Number): New type used to compute the number of
20493 seconds since 1-1-1970.
20494 (Image) [Natural]: The parameter was an Integer, as we can't deal with
20495 negative numbers (years, months...) it is better to have a Natural here.
20496 Code clean-up.
20497 (Image) [Number]: Change parameter from Long_Integer to Number.
20498 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20499 overflow for dates past year 2038.
20500
205012006-02-13 Matthew Heaney <heaney@adacore.com>
20502
20503 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20504 Constraint_Error.
20505
205062006-02-13 Arnaud Charlet <charlet@adacore.com>
20507
20508 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20509 native platforms.
20510 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20511 finalization can occur normally.
20512
205132006-02-13 Vincent Celier <celier@adacore.com>
20514
20515 * gnatcmd.adb (Rules_Switches): New table
20516 (Add_To_Rules_Switches): New procedure
20517 (GNATCmd): For command CHECK, put all options following "-rules" in the
20518 Rules_Switches table. Append these -rules switches after the -cargs
20519 switches.
20520
205212006-02-13 Robert Dewar <dewar@adacore.com>
20522
20523 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20524 These two cases were generating incorrect output, and if this unit
20525 was built with checks on, generated a discriminant mismatch constraint
20526 error.
20527
205282006-02-13 Ed Schonberg <schonberg@adacore.com>
20529 Robert Dewar <dewar@adacore.com>
20530
20531 * lib-xref.adb (Get_Type_Reference): For a private type whose full
20532 view is an array type, indicate the component type as well, for
20533 navigation purposes.
20534 (Generate_Reference): Don't consider array ref on LHS to be a case
20535 of violating pragma Unreferenced.
20536 Do not give Ada 2005 warning except on real reference.
20537
205382006-02-13 Vincent Celier <celier@adacore.com>
20539
20540 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20541 main source, add switch -mdebug-main=_ada_ so that the executable can
20542 be debugged by the standard VMS debugger.
20543 (Gnatmake): Set No_Main_Subprogram to True when there is no main
20544 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20545 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20546 of the last source, as the binding and linking phases are never
20547 performed.
20548 Set all executable obsolete when rebuilding a library.
20549
20550 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20551 options.
20552
205532006-02-13 Javier Miranda <miranda@adacore.com>
20554
20555 PR ada/23973
cc26ad97
AC
20556 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20557 code to improve the error message reported when the program has
20558 declarations of abstract interface types and it is not compiled with
20559 the -gnat05 switch.
20560 (P_Access_Definition): Reorganize the code to improve the error
20561 message reported when the new Ada 2005 syntax for anonymous
20562 access types is used and the program is not compiled with the
20563 -gnat05 switch.
20564
205652006-02-13 Robert Dewar <dewar@adacore.com>
20566
20567 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
20568 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
20569 (MODE_IN)
20570
205712006-02-13 Javier Miranda <miranda@adacore.com>
20572
20573 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
20574 against source containing syntax errors.
20575
205762006-02-13 Vincent Celier <celier@adacore.com>
20577
20578 * prj.adb (Reset): Initialize the first element of table Namings with
20579 the standard naming data.
20580
205812006-02-13 Vincent Celier <celier@adacore.com>
20582
20583 * prj.ads (Error_Warning): New enumeration type
20584
20585 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
20586 unknown, use the location of the project to report the error.
20587 (When_No_Sources): New global variable
20588 (Report_No_Ada_Sources): New procedure
20589 (Check): New parameter When_No_Sources. Set value of global variable
20590 When_No_Sources,
20591 (Find_Sources): Call Report_No_Ada_Sources when appropriate
20592 (Get_Sources_From_File): Ditto
20593 (Warn_If_Not_Sources): Better warning messages indicating the unit name
20594 and the file name.
20595
20596 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
20597 Call Prj.Proc.Process with parameter When_No_Sources.
20598
20599 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
20600 Call Recursive_Check with parameter When_No_Sources.
20601 (Recursive_Check): New parameter When_No_Sources. Call itself and
20602 Prj.Nmsc.Check with parameter When_No_Sources.
20603 (Process): New parameter When_No_Sources. Call Check with parameter
20604 When_No_Sources.
20605 (Copy_Package_Declarations): New procedure to copy renamed parameters
20606 and setting the location of the declared attributes to the location
20607 of the renamed package.
20608 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
20609 packages.
20610
206112006-02-13 Vincent Celier <celier@adacore.com>
20612
20613 * prj-makr.adb (Make): Preserve the comments from the original project
20614 file.
20615 When removing nodes (attributes Source_Dirs, Source_Files,
20616 Source_List_File and package Naming), save the comments and attach the
20617 saved comments to the newly created nodes.
20618 Do not add a with clause for the naming package if one already exists.
20619
206202006-02-13 Javier Miranda <miranda@adacore.com>
20621 Gary Dismukes <dismukes@adacore.com>
20622 Robert Dewar <dewar@adacore.com>
20623
20624 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
20625
20626 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
20627 aliased entities to look for the overriden abstract interface
20628 subprogram.
20629 (Is_Interface_Subprogram): Complete documentation.
20630 (Check_Dispatching_Operation): Do not generate code to register the
20631 operation in the dispatch table if the source is compiled with
20632 restriction No_Dispatching_Calls.
20633 (Override_Dispatching_Operation): Check for illegal attempt to override
20634 No_Return procedure with procedure that is not No_Return
20635 (Check_Dispatching_Call): Suppress the check for an abstract operation
20636 when the original node of an actual is a tag-indeterminate attribute
20637 call, since the attribute, which must be 'Input, can never be abstract.
20638 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
20639 call to the Input attribute (even when rewritten).
20640 (Propagate_Tag): Augment comment to indicate the possibility of a call
20641 to an Input attribute.
20642
20643 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
20644 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
20645
20646 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
20647 No_Wide_Characters is no longer partition-wide
20648 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
20649 rather than GNAT
20650
206512006-02-13 Douglas Rupp <rupp@adacore.com>
20652
20653 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
20654
206552006-02-13 Javier Miranda <miranda@adacore.com>
20656
20657 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
20658 handles default-initialized components to keep separate the management
20659 of this feature but also avoid the unrequired resolution and
20660 expansion of components that do not have partially initialized
20661 values.
20662 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
20663 (Check_Bounds): Likewise.
20664 (Check_Length): Likewise.
20665
206662006-02-13 Javier Miranda <miranda@adacore.com>
20667 Ed Schonberg <schonberg@adacore.com>
20668
20669 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
20670 abstract interface type call analyze_and_resolve to expand the type
20671 conversion into the corresponding displacement of the
20672 reference to the base of the object.
20673 (Eval_Attribute, case Width): For systems where IEEE extended precision
20674 is supported, the maximum exponent occupies 4 decimal digits.
20675 (Accessibility_Message): Add '\' in 2-line warning message.
20676 (Resolve_Attribute): Likewise.
20677 (case Attribute_Access): Significantly revise checks
20678 for illegal access-to-subprogram Access attributes to properly enforce
20679 the rules of 3.10.2(32/2).
20680 Diagnose use of current instance with an illegal attribute.
20681
6f7f72f9
EB
20682 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
20683 to a Node_Id.
20684 (Enclosing_Generic_Unit): New function to return a node's innermost
20685 enclosing generic declaration node.
20686 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
20687 (Type_Access_Level): The accessibility level of anonymous acccess types
20688 associated with discriminants is that of the current instance of the
20689 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
20690 (Compile_Time_Constraint_Error): Handle case of conditional expression.
20691 (Kill_Current_Values_For_Entity): New function
20692 (Enter_Name): Change formal type to Entity_Id
cc26ad97
AC
20693
206942006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20695 Ed Schonberg <schonberg@adacore.com>
20696 Gary Dismukes <dismukes@adacore.com>
20697
20698 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
20699 Analyze_Compilation_Unit.
20700 Detect and warn on redundant with clauses detected in a package spec
20701 and/or body when -gnatwr is used.
20702 (Analyze_Context): Analyze config pragmas before other items
20703 (Install_Context_Items): Don't analyze config pragmas here
20704 (Install_Limited_Withed_Unit): Set limited entity of package in
20705 with_clause so that cross-reference information or warning messages on
20706 unused packages can be properly generated
20707 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
20708 has Error_Posted set. Prevent infinite loops in illegal programs.
20709 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
20710 to the point of the error test requiring the current unit to be private.
20711 This ensures that private with clauses are not exempted from the basic
20712 checking for being a descendant of the same library unit parent as a
20713 withed private descendant unit.
20714 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
20715 handle private with clauses properly, as well as to account for cases
20716 where the withed unit is a public descendant of a private ancestor
20717 (in which case the current unit must be a descendant of the private
20718 ancestor's parent). The spec comments were updated accordingly. Also,
20719 the old error message in this subprogram was replaced with error
20720 messages that mirror the errors tested and reported by
20721 Check_Private_Child_Unit.
20722 Parameter and variable names improved for readability.
20723 (Install_Limited_Context_Clauses): Remove test for a withed unit being
20724 private as the precondition for calling
20725 Check_Private_Limited_Withed_Unit since that subprogram has been
20726 revised to test public units as well as private units.
20727
207282006-02-13 Thomas Quinot <quinot@adacore.com>
20729 Robert Dewar <dewar@adacore.com>
20730 Ed Schonberg <schonberg@adacore.com>
20731 Javier Miranda <miranda@adacore.com>
20732
20733 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
20734 that Scope_Stack.First = 1.
20735 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20736 were not always properly handled previously.
20737 (Formal_Entity): Complete rewrite, to handle properly some complex case
20738 with multiple levels of parametrization by formal packages.
20739 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
20740 to the corresponding derived type declaration for proper semantics.
20741
20742 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
20743 (Check_Component): Enforce restriction on components of
20744 unchecked_unions: a component in a variant cannot contain tasks or
20745 controlled types.
20746 (Unchecked_Union): Allow nested variants and multiple discriminants, to
20747 conform to AI-216.
20748 Add pragma Ada_2005 (synonym for Ada_05)
20749 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20750 were not always properly handled previously.
20751 Document that pragma Propagate_Exceptions has no effect
20752 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
20753 (Set_Convention_From_Pragma): Check that if a convention is
20754 specified for a dispatching operation, then it must be
20755 consistent with the existing convention for the operation.
20756 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
20757 longer required to specify an vtable-ptr component in the record. For
20758 compatibility reasons we leave the support for the previous definition.
20759 (Analyze_Pragma, case No_Return): Allow multiple arguments
20760
20761 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
20762 non-overrideen inherited operation with a controlling result as
20763 illegal only its implicit declaration comes from the derived type
20764 declaration of its result's type.
20765 (Check_Possible_Deferred_Completion): Relocate the object definition
20766 node of the subtype indication of a deferred constant completion rather
20767 than directly analyzing it. The analysis of the generated subtype will
20768 correctly decorate the GNAT tree.
20769 (Record_Type_Declaration): Check whether this is a declaration for a
20770 limited derived record before analyzing components.
20771 (Analyze_Component_Declaration): Diagnose record types not explicitly
20772 declared limited when a component has a limited type.
20773 (Build_Derived_Record_Type): Code reorganization to check if some of
20774 the inherited subprograms of a tagged type cover interface primitives.
20775 This check was missing in case of a full-type associated with a private
20776 type declaration.
20777 (Constant_Redeclaration): Check that the subtypes of the partial and the
20778 full view of a constrained deferred constant statically match.
20779 (Mentions_T): A reference to the current type in an anonymous access
20780 component declaration must be an entity name.
20781 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
20782 class_wide type to refer to full type, not to the incomplete one.
20783 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
20784 available. Required to give support to the certified run-time.
20785 (Analyze_Component_Declaration): In case of anonymous access components
20786 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
20787 (Process_Discriminants): For an access discriminant, use the
20788 discriminant specification as the associated_node_for_itype, to
20789 simplify accessibility checks.
20790
207912006-02-13 Ed Schonberg <schonberg@adacore.com>
20792 Javier Miranda <miranda@adacore.com>
20793
20794 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
20795 abstract interpretations on an operator, remove interpretations that
20796 yield Address or a type derived from it, if one of the operands is an
20797 integer literal.
20798 (Try_Object_Operation.Try_Primitive_Operation,
20799 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
20800 location when creating the new reference to a primitive or class-wide
20801 operation as a part of rewriting a subprogram call.
20802 (Try_Primitive_Operations): If context requires a function, collect all
20803 interpretations after the first match, because there may be primitive
20804 operations of the same type with the same profile and different return
20805 types. From code reading.
20806 (Try_Primitive_Operation): Use the node kind to choose the proper
20807 operation when a function and a procedure have the same parameter
20808 profile.
20809 (Complete_Object_Operation): If formal is an access parameter and prefix
20810 is an object, rewrite as an Access reference, to match signature of
20811 primitive operation.
20812 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
20813 by an expanded name with prefix Standard, when the operands are of an
20814 anonymous access type.
20815 (Remove_Abstract_Operations): If the operation is abstract because it is
20816 inherited by a user-defined type derived from Address, remove it as
20817 well from the set of candidate interpretations of an overloaded node.
20818 (Analyze_Membership_Op): Membership test not applicable to cpp-class
20819 types.
20820
208212006-02-13 Bob Duff <duff@adacore.com>
20822
20823 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
20824 redundant use clauses.
20825 In particular, if the scope of two use clauses overlaps, but one is not
20826 entirely included in the other, we should not warn. This can happen
20827 with nested packages.
20828 (Analyze_Subprogram_Renaming): Protect the compiler against previously
20829 reported errors. The bug was reported when the compiler was built
20830 with assertions enabled.
20831 (Find_Type): If the node is a 'Class reference and the prefix is a
20832 synchronized type without a corresponding record, return the type
20833 itself.
20834
208352006-02-13 Javier Miranda <miranda@adacore.com>
20836
20837 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
20838 if this is the full-declaration associated with a private declaration
20839 that implement interfaces, then the private type declaration must be
20840 limited.
20841 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
20842 as aliased. The use of the 'access attribute is not available for such
20843 object (for this purpose the object should be explicitly marked as
20844 aliased, but being an anonymous type this is not possible).
20845
208462006-02-13 Ed Schonberg <schonberg@adacore.com>
20847 Robert Dewar <dewar@adacore.com>
20848
20849 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
20850 compilation unit is an elaboration scope.
20851 (Add_Task_Proc): Add '\' in 2-line warning message.
20852 (Activate_All_Desirable): Deal with case of unit with'ed by parent
20853
208542006-02-13 Ed Schonberg <schonberg@adacore.com>
20855 Javier Miranda <miranda@adacore.com>
20856
20857 * sem_type.adb (Write_Overloads): Improve display of candidate
20858 interpretations.
20859 (Add_One_Interp): Do not add to the list of interpretations aliased
20860 entities corresponding with an abstract interface type that is an
20861 immediate ancestor of a tagged type; otherwise we have a dummy
20862 conflict between this entity and the aliased entity.
20863 (Disambiguate): The predefined equality on universal_access is not
20864 usable if there is a user-defined equality with the proper signature,
20865 declared in the same declarative part as the designated type.
20866 (Find_Unique_Type): The universal_access equality operator defined under
20867 AI-230 does not cover pool specific access types.
20868 (Covers): If one of the types is a generic actual subtype, check whether
20869 it matches the partial view of the other type.
20870
208712006-02-13 Thomas Quinot <quinot@adacore.com>
20872
20873 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
20874 line. This is necessary to allow In_Extended_Main_Unit to provide
20875 correct results for itypes while writing out expanded source.
20876 (Close_File): No need to update the source_index_table here since it's
20877 now done for each line.
20878
208792006-02-13 Ed Schonberg <schonberg@adacore.com>
20880 Robert Dewar <dewar@adacore.com>
20881
20882 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
20883 preserve the source unit where the itype is declared, and prevent a
20884 backend abort.
20885 (Note_Implicit_Run_Time_Call): New procedure
20886 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
20887 E_Subprogram_Type)
20888
20889 * sprint.ads: Document use of $ for implicit run time routine call
20890
208912006-02-13 Quentin Ochem <ochem@adacore.com>
20892
20893 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
20894 task name.
20895
208962006-02-13 Bob Duff <duff@adacore.com>
20897
20898 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
20899 Scan_Unsigned, so we do not scan leading blanks and sign twice.
20900 Integer'Value("- 5") and Integer'Value("-+5") now correctly
20901 raise Constraint_Error.
20902
20903 * s-vallli.adb (Scan_Long_Long_Integer): Call
20904 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
20905 do not scan leading blanks and sign twice.
20906 Integer'Value("- 5") and Integer'Value("-+5") now correctly
20907 raise Constraint_Error.
20908
20909 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
20910 Scan_Long_Long_Unsigned): Split out most of the processing from
20911 Scan_Long_Long_Unsigned out into
20912 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
20913 This prevents scanning leading blanks and sign twice.
20914 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
20915 See RM-3.5(44).
20916
20917 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
20918 out most of the processing from Scan_Unsigned out into
20919 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
20920 This prevents scanning leading blanks and sign twice.
20921
20922 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
20923 use with Modular'Value attribute.
20924 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
20925 attribute.
20926
209272006-02-13 Robert Dewar <dewar@adacore.com>
20928
20929 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
20930
209312006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20932
20933 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
20934 (PPC VxWorks): Likewise.
20935 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
20936 (forced_callee): Make non-inlinable and non-pure.
20937 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
20938
209392006-02-13 Arnaud Charlet <charlet@adacore.com>
20940 Ben Brosgol <brosgol@adacore.com>
20941 Robert Dewar <dewar@adacore.com>
20942
20943 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
20944 support.
20945 Document that gnatbind -M option is for cross environments only.
20946 Added description of using gnatmem to trace gnat rtl allocs and deallocs
20947 Add note on use of $ to label implicit run time calls
20948 Add documentation for -gnatyI (check mode IN)
20949 Updated chapter on compatibility with HP Ada
20950 VMS-oriented edits.
20951 Ran spell and corrected errors
20952 Add documentation for gnatbind -d and rework documentation of -D
20953 at the same time.
20954 Add subprogram/data elimination section.
20955 Minor editing of annex A.
20956 Add section for gnatcheck.
20957 Add documentation for restriction No_Dispatching_Calls
20958 Add documentation for pragma Ada_2005
20959 Remove mention of obsolete pragma Propagate_Exceptions
20960 Document that pragma Unreferenced can appear after DO in ACCEPT
20961 Clarify Pure_Function for library level units
20962 Mention Max/Min in connection with No_Implicit_Conditionals
20963 No_Wide_Characters restriction is no longer partition-wide
20964 Add a nice example for Universal_Literal_String attribute
20965 Document that pragma No_Return can take multiple arguments
20966
20967 * ug_words: Added entry for gnatcheck
20968
20969 * g-ctrl_c.ads (Install_Handler): Enhance comments
20970
20971 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
20972
20973 * g-trasym.ads: Add documentation on how to do off line symbolic
20974 traceback computation.
20975
20976 * s-fatgen.adb: Add comments for Unaligned_Valid
20977
20978 * stand.ads: Fix typo in comment
20979
0e692cc0
RO
209802006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20981
20982 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
20983
f44013ae
RS
209842006-02-06 Roger Sayle <roger@eyesopen.com>
20985
20986 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
20987
3df6582b
JDA
209882006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20989
20990 PR target/25926
20991 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
20992 implementation that calls __main.
20993
f57a2203
PG
209942006-01-25 Peter O'Gorman <peter@pogma.com>
20995
20996 PR bootstrap/25859
20997 * Makefile.in (GCC_LINK): Remove quotes.
20998 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
20999 or $(GCC_LINK).
21000
21001 (powerpc-darwin): Pass -shared-libgcc when building shared library.
21002
4bf2d473
JDA
210032006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21004
21005 PR ada/24533
21006 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21007
4580c9a6
JDA
210082005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21009
21010 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21011
e5c681b3
AC
210122005-12-12 Arnaud Charlet <charlet@adacore.com>
21013
21014 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21015 needed.
21016
b0b8e176
AC
210172005-12-12 Arnaud Charlet <charlet@adacore.com>
21018
21019 * Make-lang.in: Update dependencies
21020
53fcb103
AC
210212005-12-12 Arnaud Charlet <charlet@adacore.com>
21022
21023 * Make-lang.in: Add rule for ada/exp_sel.o
21024
25b06cda
AC
210252005-12-12 Arnaud Charlet <charlet@adacore.com>
21026
21027 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21028
aedc2c2b
AC
210292005-12-09 Arnaud Charlet <charlet@adacore.com>
21030
21031 * gnatvsn.ads (Library_Version): Bump to version 4.2
21032 (ASIS_Version_Number): Bumped.
21033
210342005-12-09 Doug Rupp <rupp@adacore.com>
21035
21036 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21037 Ada bind file prefix on VMS from b$ to b__.
21038 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21039 __init.
21040
21041 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21042 Targparm.OpenVMS_On_Target.
21043 (Object_Suffix): Initialize with target object suffix.
21044 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21045
21046 * butil.adb: Change some Hostparm.OpenVMS checks to
21047 Targparm.OpenVMS_On_Target.
21048
21049 * clean.adb: Change some Hostparm.OpenVMS checks to
21050 Targparm.OpenVMS_On_Target.
21051 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21052 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21053 Ada bind file prefix on VMS from b$ to b__.
21054
21055 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21056 --GCC so that Get_Target_Parameters can find system.ads.
21057 (Gnatlink): Call Get_Target_Parameters in mainline.
21058 Initialize standard packages for Targparm.
21059 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21060 (Process_Args): Also Check for object files with target object
21061 extension.
21062 (Make_Binder_File_Names): Create with target object extension.
21063 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21064 to b__.
21065
21066 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21067 Targparm.OpenVMS_On_Target.
21068 ({declaration},Build_Library,Check_Library): Change Ada bind file
21069 prefix on VMS from b$ to b__.
21070
21071 * osint-b.adb: Change some Hostparm.OpenVMS checks to
21072 Targparm.OpenVMS_On_Target.
21073 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21074 b__.
21075
21076 * targext.c: New file.
21077
21078 * Makefile.in: add support for vxworks653 builds
21079 (../../vxaddr2line): gnatlink with targext.o.
21080 (TOOLS_LIBS): Move targext.o to precede libgnat.
21081 (init.o, initialize.o): Minor clean up in dependencies.
21082 (GNATLINK_OBJS): Add targparm.o, snames.o
21083 Add rules fo building targext.o and linking it explicitly with all
21084 tools.
21085 Also add targext.o to gnatlib.
21086
21087 * Make-lang.in: Add rules for building targext.o and linking it in
21088 with gnat1 and gnatbind.
21089 Add entry for exp_sel.o.
21090
21091 * osint.adb Change some Hostparm.OpenVMS checks to
21092 Targparm.OpenVMS_On_Target.
21093 (Object_File_Name): Use target object suffix.
21094
21095 * osint.ads (Object_Suffix): Remove, no longer used.
21096 (Target_Object_Suffix): Initialize with target object suffix.
21097
21098 * rident.ads: Add special exception to license.
21099
21100 * targparm.adb (Get_Target_Parameters): Set the value of
21101 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21102 value.
21103 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
9e81dbc7 21104
aedc2c2b
AC
21105 * targparm.ads: Add special exception to license.
21106
21107 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21108 function.
21109 (Copy_File): Make sure from file is closed if error on to file
21110 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21111
21112 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21113 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21114
21115 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21116 target object suffix.
21117
211182005-12-09 Jose Ruiz <ruiz@adacore.com>
21119 Quentin Ochem <ochem@adacore.com>
21120 Florian Villoing <villoing@adacore.com>
21121
6f7f72f9 21122 * a-taster.ads, a-taster.adb: New files.
aedc2c2b
AC
21123
21124 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21125 link to the version that does nothing. This way the task termination
21126 routine is not executed twice for the environment task when finishing
21127 because of an unhandled exception.
21128
21129 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21130 handler because of an unhandled exception.
21131
21132 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21133 System.Tasking.Utilities instead of that in System.Tasking.Stages.
21134
21135 * s-finimp.adb (initialization code): Modify the soft link for the
21136 finalization of the global list instead of Adafinal.
21137
21138 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21139 non-tasking version of the soft link for task termination. We do
21140 nothing since if we are using the non-tasking version it
21141 means that the task termination functionality is not used.
21142 (Null_Finalize_Global_List): Add this null version for the procedure
21143 in charge of finalizing the global list for controlled objects.
21144 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21145 instead for handling run-time termination in a more flexible way.
21146 (Adafinal_NT): This new procedure will take care of finalizing the
21147 global list for controlled objects if needed, but no tasking
21148 finalization.
21149
21150 * s-tarest.adb (Task_Lock): Do not try to lock again the
21151 Global_Task_Lock if we already own it. Otherwise, we get blocked in
21152 some run-time operations.
21153 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21154 until all nested locks have been released.
21155 (Task_Wrapper): Call the fall-back task termination handler. It
21156 applies to all tasks but the environment task.
21157 (Finalize_Global_Tasks): Add the call for the task termination
21158 procedure for the environment task.
21159 (Task_Wrapper): suppress warnings around declaration of
21160 Secondary_Stack_Address.
21161
21162 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21163 moved to the Common_ATCB record.
21164 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21165 Common_ATCB record.
21166 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21167 Common_ATCB record.
21168
21169 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21170 Fall_Back_Handler, and Specific_Handler.
21171
21172 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21173 defined in Ada.Task_Termination, to avoid circular dependencies.
21174 (Termination_Handler): Redefine this type here, alredy defined in
21175 Ada.Task_Termination, for avoiding circular dependencies.
21176 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21177 for storing task termination handlers. In addition,
21178 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21179 Common_ATCB because it is used by both the regular and the restricted
21180 run times.
21181 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21182 Common_ATCB because it is used by both the regular and the restricted
21183 run times.
21184 (Common_ATCB): Added a dynamic task analyzer field.
21185
21186 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21187 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21188 (Task_Wrapper): Call the task termination handler. It applies to all
21189 tasks but the environment task.
21190 (Finalize_Global_Tasks): Call the task termination procedure for the
21191 environment task. The call to Finalize_Global_List is now performed
21192 using the soft links mechanism.
21193 (Task_Wrapper): added dynamic stack analysis.
21194
21195 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21196 potentially blocking operations has been moved from
21197 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21198 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21199 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21200 this run-time check.
21201
21202 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21203 of task termination procedure.
21204 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21205 link for the task termination procedure.
21206
21207 * bindusg.adb: (Bindusg): Added documentation for -u option.
21208
21209 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21210 (Get_Main_C): Add handling of dynamic stack analysis.
21211 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21212
21213 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21214 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21215 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21216
21217 * opt.ads: Added flags used by dynamic stack measurement.
21218 (Max_Line_Length): Remove (not used anymore)
21219
21220 * s-io.ads, s-io.adb (Standard_Error): new subprogram
21221 (Standart_Output): new subprogram
21222 (Set_Output): new subprogram
21223 (Put): now uses the value of Current_Out to know if the output has to be
21224 send to stderr or stdout.
9e81dbc7 21225
aedc2c2b
AC
21226 * s-stausa.ads: Complete implementation.
21227
21228 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
9e81dbc7 21229
aedc2c2b
AC
21230 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21231 list of Ada 05 files.
21232 (GNAT Library Units): Add AltiVec files.
21233
21234 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21235 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21236 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21237
212382005-12-09 Nicolas Setton <setton@adacore.com>
21239
21240 * adaint.c (__gnat_locate_regular_file): Return immediately if
21241 file_name is empty.
21242
212432005-12-09 Javier Miranda <miranda@adacore.com>
21244 Hristian Kirtchev <kirtchev@adacore.com>
21245
21246 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21247 to the specification because the frontend generates code that uses this
21248 subprogram.
21249 (Set_Interface_Table): Add missing assertion.
21250 Update documentation describing the run-time structure.
21251 (Displace): New subprogram that displaces the pointer to the object
21252 to reference one of its secondary dispatch tables.
21253 (IW_Membership): Modified to use the new table of interfaces.
21254 (Inherit_TSD): Modified to use the new table of interfaces.
21255 (Register_Interface_Tag): Use the additional formal to fill the
21256 contents of the new table of interfaces.
21257 (Set_Interface_Table): New subprogram that stores in the TSD the
21258 pointer to the table of interfaces.
21259 (Set_Offset_To_Top): Use the additional formal to save copy of
21260 the offset value in the table of interfaces.
21261 Update structure of GNAT Primary and Secondary dispatch table diagram.
21262 Add comment section on GNAT dispatch table prologue.
21263 (Offset_To_Signature): Update the constant value of the Signature field.
21264 (Dispatch_Table): Update comment on hidden fields in the prologue.
21265 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21266 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21267 the type of formal parameter T to Tag, introduce additional assertions.
21268 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21269 conversion.
21270 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21271
21272 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21273 in all the calls to Expand_Interface_Thunk. Instead of referencing the
21274 record component containing the tag of the secondary dispatch table we
21275 have to use the Offset_To_Top run-time function to get this information;
21276 otherwise if the pointer to the base of the object has been displace
21277 we get a wrong value if we use the 'position attribute.
21278
21279 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21280 all the calls to Expand_Interface_Thunk.
21281 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21282 interfaces; hence the call to Set_Interface_Table was clearly wrong.
21283 (Collect_All_Interfaces): Modify the internal subprogram Collect to
21284 ensure that the interfaces implemented by the ancestors are placed
21285 at the header of the generated list.
21286 (Expand_Interface_Conversion): Handle the case in which the displacement
21287 associated with the interface conversion is not statically known. In
21288 this case we generate a call to the new run-time subprogram Displace.
21289 (Make_DT): Generate and fill the new table of interfaces.
21290 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21291 Get_Tagged_Kind and Set_Tagged_Kind.
21292 (Tagged_Kind): New function that determines the tagged kind of a type
21293 with respect to limitedness and concurrency and returns a reference to
21294 RE_Tagged_Kind.
21295 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21296 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21297 primary dispatch table for a type.
21298 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21299 secondary dispatch table respectively of a tagged type.
21300
21301 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21302 (Expand_Interface_Conversion): New subprogram to indicate if the
21303 displacement of the type conversion is statically known.
21304 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21305
21306 * rtsfind.ads (RE_Offset_To_Top): New entity
21307 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21308 accessible to users.
21309 (Re_Displace): New entity
21310 (RE_Interface_Data): New entity
21311 (RE_Set_Interface_Data): New_Entity
21312 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21313 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21314 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21315 RE_TK_Tagged, RE_TK_Task.
21316
21317 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21318 Init_Secondary_Tags_Internal to allow its use with interface types and
21319 also to generate the code for the new additional actual required
21320 by Set_Offset_To_Top.
21321 (Build_Init_Statements): In case of components associated with abstract
21322 interface types there is no need to generate a call to its IP.
21323 (Freeze_Record_Type): Generate Select Specific Data tables only for
21324 concurrent types.
21325 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21326 the bodies and specifications of the predefined primitive operations
21327 dealing with dispatching selects and abort, 'Callable, 'Terminated only
21328 for concurrent types.
21329
6f7f72f9 21330 * exp_sel.ads, exp_sel.adb: New files.
aedc2c2b
AC
21331
21332 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21333 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21334 properly protected objects and attach handler in the case of the
21335 restricted profile.
21336 Move embeded package Select_Expansion_Utilities into a separate external
21337 package.
21338 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21339 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21340 (Build_K, Build_S_Assignment): New subprograms, part of the select
21341 expansion utilities.
21342 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21343 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21344 where the trigger is a dispatching procedure of a limited tagged type.
21345
213462005-12-09 Olivier Hainque <hainque@adacore.com>
21347
21348 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21349 pointer initialization values. Make a SAVE_EXPR instead. Add comments
21350 about the use and expansion of SAVE_EXPRs in the various possible
21351 renaming handling cases.
21352 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21353 abusing DECL_FCONTEXT.
21354
213552005-12-09 Matthew Heaney <heaney@adacore.com>
21356
21357 * a-convec.adb (Merge): Added assertions to check whether vector params
21358 are sorted.
21359
21360 * a-coinve.adb (Merge): Added assertions to check whether vector params
21361 are sorted.
21362
21363 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21364 draft.
21365 (Cursor'Read): raises PE
21366
21367 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21368 to its default value.
21369
21370 * a-cihama.adb: Manually check whether cursor's key and elem are
21371 non-null
21372
21373 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21374 (Merge): Assert that target and source lists are in order
21375 (Swap): Declare non-const temporaries, to pass to Splice
21376
21377 * a-cdlili.ads: (Splice): Changed param name and param mode
21378
21379 * a-cdlili.adb: (Splice): Changed param name and param mode
21380 (Merge): Assert that target and source lists are in order
21381 (Swap): Declare non-const temporaries, to pass to Splice
21382
21383 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21384 (Write): declare Stream param as not null
21385
21386 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21387 an exception message.
21388
213892005-12-09 Thomas Quinot <quinot@adacore.com>
21390 Robert Dewar <dewar@adacore.com>
21391
21392 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21393 which is the absolute maximum length we can support.
21394
21395 * frontend.adb: For the processing of configuration pragma files,
21396 remove references to Opt.Max_Line_Length, which is not checked anymore.
21397
21398 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21399 length.
21400
9e81dbc7 21401 * scn.adb, scng.adb:
aedc2c2b
AC
21402 Always check line length against the absolute supported maximum,
21403 Hostparm.Max_Line_Length.
21404
21405 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21406 value for the maximum line length is Max_Line_Length (not
21407 Column_Number'Last).
21408 Minor error msg update
21409 (Set_Style_Check_Options): New interface returning error msg
21410 Minor code reorganization (processing for 'M' was out of alpha order)
21411
21412 * switch-c.adb: New interface for Set_Style_Check_Options
21413
21414 * stylesw.ads (Set_Style_Check_Options): New interface returning error
21415 msg.
21416
214172005-12-09 Javier Miranda <miranda@adacore.com>
21418
21419 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21420 with IP subprogram were only supported if there were limited types.
21421
21422 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21423 records with IP subprogram were only supported if there were limited
21424 types.
21425
214262005-12-09 Olivier Hainque <hainque@adacore.com>
21427 Eric Botcazou <ebotcazou@adacore.com>
21428
21429 * trans.c (tree_transform, emit_check): Adjust calls to
21430 build_call_raise, passing the now expected GNAT_NODE argument.
21431
21432 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21433 source line information than what the current global locus indicates
21434 when appropriate.
21435
21436 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21437 field has overflowed.
21438 (build_call_raise): Add a GNAT_NODE argument to convey better source
21439 line information than what the current global locus indicates when
21440 appropriate.
21441 (build_component_ref): Adjust call to build_call_raise.
21442
214432005-12-09 Pascal Obry <obry@adacore.com>
21444
21445 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21446 the iterator is quitting iteration on parent directory.
21447
214482005-12-09 Javier Miranda <miranda@adacore.com>
21449
21450 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21451 and the assignment to a class-wide object, before the assignment we
21452 generate a run-time check to ensure that the tag of the Target is
21453 covered by the tag of the source.
21454
214552005-12-09 Robert Dewar <dewar@adacore.com>
21456
21457 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21458 parameter in call to Image_Wide_Character.
21459
21460 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21461 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21462 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21463 annoying FFFE/FFFF inconsistency.
21464
214652005-12-09 Robert Dewar <dewar@adacore.com>
21466 Javier Miranda <miranda@adacore.com>
21467 Ed Schonberg <schonberg@adacore.com>
21468
21469 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21470 of type conversion.
21471 (Find_Interface): New subprogram that given a tagged type and one of its
21472 component associated with the secondary table of an abstract interface
21473 type, return the entity associated with such abstract interface type.
21474 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21475 base type to create anonymous subtype, because entity may be a locally
21476 declared subtype or generic actual.
21477 (Find_Interface): New subprogram that given a tagged type and one of its
21478 component associated with the secondary table of an abstract interface
21479 type, return the entity associated with such abstract interface type.
21480
21481 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21482 conversion cannot be handled at compile time. In this case we pass this
21483 information to the expander to generate the appropriate code.
21484
214852005-12-09 Robert Dewar <dewar@adacore.com>
21486 Ed Schonberg <schonberg@adacore.com>
21487 Gary Dismukes <dismukes@adacore.com>
21488 Javier Miranda <miranda@adacore.com>
21489 Hristian Kirtchev <kirtchev@adacore.com>
21490
21491 * einfo.adb (Itype_Printed): New flag
21492 (Is_Limited_Type): Derived types do not inherit limitedness from
21493 interface progenitors.
21494 (Is_Return_By_Reference_Type): Predicate does not apply to limited
21495 interfaces.
21496
21497 * einfo.ads (Itype_Printed): New flag
21498 Move Is_Wrapper_Package to proper section
21499 Add missing Inline for Is_Volatile
21500
21501 * output.ads, output.adb (Write_Erase_Char): New procedure
21502 (Save/Restore_Output_Buffer): New procedures
21503 (Save/Restore_Output_Buffer): New procedures
21504
21505 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21506 Add missing support for anonymous access type
21507 (Write_Id): Insert calls to Write_Itype
21508 (Write_Itype): New procedure to output itypes
21509
21510 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21511 use of "limited" in declaration.
21512
9e81dbc7 21513 * sinfo.ads, sinfo.adb:
aedc2c2b
AC
21514 Formal derived types can carry an explicit "limited" indication.
21515
21516 * sem_ch3.adb: Add with and use of Targparm.
21517 (Create_Component): If Frontend_Layout_On_Target is True and the
21518 copied component does not have a known static Esize, then reset
21519 the size and positional fields of the new component.
21520 (Analyze_Component_Declaration): A limited component is
21521 legal within a protected type that implements an interface.
21522 (Collect_Interfaces): Do not add to the list the interfaces that
21523 are implemented by the ancestors.
21524 (Derived_Type_Declaration): If the parent of the full-view is an
21525 interface perform a transformation of the tree to ensure that it has
21526 the same parent than the partial-view. This simplifies the job of the
21527 expander in order to generate the correct object layout, and it is
21528 needed because the list of interfaces of the full-view can be given in
21529 any order.
21530 (Process_Full_View): The parent of the full-view does not need to be
21531 a descendant of the parent of the partial view if both parents are
21532 interfaces.
21533 (Analyze_Private_Extension_Declaration): If declaration has an explicit
21534 "limited" the parent must be a limited type.
21535 (Build_Derived_Record_Type): A derived type that is explicitly limited
21536 must have limited ancestor and progenitors.
21537 (Build_Derived_Type): Ditto.
21538 (Process_Full_View): Verify that explicit uses of "limited" in partial
21539 and full declarations are consistent.
21540 (Find_Ancestor_Interface): Remove function.
21541 (Collect_Implemented_Interfaces): New procedure used to gather all
21542 implemented interfaces by a type.
21543 (Contain_Interface): New function used to check whether an interface is
21544 present in a list.
21545 (Find_Hidden_Interface): New function used to determine whether two
21546 lists of interfaces constitute a set equality. If not, the first
21547 differing interface is returned.
21548 (Process_Full_View): Improve the check for the "no hidden interface"
21549 rule as defined by AI-396.
21550
215512005-12-09 Robert Dewar <dewar@adacore.com>
21552
21553 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21554 types, not on record subtypes.
21555 (Freeze_Entity): Code cleanup. Add barrier to the loop
21556 that generates the references for primitive operations. This allows to
21557 remove an unnecessary exception handler.
21558 Code reformatting and comment clean ups.
21559
215602005-12-09 Vincent Celier <celier@adacore.com>
21561
21562 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21563 If GNAT CHECK is called with a project file, but with no
21564 source on the command line, call gnatcheck with all the compilable
21565 sources of the project.
21566 Take into account the new command Check, for gnatcheck. Treat as for
21567 other ASIS tools: take into account project, specific package Check and
21568 Compiler switches.
21569 For ASIS tools, add the switches in package Compiler for
21570 the invocation of the compiler.
21571
21572 * prj-attr.adb: Add package Check and its attributes
21573
21574 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
21575
21576 * vms_conv.adb (Initialize): Change Params of command Check to
21577 unlimited files.
21578 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21579 Add data for new command Check
21580
21581 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
21582 ELIM.
21583 Add qualifiers for Check command options
21584 (Command_Type): New command Check
21585
215862005-12-09 Thomas Quinot <quinot@adacore.com>
21587
21588 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
21589 command line switch overruns the output buffer.
21590
215912005-12-09 Robert Dewar <dewar@adacore.com>
21592
21593 * sem_prag.adb: Processing for new pragma Complete_Representation
21594 (Analyze_Pragma, case Debug): Implement two argument form.
21595
21596 * par-prag.adb: Entry for new pragma Complete_Representation
21597 (Prag, case Debug): Recognize two argument form of pragma Debug
21598 New interface for Set_Style_Check_Options.
21599
21600 * sem_ch13.adb: Implement new pragma Complete_Representation.
21601
21602 * snames.adb, snames.ads, snames.h: Entry for new pragma
21603 Complete_Representation.
21604
216052005-12-09 Gary Dismukes <dismukes@adacore.com>
21606
21607 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
21608 available user-specified stream attributes on limited parameters to
21609 also test the type directly rather than only its underlying type (for
21610 Ada 95) and, in the case of Ada 2005, to check that the user-specified
21611 attributes are visible at the point of the subprogram declaration.
21612 For Ada 2005, the error message is modified to indicate that the
21613 type's stream attributes must be visible (again, only for -gnat05).
21614
216152005-12-09 Ed Schonberg <schonberg@adacore.com>
21616
21617 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
21618 anonymous access types.
21619
21620 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
21621 matching of anonymous access types and anonymous access to subprogram
21622 types. 'R'M 4.9.1 (2/2).
21623
216242005-12-09 Ed Schonberg <schonberg@adacore.com>
21625
21626 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
21627 rule prematurely when operands are universal, remaining ambiguities
21628 will be removed during resolution.
21629 Code cleanup.
21630
21631 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
21632 that are Ada 2005 functions.
21633 (Has_Abstract_Interpretation): Subsidiary to
21634 Remove_Conversions, to remove ambiguities caused by abstract operations
21635 on numeric types when operands are universal.
21636
216372005-12-09 Robert Dewar <dewar@adacore.com>
21638
21639 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
21640 for case where spec is categorized.
21641
216422005-12-09 Javier Miranda <miranda@adacore.com>
21643
21644 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
21645 types use the corresponding record type. This was not needed before
21646 the implementation of Ada 2005 synchronized types because
21647 concurrent types were never tagged types in Ada 95.
21648
216492005-12-09 Ed Schonberg <schonberg@adacore.com>
21650
21651 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
21652 first subtype of the type of the expression to verify that it is a
21653 legal Time type.
21654
216552005-12-09 Robert Dewar <dewar@adacore.com>
21656
21657 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
21658 decoded names.
21659
216602005-12-09 Quentin Ochem <ochem@adacore.com>
21661 Robert Dewar <dewar@adacore.com>
21662 Ed Falis <falis@adacore.com>
21663 Florian Villoing <villoing@adacore.com>
21664 Thomas Quinot <quinot@adacore.com>
21665 Arnaud Charlet <charlet@adacore.com>
21666
21667 * gnat_ugn.texi: Created section "Stack Related Tools"
21668 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
21669 "Stack Related Tools"
21670 Added subsection "Static Stack Usage Analysis"
21671 Added subsection "Dynamic Stack Usage Analysis"
21672 Include documentation of itypes in sprint listing (-gnatG)
21673 Documented gnatbind -D switch (default sec stack size for fixed sec
21674 stacks).
21675 Added Interrupt_State and Persistent_BSS to list of configuration
21676 pragmas.
21677 Add missing doc for maximum value of nnn in -gnatyMnnn
21678
21679 * gnat_rm.texi: Document the AltiVec binding.
21680 Add documentation for pragma Complete_Representation
21681 Shortened an overly long line (> 79 chars)
21682 Clarify documentation of unchecked conversion in implementation
21683 defined cases.
21684 Document two argument form of pragma Debug
21685
21686 * types.ads (Column_Number): Update documentation.
21687
21688 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
21689 library level Finalize_Storage_Only objects (these are not attached to
21690 any finalization list).
21691
21692 * system-mingw.ads: (Underlying_Priorities): Update comment.
21693
216942005-12-09 Robert Dewar <dewar@adacore.com>
21695
21696 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
6f7f72f9 21697 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
aedc2c2b
AC
21698 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
21699 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
21700 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
21701 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
21702 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
21703 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
21704 reformatting.
21705
217062005-12-09 Robert Dewar <dewar@adacore.com>
21707
21708 * s-vaflop-vms-alpha.adb: (Ne_F): New function
21709 (Ne_G): New function
21710
21711 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
21712 for tag assignment.
21713 (Rewrite_Comparison): Handle case where operation is not a comparison
21714 and ignore, and also handle type conversion case.
21715
217162005-12-09 Thomas Quinot <quinot@adacore.com>
21717
21718 * exp_aggr.ads: Fix typo in comment.
21719 ???-mark Convert_Aggr_In_Assignment as needing documentation.
21720
217212005-12-09 Gary Dismukes <dismukes@adacore.com>
21722
21723 * layout.adb: Replace various uses of byte by storage unit throughout.
21724 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
21725 static size, convert to storage units before returning, to conform to
21726 spec.
21727
217282005-12-09 Matthew Gingell <gingell@adacore.com>
21729
21730 * g-exctra.ads: Fix typo in comment.
21731
217322005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21733
21734 * utils.c: Minor reformatting.
21735
217362005-12-09 Robert Dewar <dewar@adacore.com>
21737
9e81dbc7 21738 * g-soccon.ads:
aedc2c2b
AC
21739 Further comment fixes to make the status of the default file clear
21740
21741 * s-bitops.adb: Clarify comment for Bits_Array
21742
719bb4e3 217432005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
bd97af06
RÁE
21744
21745 * Make-lang.in (ada.install-normal): Remove.
21746
719bb4e3 217472005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2f4d2d18
AM
21748
21749 * Make-lang.in: Remove all dependencies on s-gtype.
21750
53917868
RG
217512005-12-05 Richard Guenther <rguenther@suse.de>
21752
21753 * utils.c (convert): Use fold_convert where appropriate.
21754
40077270
PB
217552005-12-05 Paolo Bonzini <bonzini@gnu.org>
21756
6f7f72f9 21757 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
40077270
PB
21758 a period is meant.
21759
a380cd0a
RG
217602005-12-02 Richard Guenther <rguenther@suse.de>
21761
21762 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
21763
87f2a9f5
RS
217642005-12-01 Roger Sayle <roger@eyesopen.com>
21765
21766 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
21767 nodes.
21768
9e94c78f 217692005-11-23 Laurent Guerby <laurent@guerby.net>
f8d15f14 21770
6f7f72f9 21771 * mlib-prj.adb (Build_Library): Initialize Delete.
f8d15f14 21772
9e94c78f 217732005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
04b5d587
JS
21774
21775 * socket.c: Add extern int h_errno for rtems since networking header
21776 files are not available at this point in a tool bootstrap. Newlib
21777 only has basic C library header files.
21778
452b5b1e
RG
217792005-11-19 Richard Guenther <rguenther@suse.de>
21780 Roger Sayle <roger@eyesopen.com>
21781
21782 PR ada/23717
21783 * misc.c (internal_error_function): Don't use vsprintf to format
21784 the error message text, instead use pp_format_text and the new
21785 pretty printer APIs. This allows handling of %qs, %w, etc.
21786
9e94c78f 217872005-11-18 Laurent Guerby <laurent@guerby.net>
e0709888 21788
6f7f72f9
EB
21789 PR ada/24857
21790 * Makefile.in: Use s-auxdec-empty for RTEMS.
e0709888 21791
115a82d3
RK
217922005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21793
21794 PR ada/22333
21795 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
21796 a temporary if taking the address of something that is neither
21797 reference, declaration, or constant, since the gimplifier
21798 can't handle that case.
21799
9e94c78f 218002005-11-17 Laurent Guerby <laurent@guerby.net>
f92af607
LG
21801
21802 PR ada/24857
21803 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
6f7f72f9 21804
0678ec6b
RG
218052005-11-16 Richard Guenther <rguenther@suse.de>
21806
21807 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
21808
9e94c78f 218092005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
b381d30b 21810
6f7f72f9
EB
21811 PR ada/24855
21812 * raise-gcc.c: Add missing stdarg.h include.
9e81dbc7 21813
1367ca38
RG
218142005-11-16 Richard Guenther <rguenther@suse.de>
21815
21816 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
21817 (ada/misc.o): Likewise.
21818
5de923eb
AC
218192005-11-14 Thomas Quinot <quinot@adacore.com>
21820
21821 * g-soccon.ads: Minor reformatting. Update comments.
21822
21823 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
21824 gain visibility on the declaration of struct timeval.
21825
21826 * g-soccon-freebsd.ads,
21827 g-soccon-darwin.ads,
21828 g-soccon-tru64.ads,
21829 g-soccon-aix.ads,
21830 g-soccon-irix.ads,
21831 g-soccon-hpux.ads,
21832 g-soccon-solaris.ads,
21833 g-soccon-vms.ads,
21834 g-soccon-mingw.ads,
21835 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
21836
21837 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
21838 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
21839 g-soccon-linux-x86.ads: New files.
21840
9e81dbc7 21841 * g-socthi-mingw.adb:
5de923eb
AC
21842 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
21843
21844 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
21845 (time_t, suseconds_t): New types constructed to match the tv_sec
21846 and tv_usec fields of C struct timeval.
21847 (Timeval): Construct structure in terms of the new types.
21848 (Host_Errno): New function (imported from socket.c), returns last hosts
21849 database error.
21850
21851 * g-socthi-vxworks.adb: Add error handling circuitry.
21852
21853 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
21854 components of struct timeval.
21855 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
21856 (Check_Selector): In error conditions, clear internal socket sets to
21857 avoid a memory leak.
21858 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
21859 Send_Timeout, Receive_Timeout.
21860
21861 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
21862 the tv_sec and tv_usec fields of C struct timeval.
21863 (Timeval): Construct structure in terms of the new types.
21864 (Host_Errno): New function (imported from socket.c), returns last hosts
21865 database error.
21866
21867 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
21868 hosts database last error code.
21869
21870 * gen-soccon.c: Complete value expansion should not be performed on
21871 TARGET, as it has the form of a math expression, and some components
21872 may be platform-defined macros.
21873 For VxWorks, generate the OK and ERROR values.
21874 New constants giving the sizes of the components of C struct timeval.
21875
218762005-11-14 Robert Dewar <dewar@adacore.com>
21877 Ed Schonberg <schonberg@adacore.com>
21878
21879 PR ada/18434
5de923eb
AC
21880 * types.ads: Include All_Checks in Suppress_Array
21881
21882 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
21883 not(a=b), since we no longer do this rewriting, and hence it is not
21884 needed.
21885 (Elaboration_Checks_Suppressed): Add special casing to
21886 deal with different cases of static and dynamic elaboration checks (all
21887 checks does not count in the first case, but does in the second).
21888 (Expr_Known_Valid): Do not assume that the result of any arbitrary
21889 function call is valid, since this is not the case.
21890 (Ensure_Valid): Do not apply validity check to a real literal
21891 in a universal or fixed context
21892
21893 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
21894 elementary types using the operator in standard. It is cleaner not to
21895 modify the programmers intent, especially in the case of floating-point.
21896 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
21897 it did not matter because we always rewrote a/=b to not(a=b).
21898 (Expand_Allocator_Expression): For an allocator expression whose nominal
21899 subtype is an unconstrained packed type, convert the expression to its
21900 actual constrained subtype.
21901 Implement warning for <= or >= where < or > not possible
21902 Fix to Vax_Float tests (too early in many routines, causing premature
21903 Vax_Float expansions.
21904
21905 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
21906 to be used with packages and generic packages as well as with
21907 subprograms.
21908 (Suppress): Set All_Checks, but not Elaboration_Check, for case
21909 of pragma Suppress (All_Checks)
21910 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
21911 a string literal for precise control over warnings.
21912 Avoid raise of pragma in case of unrecognized pragma and just return
21913 instead.
21914
21915 * sem_prag.ads: Minor reformatting
21916
21917 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
21918 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
21919 Switch. Do not handle any exception.
21920 Include -gnatwx as part of -gnatg (warn on redundant parens)
21921 Allow optional = after -gnatm
21922 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
21923 longer sets Elaboration_Checks.
21924 Code to set warning mode moved to Sem_Warn
21925 so that it can be shared by pragma processing.
21926
21927 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
21928 statement.
21929
9e81dbc7 21930 * s-taprop-solaris.adb:
5de923eb
AC
21931 Change some <= to =, to avoid new warning
21932
9e81dbc7 21933 * a-exexda.adb, prj-proc.adb:
5de923eb
AC
21934 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
21935 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
21936
219372005-11-14 Robert Dewar <dewar@adacore.com>
21938
21939 * exp_vfpt.adb: Handle /= case
21940 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
21941 so that we do not get duplicate scaling for fixed point conversions.
21942
21943 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
21944
219452005-11-14 Matthew Gingell <gingell@adacore.com>
21946
9e81dbc7 21947 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
5de923eb
AC
21948 Increase default priority on Lynx from 15 to 17, and meet the Ada
21949 requirement that Default_Priority be ((Priority'First +
21950 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
21951
219522005-11-14 Vincent Celier <celier@adacore.com>
21953
21954 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21955 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
21956 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
21957 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
21958 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
21959 mlib-tgt-lynxos.adb (DLL_Prefix): New function
21960
219612005-11-14 Doug Rupp <rupp@adacore.com>
21962
21963 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
21964 private part.
21965
219662005-11-14 Arnaud Charlet <charlet@adacore.com>
21967
21968 * s-traces-default.adb, s-trafor-default.ads,
21969 s-tratas-default.adb: Fix compilation errors.
21970
219712005-11-14 Jose Ruiz <ruiz@adacore.com>
21972
21973 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
21974 raising the exception so the memory used is freed.
21975
219762005-11-14 Arnaud Charlet <charlet@adacore.com>
21977
21978 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
21979 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
21980 (convert_address): Update comments and list of platforms using this.
21981
21982 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
21983 no longer used.
21984
219852005-11-14 Pascal Obry <obry@adacore.com>
21986 Vincent Celier <celier@adacore.com>
21987
21988 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
21989 GNAT.Command_Line.
21990
21991 * memroot.adb: Remove redundant with/use clause on
21992 System.Storage_Elements.
21993
219942005-11-14 Arnaud Charlet <charlet@adacore.com>
21995
21996 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
21997 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
21998 related code to a-exexpr.adb
21999 (Save_Occurrence_And_Private): Move GCC EH related code to
22000 a-exexpr-gcc.adb
22001 (Raise_Current_Excep): Add new variable Id with pragma
6f7f72f9 22002 volatile, to ensure that the variable lives on stack.
5de923eb
AC
22003
22004 * a-exexpr-gcc.adb, raise-gcc.c: New file.
22005
22006 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22007 from a-except.adb.
22008 Move GCC EH related code to a-exexpr-gcc.adb
22009
22010 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22011 64-bit Solaris
22012 Split the Linux version of g-soccon into separate variants for 32 and 64
22013 bit platforms.
22014 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22015 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22016 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22017 of host variable $(RANLIB_FLAGS).
22018 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22019 Code clean up: remove unused/obsolete targets.
22020 (EH_MECHANISM): New variable introduced to differenciate between the
22021 two EH mechanisms statically.
22022 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22023 (LIBGNAT_OBJS): Add raise-gcc.o
22024 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22025 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22026 supports VxWorks 6 RTPs.
22027 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22028 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22029
22030 * raise.c: Move all GCC EH-related routines to raise-gcc.c
22031
220322005-11-14 Jose Ruiz <ruiz@adacore.com>
22033
22034 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22035 deferral level, when abort is not allowed, to a later stage (the
22036 Task_Wrapper).
22037 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22038 it will not get changed by the generated code. It was previously done
22039 in Create_Task.
22040
220412005-11-14 Thomas Quinot <quinot@adacore.com>
22042 Olivier Hainque <hainque@adacore.com>
22043 Eric Botcazou <ebotcazou@adacore.com>
22044
22045 * decl.c:
22046 Factor common code to build a storage type for an unconstrained object
22047 from a fat or thin pointer type and a constrained object type.
22048 (annotate_value): Handle BIT_AND_EXPR.
22049 (annotate_rep): Don't restrict the back annotation of inherited
22050 components to the type_annotate_only case.
22051 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22052 we are not defining the type.
22053 <E_Record_Type>: Likewise.
22054 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22055 to get advantage of the new maybe_stabilize_reference interface, to
22056 ensure that what we reference is indeed stabilized instead of relying
22057 on assumptions on what the stabilizer does.
22058 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22059 type imported through a limited_with clause, use its non-limited view.
22060 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22061 differentiation.
22062 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22063 of #if sections + explicit comparisons of convention identifiers.
22064 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22065 before early-returning for certain types when code generation is
22066 disabled.
22067 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22068 nullification of gnu_expr we do for objects with address clause and
22069 that we are not defining.
22070 (elaborate_expression_1): Do not create constants when creating
22071 variables needed by the debug info: the dwarf2 writer considers that
22072 CONST_DECLs is used only to represent enumeration constants, and emits
22073 nothing for them.
22074 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22075 object with an address clause into an indirect reference, drop the
22076 initializing expression.
22077 Include "expr.h".
22078 (STACK_CHECK_BUILTIN): Delete.
22079 (STACK_CHECK_PROBE_INTERVAL): Likewise.
22080 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22081 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22082 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22083 corresponding to the renamed object as ignored for debugging purposes.
22084
22085 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22086 related): For a prefix that is a dereference of a fat or thin pointer,
22087 if there is an actual subtype provided by the front-end, use that
22088 subtype to build an actual type with bounds template.
22089 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22090 is provided by the front-end, use that subtype to compute the size of
22091 the deallocated object.
22092 (gnat_to_gnu): When adding a statement into an elaboration procedure,
22093 check for a potential violation of a No_Elaboration_Code restriction.
22094 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22095 with extra arguments to control whether to recurse through non-values
22096 and to let the caller know if the stabilization has succeeded.
22097 (gnat_stabilize_reference): Now a simple wrapper around
22098 maybe_stabilize, for common uses without restriction on lvalues and
22099 without need to check for the success indication.
22100 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22101 pass false instead of 0 as the FORCE argument which is a bool.
22102 (Identifier_to_gnu): Remove checks ensuring that an renamed object
22103 attached to a renaming pointer has been properly stabilized, as no such
22104 object is attached otherwise.
22105 (call_to_gnu): Invoke create_var_decl to create the temporary when the
22106 function uses the "target pointer" return mechanism.
22107 Reinstate conversion of the actual to the type of the formal
22108 parameter before any other specific treatment based on the passing
22109 mechanism. This turns out to be necessary in order for PLACEHOLDER
22110 substitution to work properly when the latter type is unconstrained.
22111
22112 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22113 common pattern.
22114 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22115 with extra arguments to control whether to recurse through non-values
22116 and to let the caller know if the stabilization has succeeded.
22117
22118 * utils2.c (gnat_build_constructor): Only sort the fields for possible
22119 static output of record constructor if all the components are constant.
22120 (gnat_build_constructor): For a record type, sort the list of field
22121 initializers in increasing bit position order.
22122 Factor common code to build a storage type for an unconstrained object
22123 from a fat or thin pointer type and a constrained object type.
22124 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22125 types variants, and process special cases of VIEW_CONVERT expressions
22126 as their NOP_EXPR counterpart to ensure we get to the
22127 CORRESPONDING_VARs associated with CONST_DECls.
22128 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22129 on the right-hand side.
22130
22131 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22132 a common pattern.
22133 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22134 are converting back to its original type.
22135 (convert) <JM input>: Fallthrough regular conversion code instead of
22136 extracting the object if converting to a type variant.
22137 (create_var_decl): When a variable has an initializer requiring code
22138 generation and we are at the top level, check for a potential violation
22139 of a No_Elaboration_Code restriction.
22140 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22141 SIZE and SIZE_UNIT which we need for later back-annotations.
22142 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22143 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22144 is an unchecked union.
22145 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22146 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22147 main variant, just replace the VIEW_CONVERT_EXPR.
22148 <UNION_TYPE>: Revert 2005-03-02 change.
22149
22150 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22151
22152 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22153
221542005-11-14 Matthew Heaney <heaney@adacore.com>
22155
9e81dbc7
AS
22156 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22157 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22158 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22159 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22160 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22161 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
5de923eb
AC
22162 Compiles against the spec for ordered maps described in sections
22163 A.18.6 of the most recent (August 2005) AI-302 draft.
22164
221652005-11-14 Olivier Hainque <hainque@adacore.com>
22166
22167 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22168 to ensure bias adjustments take place when need be and to prevent
22169 occurrences of intermediate overflows.
22170
221712005-11-14 Matthew Gingell <gingell@adacore.com>
22172 Olivier Hainque <hainque@adacore.com>
22173
22174 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22175 ia64 HP-UX.
22176
22177 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22178 tracebacks on ia64 HP-UX and provide explanatory comment.
22179 Enable backtraces on ia64 GNU/Linux.
22180 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22181 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22182
221832005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22184 Javier Miranda <miranda@adacore.com>
22185
22186 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22187 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22188 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22189 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22190
22191 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22192 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22193 assertions).
22194
22195 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22196 subprogram that generates the external name associated with a
22197 secondary dispatch table.
22198 (Get_Secondary_DT_External_Name): New subprogram that generates the
22199 external name associated with a secondary dispatch table.
22200
222012005-11-14 Emmanuel Briot <briot@adacore.com>
22202
22203 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22204 line in the ALI file to include both an instantiation reference, and a
22205 returned value.
22206
222072005-11-14 Vincent Celier <celier@adacore.com>
22208
22209 * clean.adb (Check_Project): Look for Ada code in extending project,
22210 even if Ada is not specified as a language.
22211 Use new function DLL_Prefix for DLL_Name
22212 (Clean_Interface_Copy_Directory): New procedure
22213 (Clean_Library_Directory): New procedure
22214 (Clean_Directory): Remove procedure, no longer used
22215 (Clean_Project): Do not delete any file in an externally built project
22216
22217 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22218 directory of an extending project, even when there are no Ada source
22219 present.
22220 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22221 (Set_Ada_Paths.Add.Recursive_Add): Ditto
22222
22223 * mlib-prj.adb (Check_Library): For all library projects, get the
22224 library file timestamp.
22225 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22226 (Build_Library): Use new function DLL_Prefix for the DLL_Name
22227 (Clean): Remove procedure, no longer used
22228 (Ultimate_Extension_Of): New function
22229 (Build_Library): When cleaning the library directory, only remove an
22230 existing library file and any ALI file of a source of the project.
22231 When cleaning the interface copy directory, remove any source that
22232 could be a source of the project.
22233
22234 * prj.ads, prj.adb (Project_Empty): Add values of new components
22235 Library_TS and All_Imported_Projects.
22236 (Project_Empty): Add values for new components of Project_Data:
22237 Library_ALI_Dir and Display_Library_ALI_Dir
22238
22239 * prj-attr.adb: New project level attribute name Library_ALI_Dir
22240
22241 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22242 attribute Library_ALI_Dir.
22243 (Check_Library_Attributes): The library directory cannot be the same as
22244 any source directory of the project tree.
22245 (Check_Stand_Alone_Library): The interface copy directory cannot be
22246 the same as any source directory of the project tree.
22247
22248 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22249 all temporary files.
22250
222512005-11-14 Robert Dewar <dewar@adacore.com>
22252 Ed Schonberg <schonberg@adacore.com>
22253
22254 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22255 (Check_Elab_Call): A call within a protected body is never an
22256 elaboration call, and does not require checking.
22257 (Same_Elaboration_Scope): Take into account protected types for both
22258 entities.
22259 (Activate_Elaborate_All_Desirable): New procedure
22260
22261 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22262 desirable
22263
22264 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22265 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22266
9e81dbc7 22267 * lib-writ.ads, lib-writ.adb:
5de923eb
AC
22268 Implement new AD/ED for Elaborate_All/Elaborate desirable
22269 Use new Elaborate_All_Desirable flag in N_With_Clause node
22270
22271 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22272 N_Free_Statement nodes.
22273 Define new class N_Subprogram_Instantiation
22274 Add Elaborate_Desirable flag to N_With_Clause node
22275 Add N_Delay_Statement (covering two kinds of delay)
22276
22277 * debug.adb: Introduce d.f flag for compiler
22278 Add -da switch for binder
22279
222802005-11-14 Ed Schonberg <schonberg@adacore.com>
22281 Cyrille Comar <comar@adacore.com>
22282
22283 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22284 for task component, in the case of a limited aggregate. The enclosed
22285 object declaration will create it earlier. Otherwise, in the case of a
22286 nested aggregate, the object may appear in the wrong scope.
22287 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22288 (Gen_Assign): If the component being assigned is an array type and the
22289 expression is itself an aggregate, wrap the assignment in a block to
22290 force finalization actions on the temporary created for each row of the
22291 enclosing object.
22292 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22293 structures are initialized after all discriminants are set so that
22294 they can be accessed even when their offset is dynamic.
22295
222962005-11-14 Robert Dewar <dewar@adacore.com>
22297 Hristian Kirtchev <kirtchev@adacore.com>
22298
22299 * sem_attr.adb: Implement Machine_Rounding attribute
22300 (Analyze_Access_Attribute): The access attribute may appear within an
22301 aggregate that has been expanded into a loop.
22302 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22303 'Terminated whenever the prefix is of a task interface class-wide type.
22304 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22305 the prefix is of a task interface class-wide type.
22306
22307 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22308 to avoid warnings.
22309
22310 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22311 Remove pragma Inline for [Unaligned_]Valid.
22312 Add comments that Valid routines do not work for Vax_Float
22313
22314 * exp_attr.adb: Implement Machine_Rounding attribute
22315
22316 * snames.h: Add entry for Machine_Rounding attribute
22317
223182005-11-14 Javier Miranda <miranda@adacore.com>
22319 Robert Dewar <dewar@adacore.com>
22320 Hristian Kirtchev <kirtchev@adacore.com>
22321
22322 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22323 and related): For a prefix that is an explicit dereference of an
22324 access to unconstrained packed array type, annotate the dereference
22325 with an actual subtype so GIGI can make a correct size computation.
22326 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22327 'Unrestricted_Access, if the designated type is an interface we
22328 add a type conversion to force the displacement of the pointer
22329 to the secondary dispatch table.
22330 Use Universal_Real instead of Long_Long_Float when we need a high
22331 precision float type for the generated code (prevents gratuitous
22332 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22333 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22334 'Terminated for task interface class-wide objects. Generate a call to
22335 the predefined dispatching routine used to retrieve the _task_id from
22336 a task corresponding record.
22337 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22338
22339 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22340 (Check_Dispatching_Operation): Protect the frontend againts
22341 previously detected errors.
22342
22343 * Makefile.rtl: Add new instantiations of system.fat_gen
22344
9e81dbc7 22345 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
5de923eb
AC
22346 Change name of instantiated package for better consistency
22347 with newly added system.fat_gen instantiations.
22348
22349 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22350 s-fvagfl.ads: New files.
22351
223522005-11-14 Cyrille Comar <comar@adacore.com>
22353 Thomas Quinot <quinot@adacore.com>
22354
22355 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22356 assignment of a value of a tagged type that has been rewritten to a
22357 block statement, it is known by construction that no checks are
22358 necessary for the statements within the block: analyze it with checks
22359 suppressed.
22360 (Expand_N_If_Statement): When killing a dead then-branch in an
22361 if-statement that has elsif_parts, recompute the Current_Value node
22362 for any entity whose value is known from the condition of the first
22363 elsif_part.
22364 (Expand_N_Return_Statement): When returning a mutable record, convert
22365 the return value into its actual subtype in order to help the backend
22366 to return the actual size instead of the maximum. This is another
22367 aftermath of not returning mutable records on the sec-stack anymore.
22368
22369 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22370 handling of error msg for suspicious reverse range iteration.
22371 (Check_Possible_Current_Value_Condition): Move declaration from body to
22372 spec, to allow this subprogram to be called from exp_ch5.
22373
223742005-11-14 Thomas Quinot <quinot@adacore.com>
22375
22376 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22377 generate a set of nested array aggregates instead of a single flat
22378 aggregate for multi-dimensional arrays.
22379
223802005-11-14 Pascal Obry <obry@adacore.com>
22381
22382 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22383 by spawnve is a process handle, no need to convert. Add a parameter
22384 close to control wether the process handle must be closed.
22385 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22386 a process handle, not need to convert.
22387 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22388
22389 * g-expect.adb: (Kill): Document the new close parameter.
22390 (Close): Do not release the process handle in the kill there as
22391 waitpid() is using it.
22392 (Send_Signal): Release the process handle.
22393
223942005-11-14 Robert Dewar <dewar@adacore.com>
22395
22396 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22397 need a high precision float type for the generated code (prevents
22398 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22399 used).
22400
22401 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22402 need a high precision float type for the generated code (prevents
22403 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22404 used).
22405 (Expand_Width_Attribute): In configurable run-time, the attribute is not
22406 allowed on non-static enumeration subtypes. Force a load error to emit
22407 the correct diagnostic.
22408
224092005-11-14 Thomas Quinot <quinot@adacore.com>
22410 Robert Dewar <dewar@adacore.com>
22411 Ed Schonberg <schonberg@adacore.com>
22412
22413 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22414 subtype to compute the size of the designated object at run-time,
22415 create such a subtype and store it in the Actual_Designated_Subtype
22416 attribute of the N_Free_Statement.
22417 Generate itype for classwide designated object in both cases of
22418 user-specified storage pool: specific and class-wide, not only in the
22419 specific case.
22420 Raise CE when trying to set a not null access type object to null.
22421 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22422 an explicit loop, because freeze nodes make its position variable.
22423
22424 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22425 null object.
22426
224272005-11-14 Javier Miranda <miranda@adacore.com>
22428
22429 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22430 Build_Stream_Procedure): Add the null-excluding attribute to the first
22431 formal.
22432 This has no semantic meaning under Ada95 mode but it is a
22433 requirement under Ada05 mode.
22434
22435 * par-ch3.adb (P_Access_Definition): Addition of warning message if
22436 the null exclusion is used under Ada95 mode
22437 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22438 (P_Access_Definition): Remove assertion that forbids the use of
22439 the null-exclusion feature in Ada95.
22440
224412005-11-14 Robert Dewar <dewar@adacore.com>
22442
22443 * impunit.adb: Exclude container helper units not intended for use by
22444 users.
22445
224462005-11-14 Ed Schonberg <schonberg@adacore.com>
22447
22448 * freeze.adb (Freeze_Entity): For an access formal that is an access
22449 to subprogram, freeze the anonymous subprogram type at the same time,
22450 to prevent later freezing in the wrong scope, such as the enclosing
22451 subprogram body.
22452 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22453 subprogram whenever available.
22454
224552005-11-14 Arnaud Charlet <charlet@adacore.com>
22456
22457 PR ada/23732
22458 * gnatvsn.ads (Library_Version): Bump to 4.1
22459
224602005-11-14 Robert Dewar <dewar@adacore.com>
22461
22462 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22463 Storage_Offset to avoid wrap around causing invalid results.
22464
224652005-11-14 Pascal Obry <obry@adacore.com>
22466
22467 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22468 cross-compiler.
22469 (Scan_Bind_Arg): Fail with an error message if -M option is used
22470 on a native compiler.
22471
224722005-11-14 Robert Dewar <dewar@adacore.com>
22473 Vincent Celier <celier@adacore.com>
22474
22475 * gprep.adb: Implement -C switch to scan comments
22476
22477 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22478
22479 * scans.ads: Comment updates (including new use of Tok_Comment in
22480 preprocessing)
22481
22482 * opt.ads: Add documentation for flags that are used by gprmake,
22483 currently and in the next version of gprmake.
22484 (Verbosity_Level): New variable
22485 Add Replace_In_Comments switch
22486
22487 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22488 and -vm.
22489 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22490
224912005-11-14 Arnaud Charlet <charlet@adacore.com>
22492
22493 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22494 message, friendlier.
22495
224962005-11-14 Robert Dewar <dewar@adacore.com>
22497
22498 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22499
225002005-11-14 Doug Rupp <rupp@adacore.com>
22501
22502 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22503
225042005-11-14 Robert Dewar <dewar@adacore.com>
22505
22506 * interfac.ads: Change declarations of IEEE float types so that we no
22507 longer need a separate version of this package for VMS.
22508
225092005-11-14 Ed Schonberg <schonberg@adacore.com>
22510
22511 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22512 internal entity created for the declaration of a child subprogram body
22513 with no spec as coming from source, to generate proper cross-reference
22514 information.
22515
225162005-11-14 Vincent Celier <celier@adacore.com>
22517
22518 * make.adb (Compile_Sources): Change verbose message to minimum
22519 verbosity level High for "is in an Ada library", "is a read-only
22520 library" and "is an internal library",
22521 (Create_Binder_Mapping_File): Path name of ALI file for library project
22522 must include the library directory, not the object directory.
22523 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22524 for new switches -vl, -vm and -vh.
22525 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22526 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22527 (Compile_Sources): Do not attempt to compile if an ALI file is missing
22528 in a project that is externally built.
22529 (Compute_All_Imported_Projects): New procedure
22530 (Gnatmake): Check if importing libraries should be regenerated because
22531 at least an imported library is more recent.
22532 (Initialize): For each project compute the list of the projects it
22533 imports directly or indirectly.
22534 (Add_Library_Search_Dir): New procedure, used in place of
22535 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22536 put in the search paths.
22537 (Add_Source_Search_Dir): New procedure, used in place of
22538 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22539 put in the search paths.
22540 (Mark_Directory): Resolve the absolute path the directory before marking
22541 it.
22542
22543 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22544 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22545 Switch. Do not handle any exception.
22546 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22547 so that the switch is recognized as valid.
22548 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22549
225502005-11-14 GNAT Script <nobody@adacore.com>
22551
22552 * Make-lang.in: Makefile automatically updated
22553
225542005-11-14 Pascal Obry <obry@adacore.com>
22555
22556 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22557 used.
22558 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22559 In both cases the last argument was dropped.
22560
225612005-11-14 Eric Botcazou <ebotcazou@adacore.com>
22562
22563 * namet.h: (Column_Numbe): New type.
22564 (Get_Column_Number): Define to sinput__get_column_number.
22565 (Instantiation): Define to sinput__instantiation.
22566 (Get_Column_Number): Declare.
22567 (Instantiation): Likewise.
22568
225692005-11-14 Robert Dewar <dewar@adacore.com>
22570
22571 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
22572 syntax, which could cause compiler hangs.
22573
225742005-11-14 Vincent Celier <celier@adacore.com>
22575
22576 * prj-ext.adb: Take into account new environment variable
22577 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
22578 are defined.
22579 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
22580 normalize its path name, making it absolute and resolving symbolic
22581 links, and replace the original if resolved path is different.
22582
225832005-11-14 Vincent Celier <celier@adacore.com>
22584
22585 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
22586 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
22587
225882005-11-14 Emmanuel Briot <briot@adacore.com>
22589
22590 * prj-pp.adb (Print): Do not output the with statement if the
22591 associated name is empty, which happens for virtual extending projects.
22592 (Print): Preserve the "extends all" attribute when printing the project.
22593
22594 * prj-tree.ads (String_Value_Of): Add comment about returned value for
22595 a virtual extending project.
22596
225972005-11-14 Ed Schonberg <schonberg@adacore.com>
22598
22599 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
22600 rhs of an assignment even if the type is unconstrained, when the
22601 context is non-expanding.
22602 In an inlined body, if the context type is private,
22603 resolve with its full view, which must be a composite type.
22604
226052005-11-14 Robert Dewar <dewar@adacore.com>
22606 Ed Schonberg <schonberg@adacore.com>
22607
22608 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22609 Do not give obsolescent warning on with of subprogram (since we
22610 diagnose calls)
22611 (Analyze_With_Clause): Add test for obsolescent package
22612 (Install_Context_Clauses): If the unit is the body of a child unit, do
22613 not install twice the private declarations of the parents, to prevent
22614 circular lists of Use_Clauses in a parent.
22615 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
22616 compiling body of child unit.
22617 Use new class N_Subprogram_Instantiation
22618 (Expand_With_Clause): If this is a private with_clause for a child unit,
22619 appearing in the context of a package declaration, then the implicit
22620 with_clauses generated for parent units are private as well.
22621 (License_Check): Do not generate message if with'ed unit is internal
22622
226232005-11-14 Gary Dismukes <dismukes@adacore.com>
22624 Ed Schonberg <schonberg@adacore.com>
22625 Thomas Quinot <quinot@adacore.com>
22626
22627 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
22628 names are internal, because they will not have a corresponding partner
22629 in the actual package.
22630 (Analyze_Formal_Package): Move the setting of the formal package spec's
22631 Generic_Parent field so that it occurs prior to analyzing the package,
22632 to allow proper operation of Install_Parent_Private_Declarations.
22633 (Analyze_Package_Instantiation): Set the instantiated package entity's
22634 Package_Instantiation field.
22635 (Get_Package_Instantiation_Node): Move declaration to package spec.
22636 Retrieve the N_Package_Instantiation node when the Package_Instantiation
22637 field is present.
22638 (Check_Generic_Child_Unit): Within an inlined call, the only possible
22639 instantiation is Unchecked_Conversion, for which no parents are needed.
22640 (Inline_Instance_Body): Deinstall and record the use_clauses for all
22641 parent scopes of a scope being removed prior to inlining an instance
22642 body.
22643 (Analyze_Package_Instantiation): Do not perform front-end inlining when
22644 the current context is itself an instance within a non-instance child
22645 unit, to prevent scope stack errors.
22646 (Save_References): If the node is an aggregate that is an actual in a
22647 call, rewrite as a qualified expression to preserve some type
22648 information, to resolve possible ambiguities in the instance.
22649 (Instance_Parent_Unit): New global variable to record the ultimate
22650 parent unit associated with a generic child unit instance (associated
22651 with the existing Parent_Unit_Visible flag).
22652 (type Instance_Env): New component Instance_Parent_Unit for stacking
22653 parents recorded in the global Instance_Parent_Unit.
22654 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
22655 stack.
22656 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
22657 it's not a top-level unit, and only do this if Instance_Parent_Unit is
22658 not already set. Replace test of Is_Child_Unit with test of parent's
22659 scope against package Standard. Add comments and a ??? comment.
22660 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
22661 on a child instance parent to test that the parent equals
22662 Instance_Parent rather than simply checking that the unit is not a
22663 child unit.
22664 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
22665 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
22666 a formal interface are ancestors of the corresponding actual.
22667 (Validate_Formal_Interface_Type): Additional legality checks.
22668 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
22669 interface types with ancestors.
22670 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
22671 to diagnose attempts to use generic within its own declaration.
22672
226732005-11-14 Ed Schonberg <schonberg@adacore.com>
22674 Javier Miranda <miranda@adacore.com>
22675
22676 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
22677 discriminant.
22678 (Build_Private_Derived_Type): The entity of the created full view of the
22679 derived type does not come from source. If after installing the private
22680 declarations of the parent scope the parent is still private, use its
22681 full view to construct the full declaration of the derived type.
22682 (Build_Derived_Record_Type): Relax the condition that controls the
22683 execution of the check that verifies that the partial view and
22684 the full view agree in the set of implemented interfaces. In
22685 addition, this test now only takes into account the progenitors.
22686 (Derive_Interface_Subprograms): No need to derive subprograms
22687 of ancestors that are interfaces.
22688 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
22689 associated code.
22690 Change name Is_Package to Is_Package_Or_Generic_Package
22691 (Complete_Subprograms_Derivation): Handle the case in which the full
22692 view is a transitive derivation of the ancestor of the partial view.
22693 (Process_Full_View): Rename local subprogram Find_Interface_In_
22694 Descendant to Find_Ancestor_Interface to leave the code more clear.
22695 Remove wrong code that avoids the generation of an error message
22696 when the immediate ancestor of the partial view is an interface.
22697 In addition some minor reorganization of the code has been done to
22698 leave it more clear.
22699 (Analyze_Type_Declaration): If type has previous incomplete tagged
22700 partial view, inherit properly its primitive operations.
22701 (Collect_Interfaces): Make public, for analysis of formal
22702 interfaces.
22703 (Analyze_Interface_Declaration): New procedure for use for regular and
22704 formal interface declarations.
22705 (Build_Derived_Record_Type): Add support for private types to the code
22706 that checks if a tagged type implements abstract interfaces.
22707 (Check_Aliased_Component_Type): The test applies in the spec of an
22708 instance as well.
22709 (Access_Type_Declaration): Clean up declaration of malformed type
22710 declared as an access to its own classwide type, to prevent cascaded
22711 crash.
22712 (Collect_Interfaces): For private extensions and for derived task types
22713 and derived protected types, the parent may be an interface that must
22714 be included in the interface list.
22715 (Access_Definition): If the designated type is an interface that may
22716 contain tasks, create Master_Id for it before analyzing the expression
22717 of the declaration, which may be an allocator.
22718 (Record_Type_Declaration): Set properly the interface kind, for use
22719 in allocators, the creation of master id's for task interfaces, etc.
22720
227212005-11-14 Javier Miranda <miranda@adacore.com>
22722 Ed Schonberg <schonberg@adacore.com>
22723
22724 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
22725 omitted in case of stream attribute subprograms.
22726 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
22727 appear immediately after a subprogram body, when there is no previous
22728 subprogram declaration.
22729 Change name Is_Package to Is_Package_Or_Generic_Package
22730 (Process_Formals): A non null qualifier on a non null named access
22731 type is not an error, and is a warning only if Redundant_Constructs
22732 are flagged.
22733
227342005-11-14 Gary Dismukes <dismukes@adacore.com>
22735 Ed Schonberg <schonberg@adacore.com>
22736
22737 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
22738 nested within Analyze_Package_Specification to install the private
22739 declarations and use clauses within each of the parent units of a
22740 package instance of a generic child package.
22741 (Analyze_Package_Specification): When entering a private part of a
22742 package associated with a generic instance or formal package, the
22743 private declarations of the parent must be installed (by calling new
22744 procedure Install_Parent_Private_Declarations).
22745 Change name Is_Package to Is_Package_Or_Generic_Package
22746 (Preserve_Full_Attributes): For a synchronized type, the corresponding
22747 record is absent in a generic context, which does not indicate a
22748 compiler error.
22749
227502005-11-14 Ed Schonberg <schonberg@adacore.com>
22751
22752 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
22753 not try to rewrite a renamed stream attribute, because the operations
22754 on the type may not have been generated.
22755 Handle properly a renaming_as_body generated for a stream operation
22756 whose default is abstract because the object type itself is abstract.
22757 (Find_Type): If the type is incomplete and appears as the prefix of a
22758 'Class reference, it is tagged, and its list of primitive operations
22759 must be initialized properly.
22760 (Chain_Use_Clauses): When chaining the use clauses that appear in the
22761 private declaration of a parent unit, prior to compiling the private
22762 part of a child unit, find on the scope stack the proper parent entity
22763 on which to link the use clause.
22764 (Note_Redundant_Use): Emit a warning when a redundant use clause is
22765 detected.
22766 (Analyze_Object_Renaming): An attribute reference is not a legal object
22767 if it is not a function call.
22768
227692005-11-14 Robert Dewar <dewar@adacore.com>
22770 Ed Schonberg <schonberg@adacore.com>
22771
22772 * sem_eval.adb: Implement d.f flag
22773 (Subtype_Statically_Match): A generic actual type has unknown
22774 discriminants when the corresponding actual has a similar partial view.
22775 If the routine is called to validate the signature of an inherited
22776 operation in a child instance, the generic actual matches the full view,
22777
227782005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22779 Ed Schonberg <schonberg@adacore.com>
22780 Robert Dewar <dewar@adacore.com>
22781 Thomas Quinot <quinot@adacore.com>
22782
22783 * sem_res.adb (Resolve_Call): Provide a better error message whenever
22784 a procedure call is used as a select statement trigger and is not an
22785 entry renaming or a primitive of a limited interface.
22786 (Valid_Conversion): If the operand has a single interpretation do not
22787 remove address operations.
22788 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
22789 statement to inhibit warning.
22790 (Resolve_Unary_Op): Do not produce a warning when
22791 processing an expression of the form -(A mod B)
22792 Use Universal_Real instead of Long_Long_Float when we need a high
22793 precision float type for the generated code (prevents gratuitous
22794 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22795 (Resolve_Concatenation_Arg): Improve error message when argument is an
22796 ambiguous call to a function that returns an array.
22797 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
22798 there is an implicit operator in the given scope if we are within an
22799 instance: legality check has been performed on the generic.
22800 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
22801 after resolving operand, to avoid false warnings on overloaded calls.
22802
228032005-11-14 Ed Schonberg <schonberg@adacore.com>
22804 Javier Miranda <miranda@adacore.com>
22805
22806 PR ada/15604
5de923eb
AC
22807 * sem_type.adb (Covers): In an inlined body, a composite type matches
22808 a private type whose full view is a composite type.
22809 (Interface_Present_In_Ancestor): Protect the frontend against
22810 previously detected errors to ensure that its compilation
22811 with assertions enabled gives the same output that its
22812 compilation without assertions.
22813 (Interface_Present_In_Ancestor): Add support for private types.
22814 Change name In_Actual to In_Generic_Actual (clean up)
22815 (Disambiguate): New predicate In_Actual, to recognize expressions that
22816 appear in the renaming declaration generated for generic actuals, and
22817 which must be resolved in the outer context.
22818
228192005-11-14 Robert Dewar <dewar@adacore.com>
22820 Thomas Quinot <quinot@adacore.com>
22821 Hristian Kirtchev <kirtchev@adacore.com>
22822 Ed Schonberg <schonberg@adacore.com>
22823
22824 * sem_util.ads, sem_util.adb: Change name Is_Package to
22825 Is_Package_Or_Generic_Package.
22826 (Check_Obsolescent): New procedure.
22827 (Set_Is_Public): Remove obsolete junk test.
22828 (Set_Public_Status): Do not set Is_Public on an object whose declaration
22829 occurs within a handled_sequence_of_statemets.
22830 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
22831 for a parameterless procedure.
22832 (Enter_Name): Recognize renaming declarations created for private
22833 component of a protected type within protected operations, so that
22834 the source name of the component can be used in the debugger.
22835
228362005-11-14 Ed Schonberg <schonberg@adacore.com>
22837 Robert Dewar <dewar@adacore.com>
22838
22839 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
22840 of a generic subprogram are not visible outside the body.
22841 (Set_Warning_Switch): New procedure (code to set warning mode moved
22842 here from Switch.C so that it can be shared by pragma processing.
22843 (Check_References): Special case warning for non-modified non-imported
22844 volatile objects.
22845 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
22846 form with a string literal argument
22847
228482005-11-14 Javier Miranda <miranda@adacore.com>
22849
22850 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
22851 anonymous access.
22852 (Write): Addition of "not null" to the anonymous access.
22853 (Read): Addition of "not null" to the anonymous access.
22854 (Write): Addition of "not null" to the anonymous access.
22855
22856 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
22857 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
22858 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
22859 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
22860 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
22861 "not null" to the anonymous access.
22862
228632005-11-14 Robert Dewar <dewar@adacore.com>
22864
22865 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
22866 offset values
22867
228682005-11-14 Vincent Celier <celier@adacore.com>
22869
22870 * switch.adb (Bad_Switch): New procedure
22871 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
22872 message when in error.
22873
22874 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
22875 Too_Many_Output_Files): Remove declarations, no longer used.
22876 (Scan_Nat): New parameter Switch
22877 (Scan_Pos): Ditto
22878 (Bad_Switch): New procedure
22879
22880 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
22881 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
22882 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
22883 to Osint.Fail. Do not handle any exception.
22884
228852005-11-14 Vincent Celier <celier@adacore.com>
22886
22887 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
22888 designates a non existent directory.
22889
228902005-11-14 Robert Dewar <dewar@adacore.com>
22891
22892 * xgnatugn.adb: Replace invalid membership test by 'Valid
22893
228942005-11-14 Vincent Celier <celier@adacore.com>
22895
22896 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
22897 there is no object directory.
22898
228992005-11-14 Robert Dewar <dewar@adacore.com>
22900
22901 * usage.adb: Minor adjustment to output format, use nn instead of nnn
22902 (so that -gnateInnn does not run into next column)
22903
229042005-11-14 Ed Falis <falis@adacore.com>
22905
22906 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
22907 "constrained"
22908
229092005-11-14 Cyrille Comar <comar@adacore.com>
22910
22911 * s-chepoo.ads: Add comments on Dereference.
22912 Remove unnecessary inherited abstract primitives.
22913 Cosmetic cleanup.
22914
229152005-11-14 Robert Dewar <dewar@adacore.com>
22916
22917 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
22918 node parameter, not needed, since it is available as Declaration_Node.
22919
229202005-11-14 Geert Bosch <bosch@adacore.com>
22921
22922 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
22923 grammatically correct.
22924
229252005-11-14 Vincent Celier <celier@adacore.com>
22926
22927 * s-fileio.ads: Correct spelling error in comment
22928
229292005-11-14 Cyrille Comar <comar@adacore.com>
22930 Robert Dewar <dewar@adacore.com>
22931 Vincent Celier <celier@adacore.com>
22932 Ben Brosgol <brosgol@adacore.com>
22933 Jose Ruiz <ruiz@adacore.com>
22934 Pascal Obry <obry@adacore.com>
22935
9e81dbc7 22936 * gnat_ugn.texi:
5de923eb
AC
22937 Document that -fstack-check is needed for strict compliance with the
22938 Ada 95 Reference Manual.
22939 Correct reference to VAX systems to meet HP guidelines
22940 Add documentation for new gnatmake switches -vl, -vm and -vh
22941 Replace DEC Ada by HP Ada
22942 Replace DIGITAL by HP
22943 Remove empty section on tools in compatibility section
22944 Clarify the Windows convention semantics.
22945 Document the Win32 calling convention.
22946 The Stdcall, Win32 and DLL convention are synonyms.
22947 Add a note in -gnatR description about zero size record components
22948 Note on new >= and <= warnings for -gnatwc
22949 Document that equal sign after -gnatm is optional.
22950 Note that strip is working fine on DLL built with a Library
22951 Project. The restriction apply only to DLL built with gnatdll.
22952 Update section about the way to debug a DLL.
22953 Update information about the DLL convention.
22954 Document -C switch for gnatprep
22955 Document new attribute Library_ALI_Dir
22956 Update elaboration doc to include implicit Elaborate pragmas now
22957 generated for subprogram instantiations.
22958 Document limitation on executable names that include spaces for --GCC,
22959 --GNATBIND, and --GNATLINK switches.
22960 Document that -w causes -gnatws to be added at start of gcc switches
22961
22962 * gnat_rm.texi: Document that -mieee is needed for generating infinite
22963 and NaN values in case of overflow on machines that are not fully
22964 compliant with the IEEE floating-point standard.
22965 Create a section describing the set of compiler options needed for
22966 strict compliance with the Ada 95 Reference Manual.
22967 Add documentation for pragma Obsolescent applied to a package
22968 Clarify potential issues of mixed language programs related to the
22969 I/O buffering enabling in the elaboration of the GNAT runtime.
22970 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
22971 This documentation only patch adds extra documentsion for pragma
22972 Restrictions (No_Elaboration_Code), explaining why it is not possible
22973 to document this restriction in terms of allowed source constructs.
22974 Document string literal form of pragma Warnings
22975 Document new attribute Library_ALI_Dir
22976 Add documentation on stable attributes in project files that was missing
22977
22978 * gnat-style.texi: Indicate that paragraphs within a single comment
22979 should be separated by empty comment lines
22980
22981 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
22982 /05 respectively)
22983
22984 * bindusg.adb: Minor cleanup, put -m before -M for consistency
22985
229862005-11-14 Robert Dewar <dewar@adacore.com>
22987
22988 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
22989 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
22990 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
22991 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
22992 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
22993 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
22994 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
22995 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
22996 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
22997 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
22998 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
22999 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23000 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23001 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23002 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23003 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23004 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23005 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23006 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23007 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23008 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23009 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23010 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23011 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23012 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23013 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23014 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23015 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23016 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23017 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23018 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23019 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23020 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23021 system-interix.ads, system-solaris-sparc.ads,
23022 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23023 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23024 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23025 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23026 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23027 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23028 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23029 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23030 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23031 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23032 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23033 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23034 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23035 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23036 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23037 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23038 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23039 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23040 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23041 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23042 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23043 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23044 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23045 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23046 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23047 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23048 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23049 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23050 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23051 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23052 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23053 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23054 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23055 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23056 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23057 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23058 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23059 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23060 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23061 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23062 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23063 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23064 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23065 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23066 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23067 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23068 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23069 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23070 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23071 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23072 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23073 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23074 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23075 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23076 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23077 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23078 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23079 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23080 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23081 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23082 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23083 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23084 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23085 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23086 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23087 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23088 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23089 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23090 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23091 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23092 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23093 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23094 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23095 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23096 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23097 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23098 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23099 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23100 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23101 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23102 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23103 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23104 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23105 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23106 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23107 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23108 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23109 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23110 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23111 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23112 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23113 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23114 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23115 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23116 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23117 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23118 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23119 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23120 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23121 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23122 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23123 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23124 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23125 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23126 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23127 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23128 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23129 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23130 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23131 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23132 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23133 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23134 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23135 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23136 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23137 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23138 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23139 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23140 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23141 a-numaux-darwin.ads, a-numaux-darwin.adb,
23142 a-swuwha.ads, a-stunha.ads: Minor reformatting
23143
e0ac6309
RD
231442005-11-14 Robert Dewar <dewar@adacore.com>
23145
23146 PR ada/18434
23147 * osint-m.adb: Add pragma Elaborate_All for Osint
23148
f45ddfe0
EB
231492005-11-10 Eric Botcazou <ebotcazou@adacore.com>
23150
23151 PR ada/23995
23152 * trans.c (call_to_gnu): Restore statement lost in translation.
23153
13bb031a
EB
231542005-11-08 Eric Botcazou <ebotcazou@adacore.com>
23155
23156 * init.c: Use the Linux-specific section for the IA-64/Linux target.
23157 (__gnat_adjust_context_for_raise): Add conditional code so that the
23158 IA-64 is also supported.
23159
72098128
JW
231602005-11-03 James E Wilson <wilson@specifix.com>
23161
23162 PR ada/23427
13bb031a
EB
23163 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23164 TREE_OVERFLOW check.
72098128 23165
8fafe21d
OH
231662005-09-21 Olivier Hainque <hainque@adacore.com>
23167
23168 PR ada/22418
23169 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23170 as we create them to store a size in bits.
23171
552725e3
EB
231722005-10-21 Eric Botcazou <ebotcazou@adacore.com>
23173
23174 PR ada/21937
23175 PR ada/22328
23176 PR ada/22381
23177 PR ada/22383
23178 PR ada/22419
23179 PR ada/22420
23180 * utils2.c (build_return_expr): New helper function.
23181 * gigi.h (build_return_expr): Declare it.
23182 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23183 of manually building the RETURN_EXPR tree.
23184 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23185 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
8fafe21d 23186 build_binary_op for the "target pointer" case. Use build_return_expr
552725e3
EB
23187 instead of manually building the RETURN_EXPR tree.
23188
9e94c78f 231892005-09-16 Laurent Guerby <laurent@guerby.net>
ccdeca37
LG
23190
23191 PR ada/23788
23192 * s-tpinop.ads: Make this unit Preelaborate.
23193
da8f5fd9
AJ
231942005-09-16 Andreas Jaeger <aj@suse.de>
23195
23196 * socket.c: Add string.h for memcpy.
23197
98b40956
AC
231982005-09-05 Arnaud Charlet <charlet@adacore.com>
23199
23200 * dec-io.ads, dec-io.adb: Removed, no longer used.
23201
232022005-09-01 Arnaud Charlet <charlet@adacore.com>
23203
23204 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23205
23206 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23207 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23208 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23209 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23210 dependent units are Preelaborate.
23211 (Initialize): Call Interrupt_Managemeent.Initialize and
23212 OS_Primitives.Initialize to ensure proper initialization of this unit.
23213 Remove use of System.Soft_Links
23214 Make this unit Preelaborate.
23215
23216 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23217 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23218 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23219 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23220 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23221 s-tratas.ads, s-tasinf.ads: Minor reformatting.
23222 Add pragma Preelaborate, since these packages are suitable for this
23223 categorization.
23224 Update comments.
23225
23226 * s-traent-vms.ads, s-intman-dummy.adb,
23227 s-taprop-dummy.adb: Make this unit Preelaborate.
23228
23229 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
da8f5fd9 23230 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
98b40956
AC
23231 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23232 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23233 s-intman-solaris.adb, s-intman-irix-athread.adb,
23234 s-intman-irix.adb: Mark this unit Preelaborate.
23235 (Initialize): New procedure.
23236 Update comments.
23237
23238 * s-taspri-linux.ads: Removed.
23239
23240 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23241 as done by other implementations (e.g. posix).
23242
23243 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23244 responsible for deferring abort.
23245 Mark this unit Preelaborate.
23246
23247 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23248 proper initialization of the tasking run-time.
23249
23250 * s-tasdeb.ads: Mark this unit Preelaborate.
23251 (Known_Tasks): Add explicit default value to avoid elaboration code.
23252
23253 * s-inmaop-vms.adb (Elaboration code): Add call to
23254 Interrupt_Management.Initialize since the elaboration code depends on
23255 proper initialization of this package.
23256
23257 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23258 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23259 s-osprim-posix.adb: Make this unit Preelaborate.
23260
23261 * a-calend.adb: Add call to OS_Primitives.Initialize
23262
23263 * a-elchha.adb: Update use of Except.Id.Full_Name.
23264 Minor reformatting.
23265 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23266
23267 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23268 Move with clauses outside Warnings Off now that dependent units are
23269 Preelaborate.
23270 Use raise xxx with "..."; Ada 2005 form.
23271
da8f5fd9 23272 * a-taside.ads, a-taside.adb:
98b40956
AC
23273 Remove some dependencies, to make it easier to make this unit truly
23274 Preelaborate.
23275 Rewrite some code to be conformant with Preelaborate rules.
23276
23277 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23278 marked Preelaborate in the future.
23279
23280 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23281 these units Preelaborate.
23282
23283 * s-exctab.adb: Update use of Except.Id.Full_Name.
23284
23285 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23286 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23287 Set_Exc_Stack_Addr): Removed, no longer used.
23288 Remove reference to *Machine_State_Addr*, no longer needed.
23289
23290 * s-stalib.ads: Mark this unit as Preelaborate[_05].
23291 (Exception_Data): Full_Name is now a System.Address so that this unit
23292 can be made Preelaborate.
23293 Clean up/simplify code thanks to Full_Name being a System.Address.
23294 Remove obsolete pragma Suppress (All_Checks), no longer needed.
23295
da8f5fd9 23296 * s-taskin.ads, s-taskin.adb:
98b40956
AC
23297 Move with clauses outside Warnings Off now that dependent units are
23298 Preelaborate.
23299 Make this unit Preelaborate.
23300 (Initialize): New proceduure, replace elaboration code and makes the
23301 set up of the tasking run-time cleaner.
23302 (Detect_Blocking): Now a function instead of a deferred boolean, to
23303 obey Preelaborate rules.
23304
23305 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23306 soft links, no longer used.
23307
23308 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23309 packages are suitable for this categorization.
23310
23311 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23312 since we compile run-time sources in Ada 2005 mode.
23313 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23314 avoid having s-taprop*.adb depend on s-soflin and to avoid code
23315 duplication.
23316 Remove reference to *Machine_State_Addr*, no longer needed.
23317
233182005-09-01 Arnaud Charlet <charlet@adacore.com>
23319
23320 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23321 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23322 Remove reference to System.Exceptions.
23323
23324 * s-mastop-x86.adb: Removed, no longer used.
23325
23326 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23327
23328 * a-excach.adb: Minor reformatting.
23329
23330 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23331 instead fix new warnings that were hidden by this change.
23332 (AAA, ZZZ): Removed, replaced by...
23333 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23334 are used instead of constants, to help make Ada.Exception truly
23335 preelaborate.
23336 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23337 Raise_Storage_Error): File is now a System.Address, to simplify code.
23338 (Elab code): Removed, no longer used.
23339 (Null_Occurrence): Remove Warnings Off and make this construct
23340 preelaborate.
23341 Remove code related to front-end zero cost exception handling, since
23342 it is no longer used.
23343 Remove -gnatL/-gnatZ switches.
23344
23345 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23346 Update use of Except.Msg.
23347
23348 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23349 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23350 to front-end zero cost exception handling, since it is no longer used.
23351 Remove -gnatL/-gnatZ switches.
23352
23353 * lib-writ.ads: Minor reformatting
23354 Remove doc of UX
23355
23356 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23357
23358 * Make-lang.in: Remove references to s-except.ads
23359
23360 * s-except.ads: Removed, no longer used.
23361
da8f5fd9 23362 * s-mastop.ads, s-mastop.adb:
98b40956
AC
23363 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23364 Remove reference to System.Exceptions.
23365
23366 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23367 switch-b.adb: Remove code related to front-end zero cost exception
23368 handling, since it is no longer used.
23369 Remove -gnatL/-gnatZ switches.
23370
233712005-09-01 Robert Dewar <dewar@adacore.com>
23372 Gary Dismukes <dismukes@adacore.com>
23373 Javier Miranda <miranda@adacore.com>
23374
23375 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23376 type by valid test and generate warning.
23377 (Tagged_Membership): Generate call to the run-time
23378 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23379 Change formal name Subtype_Mark to Result_Definition in several calls to
23380 Make_Function_Specification.
23381 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23382 check for proper accessibility of the operand of a class-wide allocator.
23383 The check can be left out if checks are suppressed or if the expression
23384 has a specific tagged type whose level is known to be safe.
23385
23386 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23387 generates the run-time check associated with null-excluding entities.
23388 (Expand_N_Return_Statement): Add tests to determine if the accessibility
23389 check on the level of the return expression of a class-wide function
23390 can be elided. The check usually isn't needed if the expression has a
23391 specific type (unless it's a conversion or a formal parameter). Also
23392 add a test for whether accessibility checks are suppressed. Augment
23393 the comments to describe the conditions for performing the check.
23394
233952005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
23396 Javier Miranda <miranda@adacore.com>
23397 Gary Dismukes <dismukes@adacore.com>
23398 Ed Schonberg <schonberg@adacore.com>
23399
23400 * a-tags.adb (IW_Membership): Give support to
23401 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23402 subprogram has been extended to look for the tag in the ancestors tag
23403 table.
23404 Update the structure of the GNAT Dispatch Table to reflect the
23405 additional two tables used in dispatching selects.
23406 Introduce appropriate array types and record components in
23407 Type_Specific_Data to reflect the two tables.
23408 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23409 the TSD of a tag, indexed by position.
23410 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23411 operation kind in the TSD of a tag, indexed by position.
23412
23413 * a-tags.ads: Introduce an enumeration type to capture different
23414 primitive operation kinds. Define a constant reflecting the number of
23415 predefined primitive operations.
23416 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23417 of an entry wrapper.
23418 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23419 callable entity of a primitive operation.
23420
23421 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23422 primitive operations used in dispatching selects for limited
23423 interfaces, limited tagged, task and protected types what implement a
23424 limited interface.
23425 (Freeze_Type): Generate the bodies of the primitive operations used in
23426 dispatching selects for limited tagged, task and protected types that
23427 implement a limited interface. Generate statements to populate the two
23428 auxiliary tables used for dispatching in select statements.
23429 (Freeze_Record_Type): Add call to initialize the dispatch table entries
23430 associated with predefined interface primitive operations.
23431 (Build_Dcheck_Function): Change Set_Subtype_Mark to
23432 Set_Result_Definition.
23433 (Build_Variant_Record_Equality): Change Subtype_Mark to
23434 Result_Definition.
23435 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23436 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23437 (Build_Assignment): Simplify the code that adds the run-time-check.
23438 (Expand_N_Object_Declaration): Code cleanup.
23439
23440 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23441 entries when there is a protected type that implements a limited
23442 interface.
23443
23444 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23445 common routines used in expansion of dispatching selects.
23446 (Add_Private_Declarations): Select the appropriate protection type when
23447 there is a protected type that implements a limited interface.
23448 (Build_Parameter_Block): Generate a wrapped parameter block.
23449 (Build_Protected_Subprogram_Body): Select the appropriate type for
23450 locking entries when there is a protected type that implements a
23451 limited interface.
23452 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23453 classified as entry wrappers.
23454 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23455 asynchronous selects.
23456 (Expand_N_Conditional_Entry_Call): Add support for expansion of
23457 dispatching conditional selects.
23458 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23459 protection when there is a protected type that implements limited
23460 interfaces.
23461 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23462 timed selects.
23463 (Extract_Dispatching_Call): Extract the entity of the name of a
23464 dispatching call, the object parameter, actual parameters and
23465 corresponding formals.
23466 (Make_Initialize_Protection): Correct logic of protection initialization
23467 when there is a protected type that implements a limited interface.
23468 (Parameter_Block_Pack): Populate a wrapped parameter block with the
23469 values of actual parameters.
23470 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23471 block and assign them to the original actual parameters.
23472
23473 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23474 (Build_Protected_Sub_Specification): Change the type and name of the
23475 last formal to account for the increased variety of protection modes.
23476
23477 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23478 entities. Used to save the value of the Is_Hidden attribute when the
23479 limited-view is installed.
23480 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23481 the attribute of procedures classified as entry wrappers.
23482 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23483 entity of a primitive wrapper.
23484 (Write_Entity_Flags): Output the name and value of the
23485 Is_Primitive_Wrapper attribute.
23486 (Write_Field27_Name): Output the name and entity of the field Wrapped_
23487 Entity.
23488 (Underlying_Type): If we have an incomplete entity that comes from
23489 the limited view then we return the Underlying_Type of its non-limited
23490 view if it is already available.
23491 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23492 including operators.
23493 (Write_Field26_Name): Add entry for Overridden_Operation
23494 (Overridden_Operation): New attribute of functions and procedures.
23495
23496 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23497 predefined position in the dispatch table for the primitive operations
23498 used in dispatching selects.
23499 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23500 predefined primitive operations and replace it with
23501 Default_Prim_Op_Count.
23502 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23503 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23504 the names of the generated primitive operations used in dispatching
23505 selects.
23506 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23507 case of abstract interface types. They will be inherit by the objects
23508 implementing the interface.
23509 (Make_DT): There is no need to inherit the dispatch table of the
23510 ancestor interface for the elaboration of abstract interface types.
23511 The dispatch table will be inherited by the object implementing the
23512 interface.
23513 (Copy_Secondary_DTs): Add documentation.
23514 (Validate_Position): Improve this static check in case of
23515 aliased subprograms because aliased subprograms must have
23516 the same position.
23517 (Init_Predefined_Interface_Primitives): New subprogram that initializes
23518 the entries associated with predefined primitives of all the secondary
23519 dispatch tables.
23520 (Build_Anonymous_Access_Type): Removed.
23521 (Expand_Interface_Actuals): With the previous cleanup there is no need
23522 to build an anonymous access type. This allows further cleanup in the
23523 code generated by the expander.
23524 (Expand_Interface_Conversion): If the actual is an access type then
23525 build an internal function to handle the displacement. If the actual
23526 is null this function returns null because no displacement is
23527 required; otherwise performs a type conversion that will be
23528 expanded in the code that returns the value of the displaced actual.
23529 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23530 conversions that have no effect in the generated code because no
23531 displacement is required. Code cleanup; use local variables to
23532 avoid repeated calls to the subprogram directly_designated_type().
23533
23534 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23535 Classify the primitive operations used in dispatching selects as
23536 predefined.
23537 (Implements_Limited_Interface): Determine whether some type either
23538 directly implements a limited interface or extends a type that
23539 implements a limited interface.
23540 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23541 (Expand_Subtype_From_Expr): Do not build actual subtype if the
23542 expression is limited.
23543 (Find_Interface_Tag): Add code to handle class-wide types and
23544 entities from the limited-view.
23545
23546 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23547 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23548 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23549 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23550 Set_Prim_Op_Kind.
23551
23552 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23553 of procedure name or prefix that appears as a trigger in a triggering
23554 alternative.
23555
23556 * uintp.ads: Introduce constants Uint_11 and Uint_13.
23557
235582005-09-01 Arnaud Charlet <charlet@adacore.com>
23559
23560 * s-tataat.adb, a-tasatt.adb:
23561 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23562
23563 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23564 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23565 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
23566 longer used.
23567
235682005-09-01 Arnaud Charlet <charlet@adacore.com>
23569 Jose Ruiz <ruiz@adacore.com>
23570
da8f5fd9 23571 * s-taprop-vxworks.adb:
98b40956
AC
23572 Move with clauses outside Warnings Off now that dependent units are
23573 Preelaborate.
23574 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
23575 initialization of this unit.
23576 (Specific): Add new procedures Initialize and Delete so that this
23577 package can be used for VxWorks 5.x and 6.x
23578 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
23579 differences between VxWorks 5.x and 6.x
23580 Minor reformatting.
23581 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
23582 caller.
23583 Use only Preelaborate-compatible constructs.
23584
23585 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
23586 Primitives.Operations.
23587 (Delete, Initialize): New procedures.
23588
23589 * s-osinte-vxworks.adb: Body used to handle differences between
23590 VxWorks 5.x and 6.x
23591 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
23592
23593 * s-osinte-vxworks.ads: Minor reformatting.
23594 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
23595 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
23596 and 6.
23597 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
23598 between Vxworks 5 and 6.
23599 (taskLock, taskUnlock): Removeed, no longer used.
23600
23601 * adaint.c: The wait.h header is not located in the sys directory on
23602 VxWorks when using RTPs.
23603 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
23604 using RTPs.
23605 (__gnat_dup): dup is available on Vxworks when using RTPs.
23606 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
23607
23608 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
23609
23610 * expect.c: The wait.h header is not located in the sys directory on
23611 VxWorks when using RTPs.
23612
236132005-09-01 Thomas Quinot <quinot@adacore.com>
23614
23615 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
23616
23617 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
23618
23619 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
23620 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23621 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
23622 g-soccon-freebsd.ads: Add new constants:
23623 IP_MULTICAST_IF
23624 SO_RCVTIMEO/SO_SNDTIMEO
23625 IOV_MAX
23626
da8f5fd9 23627 * gen-soccon.c:
98b40956
AC
23628 Move all target-specific file inclusions and macro definitions to
23629 gsocket.h, in order to ensure that any C code in socket.c will see a
23630 set of constants that is consistent with the contents of g-soccon.ads.
23631
23632 * gsocket.h: Code imported from gen-soccon.c:
23633 Move all target-specific file inclusions and macro definitions to
23634 gsocket.h, in order to ensure that any C code in socket.c will see a set
23635 of constants that is consistent with the contents of g-soccon.ads.
23636 This change also makes gen-soccon self-contained (removing dependencies
23637 upon GCC internal headers).
23638
23639 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
23640 iovecs at a time.
23641 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
23642
23643 * socket.c: Minor reformatting.
23644
236452005-09-01 Ed Schonberg <schonberg@adacore.com>
23646 Thomas Quinot <quinot@adacore.com>
23647
23648 * fname-sf.adb, mlib-tgt.ads,
23649 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
23650 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
23651 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
23652 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
23653 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
23654 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
23655 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
23656 makegpr.adb: Remove redundant use_clauses.
23657
236582005-09-01 Arnaud Charlet <charlet@adacore.com>
23659
da8f5fd9
AJ
23660 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
23661 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
23662 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
23663 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
23664 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
23665 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
23666 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
23667 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
23668 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
23669 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
23670 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
23671 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
23672 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
23673 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
23674 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
98b40956 23675 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
da8f5fd9
AJ
23676 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23677 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23678 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
23679 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
23680 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
23681 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
23682 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
23683 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
23684 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
23685 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
23686 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
23687 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
98b40956
AC
23688 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
23689 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
da8f5fd9
AJ
23690 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
23691 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
23692 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
23693 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
23694 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
23695 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
23696 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
23697 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
23698 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
23699 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
23700 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
23701 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
23702 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
23703 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
23704 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
23705 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
23706 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
23707 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
23708 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
23709 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
23710 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
23711 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
23712 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
23713 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
23714 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
23715 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
23716 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
23717 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
23718 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
23719 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
23720 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
23721 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
23722 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
23723 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
23724 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
23725 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
23726 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
98b40956
AC
23727 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
23728 and always use the no parameter form for consistency.
23729
23730 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
23731
237322005-09-01 Robert Dewar <dewar@adacore.com>
23733
23734 * binde.adb: Minor reformatting
23735 (Find_Elab_Order): Output warning if -p used with static elab order
23736
237372005-09-01 Robert Dewar <dewar@adacore.com>
23738
23739 * checks.adb (Check_Needed): New procedure, deals with removing checks
23740 based on analysis of short-circuited forms. Also generates warnings for
23741 improper use of non-short-circuited forms.
23742 Code clean ups.
23743
237442005-09-01 Robert Dewar <dewar@adacore.com>
23745
23746 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
23747 with 'Valid tests.
23748
237492005-09-01 Robert Dewar <dewar@adacore.com>
23750
23751 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
23752 spec.
23753 Implement new insertion char < (conditional warning)
23754 * errutil.adb, erroutc.adb: Implement new insertion char <
23755 (conditional warning).
23756 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
23757 (Error_Msg_Warn): New variable for < insertion char.
23758 * prj-nmsc.adb: Implement new errout insertion char < (conditional
23759 warning).
23760 (Check_For_Source): Change value of Source_Id only after the current
23761 source has been dealt with.
23762
237632005-09-01 Robert Dewar <dewar@adacore.com>
23764 Doug Rupp <rupp@adacore.com>
23765
23766 * exp_attr.adb: Handle vax fpt for 'Valid attribute
23767 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
23768 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
23769 (Valid_D, Valid_F, Valid_G): New functions
23770
237712005-09-01 Ed Schonberg <schonberg@adacore.com>
23772 Hristian Kirtchev <kirtchev@adacore.com>
23773 Javier Miranda <miranda@adacore.com>
23774
23775 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
23776 from object notation, the original node is unanalyzed and carries no
23777 semantic information, so that accessiblity checks must be performed on
23778 the type of the actual itself.
23779 (Expand_N_Subprogram_Declaration): Change last actual parameter for
23780 compatibility with Build_Protected_Sub_Specification.
23781 (Check_Overriding_Inherited_Interfaces): Add suport to handle
23782 overloaded primitives.
23783 (Register_Interface_DT_Entry): Use the new name of the formal
23784 the the calls to Expand_Interface_Thunk
23785
23786 * exp_dbug.ads: Augment comments on encoding of protected types to
23787 include the generation of dispatching subprograms when the type
23788 implements at least one interface.
23789
23790 * lib.ads: Extend information in Load_Stack to include whether a given
23791 load comes from a Limited_With_Clause.
23792
23793 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
23794 whether a potential circularity is harmless, because it includes units
23795 loaded through a limited_with clause. Extends previous treatment which
23796 did not handle properly arbitrary combinations of limited and
23797 non-limited clauses.
23798
237992005-09-01 Nicolas Setton <setton@adacore.com>
23800
23801 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
23802 to be encoded as typ___XBLU_lowerbound__upperbound instead of
23803 typ___XB_lowerbound__upperbound.
23804
238052005-09-01 Thomas Quinot <quinot@adacore.com>
23806
23807 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
23808 dummy access formal for RACW/RAS TypeCode TSS.
23809 (Build_TypeCode_Call): Do not generate dummy null access actual for
23810 calls to the TypeCode TSS.
23811
238122005-09-01 Ed Schonberg <schonberg@adacore.com>
23813
23814 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
23815 fully qualified name, to distinguish instances with the same local name.
23816
23817 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
23818 fully qualified.
23819
238202005-09-01 Robert Dewar <dewar@adacore.com>
23821
23822 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
23823 packed arrays.
23824
238252005-09-01 Jerome Lambourg <lambourg@adacore.com>
23826
23827 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
23828 (Free): New deallocation procedure for filter elements
23829 (Close): Deallocate any existing filter for the concerned connection
23830
238312005-09-01 Laurent Pautet <pautet@adacore.com>
23832
23833 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
23834 position set is provided, we compute one in order to reduce the maximum
23835 length of the keys. This computation first selects a character
23836 position between 1 and the minimum length of the keys in order to
23837 avoid reducing one of the keys to an empty string.
23838 (Initialize, Compute): When the ratio V to K is too low, the algorithm
23839 does not converge. The initialization procedure now comes with a
23840 maximum number of iterations such that when exceeded, an exception is
23841 raised in Compute. The user can initialize this ratio to another value
23842 and try again
23843 Reformating and updated headers.
23844
238452005-09-01 Javier Miranda <miranda@adacore.com>
23846
23847 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
23848 that given an entity T creates and returns an Itype that duplicates the
23849 contents of T. The returned Itype has the null-exclusion
23850 attribute set to True, and its Etype attribute references T
23851 to keep the association between the two entities.
23852 Update copyright notice
23853
23854 * sem_aggr.adb (Check_Can_Never_Be_Null,
23855 Aggregate_Constraint_Checks, Resolve_Aggregate,
23856 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
23857
23858 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
23859
238602005-09-01 Gary Dismukes <dismukes@adacore.com>
23861 Robert Dewar <dewar@adacore.com>
23862 Hristian Kirtchev <kirtchev@adacore.com>
23863
23864 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
23865 Result_Definition.
23866
23867 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
23868 function specs.
23869 Call Set_Result_Definition instead of Set_Subtype_Mark.
23870 (P_Subprogram_Specification): Add parsing of anonymous access result
23871 plus null exclusions. Call Set_Result_Definition instead of
23872 Set_Subtype_Mark.
23873
23874 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
23875 (P_Access_Type_Definition): Add parsing for an anonymous access result
23876 subtype, plus parsing for null exclusions. Call Set_Result_Definition
23877 instead of Set_Subtype_Mark.
23878
23879 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
23880 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
23881 (Result_Definition): New function for N_Function_Specifications.
23882 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
23883 N_Function_Specification.
23884 (Set_Null_Exclusion_Present): Allow this flag for
23885 N_Function_Specification.
23886 (Set_Result_Definition): New procedure for N_Function_Specifications.
23887 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
23888 and N_Function_Specification.
23889
23890 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
23891 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
23892 Add support for LIMITED NEW for Ada 2005 AI-419
23893 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
23894 syntax for anonymous access results.
23895 Replace Subtype_Mark field by Result_Definition in
23896 N_Function_Specification and N_Access_Definition specs.
23897 Add Null_Exclusion_Present to spec of N_Function_Specification.
23898 (Result_Definition): New function for N_Function_Specification and
23899 N_Access_Function_Definition.
23900 (Set_Result_Definition): New procedure for N_Function_Specification and
23901 N_Access_Function_Definition.
23902
23903 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
23904 Result_Definition for cases of N_Access_Function_Definition and
23905 N_Function_Specification.
23906 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
23907
239082005-09-01 Vincent Celier <celier@adacore.com>
23909
23910 * lib-writ.adb: Update Copyright notice
23911 (Write_With_Lines): On platforms where file names are case-insensitive,
23912 record the file names in lower case.
23913 (Write_ALI): For D lines, on platforms where file names are
23914 case-insensitive, record the file names in lower case.
23915
239162005-09-01 Ed Schonberg <schonberg@adacore.com>
23917 Emmanuel Briot <briot@adacore.com>
23918
23919 * lib-xref.adb (Output_Overridden_Op): Display information on
23920 overridden operation.
23921
23922 * lib-xref.ads: Add documentation on overridden operations.
23923
23924 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
23925 information.
23926
23927 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
23928 overriding entity information.
23929
239302005-09-01 Vincent Celier <celier@adacore.com>
23931
23932 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
23933 including those that are inherited.
23934
239352005-09-01 Robert Dewar <dewar@adacore.com>
23936
23937 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
23938
23939 * par-prag.adb: Implement new pragma Debug_Policy
23940
23941 * sem_prag.adb Implement new pragma Debug_Policy
23942 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
23943 Component_Size attribute specification. Give warning for ignored pragma
23944 Pack.
23945
23946 * snames.h, snames.ads, snames.adb: Introduce entries in
23947 Preset_Names for Name_Disp_Asynchronous_Select,
23948 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
23949 Name_Disp_Timed_Select.
23950 New pragma Debug_Policy
23951
23952 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
23953 explicitly.
23954 Switch -gnata also sets Debug_Pragmas_Enabled
23955
23956 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
23957 handle an explicit -gnata when compiling predefined files.
23958
239592005-09-01 Vincent Celier <celier@adacore.com>
23960
23961 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
23962 directories of projects that have no Ada sources.
23963
239642005-09-01 Robert Dewar <dewar@adacore.com>
23965
23966 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
23967 (makes a difference for wide characters)
23968
da8f5fd9 23969 * widechar.adb, widechar.ads:
98b40956
AC
23970 Add Wide_Char_Byte_Count feature to count chars vs bytes
23971
239722005-09-01 Thomas Quinot <quinot@adacore.com>
23973 Ed Schonberg <schonberg@adacore.com>
23974 Robert Dewar <dewar@adacore.com>
23975
23976 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
23977 'Address attribute reference with an overloaded prefix, use the
23978 location of the prefix (not the location of the attribute reference) as
23979 the error location.
23980 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
23981 a function renaming thereof, is a valid prefix for 'Size (where it is
23982 intepreted as a function call).
23983 (Statically_Denotes_Entity): New predicate to determine whether the
23984 prefix of an array attribute can be considered static.
23985
23986 PR ada/9087
23987 (Eval_Attr): Fix failure to evaluate Component_Size for
23988 unconstrained arrays (resulted in wrong value in packed case, since
23989 back end cannot handle this case)
23990
239912005-09-01 Robert Dewar <dewar@adacore.com>
23992
23993 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
23994 error msgs for most common cases.
23995 Use new errout insertion char < (conditional warning)
23996
239972005-09-01 Javier Miranda <miranda@adacore.com>
23998 Ed Schonberg <schonberg@adacore.com>
23999
24000 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24001 become local to the whole package.
24002 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24003 the package was already analyzed the new algorithm "replaces" the
24004 real entities by the shadow ones. This is required to ensure that
24005 the order of these entities in the homonym chains does not change;
24006 otherwise we can have undefined references at linking time because
24007 in case of conflicts the external name of the entities will have
24008 a suffix that depends on the order of the entities in the chain.
24009 (Remove_Limited_With_Clause): Complementary code that completes the
24010 new algorithm and replaces the shadow entities by the real ones.
24011 (Install_Limited_Withed_Unit): When unchaining entities before the
24012 installation of the shadow entities, only regular entities of the
24013 public part must be taken into account. This is required to
24014 keep this routine in synch with the work done by Remove_Limited_
24015 With_Clause
24016 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24017 even if unit is analyzed, because the analysis of the unit is
24018 idempotent in any case, and the limited view of the unit may have to
24019 be installed for proper visibility.
24020 (Expand_Limited_With_Clause): Even if the unit in the implicit
24021 with_clause has been analyzed already, a limited view of the package
24022 must be built for the current context, if it does not exist yet.
24023
240242005-09-01 Ed Schonberg <schonberg@adacore.com>
24025 Javier Miranda <miranda@adacore.com>
24026 Gary Dismukes <dismukes@adacore.com>
24027
24028 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24029 defining entity for the instance body, make a new defining identifier
24030 rather than copying the entity of the spec, to prevent accidental
24031 sharing of the entity list.
24032 (Check_Private_View): When exchanging views of private types, build the
24033 list of exchanged views as a stack, to ensure that on exit the exchanges
24034 are undone in the proper order.
24035 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24036 Restore the compilation environment in case of instantiation_error.
24037 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24038 for an anonymous access result.
24039 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24040 (Formal_Entity): Handle properly the case of a formal package that
24041 denotes a generic package renaming.
24042
240432005-09-01 Thomas Quinot <quinot@adacore.com>
24044
24045 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24046 clause if the array aggregate is surrounded by parentheses.
24047
240482005-09-01 Cyrille Comar <comar@adacore.com>
24049 Gary Dismukes <dismukes@adacore.com>
24050 Ed Schonberg <schonberg@adacore.com>
24051 Javier Miranda <miranda@adacore.com>
24052
24053 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24054 underlying type
24055 to check if a type is Constrained in cases related to code generation
24056 (rather than semantic checking) since otherwise we do not generate
24057 similar code for mutable private types depending if their
24058 discriminants are visible or not.
24059 (Check_Abstract_Overriding): Do not complain about failure to override
24060 the primitive operations used in dispatching selects since they will
24061 always be overriden at the freeze point of the type.
24062 (Access_Definition): Separate out handling for resetting the scope
24063 of an anonymous access function result type. Retrieve the scope
24064 of the associated function rather than using Current_Scope, which
24065 does not have a consistent value (depends on whether we're in the
24066 middle of analyzing formal parameters). Add ??? comment about
24067 finding a cleaner way to handle the special cases of scope setting.
24068 (Process_Incomplete_Dependents): A protected operation is never a
24069 dispatching operation (only its wrapper may be).
24070 (Build_Derived_Record_Type): In case of tagged private types that
24071 implement interfaces add derivation of predefined primitive
24072 operations.
24073 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24074 by two parameters that are used in case of derivation from abstract
24075 interface types: No_Predefined_Prims is used to avoid the derivation
24076 of predefined primitives from the interface, and Predefined
24077 Prims_Only is used to complete the derivation predefined primitives
24078 in case of private tagged types implementing interfaces.
24079 Fix typo in comments
24080 (Find_Interface_In_Descendant): Protect the frontend against
24081 wrong code with large circularity chains.
24082 (Is_Private_Overriding): Add support for entities overriding interface
24083 subprograms. The test failed because Entities associated with overriden
24084 interface subprograms are always marked as hidden (and used to build
24085 the secondary dispatch table); in this case the overriden entity is
24086 available through the field abstract_interface_alias (cf. override_
24087 dispatching_operation)
24088 (Access_Definition): Set the scope of the type to Current_Scope for the
24089 case of a function with an anonymous access result type.
24090 (Access_Subprogram_Declaration): Handle creation of the type entity for
24091 an access-to-function type with an anonymous access result.
24092 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24093 in handling for N_Access_Function_Definition.
24094 (Analyze_Subtype_Declaration): Modify the text of error message.
24095 (Derived_Type_Declaration): Modify the text of error message.
24096 (Process_Subtype): Modify the text of error message plus cleanup
24097 of one redundant error message.
24098 (Analyze_Component_Declaration): Code cleanup.
24099 (Analyze_Object_Declaration): Code cleanup.
24100 (Analyze_Subtype_Declaration): Propagate the null-exclusion
24101 attribute in case of access types. Code cleanup.
24102 (Array_Type_Declaration): Code cleanup.
24103 (Process_Discriminants): Create the new null-excluding itype
24104 if required. Code cleanup.
24105 (Process_Subtype): Create the new null-excluding itype if
24106 required. Code cleanup.
24107 (Build_Derived_Record_Type): Code cleanup to avoid calling
24108 twice the subprogram derive_subprograms in case of private
24109 types that implement interfaces. In this particular case the
24110 subprogram Complete_Subprograms_Derivation already does the
24111 job associated with the second call.
24112
6f7f72f9
EB
24113 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24114 conversion to the full view when generating an operation for a
24115 discriminant whose type may currently be private.
98b40956
AC
24116
241172005-09-01 Ed Schonberg <schonberg@adacore.com>
24118 Javier Miranda <miranda@adacore.com>
24119
24120 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24121 V (Obj.F), the rewriting does not involve the indexed component, but
24122 only the selected component itself.
24123 Do not apply the transformation if the analyzed node is an actual of a
24124 call to another subprogram.
24125 (Complete_Object_Operation): Retain the entity of the
24126 dispatching operation in the selector of the rewritten node. The
24127 entity will be used in the expansion of dispatching selects.
24128 (Analyze_One_Call): Improve location of the error message associated
24129 with interface.
24130 (Analyze_Selected_Component): No need to resolve prefix when it is a
24131 function call, resolution is done when parent node is resolved, as
24132 usual.
24133 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24134 when attempting to resolve a call transformed from its object notation.
24135 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24136 of the argument list for each interpretation of the operation.
24137 (Try_Object_Operation): The designated type of an access parameter may
24138 be an incomplete type obtained through a limited_with clause, in which
24139 case the primitive operations of the type are retrieved from its full
24140 view.
24141 (Analyze_Call): If this is an indirect call, and the return type of the
24142 access_to_subprogram is incomplete, use its full view if available.
24143
241442005-09-01 Javier Miranda <miranda@adacore.com>
24145 Gary Dismukes <dismukes@adacore.com>
24146
24147 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24148 access types the null-exclusion and access-to-constant attributes must
24149 also match.
24150 (Analyze_Return_Statement): When the result type is an anonymous access
24151 type, apply a conversion of the return expression to the access type
24152 to ensure that appropriate accessibility checks are performed.
24153 (Analyze_Return_Type): For the case of an anonymous access result type,
24154 generate the Itype and set Is_Local_Anonymous_Access on the type.
24155 Add ??? placeholder for check to disallow returning a limited object
24156 in Ada 2005 unless it's an aggregate or a result of a function call.
24157 Change calls from Subtype_Mark to Result_Definition.
24158 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24159 Result_Definition in call to Make_Function_Specification.
24160 (Build_Body_To_Inline): Change Set_Subtype_Mark to
24161 Set_Result_Definition.
24162 (Make_Inequality_Operator): Change formal Subtype_Mark to
24163 Result_Definition in call to Make_Function_Specification.
24164 (Process_Formals): Create the new null-excluding itype if required.
24165 (New_Overloaded_Entity): For an entity overriding an interface primitive
24166 check if the entity also covers other abstract subprograms in the same
24167 scope. This is required to handle the general case, that is, overriding
24168 other interface primitives and overriding abstract subprograms inherited
24169 from some abstract ancestor type.
24170 (New_Overloaded_Entity): For an overriding entity that comes from
24171 source, note the operation that it overrides.
24172 (Check_Conformance, Type_Conformant): Addition of one new formal
24173 to skip controlling formals in the analysis. This is used to
24174 handle overloading of abstract interfaces.
24175 (Base_Types_Match): Add missing case for types imported from
24176 limited-with clauses
24177 (New_Overloaded_Entity): Add barrier to protect the use of
24178 the "alias" attribute.
24179
241802005-09-01 Ed Schonberg <schonberg@adacore.com>
24181
24182 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24183 verify that the procedure and the entry are mode conformant.
24184 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24185 as a different operator, which is often a cut-and-paste error.
24186
241872005-09-01 Javier Miranda <miranda@adacore.com>
24188 Ed Schonberg <schonberg@adacore.com>
24189
24190 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24191 used in controlling parameters exclude null because it is necessary to
24192 read the tag to dispatch, and null has no tag.
24193 (Override_Dispatching_Operation): If the previous operation is inherited
24194 from an interface, it becomes hidden and does not participate in later
24195 name resolution.
24196
241972005-09-01 Javier Miranda <miranda@adacore.com>
24198 Ed Schonberg <schonberg@adacore.com>
24199 Gary Dismukes <dismukes@adacore.com>
24200
24201 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24202 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24203 the expander will generate the corresponding run-time check to evaluate
24204 the expression.
24205 (Resolve_Call): Check for legal type of procedure name or prefix that
24206 appears as a trigger in a triggering alternative.
24207 (Valid_Conversion): If expression is ambiguous and the context involves
24208 an extension of System, remove System.Address interpretations.
24209 (Resolve_Qualified_Expression): Reject the case of a specific-type
24210 qualification applied to a class-wide argument. Enhance comment
24211 to explain checking of Original_Node.
24212 (Resolve_Type_Conversion): The location of the error message was not
24213 general enough to handle the general case and hence it has been removed.
24214 In addition, this patch improves the text of the message.
24215 (Resolve_Type_Conversion): Add missing support for access to interface
24216 types.
24217 (Resolve_Type_Conversion): If the target is a class-wide interface type,
24218 do not expand if the expression is the actual in a call, because proper
24219 expansion will take place when the call itself is expanded.
24220 (Resolve_Allocator): If the context is an unchecked conversion, the
24221 allocator inherits its storage pool, if any, from the target type of
24222 the conversion.
24223
242242005-09-01 Ed Schonberg <schonberg@adacore.com>
24225 Javier Miranda <miranda@adacore.com>
24226
24227 * sem_type.adb (Add_One_Interp): If a candidate operation is an
24228 inherited interface operation that has an implementation, use the
24229 implementation to avoid spurious ambiguities.
24230 (Interface_Present_In_Ancestor): In case of concurrent types we can't
24231 use the Corresponding_Record_Typ attribute to look for the interface
24232 because it is set by the expander (and hence it is not always
24233 available). For this reason we traverse the list of interfaces
24234 (available in the parent of the concurrent type).
24235 (Interface_Present_In_Ancestor): Handle entities from the limited view
24236
242372005-09-01 Ed Schonberg <schonberg@adacore.com>
24238
24239 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24240 from the list of required components.
24241 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24242 primitive procedure of a limited interface with a controlling first
24243 parameter.
24244 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24245 of an entry.
24246 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24247 capture if it is generated in the second operand of a short-circuit
24248 operation.
24249 Do not capture values for variables with address clauses.
24250 (Is_Object_Reference): Treat a function call as an object reference only
24251 if its type is not Standard_Void_Type.
24252
242532005-09-01 Ed Schonberg <schonberg@adacore.com>
24254
24255 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24256 to a variable that is statically known to be constant.
24257
242582005-09-01 Geert Bosch <bosch@adacore.com>
24259 Robert Dewar <dewar@adacore.com>
24260
24261 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24262 (VAXGF_Safe_First): Idem.
24263
242642005-09-01 Robert Dewar <dewar@adacore.com>
24265 Arnaud Charlet <charlet@adacore.com>
24266
24267 * g-dirope.ads: Minor reformatting
24268 Document that bounds of result of Base_Name match the input index
24269 positions.
24270 Add documentation on environment variable syntax for Expand_Path
24271
24272 * gnat_ugn.texi: Update documentation to include mention of -m switches
24273 Document new treatment of wide characters in max line length
24274 style check.
24275 Remove -gnatL/-gnatZ switches, no longer used.
24276 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24277 of -gnata switch.
24278
24279 * gnat_rm.texi: Add doc for two argument form of pragma
24280 Float_Representation.
24281 Add documentation for pragma No_Strict_Aliasing
24282 Add note that explicit component clause overrides pragma Pack.
24283 Add documentation of pragma Debug_Policy
24284
242852005-09-01 Matthew Heaney <heaney@adacore.com>
24286
da8f5fd9
AJ
24287 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24288 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24289 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
98b40956
AC
24290 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24291 draft (Draft 13, August 2005) of Ada Amendment 1.
24292
242932005-09-01 Arnaud Charlet <charlet@adacore.com>
24294
24295 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24296 Note that the platform-specific version of g-soccon.ads for VMS is now
24297 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24298 really is a package spec).
24299 Replace s-taspri-linux.ads by s-taspri-posix.ads
24300 Remove references to s-mastop-x86.adb
24301
24302 * system-vxworks-xscale.ads: Removed, no longer used.
24303 * s-vxwork-xscale.ads: Removed, no longer used.
24304
243052005-09-01 Robert Dewar <dewar@adacore.com>
24306
24307 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24308 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24309 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24310 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24311 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24312 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24313 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24314 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24315 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24316 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24317 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24318 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24319 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24320 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24321 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24322 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24323 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24324 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24325 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24326 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24327 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24328
332a1c2e
AC
243292005-08-29 Arnaud Charlet <charlet@adacore.com>
24330
24331 PR ada/23187
24332 * adaint.c
da8f5fd9 24333 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
332a1c2e
AC
24334
243352005-08-29 Arnaud Charlet <charlet@adacore.com>
24336 Doug Rupp <rupp@adacore.com>
24337
24338 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24339 when needed.
24340 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24341 this code in the GNAT run-time.
24342
24343 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24344
24345 PR ada/21053
24346 * init.c (__gnat_error_handler [many]): Mark "msg" as const
24347 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24348
24349 (__gnat_inside_elab_final_code): Moved here from
24350 Standard_Library and only defined for the compiler.
24351 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24352 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24353 using RTPs because directly vectored Interrupt routines are not
24354 supported on this configuration.
24355 (getpid): Do not redefine this function on VxWorks when using RTPs
24356 because this primitive is well supported by the RTP libraries.
24357 (copy_msg): Correct the code that checks for buffer overflow.
24358 Discovered during code reading.
24359
243602005-08-29 Olivier Hainque <hainque@adacore.com>
24361
24362 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24363 a library level mutable variable with an initializer, tell
24364 build_allocator to ignore the initializer's size. It may not be large
24365 enough for all the values that might be assigned to the variable later
24366 on.
24367
243682005-08-29 Arnaud Charlet <charlet@adacore.com>
24369 Eric Botcazou <ebotcazou@adacore.com>
24370
24371 * trans.c: Protect < in error msg with quote
24372 Replace GCC_ZCX by Back_End_Exceptions.
24373 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24374 has been sufficiently aligned in the record.
24375
35fd1d77
JW
243762005-08-15 James E. Wilson <wilson@specifix.com>
24377
24378 * system-linux-alpha.ads: Change ia64 to alpha.
24379
b15341b8
KH
243802005-08-01 Kazu Hirata <kazu@codesourcery.com>
24381
24382 * decl.c, utils.c: Fix comment typos.
24383
9e4eb559
KH
243842005-07-29 Kazu Hirata <kazu@codesourcery.com>
24385
24386 * decl.c, init.c, initialize.c: Fix comment typos.
24387
4038c495
GB
243882005-07-20 Giovanni Bajo <giovannibajo@libero.it>
24389
24390 Make CONSTRUCTOR use VEC to store initializers.
24391 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24392 CONSTRUCTOR_ELTS.
24393 * trans.c (extract_values): Likewise.
24394 * utils.c (convert, remove_conversions): Likewise.
24395 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24396 gnat_build_constructor): Likewise.
24397
f685a2e6
AP
243982005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24399
24400 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24401 DECL_SECTION_NAME.
24402 (compare_field_bitpos): Likewise.
24403
7c6ef73e
AP
244042005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24405
24406 * utils.c (create_var_decl): Only set DECL_COMMON on
24407 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24408 VAR_OR_FUNCTION_DECL_P.
24409
820cc88f 244102005-07-08 Daniel Berlin <dberlin@dberlin.org>
da8f5fd9 24411
820cc88f
DB
24412 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24413 removed.
24414
1a9cb483
AC
244152005-07-07 Pascal Obry <obry@adacore.com>
24416
24417 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24418 returned type on Windows.
24419
24420 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24421 routine.
24422
24423 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24424 exception in this case.
24425 Simplify the code as "Image (Image'Range)" = "Image".
24426
244272005-07-07 Vincent Celier <celier@adacore.com>
24428
24429 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24430 the destructor/constructor attributes for <lib>final/<lib>init.
24431
24432 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24433
244342005-07-07 Eric Botcazou <ebotcazou@adacore.com>
24435
24436 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24437 type if the parameter is not passed by copy but reference by default.
24438
244392005-07-07 Javier Miranda <miranda@adacore.com>
24440
24441 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24442 Reimplementation of the support for abstract interface types in order
24443 to leave the code more clear and easy to maintain.
24444
24445 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24446 abstract interface types in order to leave the code clearer and easier
24447 to maintain.
24448
24449 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24450 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24451 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24452 appropriate entry of the secondary dispatch table.
24453 (Make_DT): Add code to inherit the secondary dispatch tables of
24454 the ancestors.
24455
24456 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24457 implementing both functionalities by means of a common routine, each
24458 routine has its own code.
24459
244602005-07-07 Javier Miranda <miranda@adacore.com>
24461
24462 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24463
24464 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24465 types:
24466 --
24467 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24468 --
24469
24470 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24471 use of tag incomplete types.
24472
24473 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24474 give support to tagged incomplete types.
24475
24476 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24477 expression is a discriminant reference and its type is private, as can
24478 happen within a stream operation for a mutable record, use the full
24479 view of the type to resolve the case alternatives.
24480 (Analyze_Assignment): Check wrong dereference of incomplete types.
24481
24482 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24483 types.
24484
24485 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24486 incomplete types.
24487
24488 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24489 N_Incomplete_Type_Declaration nodes.
24490
24491 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24492 Tag_Present to give support to tagged incomplete types:
24493 --
24494 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24495 --
24496
244972005-07-07 Olivier Hainque <hainque@adacore.com>
24498
24499 PR ada/22301
1a9cb483
AC
24500 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24501 definitions for the Unwind wrappers in the compiler case.
24502
245032005-07-07 Ed Schonberg <schonberg@adacore.com>
24504 Javier Miranda <miranda@adacore.com>
24505
24506 * par-load.adb (Load): If a child unit is loaded through a limited_with
24507 clause, each parent must be loaded as a limited unit as well.
24508
24509 * sem_ch10.adb (Previous_Withed_Unit): Better name for
24510 Check_Withed_Unit. Return true if there is a previous with_clause for
24511 this unit, whether limited or not.
24512 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24513 the current unit.
24514 (Is_Visible_Through_Renamings): New local subprogram of install_limited
24515 _withed_unit that checks if some package installed through normal with
24516 clauses has a renaming declaration of package whose limited-view is
24517 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24518 of the current Draft document for Ada 2005.
24519 (Analyze_Context): Complete the list of compilation units that
24520 are allowed to contain limited-with clauses. It also contains
24521 checks that were previously done by Install_Limited_Context_Clauses.
24522 This makes the code more clear and easy to maintain.
24523 (Expand_Limited_With_Clause) It is now a local subprogram of
24524 Install_Limited_Context_Clauses, and contains the code that adds
24525 the implicit limited-with clauses for parents of child units.
24526 This functionality was prevously done by Analyze_Context.
24527
24528 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24529 incomplete type.
24530
24531 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24532 been erroneously named in a limited-with clause of its own context.
24533 In this case the error has been previously notified by Analyze_Context.
24534
245352005-07-07 Ed Schonberg <schonberg@adacore.com>
24536
24537 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24538 generic package that contains local declarations with the same name.
24539 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24540
245412005-07-07 Bernard Banner <banner@adacore.com>
24542
24543 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24544 ia64 platform only on platforms that you the GCC unwind library
24545 rather than the system unwind library.
24546
245472005-07-07 Thomas Quinot <quinot@adacore.com>
24548
24549 * expect.c: Minor reformatting
24550
245512005-07-07 Sergey Rybin <rybin@adacore.com>
24552
24553 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24554 --no-separate-is
24555
24556 * gnat_ugn.texi: Add description for new gnatpp option
24557 (--no-separate-is)
24558
7d300a99
AC
245592005-07-04 Thomas Quinot <quinot@adacore.com>
24560
24561 * g-expect-vms.adb, g-expect.ads, g-expect.adb
24562 (Get_Command_Output): New subprogram to launch a process and get its
24563 standard output as a string.
24564
245652005-07-04 Eric Botcazou <ebotcazou@adacore.com>
9bae2797 24566 Olivier Hainque <hainque@adacore.com>
7d300a99
AC
24567
24568 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
24569 fetch a code-range descriptor associated with the machine state. On
24570 failure set the machine state's PC to 0; on success, pass the
24571 descriptor to exc_virtual_unwind.
24572
24573 * init.c (Tru64 section): New function __gnat_set_code_loc.
24574
245752005-07-04 Vincent Celier <celier@adacore.com>
24576
da8f5fd9
AJ
24577 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24578 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
7d300a99
AC
24579 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
24580 Remove all auto-initialization code, as this is now done through the
24581 constructor mechanism.
24582
24583 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
24584 __gnat_sals_init_using_constructors): New functions.
24585
24586 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
24587 Linker_Constructor and Linker_Destructor when switch -a is used.
24588
24589 * bindusg.adb: Add line for new switch -a
24590
24591 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
24592 (Gnatbind): When switch -a is used, check if it is allowed
24593
24594 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
24595
245962005-07-04 Joel Brobecker <brobecker@adacore.com>
24597
24598 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
24599 This prevents us from hitting a limitation during the debug info
24600 generation when using stabs.
24601 (Prims_Ptr): Likewise.
24602
246032005-07-04 Gary Dismukes <dismukes@adacore.com>
24604 Ed Schonberg <schonberg@adacore.com>
24605 Javier Miranda <miranda@adacore.com>
24606
24607 * checks.adb (Null_Exclusion_Static_Checks): In the case of
24608 N_Object_Declaration, only perform the checks if the Object_Definition
24609 is not an Access_Definition.
24610
6f7f72f9
EB
24611 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
24612 where the parent of an the access definition is an N_Object_Declaration
24613 when determining the Associated_Node_For_Itype and scope of an
24614 anonymous access-to-subprogram type.
7d300a99
AC
24615
24616 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
24617 Corresponding_Spec on the body created for a null procedure. Add ???
24618 comment. Remove New_Copy_Tree call on body argument to
24619 Set_Body_To_Inline.
24620
24621 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
24622 discriminants, use the type of the actual as well, because the
24623 discriminants may be read by the called subprogram.
24624
24625 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
24626 access type we do not need to handle non-limited views.
24627 (Build_Derived_Record_Type): Additional check to check that in case of
24628 private types, interfaces are only allowed in private extensions.
24629
246302005-07-04 Eric Botcazou <ebotcazou@adacore.com>
24631
24632 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
24633 <Pragma_Linker_Destructor>: Likewise.
24634
24635 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
24636 Pragma_Linker_Destructor.
24637
24638 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
24639 ATTR_LINK_DESTRUCTOR.
24640 (static_ctors, static_dtors): New variables.
24641
24642 * misc.c (gnat_expand_body): Output current function as constructor
24643 and destructor if requested.
24644
24645 * par-prag.adb: Add processing for pragma Linker_Constructor and
24646 Linker_Destructor.
24647
24648 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
24649 extracted from Check_Interrupt_Or_Attach_Handler.
24650 (Check_Interrupt_Or_Attach_Handler): Invoke it.
24651 Implement pragma Linker_Constructor and Linker_Destructor with the
24652 help of Find_Unique_Parameterless_Procedure.
24653 Replace Name_Alias with Name_Target for pragma Linker_Alias.
24654
da8f5fd9 24655 * snames.h, snames.ads, snames.adb:
7d300a99
AC
24656 Add Name_Linker_Constructor and Name_Linker_Destructor.
24657 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
24658 * snames.adb: Remove Name_Alias.
24659
24660 * trans.c: Include cgraph.h.
24661 (build_global_cdtor): New function.
24662 (Compilation_Unit_to_gnu): Build global constructor and destructor if
24663 needed.
24664 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
24665 of objects too.
24666 (addressable_p) <COMPONENT_REF>: Unconditionally test
24667 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
24668
24669 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
24670 variable if it is external.
24671
24672 (static_ctors, static_dtors): New global variables.
24673 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
24674 <ATTR_LINK_DESTRUCTOR>: Likewise.
24675 (end_subprog_body): Chain function as constructor and destructor
24676 if requested.
24677
24678 * exp_util.adb (Force_Evaluation): Unconditionally invoke
24679 Remove_Side_Effects with Variable_Ref set to true.
24680 (Remove_Side_Effects): Handle scalar types first. Use a renaming
24681 for non-scalar types even if Variable_Ref is true and for class-wide
24682 expressions.
24683
246842005-07-04 Ed Schonberg <schonberg@adacore.com>
24685
24686 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
24687 to prevent spurious warnings.
24688
246892005-07-04 Thomas Quinot <quinot@adacore.com>
24690
24691 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
24692 Itypes. Itypes are really unexpected there.
24693 (Build_TypeCode_Function): Generalise special processing for Itypes to
24694 handle the case of numeric implicit base types as well as enumerated
24695 ones.
24696
246972005-07-04 Ed Schonberg <schonberg@adacore.com>
24698
24699 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
24700 controlled, indicate the expected type of the dereference that is
24701 created for the call to Deep_Finalize, to prevent spurious errors when
24702 the designated type is private and completed with a derivation from
24703 another private type.
24704
247052005-07-04 Vincent Celier <celier@adacore.com>
24706
24707 * make.adb (Change_To_Object_Directory): When unable to change the
24708 current dir to the object directory, output the full path of the
24709 directory.
24710
247112005-07-04 Matthew Gingell <gingell@adacore.com>
24712
24713 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
24714
24715 * indepsw-linux.adb: Replace by...
24716
24717 * indepsw-gnu.adb: ...this new file
24718
247192005-07-04 Vincent Celier <celier@adacore.com>
24720
24721 * mlib-prj.adb (Auto_Initialize): New constant String
24722 (SALs_Use_Constructors): New Boolean function
24723 (Build_Library): Call gnatbind with Auto_Initialize switch when
24724 SALs_Use_Constructors returns True.
24725
24726 * mlib-tgt.ads: Minor reformatting
24727
24728 * mlib-utl.ads: Minor reformatting
24729
24730 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
24731
247322005-07-04 Ed Schonberg <schonberg@adacore.com>
24733
24734 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
24735 single protected declarations can have an interface list.
24736 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
24737 with seriously malformed entry declarations, and lead to compilation
24738 abandoned messages.
24739
247402005-07-04 Javier Miranda <miranda@adacore.com>
24741
24742 * par-load.adb: Load the context items in two rounds.
24743
247442005-07-04 Robert Dewar <dewar@adacore.com>
24745
24746 * scng.adb: Do not consider Mod used as an attribute to be a keyword
24747
247482005-07-04 Ed Schonberg <schonberg@adacore.com>
24749 Javier Miranda <miranda@adacore.com>
24750
24751 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
24752 type extension needs a limited view.
24753 Remove previous restriction on private types available through the
24754 limited-view (only tagged private types were previously allowed).
24755 (Install_Withed_Unit): In the code that implements the
24756 legality rule given in AI-377, exclude a child unit with the name
24757 Standard, because it is a homonym of the Standard environment package.
24758
247592005-07-04 Thomas Quinot <quinot@adacore.com>
24760
24761 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
24762 overloaded function call, carry interpretations from the original tree
24763 to the copy.
24764
247652005-07-04 Ed Schonberg <schonberg@adacore.com>
24766
24767 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
24768 types check whether some designated type is a limited view, and use
24769 the non-limited view if available.
24770
247712005-07-04 Gary Dismukes <dismukes@adacore.com>
24772
24773 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
24774 constraint of full view of a private view T1 if present, when T2 is a
24775 discriminated full view.
24776
247772005-07-04 Thomas Quinot <quinot@adacore.com>
24778
24779 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
24780 actual that is a view conversion of a bit packed array reference.
24781
247822005-07-04 Ed Schonberg <schonberg@adacore.com>
24783
24784 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
24785 present before checking whether an interface type covers a synchronized
24786 type.
24787
247882005-07-04 Ed Schonberg <schonberg@adacore.com>
24789
24790 * sem_util.adb (Is_Object_Reference): An indexed or selected component
24791 whose prefix is an implicit dereference is an object reference. Removes
24792 spurious errors when compiling with -gnatc.
24793
247942005-07-04 Robert Dewar <dewar@adacore.com>
24795
24796 PR ada/22039
7d300a99
AC
24797 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
24798
247992005-07-04 Matthew Gingell <gingell@adacore.com>
24800
24801 * tracebak.c: Enable tracebacks on ia64 platforms
24802
248032005-07-04 Vincent Celier <celier@adacore.com>
24804
24805 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
24806 the GNAT BIND command, as gnatbind accepts multiples ALI files with
24807 the -L or -n switches.
24808
248092005-07-04 Vincent Celier <celier@adacore.com>
24810
24811 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
24812 correctly computed and the main project data is not modified while
24813 doing so.
24814 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
24815 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
24816 c++linker as this does not work on some platforms.
24817
248182005-07-04 Matthew Heaney <heaney@adacore.com>
24819
24820 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
24821 was changed.
24822 * a-coinve.adb: Perform constraint checks explicitly.
24823
248242005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24825 Thomas Quinot <quinot@adacore.com>
24826
24827 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
24828 new target gen-soccon.
24829
248302005-07-04 Robert Dewar <dewar@adacore.com>
24831
24832 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
24833
248342005-07-04 Thomas Quinot <quinot@adacore.com>
24835
24836 * g-socket.ads (Check_Selector): Minor rewording of comment.
24837
248382005-07-04 Vincent Celier <celier@adacore.com>
24839
24840 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
24841
248422005-07-04 Thomas Quinot <quinot@adacore.com>
24843
24844 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
24845
248462005-07-04 Sergey Rybin <rybin@adacore.com>
24847
6f7f72f9 24848 * gnat_ugn.texi: Add description of --eol gnatpp option
7d300a99
AC
24849
248502005-07-04 Eric Botcazou <ebotcazou@adacore.com>
24851 Thomas Quinot <quinot@adacore.com>
24852
6f7f72f9 24853 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
7d300a99
AC
24854 if the user wants all calls of a subprogram to be flagged,
24855 independently of whether they are made from within the same unit or
24856 another unit.
6f7f72f9
EB
24857 Mention restriction for pragma Linker_Alias on some platforms.
24858 Document pragma Linker_Constructor and Linker_Destructor.
24859 Rewrite documentation of Weak_External, Linker_Section and
24860 Linker_Alias pragmas.
7d300a99 24861
fc64d83c
AC
248622005-07-04 Arnaud Charlet <charlet@adacore.com>
24863
24864 * s-stausa.ads, s-stausa.adb: New files.
24865
cb5fee25
KC
248662005-06-30 Kelley Cook
24867
24868 * all files: Update FSF address in copyright headers.
24869 * gen-soccon.co (main): Output new FSF address in generated files.
24870
617a1b71
PB
248712005-06-28 Paul Brook <paul@codesourcery.com>
24872
24873 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
24874
0adcdb66
AC
248752005-06-14 Olivier Hainque <hainque@adacore.com>
24876 Eric Botcazou <ebotcazou@adacore.com>
24877
24878 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
24879 exc_unwind, now that we are generating proper .debug_frame output for
24880 that target.
24881
24882 * tracebak.c: Remove the mips-irix section, as we are now using the
24883 s-mastop based unwinder again.
24884 Under SPARC/Solaris, take into account the stack bias to compute the
24885 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
24886 ABI.
24887
248882005-06-14 Doug Rupp <rupp@adacore.com>
24889
24890 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
24891
24892 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
24893
248942005-06-14 Pascal Obry <obry@adacore.com>
24895
24896 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
24897 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
24898 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
24899 package name).
24900
da8f5fd9
AJ
24901 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
24902 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
24903 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
24904 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
0adcdb66 24905 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
da8f5fd9
AJ
24906 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
24907 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
24908 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
24909 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
24910 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
24911 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
24912 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
24913 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
24914 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
24915 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
24916 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
24917 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
24918 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
24919 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
24920 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
24921 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
24922 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
24923 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
24924 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
24925 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
24926 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
24927 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
24928 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
24929 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
0adcdb66
AC
24930 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
24931 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
24932 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
24933 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
24934 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
24935 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
24936 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
24937 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
24938 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
24939 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
24940 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
24941 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
24942 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
24943 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
24944 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
24945 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
24946 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
24947 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
24948 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
24949 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
24950 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
24951 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
24952 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
24953 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
24954 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
24955 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
24956 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
24957 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
24958 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
24959 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
24960 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
24961 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
24962 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
24963 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
24964 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
24965 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
24966 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
da8f5fd9
AJ
24967 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
24968 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
0adcdb66 24969 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
da8f5fd9 24970 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
0adcdb66
AC
24971 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
24972 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
24973 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
24974 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
24975 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
24976 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
24977 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
24978 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
24979 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
24980 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
24981 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
24982 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
24983 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
24984 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
24985 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
24986 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
24987 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
24988 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
24989 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
24990 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
24991 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
24992 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
24993 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
24994 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
24995 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
24996 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
24997 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
24998 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
24999 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25000 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25001 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25002 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25003 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25004 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25005 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25006 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25007 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
da8f5fd9
AJ
25008 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25009 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25010 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25011 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25012 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25013 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25014 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
0adcdb66
AC
25015 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25016 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25017 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25018 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25019 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25020 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
da8f5fd9
AJ
25021 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25022 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
0adcdb66
AC
25023 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25024 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25025 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25026 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25027 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25028 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25029 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25030 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25031 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25032 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25033 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25034
250352005-06-14 Jose Ruiz <ruiz@adacore.com>
25036 Arnaud Charlet <charlet@adacore.com>
25037
25038 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25039 longer protected objects. They have been replaced by lower-level
25040 suspension objects made up by a mutex and a condition variable (or
25041 their equivalent given a particular OS) plus some internal data to
25042 reflect the state of the suspension object.
25043 (Initialize, Finalize): Add this initialization procedure for
25044 Suspension_Object, which is a controlled type.
25045 (Finalize): Add the finalization procedure for Suspension_Object,
25046 which is a controlled type.
25047
25048 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25049 Ada.Synchronous_Task_Control because there is no longer a need for a
25050 VxWorks specific version of this package. Target dependencies
25051 has been moved to System.Task_Primitives.Operations.
25052
25053 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25054 longer needed.
25055 (InitializeCriticalSection, EnterCriticalSection,
25056 LeaveCriticalSection, DeleteCriticalSection): Replace the type
25057 pCriticalSection by an anonymous access type so that we avoid problems
25058 of accessibility to local objects.
25059
25060 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25061 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25062 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25063 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25064 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25065 set the environment task mask here.
25066 (Current_State): Add this function that returns the state of the
25067 suspension object.
25068 (Set_False): Add this procedure that sets the state of the suspension
25069 object to False.
25070 (Set_True): Add this procedure that sets the state of the suspension
25071 object to True, releasing the task that was suspended, if any.
25072 (Suspend_Until_True): Add this procedure that blocks the calling task
25073 until the state of the object is True. Program_Error is raised if
25074 another task is already waiting on that suspension object.
25075 (Initialize): Add this procedure for initializing the suspension
25076 object. It initializes the mutex and the condition variable which are
25077 used for synchronization and queuing, and it sets the internal state
25078 to False.
25079 (Finalize): Add this procedure for finalizing the suspension object,
25080 destroying the mutex and the condition variable.
25081
25082 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25083 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25084 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25085 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25086 which provides a low-level abstraction (using operating system
25087 primitives) for Ada.Synchronous_Task_Control.
25088 This object is made up by a mutex (for ensuring mutual exclusion), a
25089 condition variable (for queuing threads until the condition is
25090 signaled), a Boolean (State) indicating whether the object is open,
25091 and a Boolean (Waiting) reflecting whether there is a task already
25092 suspended on this object.
25093
25094 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25095 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25096 s-intman-vms.ads, s-intman-mingw.adb,
25097 (Initialize_Interrupts): Removed, no longer used.
25098
25099 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25100 (Setup_Interrupt_Mask): New procedure.
25101
25102 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
25103
25104 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25105
25106 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25107 this is no longer done in the body of s-taprop
25108 (Server_Task): Explicitely test for Pending_Action in case
25109 System.Parameters.No_Abort is True.
25110
25111 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25112 is no longer done in the body of s-taprop
25113
251142005-06-14 Robert Dewar <dewar@adacore.com>
25115
25116 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25117 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25118 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25119 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25120 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25121 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25122 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25123 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25124 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25125 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25126 system-linux-hppa.ads, system-vms_64.ads,
25127 system-vxworks-alpha.ads: Minor comment update for
25128 AI-362 (unit is Pure).
25129
25130 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25131 Add pragma Pure_05 for AI-362
25132 Make remaining conversion functions obsolescent in Ada 95
25133
25134 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25135 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25136 Add entries for a-wichun and a-zchuni
25137 Add a-widcha a-zchara for AI-395
25138 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25139
25140 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25141 Add entries for a-wichun.o and a-zchuni.o
25142 Entries for a-widcha.o and a-zchara.o
25143 Add entry for a-chacon.o
25144
25145 * a-ztenau.adb: Add with of Ada.Characters.Conversions
25146
25147 * a-chacon.ads, a-chacon.adb: New files.
25148
25149 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25150 categorization violations.
25151
25152 * a-strmap.ads: Add pragma Pure_05 for AI-362
25153 * a-strmap.ads: Add note on implicit categorization for AI-362
25154
25155 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25156
25157 * par-prag.adb: Dummy entry for pragma Persistent_BSS
25158 Set Ada_Version_Explicit, for implementation of AI-362
25159 Add processing for pragma Pure_05 and Preelaborate_05
25160 Add entry for Assertion_Policy pragma
25161
25162 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25163 when needed for proper processing of categorization stuff
25164
da8f5fd9 25165 * sem_cat.adb:
0adcdb66
AC
25166 For several cases, make errors in preealborate units warnings,
25167 instead of errors, if GNAT_Mode is set. For AI-362.
25168
25169 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25170 preelaborate unit is now warning if in GNAT mode
25171
25172 * s-stoele.ads: Document AI-362 for pragma preelaborate
25173
251742005-06-14 Doug Rupp <rupp@adacore.com>
25175
25176 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25177 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25178 Default_Exception_Msg_Max_Length: new parameter.
25179
25180 * a-except.ads: (Exception_Msg_Max_Length): Set to
25181 System.Parameters.Default_Exception_Msg_Max_Length
25182 Add pragma Preelaborate_05 for AI-362
25183 Add warnings off to allow categorization violations for AI-362
25184
251852005-06-14 Vincent Celier <celier@adacore.com>
25186
25187 * gnatsym.adb: Adapt to modification of package Symbols: procedure
25188 Process is now in package Processing.
25189
25190 * symbols.ads, symbols.adb:
25191 (Processing): New package, containing procedure Process
25192
da8f5fd9 25193 * symbols-vms-alpha.adb:
0adcdb66
AC
25194 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25195
25196 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25197 symbols-processing-vms-ia64.adb: New files.
25198
251992005-06-14 Pascal Obry <obry@adacore.com>
25200
25201 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25202 implementation. This new version generates the proper DllMain routine
25203 to initialize the SAL. The DllMain is generated in Ada and compiled
25204 before being added as option to the library build command.
25205
252062005-06-14 Doug Rupp <rupp@adacore.com>
25207 Pascal Obry <obry@adacore.com>
25208
25209 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25210 call to decc$translate_vms.
25211 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25212 need to remove those quotes before catenating the filename.
25213 (__gnat_locate_exec_on_path): improvements to the Win32 section:
25214 * avoid allocating the memory twice for better efficiency;
25215 * allocate 32K buffer for environment expansion as suggested by MSDN;
25216 * prepend ".;" to the path so that current directory is searched too.
25217
252182005-06-14 Robert Dewar <dewar@adacore.com>
25219
25220 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25221 instead of raising CE (AI-241)
25222 Add warnings off to allow categorization violations for AI-362
25223
252242005-06-14 Robert Dewar <dewar@adacore.com>
25225
25226 * ali-util.adb, gnatbind.adb: Remove references to
25227 Force_RM_Elaboration_Order.
25228
25229 * switch-b.adb: Remove recognition of -f switch
25230
252312005-06-14 Pascal Obry <obry@adacore.com>
25232
25233 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25234 implementation which is slightly more efficient.
25235
252362005-06-14 Gary Dismukes <dismukes@adacore.com>
25237 Javier Miranda <miranda@adacore.com>
25238 Ed Schonberg <schonberg@adacore.com>
25239 Hristian Kirtchev <kirtchev@adacore.com>
25240
25241 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25242 allocator's designated type is a class-wide type, and compiling for
25243 Ada 2005, emit a run-time check that the accessibility level of the
25244 type given in the allocator's expression is not deeper than the level
25245 of the allocator's access type.
25246
25247 (Tagged_Membership): Modified to gives support to abstract interface
25248 types.
25249
25250 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25251 Access_Level.
25252 (Descendant_Tag): New predefined function
25253 (Is_Descendant_At_Same_Level): New predefined function
25254 (Get_Access_Level): New private function
25255 (Set_Access_Level): New private procedure
25256 (IW_Membership): New function. Given the tag of an object and the tag
25257 associated with an interface, evaluate if the object implements the
25258 interface.
25259 (Register_Interface_Tag): New procedure used to initialize the table of
25260 interfaces used by the IW_Membership function.
25261 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25262 of the dispatch table.
25263 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25264 table of interfaces of the parent.
25265 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25266 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25267 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25268 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25269 Ada 2005 semantics for the new predefined function.
25270
25271 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25272 call to Descendant_Tag rather than Internal_Tag.
25273 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25274 the accessibility level of the attribute's Item parameter is not deeper
25275 than the level of the attribute's prefix type. Tag_Error is raised if
25276 the check fails. The check is only emitted for Ada_05.
25277 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25278 requested stream attribute, use it.
25279 (Expand_N_Attribute_Reference): If the designated type is an interface
25280 then rewrite the referenced object as a conversion to force the
25281 displacement of the pointer to the secondary dispatch table.
25282 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25283 is a dereference of an object with a constrained partial view.
25284
25285 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25286 type is a class-wide type, emit a run-time check that the accessibility
25287 level of the returned object is not deeper than the level of the
25288 function's master (only when compiling for Ada 2005).
25289
25290 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25291 Action_Nb_Arg): Add entries for new Get_Access_Level and
25292 Set_Access_Level routines in these tables.
25293 (Make_DT): Generate a call to set the accessibility level of the
25294 tagged type in its TSD.
25295 (Make_DT): Code cleanup. The functionality of generating all the
25296 secondary dispatch tables has been moved to freeze_record_type.
25297 (Make_Abstract_Interface_DT): Minor code cleanup.
25298 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25299 this subprogram implements a new algorithm that provides the
25300 same functionality and it is more clear in case of primitives
25301 associated with abstract interfaces.
25302 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25303 clean up, the functionality of this subprogram is now provided
25304 by Set_All_DT_Position.
25305 (Write_DT): New subprogram: a debugging procedure designed to be called
25306 within gdb to display the dispatch tables associated with a tagged
25307 type.
25308 (Collect_All_Interfaces): New subprogram that collects the whole list
25309 of interfaces that are directly or indirectly implemented by a tagged
25310 type.
25311 (Default_Prim_Op_Position): New subprogram that returns the fixed
25312 position in the dispatch table of the default primitive operations.
25313 (Expand_Interface_Actuals): New subprogram to generate code that
25314 displaces all the actuals corresponding to class-wide interfaces to
25315 reference the interface tag of the actual object.
25316 (Expand_Interface_Conversion): New subprogram. Reference the base of
25317 the object to give access to the interface tag associated with the
25318 secondary dispatch table.
25319 (Expand_Interface_Thunk): New subprogram that generates the code of the
25320 thunk. This is required for compatibility with the C+ ABI.
25321 (Make_Abstract_Interface_DT): New subprogram that generate the
25322 declarations for the secondary dispatch tables associated with an
25323 abstract interface.
25324 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25325 attribute for each primitive operation covering interface subprograms
25326 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25327 These subprograms were upgraded to give support to abstract interfaces
25328
25329 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25330 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25331 RE_Set_Access_Level.
25332 (RE_Unit_Table): Add entries for new Ada.Tags operations.
25333 Add support to call the followig new run-time subprograms:
25334 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25335
25336 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25337 match its full declaration when both have an access definition with
25338 statically matching designated subtypes.
25339 (Analyze_Component_Declaration): Delete commented out code that was
25340 incorrectly setting the scope of an anonymous access component's type.
25341 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25342 an access discriminant when the containing type is nonlimited.
25343 (Make_Incomplete_Type_Declaration): Create an incomplete type
25344 declaration for a record type that includes self-referential access
25345 components.
25346 (Check_Anonymous_Access_Types): Before full analysis of a record type
25347 declaration, create anonymous access types for each self-referential
25348 access component.
25349 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25350 an access component in this context is a Local_Anonymous_Access, for
25351 proper accessibility checks.
25352 (Access_Definition): Set properly the scope of the anonymous access type
25353 created for a stand-alone access object.
25354 (Find_Type_Of_Object): An object declaration may be given with an access
25355 definition.
25356 (Complete_Subprograms_Derivation): New subprogram used to complete
25357 type derivation of private tagged types implementing interfaces.
25358 In this case some interface primitives may have been overriden
25359 with the partial-view and, instead of re-calculating them, they
25360 are included in the list of primitive operations of the full-view.
25361 (Build_Derived_Record_Type): Modified to give support to private
25362 types implemening interfaces.
25363 (Access_Definition): Reject ALL on anonymous access types.
25364 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25365 type derivation to occur at a deeper accessibility level than the
25366 parent type.
25367 For the case of derivation within a generic body however, disallow the
25368 derivation if the derived type has an ancestor that is a formal type
25369 declared in the formal part of an enclosing generic.
25370 (Analyze_Object_Declaration): For protected objects, remove the check
25371 that they cannot contain interrupt handlers if not declared at library
25372 level.
25373 (Add_Interface_Tag_Components): New subprogram to add the tag components
25374 corresponding to all the abstract interface types implemented by a
25375 record type or a derived record type.
25376 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25377 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25378 Process_Full_View, Record_Type_Declaration): Modified to give
25379 support to abstract interface types
25380 (Collect_Interfaces): New subprogram that collects the list of
25381 interfaces that are not already implemented by the ancestors
25382 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25383 when partial view has no discriminants and full view has defaults.
25384 (Constrain_Access): Reject a constraint on a general access type
25385 if the discriminants of the designated type have defaults.
25386 (Access_Subprogram_Declaration): Associate the Itype node with the inner
25387 full-type declaration or subprogram spec. This is required to handle
25388 nested anonymous declarations.
25389 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25390 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25391 Process_Full_View, Record_Type_Declaration): Modified to give
25392 support to abstract interface types
25393 (Derive_Subprograms): Addition of a new formal to indicate if
25394 we are in the case of an abstact-interface derivation
25395 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25396 to the specification because it is requied to analyze all the
25397 identifiers found in a list of interfaces
25398
25399 * debug.adb: Complete documentation of flag "-gnatdZ"
25400
25401 * exp_ch3.adb: Implement config version of persistent_bss pragma
25402 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25403 testing for TSS presence to properly enforce visibility rules.
25404 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25405 Make_Abstract_Interfaces_DT to generate the secondary tables
25406 associated with abstract interfaces.
25407 (Build_Init_Procedure): Modified to initialize all the tags
25408 corresponding.
25409 (Component_Needs_Simple_Initialization): Similar to other tags,
25410 interface tags do not need initialization.
25411 (Freeze_Record_Type): Modified to give support to abstract interface
25412 types.
25413 (Expand_N_Object_Declaration): Do not generate an initialization for
25414 a scalar temporary marked as internal.
25415
25416 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25417 in-out parameter that is a component in an initialization procedure,
25418 whose constraint might depend on discriminants, and that may be
25419 misaligned because of packing or representation clauses.
25420 (Is_Legal_Copy): New predicate to determine whether a possibly
25421 misaligned in-out actual can actually be passed by copy/return. This
25422 is an error in case the type is by_reference, and a warning if this is
25423 the consequence of a DEC import pragma on the subprogram.
25424 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25425 interface types
25426 (Expand_Inlined_Call): Mark temporary generated for the return value as
25427 internal, so that no useless scalar normalization is generated for it.
25428 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25429 null procedure can always be inlined.
25430 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25431 procedure, generate an explicit empty body for it.
25432
25433 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25434 Given a type implementing an interface, returns the corresponding
25435 access_disp_table value.
25436 (Find_Interface_Tag): New subprogram. Given a type implementing an
25437 interface, returns the record component containing the tag of the
25438 interface.
25439 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25440 previous ones that return the corresponding tag and access_disp_table
25441 entities.
25442 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25443 is a predefined primitive operation.
25444 (Expand_Subtype_From_Expr): If the expression is a selected component
25445 within an initialization procedure, compute its actual subtype, because
25446 the component may depend on the discriminants of the enclosing record.
25447
da8f5fd9 25448 * i-cpp.ads, i-cpp.adb:
0adcdb66
AC
25449 This package has been left available for compatibility with previous
25450 versions of the frontend. As part of the new layout this is now a
25451 dummy package that uses declarations available at a-tags.ads
25452
25453 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25454 "constant access" and "aliased [constant] access" when not compiling
25455 with -gnat05.
25456 Suppress Ada 2005 keyword warning if -gnatwY used
25457 (P_Identifier_Declarations): Add support for object declarations with
25458 access definitions.
25459 (Private_Extension_Declaration): Complete the documentation
25460 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25461 attribute in case of private extension declaration
25462 (P_Type_Declaration): Mark as "abstract" the type declarations
25463 corresponding with protected, synchronized and task interfaces
25464 (P_Declarative_Items): "not" and "overriding" are overriding indicators
25465 for a subprogram or instance declaration.
25466
25467 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25468 instantiation that is a dispatching operation has controlling access
25469 parameters that are null excluding.
25470 Save and restore Ada_Version_Explicit, for implementation of AI-362
25471 (Validate_Derived_Type_Instance): Add check for abstract interface
25472 types.
25473 (Analyze_Formal_Package): Establish Instantiation source for the copy of
25474 the generic that is created to represent the formal package.
25475 (Analyze_Package_Instantiation): Instantiate body immediately if the
25476 package is a predefined unit that contains inlined subprograms, and
25477 we are compiling for a Configurable_Run_Time.
25478 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25479 If the program has a null default, generate an empty body for it.
25480
25481 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25482 error message condition, null procedures are correctly detected now.
25483 (New_Overloaded_Entity): Bypass trivial overriding indicator check
25484 for subprograms in the context of protected types. Instead, the
25485 indicator is examined in Sem_Ch9 while analysing the subprogram
25486 declaration.
25487 (Check_Overriding_Indicator): Check consistency of overriding indicator
25488 on subprogram stubs as well.
25489 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25490 the library level.
25491 (Analize_Subprogram_Specification): When analyzing a subprogram in which
25492 the type of the first formal is a concurrent type, replace this type
25493 by the corresponding record type.
25494 (Analyze_Subprogram_Body): Undo the previous work.
25495 (Analyze_Procedure_Call): If the call has the form Object.Op, the
25496 analysis of the prefix ends up analyzing the call itself, after which
25497 we are done.
25498 (Has_Interface_Formals): New subprogram subsidiary to analyze
25499 subprogram_specification that returns true if some non
25500 class-wide interface subprogram is found
25501 (New_Overloaded_Entity): Modified to give support to abstract
25502 interface types
25503 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25504 access to subprograms must be recursive.
25505 (Is_Unchecked_Conversion): Improve the test that recognizes
25506 instantiations of Unchecked_Conversion, and allows them in bodies that
25507 are to be inlined by the front-end. When the body comes from an
25508 instantiation, a reference to Unchecked_Conversion will be an
25509 Expanded_Name, even though the body has not been analyzed yet.
25510 Replace Is_Overriding and Not_Overriding in subprogram_indication with
25511 Must_Override and Must_Not_Override, to better express intent of AI.
25512 (Analyze_Subprogram_Body): If an overriding indicator is given, check
25513 that it is consistent with the overrinding status of the subprogram
25514 at this point.
25515 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25516 always inlined.
25517 If the subprogram is a null procedure, indicate that it does not need
25518 a completion.
25519
25520 * sem_disp.adb (Check_Controlling_Type): Give support to entities
25521 available through limited-with clauses.
25522 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25523 allowed as the last primitive of a tagged type if it has no previous
25524 spec.
25525 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25526 to give support to abstract interface types
25527
25528 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25529 in the case where the target type is an anonymous access type of an
25530 object or component (that is, when Is_Local_Anonymous_Access is true).
25531 Prevent the special checks for conversions of access discriminants in
25532 the case where the discriminant belongs to a nonlimited type, since
25533 such discriminants have their accessibility level defined in the same
25534 way as a normal component of an anonymous access type.
25535 (Resolve_Allocator): When an allocator's designated type is a class-wide
25536 type, check that the accessibility level of type given in the
25537 allocator's expression or subtype indication is not statically deeper
25538 than the level of the allocator's access type.
25539 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25540 name in a discriminant constraint of a record component.
25541 (Resolve_Explicit_Dereference): Do not check whether the type is
25542 incomplete when the dereference is a use of an access discriminant in
25543 an initialization procedure.
25544 (Resolve_Type_Conversion): Handle conversions to abstract interface
25545 types.
25546 (Valid_Tagged_Conversion): The conversion of a tagged type to an
25547 abstract interface type is always valid.
25548 (Valid_Conversion): Modified to give support to abstract interface types
25549 (Resolve_Actuals): Enable full error reporting on view conversions
25550 between unrelated by_reference array types.
25551 The rule for view conversions of arrays with aliased components is
25552 weakened in Ada 2005.
25553 Call to obsolescent subprogram is now considered to be a violation of
25554 pragma Restrictions (No_Obsolescent_Features).
25555 (Check_Direct_Boolean_Operator): If the boolean operation has been
25556 constant-folded, there is nothing to check.
25557 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25558 check on possible violation of restriction No_Direct_Boolean_Operators
25559 until after expansion of operands, to prevent spurious errors when
25560 operation is constant-folded.
25561
25562 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25563 Has_Compatible_Type): Modified to give support to abstract interface
25564 types.
25565 (Interface_Present_In_Ancestor): New function to theck if some ancestor
25566 of a given type implements a given interface
25567
25568 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
25569 prefix is a parameterless function that returns an access_to_procedure.
25570 (Transform_Object_Operation): Handle properly function calls of the
25571 form Obj.Op (X), which prior to analysis appear as indexed components.
25572 (Analyze_One_Call): Complete the error notification to help new Ada
25573 2005 users.
25574 (Analyze_Allocator): For an allocator without an initial value, where
25575 the designated type has a constrained partial view, a discriminant
25576 constraint is illegal.
25577
255782005-06-14 Robert Dewar <dewar@adacore.com>
25579
25580 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
25581 do with treatment of Set_Col when positioned at end of line character.
25582
255832005-06-14 Robert Dewar <dewar@adacore.com>
25584
25585 * atree.adb: (Elist*): Protect against uninitialized field
25586
255872005-06-14 Ed Schonberg <schonberg@adacore.com>
25588
25589 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
25590 for an attribute reference that returns an access type.
25591 (Apply_Discriminant_Check): No need for check if (designated) type has
25592 constrained partial view.
25593
25594 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
25595 both bound checks, rather than a conjunction.
25596 (Insert_Valid_Check): If the expression is an actual that is an indexed
25597 component of a bit-packed array, force expansion of the packed element
25598 reference, because it is specifically inhibited elsewhere.
25599
256002005-06-14 Vincent Celier <celier@adacore.com>
25601
25602 * clean.adb (Clean_Project): Correctly delete executable specified as
25603 absolute path names.
25604
25605 * make.adb (Gnatmake): Allow relative executable path names with
25606 directory information even when project files are used.
25607 (Change_To_Object_Directory): Fail gracefully when unable to change
25608 current working directory to object directory of a project.
25609 (Gnatmake): Remove exception handler that could no longer be exercized
25610 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
25611 may be deallocated by Normalize_Arguments.
25612 (Collect_Arguments): Eliminate empty arguments
25613
25614 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
25615 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
25616 (Check_Project): Return False when Project is No_Project. Return True
25617 when All_Projects is True.
25618 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
25619 All_Projects to True.
25620 Minor reformatting
25621
256222005-06-14 Ed Schonberg <schonberg@adacore.com>
25623 Javier Miranda <miranda@adacore.com>
25624 Thomas Quinot <quinot@adacore.com>
25625 Robert Dewar <dewar@adacore.com>
25626 Hristian Kirtchev <kirtchev@adacore.com>
25627 Gary Dismukes <dismukes@adacore.com>
25628
25629 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
25630 anonymous access types, to indicate that the accessibility level of
25631 the type is determined by that of the enclosing declaration.
25632 (Has_Persistent_BSS): New flag
25633 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
25634 of this attribute with functions.
25635 (Is_Primitive_Wrapper): Remove the barrier.
25636 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
25637 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
25638 New subprograms.
25639 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
25640 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
25641 New subprograms.
25642 (Is_Pure_Unit_Access_Type): New flag
25643 (Abstract_Interfaces): Complete the assertion to cover all usages.
25644 (Set_Is_Interface): Complete the assertion to cover all usages.
25645 (Is_Primitive_Wrapper): New attribute.
25646 (Is_Obsolescent): Now applies to all entities (though it is only set
25647 for subprograms currently)
25648 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
25649 which solves various problems concerning access subtypes.
25650 (Has_Persistent_BSS): New flag
25651 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
25652 Remove these subprograms because this attribute is currently
25653 not used.
25654 New entity flags:
25655 Has_Specified_Stream_Input (Flag190)
25656 Has_Specified_Stream_Output (Flag191)
25657 Has_Specified_Stream_Read (Flag192)
25658 Has_Specified_Stream_Write (Flag193)
25659 Present in all type and subtype entities. Set for a given view if the
25660 corresponding stream-oriented attribute has been defined by an
25661 attribute definition clause. When such a clause occurs, a TSS is set
25662 on the underlying full view; the flags are used to track visibility of
25663 the attribute definition clause for partial or incomplete views.
25664 (Is_Pure_Unit_Access_Type): New flag
25665 Clarify use of Is_Internal.
25666 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
25667 internally generated to wrap the invocation of tasks and protected
25668 types that implement interfaces.
25669 (Implementation_Base_Type): Documentation correction
25670 (Is_Obsolescent): Now applies to all entities (though it is only set
25671 for subprograms currently)
25672 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
25673 which solves various problems concerning access subtypes.
25674
25675 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
25676 for examined parameters. Identify unequal parameter list lengths as
25677 non-conformant parameters.
25678 (Overriding_Possible): Do not check for "All" qualifier in declaration
25679 of controlling access parameter, following prescription of AI-404.
25680 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
25681 that build the procedure body that wraps an entry invocation
25682 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
25683 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
25684 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
25685 give support to abstract interface types
25686
25687 * freeze.adb (Freeze_Entity): Issue error message if
25688 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
25689 type has no storage pool (Ada 2005) AI-366.
25690 Also modified to give support to abstract interface types
25691 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
25692 Inline_Always pragma.
25693
25694 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
25695 now begin an entry declaration.
25696 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
25697 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
25698 a subprogram declaration preceded by an overriding indicator.
25699 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
25700 declarations or subprogram declarations preceded by reserved words
25701 "not" or "overriding".
25702 (P_Entry_Declaration): Update comment. Parse and check overriding
25703 indicator, set semantic flags of entry declarations.
25704 (P_Task): New error message in case of private applied
25705 to a task type declaration.
25706 (P_Protected): New error message in case of private applied
25707 to a task type declaration.
25708
25709 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
25710 in which the full view of a type implementing an interface is a
25711 concurrent type.
25712 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
25713 Declare_Inherited_Private_Subprograms): If an explicit operation
25714 overrides an operation that is inherited in the private part, mark the
25715 explicit one as overriding, to enable overriding indicator checks.
25716 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
25717 full view to partial view, to simplify handling in back-end.
25718
25719 * sprint.adb: Print interface lists where needed: derived types,
25720 protected types, task types.
25721 output "is null" for null procedures. Part of implementation of
25722
25723 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
25724 relaxation of rules for access types in pure, shared passive partitions.
25725
25726 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
25727 first read discriminants into temporary objects, performing checks on
25728 the read values, then possibly performing discriminant checks on the
25729 actual (if it is constrained), and only finally reading the components
25730 into a constrained temporary object.
25731 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
25732 case of reading discriminants of a mutable record type to recognize
25733 the new form of the code generated by
25734 Build_Mutable_Record_Read_Procedure.
25735
25736 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
25737 of a simple call to Make_TSS_Name.
25738 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
25739 buffer, in order for Is_TSS to work correctly on local TSS names.
25740
25741 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
25742 Is_Local_Anonymous_Access to check legaliy of attributes in the
25743 context of access components and stand-alone access objects.
25744 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
25745 treated as available for a limited private type if there is an
25746 attribute_definition_clause that applies to its full view, but not in
25747 other cases where the attribute is available for the full view
25748 (specifically, the sole fact that the full view is non-limited does not
25749 make the attribute available for the partial view).
25750 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
25751 non-overloaded intrinsic subprogram.
25752 (Check_Stream_Attribute): Reject an attribute reference for an
25753 unavailable stream attribute even if the prefix is not a limited type
25754 (case of a 'Input attribute reference for an abstract, non-classwide
25755 type)
25756 (Stream_Attribute_Available): New function to determine whether a stream
25757 attribute is available at a place.
25758 (Check_Attribute): Use Stream_Attribute_Available instead of just
25759 testing for TSS presence on the implementation base type.
25760 (Analyze_Attribute): Modified to give support to task interfaces.
25761 (Analyze_Access_Attribute): Add error check for use of an Access (or
25762 Unrestricted_Access) attribute with a subprogram marked as
25763 Inline_Always.
25764 (Analyze_Attribute, case Attribute_Address): Add error check for use of
25765 an Address attribute with a subprogram marked as Inline_Always.
25766 Update Eval_Attribute to handle new value of Width from AI-395
25767
25768 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
25769 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
25770 Factor common code across the stream-oriented attribute circcuits into
25771 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
25772 processing is functionally identical to the previous duplicated one,
25773 except that an expression that denotes an abstract subprogram will now
25774 be rejected, as mandated by AI-195 item 5.
25775
25776 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
25777 Is_Local_Anonymous_Access to apply accessibility checks to access
25778 components and stand-alone access objects.
25779 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
25780 elsewhere.
25781 (Is_Potentially_Persistent_Type): New function
25782 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
25783 a heap-object whose type has a constrained partial view, the object is
25784 unconstrained and the component may depend on a discriminant, making its
25785 renaming illegal.
25786
25787 * sinfo.ads, sinfo.adb
25788 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
25789 (Must_Override): Flag applicable to N_Entry_Declaration.
25790 Indicate that interface_list can appear in single task and single
25791 protected declarations.
25792 Replace Is_Overriding and Not_Overriding with Must_Override and
25793 Must_Not_Override, to better express intent of AI.
25794 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
25795 of an overriding indicator in a subprogram or instance.
25796 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
25797 Add the overriding indicator [[not] overriding] construct to the
25798 following grammar productions:
25799 ENTRY_DECLARATION
25800 GENERIC_INSTANTIATION
25801 SUBPROGRAM_SPECIFICATION
25802
25803 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
25804 can start with an overriding indicator.
25805
25806 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
25807 flags accordingly on subrogram specifications or instances.
25808
da8f5fd9 25809 * sem_ch8.adb:
0adcdb66
AC
25810 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
25811 overriding_indicator, if present, is consistent with status of spec.
25812 Improve error message for null-excluding checks on controlling access
25813 parameters.
25814 (Check_In_Previous_With_Clause): Protect the frontend against
25815 previously reported critical errors in the context clauses.
25816 Save and restore Ada_Version_Explicit, for implementation of AI-362
25817 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
25818 operation verify that controlling formals of the renamed entity that
25819 are access parameters are explicitly non-null.
25820 (Find_Expanded_Name): Improve error message when prefix is an illegal
25821 reference to a private child unit.
25822
25823 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
da8f5fd9 25824 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
0adcdb66
AC
25825 Rewrite to correspond to new wide character names in AI-395
25826
6f7f72f9
EB
25827 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
25828 default procedures.
0adcdb66
AC
25829
258302005-06-14 Ed Schonberg <schonberg@adacore.com>
25831 Robert Dewar <dewar@adacore.com>
25832
25833 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
25834 code, not on the bodies of predefined operations, to cut down on
25835 spurious noise.
25836
258372005-06-14 Ed Schonberg <schonberg@adacore.com>
25838
25839 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
25840 be expanded in place. The size computation does not require a
25841 subtraction, which would raise an exception on a compiler built with
25842 assertions when the upper bound is Integer'first.
25843 (Flatten): For an array of composite components, take into account the
25844 size of the components to determine whether it is safe to expand the
25845 array into a purely positional representation.
25846
258472005-06-14 Thomas Quinot <quinot@adacore.com>
25848
25849 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
25850 denoting a formal parameter into account.
25851
258522005-06-14 Ed Schonberg <schonberg@adacore.com>
25853
25854 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
25855 the entry_call alternative of a conditional entry call, wrap the
25856 conditional entry call itself.
25857
258582005-06-14 Nicolas Setton <setton@adacore.com>
25859 Ed Schonberg <schonberg@adacore.com>
25860
25861 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
25862 the "simple_choice" member in a variant record, in accordance with the
25863 description in the package spec: the information output for a constant
25864 should be "S number", not "SS number".
25865 (Get_Encoded_Name): Return at once if not generating code. Avoids name
25866 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
25867
258682005-06-14 Thomas Quinot <quinot@adacore.com>
25869
25870 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
25871 RACW without any primitives, do not generate the if statement for
25872 dispatching by name in the PolyORB/DSA case, as it would be malformed
25873 (it would have an Elsif_Parts list that is not No_List, but with a
25874 length of 0).
25875
258762005-06-14 Robert Dewar <dewar@adacore.com>
25877
25878 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
25879
258802005-06-14 Jose Ruiz <ruiz@adacore.com>
25881
25882 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
25883 can determine whether pragma Suppress_Exception_Locations is in effect.
25884
25885 * utils2.c (build_call_raise): Do not pass the file name to the
25886 exception handler if pragma Suppress_Exception_Locations is in effect.
25887 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
25888
258892005-06-14 Emmanuel Briot <briot@adacore.com>
25890
25891 * g-debpoo.adb (Deallocate, Dereference): Improve output.
25892
258932005-06-14 Nicolas Roche <roche@adacore.com>
25894
25895 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
25896 to ""
25897 (Next_Level): Fix minor bug in handling of ../dir case
25898 (Read): Add dir separator to Directory name so that "" is understood as
25899 "/"
25900
259012005-06-14 Pascal Obry <obry@adacore.com>
25902
25903 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
25904 releasing the items.
25905
259062005-06-14 Vincent Celier <celier@adacore.com>
25907 Cyrille Comar <comar@adacore.com>
25908
25909 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
25910 with output file descriptor and with output file name.
25911 (Dup, Dup2): Now global procedures as they are used by two subprograms
25912 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
25913
259142005-06-14 Thomas Quinot <quinot@adacore.com>
25915
25916 PR ada/6717
0adcdb66
AC
25917 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
25918 broadcast address.
25919 (Create_Selector): Bind listening socket used to create the signalling
25920 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
25921 Set listen backlog to 1 to ensure that we detect socket theft by a
25922 failure of our own connect(2) call.
25923 (Check_Selector): Improve documentation of the selector mechanism.
25924 (Broadcast_Inet_Addr): New constant.
25925
259262005-06-14 Gary Dismukes <dismukes@adacore.com>
25927
25928 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
25929 type which turns out to be an incomplete and incorrect fix.
25930 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
25931 of the type is declared in a record (for determination of insertion
25932 type).
25933 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
25934 a private type and ensure that the primary entity is used for the type
25935 of the newly created function's V formal by taking the Etype of the
25936 view.
25937
259382005-06-14 Javier Miranda <miranda@adacore.com>
25939 Jose Ruiz <ruiz@adacore.com>
25940 Robert Dewar <dewar@adacore.com>
25941 Ed Schonberg <schonberg@adacore.com>
25942
25943 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
25944 that indicates if we are parsing a compilation unit found in a
25945 limited-with clause.
25946 It is use to avoid the circularity check.
25947
25948 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
25949 we are parsing a compilation unit found in a limited-with clause. This
25950 is use to avoid the circularity check.
25951
25952 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
25953 unit as a consequence of parsing a limited-with clause. This is used
25954 to avoid the circularity check.
25955
25956 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
25957 (Analyze_Context): Limited-with clauses are now allowed
25958 in more compilation units.
25959 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
25960 againts previously reported critical errors in context clauses
25961 (Install_Limited_Withed_Unit): Code cleanup plus static detection
25962 of two further errors: renamed subprograms and renamed packages
25963 are not allowed in limited with clauses.
25964 (Install_Siblings): Do not install private_with_clauses on the package
25965 declaration for a non-private child unit.
25966 (Re_Install_Parents): When a parent of the subunit is reinstalled,
25967 reset visibility of child units properly.
25968 (Install_Withed_Unit): When a child unit appears in a with_clause of its
25969 parent, it is immediately visible.
25970
259712005-06-14 Ed Schonberg <schonberg@adacore.com>
25972 Emmanuel Briot <briot@adacore.com>
25973
25974 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
25975 declared within an inlined body as referenced, to prevent spurious
25976 warnings.
25977 (Output_One_Ref): If an entity renames an array component, indicate in
25978 the ALI file that this aliases (renames) the array. Capture as well
25979 function renamings that rename predefined operations.
25980 Add information about generic parent for package and subprogram
25981 instances.
25982 (Get_Type_Reference): For a subtype that is the renaming of an actual in
25983 an instantiation, use the first_subtype to ensure that we don't generate
25984 cross-reference information for internal types.
25985 For objects and parameters of a generic private type, retain the '*'
25986 indicator to distinguish such an entity from its type.
25987
6f7f72f9
EB
25988 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
25989 to store information about instantiated entities.
0adcdb66 25990
6f7f72f9
EB
25991 * ali.adb (Scan_ALI): Add support for parsing the reference to the
25992 generic parent
0adcdb66 25993
6f7f72f9
EB
25994 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
25995 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
25996 information.
0adcdb66
AC
25997
259982005-06-10 Doug Rupp <rupp@adacore.com>
25999 Arnaud Charlet <charlet@adacore.com>
26000 Olivier Hainque <hainque@adacore.com>
26001 Jose Ruiz <ruiz@adacore.com>
26002
26003 * Make-lang.in: Add initialize.o when needed.
26004 Remove obsolete references to RT_FLAGS.
26005 Add missing dependencies for sdefault.o
26006
26007 * initialize.c: New file.
26008
26009 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26010 [VMS] cond_signal_table: Fix problem in declaration.
26011 [VMS] __gnat_error_handler: rewrite.
26012 Move all __gnat_initialize() routines to initialize.c
26013 Specialize the former "hpux" section to "hppa hpux", as this is what the
26014 section really is here for and we now have other hpux ports that need
26015 different contents.
26016 (__gnat_adjust_context_for_raise) i386-linux: First version of this
26017 function for this target. Adjust PC by one in the machine context. This
26018 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26019 it is more reliable to do that in the signal handler itself.
26020 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26021 flags, so that the handler is passed the context structure to adjust
26022 prior to the raise.
26023 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26024 SA_SIGINFO sigaction should look like. Call
26025 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26026 Machine_State_Operations stuff.
26027 Add conditional code so that the x86_64 is also supported.
26028
260292005-06-14 Pascal Obry <obry@adacore.com>
26030
26031 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26032 the library name.
26033
260342005-06-14 Robert Dewar <dewar@adacore.com>
26035
26036 * opt.ads, opt.adb: New flags for persistent_bss mode
26037 Add Ada_Version_Explicit, for implementation of AI-362
26038 Add Assertions_Enabled_Config and associated handling
26039 Needed since setting can be changed with Assertion_Policy pragma
26040 Add new flag Warn_On_Ada_2005_Compatibility
26041
26042 * switch-c.adb: Recognize -gnatwy/Y
26043 Set Ada_Version_Explicit, for implementation of AI-362
26044 The -gnatg switch now includes -gnatyu
26045
26046 * usage.adb: Add -gnatwy/Y
26047 Remove wrong asterisk on -gnatwX line
26048 Add line for -gnatyu switch
26049
260502005-06-14 Vincent Celier <celier@adacore.com>
26051
26052 * osint.adb (Add_Default_Search_Dirs): Put source and object
26053 directories of project files before directories coming from
26054 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26055
260562005-06-14 Robert Dewar <dewar@adacore.com>
26057
26058 PR ada/15613
0adcdb66
AC
26059 * par-ch2.adb (Scan_Pragma_Argument): New procedure
26060 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26061
260622005-06-14 Vincent Celier <celier@adacore.com>
26063
26064 * prep.adb (Preprocess): Ignore error when scanning the first token of
26065 a line.
26066
260672005-06-14 Vincent Celier <celier@adacore.com>
26068
26069 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26070 (Check_Stand_Alone_Library): If the specified reference symbol file does
26071 not exist, only issue a warning when the symbol policy is not
26072 Controlled. And, when symbol policy is Compliant, set the symbol
26073 policy to Autonomous.
26074
260752005-06-14 Vincent Celier <celier@adacore.com>
26076
26077 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26078 when the project file in a with clause is not the last one, that is the
26079 project file name is followed by a comma.
26080 * prj-pp.adb: (First_With_In_List): New Boolean global variable
26081 (Print): Issue list of project files separated by commas in with clauses
26082 according to the values returned by Is_Not_Last_In_List.
26083 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26084 (Set_Is_Not_Last_In_List): New procedure
26085
260862005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26087
26088 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26089
260902005-06-14 Robert Dewar <dewar@adacore.com>
26091
26092 * scng.adb: Add call to new Check_EOF routine
26093 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26094 Add some comments regarding wide character handling
26095
26096 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26097
26098 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26099
26100 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26101 characters are now considered graphic characters and hence yield false
26102 in this call.
26103
6f7f72f9
EB
26104 * nmake.adt: Modify header so that xnmake does not generate output
26105 files with multiple blank lines.
0adcdb66 26106
6f7f72f9
EB
26107 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26108 not have an extra blank line
0adcdb66
AC
26109
261102005-06-14 Gary Dismukes <dismukes@adacore.com>
26111
26112 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26113 expression when the component type is an anonymous access type to
26114 ensure that appropriate accessibility checks are done.
26115
26116 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26117 expression of an assignment when the target object is of an anonymous
26118 access type. This ensures that required accessibility checks are done.
26119 (One_Bound): Move the check for type Universal_Integer to
26120 Process_Bounds.
26121 (Process_Bounds): Check whether the type of the preanalyzed range is
26122 Universal_Integer, and in that case set Typ to Integer_Type prior
26123 to setting the type of the original range and the calls to One_Bound.
26124
261252005-06-14 Ed Schonberg <schonberg@adacore.com>
26126
26127 * sem_case.adb (Expand_Others_Choice): Improve warning.
26128
261292005-06-14 Ed Schonberg <schonberg@adacore.com>
26130
26131 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26132 constraint of full view if present, when other type is discriminated.
26133 (Eval_Relational_Op): Recognize tests of pointer values against Null,
26134 when the pointer is known to be non-null, and emit appropriate warning.
26135
261362005-06-14 Robert Dewar <dewar@adacore.com>
26137 Ed Schonberg <schonberg@adacore.com>
26138
26139 PR ada/10671
0adcdb66
AC
26140 * sem_prag.adb: Implement pragma Persistent_BSS
26141 Remove obsolete pragma Persistent_Data, Persistent_Object
26142 Set Ada_Version_Explicit, for implementation of AI-362
26143 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26144 Add processing for pragma Pure_05 and Preelaborate_05
26145 Add processing for Assertion_Policy pragma
26146 Add pragma identifiers for Assert
26147 (Analyze_Pragma, case Assert): Check number of arguments
26148 (Process_Inline): Additional guard against an illegal program, where the
26149 argument of the pragma is undefined, and warnings on redundant
26150 constructs are enabled.
26151 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26152 Ada_05 to this pragma, specifying that the pragma is only active in
26153 Ada_05 mode.
26154 (Check_Arg_Order): New procedure
26155 Add appropriate calls to this procedure throughout
26156 Also throughout, check entity name before doing any other checks
26157
26158 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26159 Remove obsolete pragma Persistent_Data, Persistent_Object
26160 Add entries for pragma Pure_05 and Preelaborate_05
26161 Add entries for Assertion_Policy pragma and associated names
26162 Add some names for pragma argument processing
26163
26164 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26165
261662005-06-14 Ed Schonberg <schonberg@adacore.com>
26167
26168 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26169 appears within a negation (either from source or as a rewriting of
26170 inequality) adjust text of warning accordingly.
26171
261722005-06-14 Thomas Quinot <quinot@adacore.com>
26173
26174 * s-strxdr.adb: Follow AI95-00132
26175
261762005-06-14 Arnaud Charlet <charlet@adacore.com>
26177
26178 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26179
261802005-06-14 Arnaud Charlet <charlet@adacore.com>
26181 Jose Ruiz <ruiz@adacore.com>
26182
26183 * s-tposen.adb, s-tpobop.adb
26184 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26185 the exception id.
26186 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26187 there is no violation of the Max_Entry_Queue_Length restriction (if it
26188 has been set); Program_Error is raised otherwise.
26189 (Requeue_Call): Before requeuing the task on the target entry queue we
26190 check that there is no violation of the Max_Entry_Queue_Length
26191 restriction (if it has been set); Program_Error is raised otherwise.
26192
261932005-06-14 Robert Dewar <dewar@adacore.com>
26194
26195 * styleg.adb: Fix several remaining problems in -gnatyu switch
26196 Blank line count not reset at start
26197 Scanning outside source buffer in some cases
26198 Confusing message for blanks at end of file
26199 Non-empty blank lines not recognized
26200
26201 * nmake.adt: Modify header so that xnmake does not generate output
26202 files with multiple blank lines.
26203
6f7f72f9
EB
26204 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26205 not have an extra blank line
0adcdb66
AC
26206
262072005-06-14 Sergey Rybin <rybin@adacore.com>
26208
26209 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26210
262112005-06-14 Doug Rupp <rupp@adacore.com>
26212 Vincent Celier <celier@adacore.com>
26213
26214 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26215 Update copyright.
26216
26217 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26218 Remove "Library" command.
26219 Change keyword for style check -gnatyd from NOCRLF to
26220 DOS_LINE_ENDINGS.
26221 Remove useless second style check keyword NONE
26222 Remove help documentation for inexistent style check keyword
26223 RM_COLUMN_LAYOUT.
26224 Add help documentation for style check keywords DOS_LINE_ENDINGS,
26225 UNNECESSARY_BLANK_LINES and XTRA_PARENS
26226 Add UNNECESSARY_BLANK_LINES for -gnatyu
26227 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26228
6f7f72f9 26229 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
0adcdb66
AC
26230
262312005-06-14 Vincent Celier <celier@adacore.com>
26232
26233 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26234 gprmake was invoked with -d.
26235 (Compile_Sources): If -d was used, output the "completed ..." message
26236 for each compilation.
26237 (Scan_Arg): Recognize new switch -d
26238 When -c and at least one main is specified, set
26239 Unique_Compile to True to guarantee that no other sources will be
26240 compiled.
26241
262422005-06-14 Matthew Heaney <heaney@adacore.com>
26243
26244 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26245 * a-swuwha.ads, a-swuwha.adb: New files
26246
26247 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26248 * a-szuzha.ads, a-szuzha.adb: New files.
26249
26250 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
da8f5fd9
AJ
26251 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26252 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26253 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26254 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
0adcdb66 26255 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
da8f5fd9 26256 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
0adcdb66
AC
26257 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26258 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26259 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26260 Ada 2005 RM.
26261
262622005-06-10 Eric Botcazou <ebotcazou@adacore.com>
26263 Olivier Hainque <hainque@adacore.com>
26264 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26265 Pascal Obry <obry@adacore.com>
26266
26267 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26268
26269 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26270 making a temporary around a procedure call because of non-addressable
26271 actual parameter.
26272 (process_freeze_entity): If entity is a private type, capture size
26273 information that may have been computed for the full view.
26274 (tree_transform, case N_Allocator): If have initializing expression,
26275 check type for Has_Constrained_Partial_View and pass that to
26276 build_allocator.
26277 (tree_transform, case N_Return_Statement): Pass extra arg to
26278 build_allocator.
26279
26280 * decl.c (annotate_value): Remove early return if -gnatR is not
26281 specified.
26282 (gnat_to_gnu_field): Don't make a packable type for a component clause
26283 if the position is byte aligned, the field is aliased, and the clause
26284 size isn't a multiple of the packable alignment. It serves no useful
26285 purpose packing-wise and would be rejected later on.
26286 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26287
26288 PR ada/20515
26289 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26290 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26291 instead.
26292 (create_concat_name): Idem.
26293
262942005-06-10 Robert Dewar <dewar@adacore.com>
26295 Eric Botcazou <ebotcazou@adacore.com>
26296 Ben Brosgol <brosgol@adacore.com>
26297 Cyrille Comar <comar@adacore.com>
26298 Sergey Rybin <rybin@adacore.com>
26299 Pascal Obry <obry@adacore.com>
26300
26301 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26302 Document second argument (Ada_05) of pragma Obsolescent
26303 Add note that call to subprogram marked with pragma Obsolescent
26304 is now considered to be a violation of program Restrictions
26305 (No_Obsolescent_Features).
26306 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26307 that only machine-dependent attributes are supported.
26308
da8f5fd9 26309 * gnat_ugn.texi:
0adcdb66
AC
26310 Commented out menu lines and empty section for gnatclean examples
26311 Document -gnatwy/Y
26312 Fix some over long lines
26313 Clarify and enhance documentation of ADA_PROJECT_PATH.
26314 Rework section 2.11.2(3) about linking with a non-GNU compiler.
26315 Mention new switch -fcallgraph-info.
26316 Mention new switch -fstack-usage.
26317 For gnatpp, replace '-notab' with '-N' and add this option to Index
26318 Corrected VMS example.
26319 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26320 Minor reformatting
26321 Add documentation for -gnatyu switch (unnecessary blank lines)
26322 Document new switch -U for GNAT PRETTY and GNAT METRIC
26323 Add note about Stdcall being handled as C convention on non Windows OS.
26324 Remove some junk typo in description of gnatbind -S switch
26325 Remove reference to Extensions_Allowed pragma
26326 Document the new order of the directories to be searched (source and
26327 object directories of project files before directories in ADA_*_PATH
26328 environment variables.
26329
6f7f72f9 26330 * g-trasym.ads: Document that IRIX is supported
0adcdb66
AC
26331
263322005-06-10 Arnaud Charlet <charlet@adacore.com>
26333
26334 * Makefile.in: Add initialize.o when needed.
26335 Adapt to new VMS package body Symbols and subunits
26336 No specialized version of a-sytaco is needed for VxWorks.
26337
26338 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26339 * a-zchara.ads, a-widcha.ads: New files.
26340
26341 * system-hpux-ia64.ads: New file.
26342
26343 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26344 is imported from the VxWorks kernel.
26345
263462005-06-14 Robert Dewar <dewar@adacore.com>
26347
26348 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26349 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26350 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26351 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26352 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26353 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26354 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26355 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26356 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26357 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26358 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26359 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26360
263612005-06-14 Thomas Quinot <quinot@adacore.com>
26362
26363 * xeinfo.adb: Fix typo in comment
26364
263652005-06-14 Javier Miranda <miranda@adacore.com>
26366
26367 * repinfo.ads: Fix typo in comment
26368
263692005-06-14 Gary Dismukes <dismukes@adacore.com>
26370
26371 * s-finimp.adb (Parent_Tag): Delete this imported function (function
26372 Parent_Tag is now in the visible part of Ada.Tags).
26373 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26374 using imported function.
26375
263762005-06-14 Bernard Banner <banner@adacore.com>
26377
26378 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26379 also apply for handling support for VxSim 653.
26380
263812005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26382
26383 * xsnames.adb: Add automatic generation of snames.h.
26384
263852005-06-14 Thomas Quinot <quinot@adacore.com>
26386
26387 * gen-soccon.c: Add IP_MULTICAST_IF constant
26388 Minor reformatting and adjustments to prevent warnings.
26389
263902005-06-14 Pascal Obry <obry@adacore.com>
26391
26392 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26393
e0d161cf
AP
263942005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
26395
26396 * trans.c (gnat_gimplify_expr): Call
26397 recompute_tree_invarant_for_addr_expr when we change
26398 the operand of the ADDR_EXPR.
26399
4c714dd4
KG
264002005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26401
26402 * misc.c: Don't include errors.h.
26403
7b9997f3
KG
264042005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26405
26406 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26407
5ff62c2e
KH
264082005-05-29 Kazu Hirata <kazu@cs.umass.edu>
26409
26410 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26411 comment typos.
26412 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26413
9e94c78f 264142005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
8b37cc64
NN
26415
26416 PR ada/20270
26417 * Makefile.in: Make TGT_LIB behave correctly.
26418
d4ee4d25
DD
264192005-04-23 DJ Delorie <dj@redhat.com>
26420
26421 * misc.c: Adjust warning() callers.
26422
9e94c78f 264232005-04-16 Laurent Guerby <laurent@guerby.net>
159921c0 26424
6f7f72f9
EB
26425 PR ada/18847
26426 * a-nudira.adb (Value): Check for valid string.
26427 * a-nuflra.adb (Value): Likewise.
159921c0 26428
0b026622
RS
264292005-04-11 Richard Sandiford <rsandifo@redhat.com>
26430
26431 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26432
bde83138
KH
264332005-04-10 Kazu Hirata <kazu@cs.umass.edu>
26434
26435 * adaint.c, init.c, tracebak.c: Fix comment typos.
26436 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26437
9e94c78f 264382005-04-07 Laurent Guerby <laurent@guerby.net>
ad9945b5
LG
26439 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26440
26441 * Makefile.in: Add make ifeq define for hppa linux tasking support.
26442 * system-hpux.ads: Define Signed_Zeros to be True.
26443 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26444
45f7cb60
KH
264452005-04-01 Kazu Hirata <kazu@cs.umass.edu>
26446
26447 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26448 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26449 typos.
26450
5662a50d
TT
264512005-03-30 Tom Tromey <tromey@redhat.com>
26452
26453 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26454
e6e375cc
AL
264552005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26456
26457 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26458
5db8bc34
AC
264592005-03-29 Robert Dewar <dewar@adacore.com>
26460
26461 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26462 fixed-point expression has value that is not a multiple of the Small
26463 value.
26464
26465 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26466
26467 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26468 nanoseconds.
26469
26470 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26471
264722005-03-29 Vincent Celier <celier@adacore.com>
26473
26474 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26475 (Build_Dynamic_Library.Version_String): Return the empty string when
26476 Lib_Version is empty or when the symbol policy is not Autonomous.
26477
26478 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26479 a symbol is not in the reference symbol file, increase the Major ID
26480 and set the Minor ID to 0.
26481 Use gsmatch=lequal instead of gsmatch=equal
26482
264832005-03-29 Doug Rupp <rupp@adacore.com>
26484
26485 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26486 name and translate.
26487
264882005-03-29 Javier Miranda <miranda@adacore.com>
26489
26490 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26491 (Inherit_DT): The first formal has been redefined as a Tag.
26492 This allows us the removal of the subprogram Get_TSD.
26493 (TSD): Replace the call to Get_TSD by the actual code.
26494
26495 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26496 (Make_DT): Upgrade the call to Inherit_TSD according to the
26497 new interface: the first formal is now a Tag.
26498
26499 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26500 redefined as a Tag.
26501 This change allows us to remove the subprogram Get_TSD.
26502 (CPP_Get_TSD): Subprogram removed.
26503 (TSD): Replace the call to CPP_Get_TSD by the actual code.
26504
26505 * rtsfind.ads: Remove support to call the run-time
26506 subprogram Get_TSD
26507
265082005-03-29 Robert Dewar <dewar@adacore.com>
26509
da8f5fd9 26510 * errutil.adb, errout.adb:
5db8bc34
AC
26511 Minor comment updates on Line_Terminator references
26512
26513 * par-ch10.adb: Add ??? comment about line terminator
26514
26515 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26516 (check dos line terminator).
26517 (Check_Line_Max_Length): New procedure, split off from the existing
26518 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26519 be properly recognized.
26520
26521 * styleg.adb: Add ??? comment for line terminator reference
26522
26523 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26524 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26525
26526 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26527 (check dos line terminator).
26528 (Check_Line_Max_Length): New procedure, split off from the existing
26529 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26530 be properly recognized.
26531
da8f5fd9 26532 * stylesw.ads, stylesw.adb:
5db8bc34
AC
26533 Add handling for new -gnatyd switch (check dos line terminator)
26534
26535 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26536 Recognize -gnatwb/-gnatwB switches
26537 Include Warn_On_Bad_Fixed_Value for -gnatg
26538
da8f5fd9 26539 * usage.adb:
5db8bc34
AC
26540 Add line for new -gnatyd switch (check dos line terminator)
26541
26542 * usage.adb: Add lines for -gnatwb/-gnatwB
26543
26544 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26545
26546 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26547
26548 * gnat_ugn.texi: Fix overlong lines
26549 Document new -gnatyd switch
26550 Document new -gnatwb/-gnatwB switches
26551
265522005-03-29 Ed Schonberg <schonberg@adacore.com>
26553
26554 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26555 order to retrieve the component list of the type, before examining
26556 individual components.
26557
26558 * sem_type.adb (Covers): Types are compatible if one is the base type
26559 of the other, even though their base types might differ when private
26560 views are involved.
26561
265622005-03-29 Thomas Quinot <quinot@adacore.com>
26563
26564 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26565 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
26566 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
26567 analyzed if expansion is disabled (which could otherwise cause spurious
26568 error messages if expansion has been disabled due to previous
26569 (unrelated) errors).
26570
26571 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
26572 is disabled, the entity denoted by the argument is the access type
26573 itself, not an underlying record type, so there is no need to go back
26574 to the Corresponding_Remote_Type.
26575
265762005-03-29 Gary Dismukes <dismukes@adacore.com>
26577 Robert Dewar <dewar@adacore.com>
26578
26579 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
26580 expand a call to an instance of
26581 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
26582 Constructor actual of the instance. A class-wide membership
26583 check is also generated, to ensure that the tag passed to the instance
26584 denotes a type in the class.
26585 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
26586 of Name_Generic_Dispatching_Constructor.
26587
26588 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
26589 05 unit for AI-260-02).
26590
26591 * a-tgdico.ads: New file.
26592
26593 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
26594 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
26595
26596 * snames.ads, snames.adb (Preset_Names): Add entry for
26597 Generic_Dispatching_Constructor.
26598
26599 PR ada/20300
5db8bc34
AC
26600 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
26601 character type cases.
26602 (Analyze_Subprogram_Renaming): Add special handling for
26603 the case of renaming of stream attributes when the renaming denotes a
26604 generic formal subprogram association for an abstract formal subprogram.
26605 Check that the attribute is a primitive stream attribute (and not
26606 a class-wide stream attribute) and then rewrite the attribute name
26607 as the name of the appropriate compiler-generated stream primitive.
26608
266092005-03-29 Robert Dewar <dewar@adacore.com>
26610
26611 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
26612 recursive calls.
26613 (Is_Possibly_Unaligned_Object): Correct typo that
26614 resulted in inaccurate result for unaligned scalars within records.
26615
266162005-03-29 Ed Schonberg <schonberg@adacore.com>
26617
26618 * freeze.adb (Freeze_Record_Type): If the type of the component is an
26619 itype whose parent is controlled and not yet frozen, do not create a
26620 freeze node for the itype if expansion is disabled.
26621
266222005-03-29 Vincent Celier <celier@adacore.com>
26623
26624 * make.adb (Gnatmake): Don't fail if the main project file is declared
26625 as having no Ada sources. Do not display message "no sources to
26626 compile" in quiet output.
26627
266282005-03-29 Doug Rupp <rupp@adacore.com>
26629
26630 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
26631 extra tools.
26632
266332005-03-29 Robert Dewar <dewar@adacore.com>
26634
26635 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
26636 child.
26637
266382005-03-29 Robert Dewar <dewar@adacore.com>
26639
26640 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
26641 missing TYPE Improve the error message generated when compiling a
26642 limited interface in Ada83 or Ada95 mode.
26643
266442005-03-29 Robert Dewar <dewar@adacore.com>
26645
26646 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
26647 rather than proceed ahead using a junk attribute name.
26648
266492005-03-29 Vincent Celier <celier@adacore.com>
26650
26651 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
26652
26653 * prj-part.adb (Parse_Single_Project): Set the location of a project
26654 on its defining identifier, rather than on the reserved word "project".
26655
26656 * prj-proc.adb (Expression): Adapt to the fact that default of external
26657 references may be string expressions, not always literal strings.
26658 (Recursive_Process): Set Display_Name equal to Name
26659 when Location is No_Location, that is when there is no actual file.
26660 Get the Display_Name of the project from the source, when it is not a
26661 virtual project.
26662 (Process): Use the Display_Name in error messages
26663
26664 * prj-strt.adb (External_Reference): Allow default to be string
26665 expressions, not only literal strings.
26666
266672005-03-29 Vincent Celier <celier@adacore.com>
26668
26669 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
26670 file and the reference symbol file to be the same file.
26671
266722005-03-29 Thomas Quinot <quinot@adacore.com>
26673
26674 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
26675 forbid conversion of a local access-to-subprogram type to a remote one.
26676
26677 * sem_util.adb (Wrong_Type): For a record type that is the expanded
26678 equivalent type for a remote access-to-subprogram type, go back to the
26679 original RAS entity when displaying an error message, so the casing is
26680 the original source casing.
26681
266822005-03-29 Robert Dewar <dewar@adacore.com>
26683
26684 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
26685 on param update.
26686
266872005-03-29 Ed Schonberg <schonberg@adacore.com>
26688
26689 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
26690 subtype if code is being pre-analyzed, to prevent un-expanded
26691 references to protected formals, among others.
26692 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
26693 interpretation that can be a call, include the result of the call as a
26694 possible interpretation of the dereference.
26695
26696 * sem_ch5.adb (Process_Bounds): Determine type of range by
26697 pre-analyzing a copy of the original range, and then analyze the range
26698 with the expected type.
26699
26700 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
26701 with an overloaded prefix where not all interpretations yield an
26702 access to subprogram, do not rewrite node as a call.
26703 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
26704 the node as a call once the context identifies the interpretation of
26705 the prefix whose call yields the context type.
26706 (Valid_Conversion): For the case of a conversion between
26707 local access-to-subprogram types, check subtype conformance using
26708 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
26709 detailed error message.
26710
267112005-03-29 Ed Schonberg <schonberg@adacore.com>
26712
26713 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
26714 indicator, indicate that the formal can never be null.
26715 (Process_Formals): If a formal has a non_null indicator, insert the
26716 resulting subtype immediately before the enclosing subprogram decl,
26717 and not at the beginning of the corresponding declarative part, to
26718 prevent access before elaboration (Ada2005).
26719
267202005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26721
26722 PR ada/19956
26723 * utils.c (finish_record_type): Use variable_size when setting sizes.
26724
267252005-03-29 Robert Dewar <dewar@adacore.com>
26726
26727 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
26728 guarantee Unix style line terminators for the output files, even when
26729 running on windows.
26730
267312005-03-29 Robert Dewar <dewar@adacore.com>
26732
26733 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
26734 buffer if an exception is raised.
26735
267362005-03-29 Ed Falis <falis@adacore.com>
26737
26738 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
26739 VxWorks 653 1.4
26740
267412005-03-29 Robert Dewar <dewar@adacore.com>
26742
26743 * sem_util.ads: Minor reformatting
26744 * gnat_rm.texi: Minor editing.
26745
267462005-03-29 Eric Botcazou <ebotcazou@adacore.com>
26747
26748 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
26749 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
26750
aad9ff31
AL
267512005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26752
26753 * adaint.c (__gnat_portable_spawn): Adjust cast.
26754
d101034c
JM
267552005-03-23 Joseph S. Myers <joseph@codesourcery.com>
26756
26757 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
26758
3a0c4f5a
AC
267592005-03-17 Pascal Obry <obry@adacore.com>
26760
26761 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
26762 used.
26763
26764 * expect.c (__gnat_waitpid): Moved here from adaint.c.
26765 Reimplement under Win32 using Win32 API.
26766
26767 (__gnat_kill) [Win32]: Properly close the process handle before leaving
26768 this routine.
26769
267702005-03-17 Eric Botcazou <ebotcazou@adacore.com>
26771
26772 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
26773 (DECL_RENAMED_OBJECT): New accessor macro.
26774 (SET_DECL_RENAMED_OBJECT): New setter macro.
26775
26776 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
26777 object in all cases. Attach the renamed object to the VAR_DECL.
26778 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
26779 field is not prescribed.
26780
26781 * misc.c (gnat_handle_option): Handle -gnatO separately.
26782 (gnat_print_decl) <VAR_DECL>: New case.
26783 Print the DECL_RENAMED_OBJECT node.
26784
26785 * lang.opt: Declare separate -gnatO option.
26786
26787 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
26788 pointer, replace it with the renamed object.
26789 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
26790 pointer type if the source is not a fat pointer type whose underlying
26791 array has the same non-zero alias set as that of the destination array.
26792
267932005-03-17 Javier Miranda <miranda@adacore.com>
26794
26795 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
26796 (Get_Inheritance_Depth): Removed.
26797 (Set_Inheritance_Depth): Removed.
26798
26799 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
26800 subprogram Get_Expanded_Name because it is not referenced by the
26801 frontend.
26802
26803 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
26804 (CPP_Get_Inheritance_Depth): Removed.
26805 (CPP_Set_Inheritance_Depth): Removed.
26806
26807 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
26808
268092005-03-17 Robert Dewar <dewar@adacore.com>
26810
26811 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
26812 3, since we now expect GCC 3 to do all the work.
26813
268142005-03-17 Javier Miranda <miranda@adacore.com>
26815
26816 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
26817 of one barrier to avoid wrong usage of this attribute.
26818
26819 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
26820 First_Private_Entity.
26821
26822 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
26823 the subprogram against wrong usage.
26824 Adapt the code to traverse the entities in the
26825 scope of a record_type because in addition to its usage regarding
26826 packages, this subprogram is also called by Expand_N_Freeze_Entity
26827 to install the visible declarations of the enclosing scope of a
26828 record_type_with_private to establish the proper visibility before
26829 freezing the entity and related subprograms.
26830
268312005-03-17 Ed Schonberg <schonberg@adacore.com>
26832
26833 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
26834 entry formals.
26835
268362005-03-17 Thomas Quinot <quinot@adacore.com>
26837
26838 * exp_ch3.adb (Check_Attr): New subprogram.
26839 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
26840 into a new Check_Attr subprogram, in order to provide a more
26841 explanatory error message (including the name of the missing attribute).
26842 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
26843 subprogram determines whether a default implementation exists for a
26844 given stream attribute.
26845 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
26846 Determine whether to generate a default implementation for each stream
26847 attribute separately, as this depends on the specific attribute.
26848
26849 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
26850 limited extension where a stream attribute is missing for a limited
26851 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
26852 generate a bogus reference to the missing attribute to prevent
26853 cascaded errors. Instead, generate a null statement.
26854
26855 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
26856 available for a limited type if it has been specified for an ancestor
26857 of the type.
26858
268592005-03-17 Ed Schonberg <schonberg@adacore.com>
26860
26861 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
26862 entity is an operator.
26863
268642005-03-17 Thomas Quinot <quinot@adacore.com>
26865
26866 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
26867 spec, to make this predicate available to other units.
26868
26869 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
26870 reimplementing it.
26871
26872 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
26873 when no distribution runtime library is available.
26874
26875 * sem_res.adb, sem_dist.adb: Disable expansion of remote
26876 access-to-subprogram types when no distribution runtime library is
26877 available.
26878 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
26879 predicate available to other units.
26880
26881 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
26882 spec, to make this predicate available to other units.
26883
268842005-03-17 Vincent Celier <celier@adacore.com>
26885
26886 * make.adb (Insert_Project_Sources): Make sure the Q is always
26887 initialized.
26888
26889 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
26890 the default for the tree, not the global default naming.
26891
26892 * prj-proc.adb (Recursive_Process): No need to put the default naming
26893 in the project data, it's already there.
26894
268952005-03-17 Doug Rupp <rupp@adacore.com>
26896
26897 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
26898
6f7f72f9
EB
26899 * 5xcrtl.ads: Renamed to...
26900 * s-crtl-vms64.ads: ...this new file
3a0c4f5a
AC
26901
269022005-03-17 Robert Dewar <dewar@adacore.com>
26903
26904 PR ada/19519
3a0c4f5a
AC
26905 * namet.adb (Copy_One_Character): Set proper wide character encoding
26906 for upper half character if we have upper half encoding.
26907
269082005-03-17 Robert Dewar <dewar@adacore.com>
26909
26910 * par.adb (Par): Improved msg for attempt to recompile predefined unit
26911
269122005-03-17 Thomas Quinot <quinot@adacore.com>
26913
26914 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
26915 tagged limited type, the TSS is a newly built renaming declaration:
26916 insert it using Set_TSS, not Copy_TSS.
26917
269182005-03-17 Javier Miranda <miranda@adacore.com>
26919
26920 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
26921 Try_Object_Operation): Analyze the object that is accessible
26922 through the prefix of the subprogram call before we apply
26923 the transformation of the object-operation notation.
26924
269252005-03-17 Jose Ruiz <ruiz@adacore.com>
26926
26927 * s-taprob.adb (Initialize_Protection): Initialize the protected
26928 object's owner to Null_Task.
26929 (Lock): If pragma Detect_Blocking is in effect and the caller of this
26930 procedure is already the protected object's owner then Program_Error
26931 is raised. In addition the protected object's owner is updated.
26932 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
26933 of this procedure is already the protected object's owner then
26934 Program_Error is raised.
26935 In addition the protected object's owner is updated.
26936 (Unlock): Remove the ownership of the protected object.
26937
26938 * s-taprob.ads (Protection): Add the field Owner, used to store the
26939 protected object's owner.
26940 This component is needed for detecting one type of potentially blocking
26941 operations (external calls on a protected subprogram with the same
26942 target object as that of the protected action). Document the rest of
26943 the components.
26944
26945 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
26946 Initialize the protected object's owner to Null_Task.
26947 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
26948 caller of this procedure is already the protected object's owner then
26949 Program_Error is raised.
26950 Do not raise Program_Error when this procedure is called from a
26951 protected action.
26952 (Unlock_Entries): Remove the ownership of the protected object.
26953 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
26954 of this procedure is already the protected object's owner then
26955 Program_Error is raised.
26956 Do not raise Program_Error when this procedure is called from
26957 a protected action.
26958
26959 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
26960 used to store the protected object's owner.
26961
26962 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
26963 effect and this procedure (a potentially blocking operation) is called
26964 from whithin a protected action, Program_Error is raised.
26965 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
26966 and this procedure (a potentially blocking operation) is called from
26967 whithin a protected action, Program_Error is raised.
26968
269692005-03-17 Vincent Celier <celier@adacore.com>
26970 Nicolas Setton <setton@adacore.com>
26971
26972 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
26973 switch, not supported by the linker on Darwin. Add '_' before
26974 <library>init, as this character is added unconditionally by the
26975 compiler.
26976 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
26977 correct one ".dylib". This fixes detection of the archive files when
26978 building library projects.
26979
269802005-03-17 Vincent Celier <celier@adacore.com>
26981
26982 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
26983 -gnat83, -gnat95 and -gnat05.
26984
269852005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
26986
26987 * gnat_ugn.texi: Document gnatmem restriction
26988
269892005-03-17 Thomas Quinot <quinot@adacore.com>
26990
26991 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
26992 cleanup
26993
269942005-03-17 Robert Dewar <dewar@adacore.com>
26995
26996 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
26997 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
26998 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
26999
27000 * casing.adb: Comment improvements
27001
270022005-03-17 Pascal Obry <obry@adacore.com>
27003
27004 * g-expect.adb: Minor reformatting.
27005
a1286ef5
ZW
270062005-03-15 Zack Weinberg <zack@codesourcery.com>
27007
27008 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27009 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27010 to dependencies.
27011
2532808d
VC
270122005-03-15 Vincent Celier <celier@adacore.com>
27013
a1286ef5
ZW
27014 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27015 Add new parameter In_Tree to specify the project tree: needed
27016 by the project manager. Adapt to changes in project manager
27017 using new parameter In_Tree.
2532808d 27018
e2d6b9b9
JJ
270192005-03-15 Jakub Jelinek <jakub@redhat.com>
27020
27021 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27022 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27023 ada/bldtools to avoid make -jN failures.
27024
813edff1
EB
270252005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27026
27027 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27028 to NULL_TREE on entry.
27029
4f51c6e7
AC
270302005-03-15 Robert Dewar <dewar@adacore.com>
27031
27032 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27033 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27034 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27035 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27036 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27037 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27038 system-interix.ads, system-solaris-sparc.ads,
27039 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27040 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27041 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27042 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27043 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27044 Compiler_System_Version to be False.
27045
27046 * opt.ads: Add new flag Opt.Address_Is_Private
27047
27048 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27049 Add new parameter Compiler_System_Version to avoid checking for
27050 completeness of parameters when compiler is compiling itself.
27051 Allows old versions of GNAT to be compiled with new compiler.
27052
270532005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27054
27055 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27056 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27057 calling thread.
27058 (Stack_Base_Available): New flag.
27059 (Get_Page_Size): New overloaded functions imported from C.
27060 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27061 PROT_ON, PROT_OFF): New constants.
27062 (mprotect): New function imported from C.
27063 (pthread_teb_t): New record type.
27064
27065 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27066 (Create_Task): Account for the Yellow Zone and the guard page.
27067
270682005-03-15 Vincent Celier <celier@adacore.com>
27069
27070 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27071 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27072 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27073 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27074 Library_File_Name_For): Add new parameter In_Tree
27075 to specify the project tree: needed by the project manager.
27076 Adapt to changes in project manager using new parameter In_Tree.
27077 Remove local imports, use functions in System.CRTL.
27078
27079 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27080 to use the project manager.
27081
27082 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27083 In_Tree to designate the project tree. Adapt to changes in the project
27084 manager, using In_Tree.
27085
27086 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27087 Copy_Interface_Sources): Add new parameter In_Tree to specify the
27088 project tree: needed by the project manager.
27089 (Build_Library): Check that Arg'Length >= 6 before checking if it
27090 contains "--RTS=...".
27091
27092 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27093 Library_File_Name_For): Add new parameter In_Tree to specify the
27094 project tree: needed by the project manager.
27095
27096 * prj.ads, prj.adb: Major modifications to allow several project trees
27097 in memory at the same time.
27098 Change tables to dynamic tables and hash tables to dynamic hash
27099 tables. Move tables and hash tables from Prj.Com (in the visible part)
27100 and Prj.Env (in the private part). Move some constants from the visible
27101 part to the private part. Make other constants deferred.
27102 (Project_Empty): Make it a variable, not a function
27103 (Empty_Project): Add parameter Tree. Returns the data with the default
27104 naming data of the project tree Tree.
27105 (Initialize): After updating Std_Naming_Data, copy its value to the
27106 component Naming of Project Empty.
27107 (Register_Default_Naming_Scheme): Use and update the default naming
27108 component of the project tree, instead of the global variable
27109 Std_Naming_Data.
27110 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27111 Tree is not defaulted, return the default naming data of the Tree.
27112 (Initial_Buffer_Size): Constant moved from private part
27113 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27114 variables initialized in procedure Initialize.
27115 (Add_To_Buffer): Add two in out parameters to replace global variables
27116 Buffer and Buffer_Last.
27117 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27118 functions.
27119 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27120 hash tables.
27121 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27122 for the project tree.
27123 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27124 constant at the beginning of the package spec, so that they cane be used
27125 in subprograms before their full declarations.
27126 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27127 (Empty_Project): Add parameter of type Project_Node_Ref
27128 (Private_Project_Tree_Data): Add component Default_Naming of type
27129 Naming_Data.
27130 (Buffer, Buffer_Last): remove global variables
27131 (Add_To_Buffer): Add two in out parameters to replace global variables
27132 Buffer and Buffer_Last.
27133 (Current_Packages_To_Check): Remove global variable
27134 (Empty_Name): Move to private part
27135 (No-Symbols): Make it a constant
27136 (Private_Project_Tree_Data): New type for the private part of the
27137 project tree data.
27138 (Project_Tree_Data): New type for the data of a project tree
27139 (Project_Tree_Ref): New type to designate a project tree
27140 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27141 for the project tree.
27142
27143 * prj-attr.ads: Add with Table; needed, as package Prj no longer
27144 imports package Table.
27145
27146 * prj-com.adb: Remove empty, no longer needed body
27147
27148 * prj-com.ads: Move most of the content of this package to package Prj.
27149
27150 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27151 designate the project node tree and Packages_To_Check to replace
27152 global variable Current_Packages_To_Check.
27153 Add new parameters In_Tree and Packages_To_Check to local subprograms,
27154 when needed. Adapt to changes in project manager with project node tree
27155 In_Tree.
27156
27157 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27158 project tree to most subprograms. Move tables and hash tables to
27159 private part of package Prj.
27160 Adapt to changes in project manager using project tree In_Tree.
27161
27162 * prj-makr.adb (Tree): New constant to designate the project node tree
27163 Adapt to change in project manager using project node tree Tree
27164
27165 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27166 display the Library_Src_Dir and the Library_Dir.
27167 Add new parameter In_Tree to designate the project node tree to most
27168 subprograms. Adapt to changes in the project manager, using project tree
27169 In_Tree.
27170 (Check_Naming_Scheme): Do not alter the casing on platforms where
27171 the casing of file names is not significant.
27172 (Check): Add new parameter In_Tree to designate the
27173
27174 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27175 designate the project tree.
27176 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27177
27178 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27179 to replace those that were in the private part of package Prj.
27180 Add new parameter In__Tree to designate the project node tree to most
27181 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27182 (Post_Parse_Context_Clause): When specifying the project node of a with
27183 clause, indicate that it is a limited with only if there is "limited"
27184 in the with clause, not necessarily when In_Limited is True.
27185 (Parse): Add new parameter In_Tree to designate the project node tree
27186
27187 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27188 designate the project node tree. Adapt to change in Prj.Tree with
27189 project node tree In_Tree.
27190
27191 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27192 tree In_Tree in the call to function Empty_Process to give its initial
27193 value to the project data Processed_Data.
27194 Add new parameters In_Tree to designate the project tree and
27195 From_Project_Node_Tree to designate the project node tree to several
27196 subprograms. Adapt to change in project manager with project tree
27197 In_Tree and project node tree From_Project_Node_Tree.
27198
27199 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27200 to replace those that were in the private part of package Prj.
27201 Add new parameter In_Tree to designate the project node tree to most
27202 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27203
27204 * prj-tree.ads, prj-tree.adb: Add new parameter of type
27205 Project_Node_Tree_Ref to most subprograms.
27206 Use this new parameter to store project nodes in the designated project
27207 node tree.
27208 (Project_Node_Tree_Ref): New type to designate a project node tree
27209 (Tree_Private_Part): Change table to dynamic table and hash tables to
27210 dynamic hash tables.
27211
27212 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27213 the project tree to most subprograms. Adapt to changes in project
27214 manager using project tree In_Tree.
27215
27216 * makegpr.adb (Project_Tree): New constant needed to use project
27217 manager.
27218
272192005-03-15 Olivier Hainque <hainque@adacore.com>
27220
27221 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27222 for sigactions with SA_SIGINFO set. Call
27223 __gnat_adjust_context_for_raise before raising, to perform the
27224 potentially required adjustments to the machine context for the GCC
27225 unwinder.
27226
27227 * raise.h (__gnat_adjust_context_for_raise): New prototype.
27228
27229 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27230 Adjust PC by one in the provided machine context.
27231 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27232 so that the handler is passed the context structure to adjust prior to
27233 the raise.
27234 (__gnat_error_handler) HPUX: Adjust the signature to match what an
27235 SA_SIGINFO sigaction should look like. Call
27236 __gnat_adjust_context_for_raise before actually raising.
27237 (__gnat_adjust_context_for_raise): Default noop to help PC
27238 adjustments before raise from signal handlers.
27239 (__gnat_error_handler): Indirectly call a predicate function to
27240 determine if a condition should be resignaled or not.
27241 (__gnat_set_resignal_predicate): User interface to modify the predicate.
27242 (__gnat_default_resignal_p): Default GNAT predicate.
27243
272442005-03-15 Doug Rupp <rupp@adacore.com>
27245
27246 * adaint.c: Prefix #include of VMS system header files with vms/
27247 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27248 Do not define a dummy function "convert_addresses" under Darwin,
27249 not needed.
27250
27251 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27252 with vms/
27253
272542005-03-15 Nicolas Setton <setton@adacore.com>
27255
27256 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27257 PPC/AIX.
27258
272592005-03-15 Robert Dewar <dewar@adacore.com>
27260
27261 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27262 AI-386.
27263
27264 * a-retide.ads: Minor comment changes
27265
272662005-03-15 Robert Dewar <dewar@adacore.com>
27267
27268 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27269 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27270 Realloc_For_Chunk to private part of package.
27271 New subprograms for AI-301
27272
27273 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27274 Get_Line procedure.
27275 Avoid unnecessary use of Get/Set_Wide_String
27276
272772005-03-15 Robert Dewar <dewar@adacore.com>
27278
27279 PR ada/13470
a1286ef5 27280 * a-stunau.ads, a-stunau.adb:
4f51c6e7
AC
27281 Change interface to allow efficient (and correct) implementation
27282 The previous changes to allow extra space in unbounded strings had
27283 left this interface a bit broken.
27284
27285 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27286
27287 * g-spipat.ads, g-spipat.adb: New interface for Get_String
27288 Minor reformatting (function specs)
27289
27290 * g-spitbo.adb: New interface for Get_String
27291
27292 * g-spitbo.ads: Minor reformatting
27293
27294 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27295
27296 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27297
272982005-03-15 Javier Miranda <miranda@adacore.com>
27299 Robert Dewar <dewar@adacore.com>
27300 Thomas Quinot <quinot@adacore.com>
27301 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27302
27303 * atree.ads, atree.adb: Add support for Elist24 field
27304
27305 * atree.h: Fix wrong definition of Field27
27306 Add support for Elist16 field
27307 Add support for Elist24 field
27308
27309 * einfo.ads, einfo.adb (Abstract_Interfaces,
27310 Set_Abstract_Interfaces): New subprograms.
27311 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27312 subprograms.
27313 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27314 entities rather than a single node.
27315 (Is_Interface, Set_Is_Interface): New subprogram
27316 (First_Tag_Component): New syntesized attribute
27317 (Next_Tag_Component): New synthesized attribute
27318 (Write_Entity_Flags): Upgraded to write Is_Interface
27319 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27320 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27321 (Task_Body_Procedure): New subprogram to read this attribute.
27322 (Set_Task_Body_Procedure): New subprogram to set this attribute.
27323 (Has_Controlled_Component): Now applies to all entities.
27324 This is only a documentation change, since it always worked to apply
27325 this to other than composite types (yielding false), but now this is
27326 official.
27327 Update documentation on Must_Be_Byte_Aligned for new spec
27328
27329 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27330 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27331 uses of the Access_Disp_Table attribute to reference the first dispatch
27332 table associated with a tagged type. As
27333 part of the implementation of abstract interface types,
27334 Access_Disp_Table has been redefined to contain a list of dispatch
27335 tables (rather than a single dispatch table).
27336 Similarly, upgrade all the references to Tag_Component by the
27337 new attribute First_Tag_Component.
27338 (Find_Inherited_TSS): Moved to exp_tss.
27339 Clean up test in Expand_N_Object_Declaration for cases
27340 where we need to do a separate assignment of the initial value.
27341 (Expand_N_Object_Declaration): If the expression in the
27342 declaration of a tagged type is an aggregate, no need to generate an
27343 additional tag assignment.
27344 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27345 is to be deleted.
27346 Bit packed array ops are only called if operands are known to be
27347 aligned.
27348 (Component_Equality): When returning an N_Raise_Program_Error statement,
27349 ensure that its Etype is set to Empty to avoid confusing GIGI (which
27350 expects that only expressions have a bona fide type).
27351 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27352 determine the amount of data to be copied.
27353
27354 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27355 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27356 INTERFACE_TYPE_DEFINITION ::=
27357 [limited | task | protected | synchronized] interface
a1286ef5 27358 [AND interface_list]
4f51c6e7
AC
27359
27360 * par-ch3.adb (P_Type_Declaration): Modified to give support to
27361 interfaces.
27362 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27363 interfaces.
27364 (P_Interface_Type_Definition): New subprogram that parses the new
27365 syntax rule of Ada 2005 interfaces
27366 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27367 messages by the correct RENAMES (quotes removed).
27368
27369 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27370 attribute First_Tag_Component.
27371
27372 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27373 (Interface_List, Set_Interface_List): New subprograms.
27374 (Interface_Present, Set_Interface_Present): New subprograms.
27375 (Limited_Present, Set_Limited_Present): Available also in derived
27376 type definition nodes.
27377 (Protected_Present, Set_Protected_Present): Available also in
27378 record type definition and
27379 derived type definition nodes.
27380 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27381 (Task_Present, Set_Task_Present): New subprogram.
27382 (Task_Body_Procedure): Removed.
27383 (Set_Task_Body_Procedure): Removed.
27384 These subprogram have been removed because the attribute
27385 Task_Body_Procedure has been moved to the corresponding task type
27386 or task subtype entity to leave a field free to store the list
27387 of interfaces implemented by a task (for AI-345)
27388 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27389 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27390 expression flag Do_Range_Check
27391 (Exception_Junk): Change to Flag7 to accomodate above change
27392 (Box_Present, Default_Name, Specification, Set_Box_Present,
27393 Set_Default_Name, Set_Specification): Expand the expression
27394 "X in N_Formal_Subprogram_Declaration" into the corresponding
27395 two comparisons. Required to use the csinfo tool.
27396
27397 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27398 "with string" given.
27399
a1286ef5
ZW
27400 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27401 expression given.
4f51c6e7
AC
27402
27403 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27404 in 2005 mode
27405
27406 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27407 attribute Task_Body_Procedure rather than the old semantic field that
27408 was available in the task_type_declaration node.
27409
27410 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27411 interface type definitions.
27412 (P_Formal_Derived_Type_Definition): Modified to handle the list of
27413 interfaces.
27414
27415 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27416 task type declaration.
27417 (P_Protected): Modified to handle the list of interfaces in a
27418 protected type declaration.
27419
274202005-03-15 Doug Rupp <rupp@adacore.com>
27421 Vincent Celier <celier@adacore.com>
27422
27423 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27424 (Gen_Output_File_C): Likewise.
27425 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27426
274272005-03-15 Thomas Quinot <quinot@adacore.com>
27428
27429 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27430 is an N_Raise_Constraint_Error node, create a new copy of it without
27431 going through a call to Duplicate_Subexpr.
27432
274332005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27434 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27435 Nicolas Setton <setton@adacore.com>
27436 Ed Schonberg <schonberg@adacore.com>
27437
27438 PR ada/19900
27439 PR ada/19408
27440 PR ada/19140
27441 PR ada/20255
4f51c6e7
AC
27442 * decl.c (gnat_to_gnu_field): Reject aliased components with a
27443 representation clause that prescribes a size not equal to the rounded
27444 size of their types.
27445 (gnat_to_gnu_entity, case E_Component): Always look at
27446 Original_Record_Component if Present and not the entity.
27447 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27448 of tagged extension types by not making field for components that are
27449 inside the parent.
27450 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27451 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27452 expression to the type of the object when the object is constant.
27453 Reverse defer_debug_incomplete_list before traversing it, so that trees
27454 are processed in the order at which they were added to the list. This
27455 order is important when using the stabs debug format.
27456 If we are deferring the output of debug information, also defer this
27457 output for a function return type.
27458 When adding fields to a record, prevent emitting debug information
27459 for incomplete records, emit the information only when the record is
27460 complete.
27461 (components_to_record): New parameter defer_debug.
27462 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27463 (gnat_to_gnu_field_decl): New function.
27464 (substitution_list, annotate_rep): Call it.
27465 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27466 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27467 No longer update discriminants to not be a COMPONENT_REF.
27468 (copy_alias_set): Strip padding from input type; also handle
27469 unconstrained arrays properly.
27470
27471 * gigi.h (write_record_type_debug_info): New function.
27472 Convert to use ANSI-style prototypes. Remove unused
27473 declarations for emit_stack_check, elab_all_gnat and
27474 set_second_error_entity.
27475 (gnat_to_gnu_field_decl): New decl.
27476
27477 * utils.c (write_record_type_debug_info): New function.
27478 (finish_record_type): Delegate generation of debug information to
27479 write_record_type_debug_info.
27480 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27481 (update_pointer_to): Fix pasto.
27482 (convert) <UNION_TYPE>: Accept slight type variations when
27483 converting to an unchecked union type.
27484
27485 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27486 replace the N_Freeze_Entity with a null statement.
27487
27488 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27489 within a constrained subcomponent of an enclosing record, place the
27490 freeze nodes in the scope stack entry for the enclosing record.
27491 (Undelay_Type): New Subprogram.
27492 (Set_Small_Size): Pass T, the type to modify; all callers changed.
27493 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27494 within records; allow them to have freeze nodes if their base types
27495 aren't frozen yet.
27496
017205f5
EB
27497 * exp_util.adb (Remove_Side_Effects): Properly test for
27498 Expansion_Delayed and handle case when it's inside an
27499 N_Qualified_Expression.
27500
4f51c6e7
AC
27501 * sem_ch3.adb (Derived_Type_Declaration): New predicate
27502 Comes_From_Generic, to recognize accurately that the parent type in a
27503 derived type declaration can be traced back to a formal type, because
27504 it is one or is derived from one, or because its completion is derived
27505 from one.
27506 (Constrain_Component_Type): If component comes from source and has no
27507 explicit constraint, no need to constrain in in a subtype of the
27508 enclosing record.
27509 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27510 Minor change to propagate Is_Ada_2005 flag
27511
27512 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27513 Expansion_Delayed is False.
27514 (assoc_to_constructor): Ignore fields that have a
27515 Corresponding_Discriminant.
27516 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27517 function returns "by target", dereference the target pointer using the
27518 type of the actual return value.
27519 <all>: Be prepared for a null gnu_result.
27520 (processed_inline_subprograms): Check flag_really_no_inline
27521 instead of flag_no_inline.
27522 (set_second_error_entity): Remove unused function.
27523 (gnat_to_gnu, case N_Selected_Component): Call
27524 gnat_to_gnu_field_decl.
27525 (assoc_to_constructor): Likewise.
27526
275272005-03-15 Robert Dewar <dewar@adacore.com>
27528 Ed Schonberg <schonberg@adacore.com>
27529 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27530
4f51c6e7
AC
27531 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27532 Must_Be_Byte_Aligned for cases where we do not need to use a
27533 System.Pack_nn unit.
27534
27535 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27536 as procedures.
27537 Needed now that we do some processing for IN parameters as well. This
27538 may well fix some unrelated errors.
27539 (Expand_Call): Handle case of unaligned objects (in particular those
27540 that come from packed arrays).
27541 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27542 renamed entity is an inherited operation, re-expand the call using the
27543 original operation, which is the one to call.
27544 Detect attempt to inline parameterless recursive subprogram.
27545 (Represented_As_Scalar): Fix to work properly with private types
27546 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27547 accurate estimate. Yields True in far fewer cases than before,
27548 improving the quality of code that depends on this test.
4f51c6e7
AC
27549
27550 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27551 over both visible and private declarations to remove them from tree,
27552 and mark subprograms declared in package as eliminated, to prevent
27553 spurious use in subsequent compilation of generic units in the context.
27554
27555 * exp_util.ads: Minor cleanup in variable names
27556
27557 * sem_eval.ads, sem_eval.adb: Minor reformatting
27558 (Compile_Time_Known_Bounds): New function
27559
275602005-03-15 Ed Schonberg <schonberg@adacore.com>
27561
27562 * exp_ch7.adb (Convert_View): Use base types of underlying types when
27563 determining whether an unchecked conversion is needed for the argument
27564 of an initialization call.
27565
275662005-03-15 Ed Schonberg <schonberg@adacore.com>
27567
27568 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
27569 that appears in the instantiation rather than the internal subtype
27570 generated in the wrapper package, to avoid anomalies in gigi when the
27571 target is derived from a private type whose full view is an access type.
27572
275732005-03-15 Robert Dewar <dewar@adacore.com>
27574
27575 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
27576 not needed.
27577 Add documentation to replace the use of this flag
27578 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
27579 the x86_64.
27580
275812005-03-15 Thomas Quinot <quinot@adacore.com>
27582
27583 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
27584 here from exp_attr so it can be shared between exp_attr and exp_dist.
27585 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
27586 all TSS names, not a subset thereof, and the previous name introduced
27587 an unnecessarily confusion that a distinction might exist between
27588 "OK" TSS names and some "not OK" TSS names.
27589
275902005-03-15 Doug Rupp <rupp@adacore.com>
27591
27592 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
27593 Command_Name.
27594
275952005-03-15 Pascal Obry <obry@adacore.com>
27596 Eric Botcazou <ebotcazou@adacore.com>
27597
27598 PR ada/20226
27599 PR ada/20344
4f51c6e7
AC
27600 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
27601 when IN_RTS. This is to work around a bootstrap path problem.
27602
27603 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
27604 table and pass it to __gnat_install_SEH_handler().
27605 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
27606
27607 * lang.opt: Fix specification of -fRTS=.
27608
276092005-03-15 Doug Rupp <rupp@adacore.com>
27610 Bernard Banner <banner@adacore.com>
27611 Vincent Celier <celier@adacore.com>
27612 Arnaud Charlet <charlet@adacore.com>
27613
27614 PR ada/6852
27615 This change works fine when gnatlib is built from the gcc directory,
27616 but does not work when using the libada Makefile, since GCC_FOR_TARGET
27617 is not passed to ada/Makefile.in, so more work is needed by a
27618 Makefile/configure expert.
27619
27620 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
27621 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
27622 Setup gnatlink switch -M for x86_64 linux, as it is already setup
27623 for Linux x86.
27624 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
27625 Run ranlib on libgccprefix.a
27626 Define PREFIX_OBJS for Darwin, to build libgccprefix.
27627 (ADA_INCLUDE_SRCS): Split Ada packages.
27628
276292005-03-15 Robert Dewar <dewar@adacore.com>
27630
27631 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
27632
27633 * impunit.adb: Add GNAT.UTF_32
27634
27635 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
27636
27637 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
27638 now uses GNAT.UTF_32).
27639
27640 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
27641 capabilities for categorizing characters using Unicode categories
27642
276432005-03-15 Ed Schonberg <schonberg@adacore.com>
27644
27645 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
27646 instantiation that has been rewritten as a package body, retrieve spec
27647 to generate proper name for implicit_with_clause.
27648 (Install_Parents): Recognize a parent that is an instantiation but has
27649 been rewritten as a package declaration during analysis.
27650
276512005-03-15 Javier Miranda <miranda@adacore.com>
27652 Ed Schonberg <schonberg@adacore.com>
27653
27654 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
27655 parameter reported some error we immediately return. This improves the
27656 behaviour of the frontend in case of errors.
27657 (Install_Parent, Remove_Parent): Introduce new flag
27658 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
27659 ancestor of a generic child unit, when the child is being instantiated.
27660 (Inline_Instance_Body): If we are compiling the private
27661 part or the body of a child unit, restore the proper visibility of the
27662 parents after compiling the instance body.
27663
276642005-03-15 Ed Schonberg <schonberg@adacore.com>
27665 Javier Miranda <miranda@adacore.com>
27666
27667 PR ada/15608
27668 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
27669 of a private type, in which case it is underlying_type that denotes
27670 the proper task. Also modified to use the new entity attribute
27671 that is directly available in the task type and task subtype entities
27672 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
27673 arrays when other dimensions than the first are constrained by
27674 discriminants of an enclosing record.
27675 (Insert_Explicit_Dereference): If the prefix is an indexed component or
27676 a combination of indexed and selected components, find ultimate entity
27677 and generate the appropriate reference for it, to suppress spurious
27678 warnings.
27679 (Note_Possible_Modification): If an entity name has no entity, return.
27680 (Is_Variable): A function call never denotes a variable.
27681 (Requires_Transient_Scope): For record types, recurse only on
27682 components, not on internal subtypes that may have been generated for
27683 constrained components.
27684
276852005-03-15 Ed Schonberg <schonberg@adacore.com>
27686
27687 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
27688 Eliminated as candidates for resolution. Both efficient, and avoids
27689 anomalies with operators declared in deleted code.
27690 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
27691 expansion is disabled (as when compiling a generic) to prevent spurious
27692 warnings on prefixes of selected components.
27693
276942005-03-15 Ed Schonberg <schonberg@adacore.com>
27695
27696 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
27697 attached to a list before checking whether it appears in the private
27698 declarations of the current package.
27699 (Make_Inequality_Operator): Insert declaration in proper declarative
27700 list rather than just setting the Parent field, so that
27701 Is_Private_Declaration can handle it properly.
27702
277032005-03-15 Ed Schonberg <schonberg@adacore.com>
27704
27705 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
27706 a renaming a body, check that the renamed subprogram in not intrinsic.
27707 (Find_Direct_Name): If several use_visible entities hide
27708 each other, and the context is a predefined file compiled through
27709 rtsfind, keep only the entity that comes from a predefined file.
27710
277112005-03-15 Geert Bosch <bosch@adacore.com>
27712
27713 * s-fatgen.adb (Valid): Extend special exceptions to account for long
27714 long float padding to also cover AMD64 and IA64.
27715
277162005-03-15 Gary Dismukes <dismukes@adacore.com>
27717
27718 * s-imgwch.adb: Add with and use of Interfaces.
27719 (Img_Wide_Character): Change type of Val to Unsigned_16.
27720 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
27721
277222005-03-15 Matthew Gingell <gingell@adacore.com>
27723
27724 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
27725
277262005-03-15 Robert Dewar <dewar@adacore.com>
27727
27728 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
27729
27730 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
27731
27732 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
27733
277342005-03-15 Robert Dewar <dewar@adacore.com>
27735
27736 * s-bitops.adb, s-bitops.ads,
27737 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
27738 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
27739 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
27740 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
27741 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
27742 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
27743 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
27744 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
27745 reformatting.
27746
277472005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27748
27749 * utils2.c (build_binary_op): Fix typo.
27750
277512005-03-15 Doug Rupp <rupp@adacore.com>
27752
27753 * s-crtl.ads (popen,pclose): New imports.
27754
277552005-03-15 Cyrille Comar <comar@adacore.com>
27756
27757 * comperr.adb (Compiler_Abort): remove references to obsolete
27758 procedures in the bug boxes for various GNAT builds.
27759
277602005-03-15 Vincent Celier <celier@adacore.com>
27761
27762 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
27763
277642005-03-15 Geert Bosch <bosch@adacore.com>
27765 Arnaud Charlet <charlet@adacore.com>
27766 Robert Dewar <dewar@adacore.com>
27767 Cyrille Comar <comar@adacore.com>
27768 Sergey Rybin <rybin@adacore.com>
27769
27770 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
27771 too specific and long-winded to be appropriate for the GNAT User's
27772 Guide.
27773 Warn about use of GCC switches not documented in the GNAT User's Guide,
27774 as these may cause generated code to not conform to Ada semantics.
27775 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
27776 Add documentation for -gnat95 and -gnat05 switches
27777 Remove paragraph documenting obsolete way to refer to third party
27778 libraries.
27779 Add a few references to Ada_05 that were missing.
27780 Update documentation on -gnatZ/-gnatL.
27781 Document limitation when using -m64 under Solaris.
27782 Change the "Name Casing" subsection of the pretty-printer section
27783 according to the changes in the dictionary processing.
27784
27785 * gnat_rm.texi: Document the Ada_05 pragma.
27786 Section on record representation clauses describes the new more
27787 relaxed rules about placement of large packed bit array components.
27788 Add documentation of GNAT.UTF_32
27789
9e94c78f 277902005-03-12 Daniel Berlin <dberlin@dberlin.org>
c75ab022
DB
27791
27792 * misc.c (gnat_post_options): Turn off structural
27793 aliasing for now.
4f51c6e7 27794
9e94c78f 277952005-03-08 Laurent Guerby <laurent@guerby.net>
391bdf45
LG
27796
27797 * system-linux-sparc.ads: Fix typo in previous commit.
27798
9e94c78f
EB
277992005-03-07 James A. Morrison <phython@gcc.gnu.org>
27800 Laurent Guerby <laurent@guerby.net>
fe8a06f2 27801
a1286ef5
ZW
27802 PR ada/20035
27803 * system-linux-sparc.ads: New.
27804 * Makefile.in: Add sparc linux entry.
fe8a06f2 27805
a1286ef5 278062005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
9811fd17 27807
a1286ef5 27808 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
9811fd17
DS
27809 parameters as unused.
27810
5395b47b
NN
278112005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
27812 Partial merge from libada-gnattools-branch:
27813
27814 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5
ZW
27815 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
27816 into code in gnattools/Makefile.in. Remove direct dependencies on
27817 stamp-tools by tools clauses.
5395b47b 27818 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
a1286ef5 27819 * config-lang.in: Add gnattools to $lang_dirs.
5395b47b 27820
4fa0972f
AP
278212005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
27822
27823 PR ada/19942
2532808d 27824 * utils.c (gnat_type_for_mode): Return null instead of ICE because
a1286ef5 27825 we asked for an unknown mode.
4fa0972f 27826
bd0b34a8
RH
278272005-02-12 Richard Henderson <rth@redhat.com>
27828
27829 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
27830 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
27831
0ebbef54
AJ
278322005-02-10 Andreas Jaeger <aj@suse.de>
27833
27834 * init.c (__gnat_initialize): Mark parameter as unused.
27835
fc5a191d
AC
278362005-02-09 Doug Rupp <rupp@adacore.com>
27837
27838 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
27839 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
27840
278412005-02-09 Doug Rupp <rupp@adacore.com>
27842
27843 * gnatchop.adb (dup, dup2),
27844 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
27845
27846 * gnatlbr.adb (mkdir),
27847 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
27848
27849 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
27850
278512005-02-09 Doug Rupp <rupp@adacore.com>
27852
27853 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
27854
278552005-02-09 Robert Dewar <dewar@adacore.com>
27856 Thomas Quinot <quinot@adacore.com>
27857 Javier Miranda <miranda@adacore.com>
27858 Pascal Obry <obry@adacore.com>
27859 Ed Schonberg <schonberg@adacore.com>
27860 Doug Rupp <rupp@adacore.com>
27861 Gary Dismukes <dismukes@adacore.com>
27862 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27863
27864 * g-zstspl.ads: New file.
27865
27866 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
27867
27868 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
27869 Ada 95 mode
27870 Add definition of Wide_Wide_Space for AI-285
27871
27872 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
27873 interface (to support Ada 95 and Ada 2005 units).
27874 Add Unbounded_IO files
27875 Add entries for Wide_Wide packages for AI-285
27876 Add list of containers packages to Ada 2005 unit list
27877
27878 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
27879 support new Unbounded_IO package cleanly.
27880
27881 * g-utf_32.ads, g-utf_32.adb: New files.
27882
27883 * Makefile.rtl: Add entry for g-utf_32
27884 Add new files for Unbounded_IO
27885 Adjust make file for new AI-285 wide wide packages
27886 Add AI-302 containers to the run time.
27887
27888 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
27889 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
27890 subprograms for AI-301.
27891
27892 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
27893
27894 * a-stunau.ads: Minor comment correction
27895
27896 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
27897 etc.
27898 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
27899 (Check_RPC): Update to match changes in expanded code.
27900 Clean up unused entity.
27901
27902 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
27903 was not taken into account.
27904 This includes proper initialization with Normalize_Scalars.
27905 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
27906 normalize scalars cases (particularly the latter) to do a better job
27907 of finding invalid representations.
27908
27909 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
27910
27911 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
27912 used
27913
27914 * exp_dist.adb: Add support for wide wide character type
27915 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
27916 private part, generate stub bodies at the end of the private part,
27917 not the visible part.
27918 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
27919 PolyORB support.
27920 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
27921 generic wrapper to execute final processing after completing the
27922 expansion of the RPC receiver for an RACW.
27923
27924 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
27925 packages and attributes.
27926 (Preset_Names): Addition of the new reserved words of Ada 2005,
27927 that is interface, overriding and synchronized.
27928 (Get_Pragma_Id): Give support to the use of the new reserved word
27929 "interface" as a pragma name.
27930 (Is_Pragma_Name): Give support to the use of the new reserved word
27931 "interface" as a pragma name.
27932 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
27933 attribute implementation.
27934
27935 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
27936 checks to entities that are output parameters of Asm operations.
27937 Handle the Stream_Size attribute.
27938 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
27939
27940 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
27941
27942 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
27943 for second parameter being 0.0.
27944 Add support for wide wide character type.
27945 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
27946
27947 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
27948 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
27949 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
27950 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
27951 for wide wide character cases.
27952
27953 * cstand.adb: Create entities for Wide_Wide_Character and
27954 Wide_Wide_String.
27955
27956 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
27957 accordance with AI-258.
27958 Add new declarations for 16/32 bit C character types (Part of AI285)
27959
27960 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
27961 (Obsolescent_Warning): New field
27962 (Rep_Clause): New local subprogram used to share code. Returns the rep
27963 clause for which the name is given in parameter.
27964 (Has_Stream_Size_Clause): New routine.
27965 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
27966 (Address_Clause): Implementation is now using Rep_Clause.
27967 (Alignment_Clause): Idem.
27968 (Size_Clause): Idem.
27969
27970 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
27971 entity in non-Ada 2005 mode and generate warning.
27972
27973 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
27974 (Prag): Code cleanup. Remove old gnat pragma "overriding"
27975
27976 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
27977 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
27978 on the named unit if the pragma is not in the current compilation unit,
27979 so that elaboration calls in the current unit can set up an elaboration
27980 dependency on the named unit, as needed.
27981 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
27982 subprogram as well as for subprograms declared within a package.
27983 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
27984 pragma overriding.
27985
27986 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
27987 to z) to avoid some instances of duplication for Wide_Wide packages.
27988
27989 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
27990 characters.
27991
27992 * scn.adb: Char_Literal_Value field is now a Uint
27993
27994 * scng.adb: Significant rewrite to handle new Ada 2005 features
27995 allowing wide and wide wide characters in program text, e.g. for
27996 identifiers, as described in AI-285.
27997 (Set_Reserved): New procedure, makes setting up keywords cleaner.
27998 (Initialize_Scanner): Register the new reserved words of Ada 2005.
27999 (Scan): Give support to the new reserved words.
28000
28001 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28002 warning notifying that interface, overriding, and synchronized are
28003 new reserved words.
28004 (P_Pragma): Allow the use of the new reserved word "interface" as
28005 a pragma name.
28006
28007 * gnatls.adb, gnatbind.adb,
28008 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28009 identifiers named "interface" to "SAL_Interface".
28010
28011 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28012 (Structured Exception handling).
28013 (Gen_Main_C): Idem.
28014
a1286ef5 28015 * bindgen.adb:
fc5a191d
AC
28016 (Gen_Main_Ada): Set the default exit code if specified.
28017 (Gen_Main_C): Likewise.
28018 Part of *DC20-006.
28019 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28020 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28021
28022 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28023 new -Xnnn switch.
28024
28025 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28026 has a collision with the new Ada 2005 "interface" reserved word.
28027
28028 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28029 generate a warning notifying that interface, overriding, and
28030 synchronized are new reserved words.
28031
28032 * scans.ads (Token_Type): Addition of the tokens corresponding to the
28033 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28034 and Tok_Synchronized.
28035
28036 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28037 "dispatching" rather than "primitive" operations, since dispatching
28038 calls are now allowed to abstract formal subprograms (which are not
28039 primitive).
28040 Char_Literal_Value field is now a Uint
28041 (Resolve_Slice): If the prefix is an access to an unconstrained array,
28042 compute the actual subtype of the designated object to impose the proper
28043 index constraints.
28044 (Resolve_Selected_Component): Do not insert an access check if the
28045 prefix is an access type: such a node is expanded into an explicit
28046 dereference, on which the access check is performed anyway. Removes
28047 expensive duplicate checks.
28048 (Resolve_Call): Use new flag Is_Obsolescent and field
28049 Obsolescent_Warning so that pragma Obsolescent works on library
28050 subprograms.
28051 Add support for wide wide character type
28052 (Resolve_Allocator): Replace the error message on wrong null-exclusion
28053 value by a warning message.
28054 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28055 as fixed-point, and one of the operands is non-static and universal, it
28056 can only be an illegal exponentiation operation, in which case there is
28057 no real value to retrieve.
28058
28059 * exp_strm.adb: Add support for wide wide character type
28060 (Build_Elementary_Input_Call): Compute the size of the stream element by
28061 querying the rep chain to find the Stream_Attribute attribute value.
28062 (Build_Elementary_Write_Call): Ditto.
28063
28064 * sem_aggr.adb: Char_Literal_Value field is now a Uint
28065 Add support for wide wide character type
28066 Replace the error messages on wrong null-exclusion value by warnings
28067 as described in Ada 2005.
28068 (Resolve_Extension_Aggregate): Document the fact that the error
28069 message on class-wide expressions in extensions aggregates.
28070
28071 * sem_case.adb: Add support for wide wide character type
28072
28073 * sem_ch13.adb: Add support for wide wide character type
28074 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28075
28076 * sem_ch3.adb: Add support for wide wide character type
28077 (Process_Subtype): If constraint is illegal for the type, set Ekind of
28078 now-useless Itype, to prevent cascaded errors on a compiler built
28079 without -gnatp.
28080
28081 * sem_ch8.adb: Add with and use of Sem_Disp.
28082 (Analyze_Subprogram_Renaming): Replace unclean uses of
28083 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28084 of Corresponding_Spec to Empty).
28085 (Attribute_Renaming): Replace use of Corresponding_Spec with
28086 Corresponding_ Formal_Spec and simplify condition.
28087 (Use_One_Package): Check that scope of homonym of identifier is defined,
28088 before checking whether it is a wrapper package.
28089 Add support for wide wide character type
28090
28091 * sem_eval.adb: Add support for wide wide character type.
28092 (Eval_Arithmetic_Op): Check for compile time known signed integer
28093 overflow in the non-static case.
28094 (Subtypes_Statically_Match): A formal scalar type and its base type do
28095 not statically match.
28096
28097 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28098 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28099 subtype).
28100 (Unit_Declaration_Node): Ditto.
28101 (Is_Variable_Prefix): For the case of an indexed component whose prefix
28102 has a packed array type, the prefix has been rewritten into a type
28103 conversion. Determine variable-ness from the converted expression.
28104 Handle wide wide character cases.
28105
28106 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28107
28108 * stringt.ads, stringt.adb: Handle full UTF-32 range.
28109 Remove ["0A"] from comment, since it can look like a line terminator.
28110 Currently we don't permit this, but this is under discussion by the
28111 ARG, and it is easy enough to use a different example.
28112
28113 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28114 handling UTF-32 encoding for wide wide character.
28115 Implement new brackets coding ["hhhhhhhh"]
28116 Add UTF-8 encodings for full UTF-32 range
28117
28118 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28119
28120 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28121 bit range Add full UTF-32 support.
28122 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28123 notify that constraint error will be raised at run-time
28124 because a null value is assigned to a null-excluding object.
28125 Remove some obsolete declarations and make Char_Code
28126 unsigned.
28127
28128 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28129 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28130 Rcheck subprograms.
28131
28132 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28133 wrong null-exclusion value by a warning message.
28134 (Enable_Range_Check): Do range check if the prefix is an
28135 explicit dereference whose designated object is an unconstrained array.
28136 Current algorithm for removing duplicate checks is over-eager in this
28137 case.
28138
28139 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28140 null-exclusion value by a warning message
28141
28142 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28143 completely. Add support for Uint2 field
28144
28145 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28146 exp_prag.adb: Char_Literal_Value field is now a Uint.
28147
28148 * exp_util.adb (Insert_Actions): Replace
28149 N_Formal_Subprogram_Declaration by
28150 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28151 Char_Literal_Value field is now a Uint.
28152
28153 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28154 defined for subprogram renaming declarations. When set, the field
28155 indicates the defining entity of a corresponding formal subprogram
28156 when the renaming corresponds to a formal subprogram association in an
28157 instantiation.
28158 (Set_Corresponding_Formal_Spec): New procedure to return
28159 Corresponding_Formal_Spec field.
28160 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28161 (which is now a subtype).
28162 Char_Literal_Value field is now a Uint
28163
28164 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28165 pointer to the base of the dispatch table.
28166 Minor changes to comments.
28167 (Controlling_Type): New function for determining the tagged type
28168 associated with a tagged primitive subprogram.
28169 (Expand_Dispatching_Call): Add support for a controlling actual that is
28170 directly a value of type Ada.Tag rather than a tagged object.
28171
28172 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28173 describing the new layout.
28174 (Dispatch_Table): The expander computes the actual array size, allocates
28175 the Dispatch_Table record accordingly, and generates code that displaces
28176 the base of the record after the Typeinfo_Ptr component. The access to
28177 these components is done by means of local functions.
28178 (Offset_To_Top): New function.
28179 (Typeinfo_Ptr): New function.
28180 (Get_TSD): Modified to access the new position of the TSD.
28181 (Set_TSD): Modified to save the TSD in its new position.
28182
28183 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28184 case of formal abstract subprograms. Add check and message for -gnat05.
28185 Update comments.
28186
28187 * sem_ch12.adb: Add with and use for Sem_Disp.
28188 (Analyze_Associations): Minor change from "=" to "in" for use of
28189 N_Formal_Subtype_Declaration (which is now a subtype).
28190 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28191 N_Formal_Subtype_Declaration (which is now a subtype).
28192 (Analyze_Formal_Subprogram): Add handling for
28193 N_Formal_Abstract_Subprogram, marking the formal as abstract and
28194 dispatching, setting the controlling status of the formal parameters
28195 and result, and issuing an error if there is no controlling type for
28196 the formal subprogram.
28197 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28198 which is an unclean use of that field, we set the new field
28199 Corresponding_Formal_Spec to make the formal subprogram available to
28200 processing in Analyze_Subprogram_Declaration.
28201 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28202 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28203 Constrained, so that it is is does not statically match its anonymous
28204 base type.
28205
28206 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28207 abstract formal subprograms in error check for functions returning
28208 abstract types. Set scope of new designator for
28209 a parameterless subprogram, so that it is available when checking the
28210 body for nested subprograms, before full analysis of said body.
28211 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28212 subprogram only if inner one comes from source.
28213 (Analyze_Function_Call): If the call is given in object notation, the
28214 analysis of the name rewrites the node and analyzes it with the proper
28215 argument list. After analyzing the name, if the call has been rewritten
28216 and the result type is set, no further analysis is needed.
28217 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28218 mark in function specification, in a context where the formals are
28219 visible and hide outer homographs.
28220
28221 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28222 as the tagged type for the cases of abstract formal subprograms and
28223 renamings of those. Clean up spec comments.
28224 (Check_Dispatching_Context): Add error message to indicate "abstract
28225 procedure", covering the case of a call to a formal abstract procedure
28226 that has statically tagged operands.
28227 (Check_Dispatching_Call): Check for the case of an actual given by
28228 a tag-indeterminate function call whose type is an ancestor of the
28229 containing call's associated tagged type. This situation can occur
28230 for inherited primitives with function defaults. In this case we
28231 use the tagged type's tag directly as the controlling argument for
28232 the calls.
28233 (Expand_Call): Name change on call to Expand_Dispatch_Call.
28234
28235 * sprint.adb (Sprint_Node_Actual): Split
28236 N_Formal_Subprogram_Declaration into two alternatives for the new
28237 cases N_Formal_Abstract_Subprogram_Declaration and
28238 N_Formal_Concrete_Subprogram_Declaration.
28239 Char_Literal_Value field is now a Uint.
28240
28241 * trans.c: Get rid of junk Uint2 reference.
28242 Char_Literal_Value field is now a Uint.
28243 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28244 (gigi): Correct third arg to gimplify_body.
28245
28246 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28247 (TYPE_LANG_FLAG_0): Check for record or union.
28248
28249 * treepr.adb: Char_Literal_Value field is now a Uint
28250
28251 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28252 UI_From_CC.
28253
28254 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28255 Add full UTF-32 support
28256 Char_Code is now 32 bits
28257
28258 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28259 wide character UTF_32 line terminators.
28260 Initialize Main_Source_File to avoid error when no main
28261 source is loaded.
28262
28263 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28264 (Main_Source_File) when no main source has been loaded, to avoid
28265 potential crash.
28266
282672005-02-09 Robert Dewar <dewar@adacore.com>
28268
a1286ef5
ZW
28269 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28270 Fix name of Set routine
fc5a191d
AC
28271
28272 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28273 fixed packages.
28274
28275 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28276 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28277 fixed packages
28278
28279 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28280 forms of Get_Line subprograms for AI-301.
28281
28282 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28283 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28284 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28285 a-stwima.ads: Minor reformatting.
28286
282872005-02-09 Doug Rupp <rupp@adacore.com>
28288 Thomas Quinot <quinot@adacore.com>
28289
28290 * adaint.c, adaint.h
28291 [VMS] (to_ptr32): New function.
28292 (MAYBE_TO_PTR32): New macro.
28293 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28294 for pointer size.
28295 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28296 [VMS] (#define fork()): Remove since unneccessary.
28297 (__gnat_set_close_on_exec): New routine to support
28298 GNAT.OS_Lib.Set_Close_On_Exec.
28299
28300 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28301 the parent side as close-on-exec so that they are not inherited by the
28302 child.
28303
28304 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28305 set or clear the FD_CLOEXEC flag on a file descriptor.
28306
283072005-02-09 Eric Botcazou <ebotcazou@adacore.com>
28308 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28309
6f7f72f9 28310 PR ada/19386
a1286ef5 28311 * decl.c:
fc5a191d
AC
28312 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28313 on the field if Pragma Component_Alignment (Storage_Unit).
28314 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28315 side-effects as if it were a constant; also make SAVE_EXPR to protect
28316 side-effects.
28317 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28318 UNION_TYPE.
28319 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28320 (components_to_record): Test it.
28321 Fix improper usage of REFERENCE_CLASS_P.
28322
28323 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28324 RECORD_TYPE.
28325
28326 * utils2.c: Minor reformatting.
28327
28328 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28329 handle other cases like RECORD_TYPE.
28330
28331 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28332
283332005-02-09 Ed Schonberg <schonberg@adacore.com>
28334
28335 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28336 component of an array of arrays in an assignment context, and the
28337 aggregate has component associations that require sliding on
28338 assignment, force reanalysis of the aggregate to generate a temporary
28339 before the assignment.
28340 (Must_Slide): Make global to the package, for use in Gen_Assign.
28341
283422005-02-09 Ed Schonberg <schonberg@adacore.com>
28343
28344 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28345 unchecked union with no inferable discriminants, return a
28346 Raise_Program_Error node, rather than inserting it at the point the
28347 type is frozen.
28348 (Expand_Record_Equality, Component_Equality): Handle properly the case
28349 where some subcomponent is an unchecked union whose generated equality
28350 code raises program error.
28351
283522005-02-09 Doug Rupp <rupp@adacore.com>
28353
28354 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28355 [VMS] (#define exit hack): Remove.
28356
283572005-02-09 Pascal Obry <obry@adacore.com>
9e94c78f 28358 Arnaud Charlet <charlet@adacore.com>
fc5a191d
AC
28359
28360 * init.c (__gnat_initialize): Add a new parameter eh which contains the
28361 address of the exception registration. The Win32 version of this
28362 routine calls __gnat_install_SEH_handler() to initialize the SEH
28363 (Structured Exception Handling) handler.
28364 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28365 SEH (Structured Exception Handling) now.
28366 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28367 (__gnat_initialize for ppc-vxworks): Adjust comments and the
28368 preprocessor condition protecting the call to the extra eh setup
28369 subprogram, which is only available for the ppc target.
28370 (__gnat_clear_exception_count): replaced reference to
28371 variable taskIdCurrent by call to taskIdSelf(), cleaner.
28372
28373 * seh_init.c: New file.
28374
28375 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28376 (GNATBIND_OBJS): Idem.
28377
28378 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28379 routine takes a new parameter (a pointer to the exception registration
28380 for the SEH (Structured Exception Handling) support.
28381
28382 * raise.h: (__gnat_install_SEH_handler): New prototype.
28383 Update copyright notice.
28384
28385 * s-tassta.adb (Task_Wrapper): Declare the exception registration
28386 record and initialize it by calling __gnat_install_SEH_handler.
28387
283882005-02-09 Vincent Celier <celier@adacore.com>
28389
28390 * make.adb (Gnatmake): Do not fail when the main project has no object
28391 directory.
28392
283932005-02-09 Doug Rupp <rupp@adacore.com>
28394
28395 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28396 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28397 [VMS]: Add translations for g-enblsp.adb.
28398
28399 * s-asthan-vms.adb: Removed.
28400 * s-asthan-vms-alpha.adb: Added.
28401
284022005-02-09 Pascal Obry <obry@adacore.com>
28403
28404 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28405 (LIBGNAT_OBJS): Add seh_init.o.
28406
284072005-02-09 Arnaud Charlet <charlet@adacore.com>
28408
28409 PR ada/16592
fc5a191d
AC
28410 * Makefile.in: Link all gnat tools with -static-libgcc, since
28411 -shared-libgcc is now used by default on some systems (e.g. linux with
28412 recent binutils).
28413 Remove references to Makefile.prolog/generic, no longer used.
28414
284152005-02-09 Vincent Celier <celier@adacore.com>
28416
28417 * prj-makr.adb (Process_Directory): Put file name in canonical case
28418 before matching against the patterns.
28419 If gnatname has been invoked as <prefix>-gnatname
28420 then invoke the compiler as <prefix>-gcc, not just "gcc".
28421
284222005-02-09 Ed Schonberg <schonberg@adacore.com>
28423
28424 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28425 with expansion disabled. The actual subtype is needed among other
28426 places when the selected component appears in the context of a loop
28427 bound, and denotes a packed array.
28428 (Operator_Check): Always use the first subtype in the
28429 error message, to avoid the appearance of internal base types.
28430 (Transform_Object_Operation): Copy each actual in full
28431 to the parameter associations of the constructed call, rather than
28432 using the shallow copy mechanism of New_Copy_List. This ensures that
28433 the chaining of named associations is done properly.
28434 (Complete_Object_Operation): Rewrite node, rather than
28435 replacing it, so that we can trace back to the original selected
28436 component.
28437
28438 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28439 and calls that use object notation, if the called function is not
28440 declared in a withed unit, place the elaboration constraint on the
28441 unit in the context that makes the function accessible.
28442 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28443 imposes an elaboration constraint between two packages.
28444
284452005-02-09 Ed Schonberg <schonberg@adacore.com>
28446
28447 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28448 views of a private type after handling its private dependents, to
28449 maintain proper stack discipline between entry and exit from the
28450 package.
28451
284522005-02-09 Cyrille Comar <comar@adacore.com>
28453
28454 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28455 Minor reformatting.
28456
284572005-02-09 Arnaud Charlet <charlet@adacore.com>
28458
28459 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28460 fields for foreign threads.
28461
284622005-02-09 Doug Rupp <rupp@adacore.com>
28463
28464 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28465 recursion warnings when compiled with -gnatdm.
28466
284672005-02-09 Robert Dewar <dewar@adacore.com>
28468
28469 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28470 Slight fix to documentation of -gnaty with no parameters
28471
28472 * xr_tabls.ads: Add ??? comment for missing overall comment
28473
28474 * xsinfo.adb: Make default file name be sinfo.h, since this is what
28475 we now use by default.
28476
28477 * xsnames.adb: Adjust end of file test to look for five space followed
28478 by '#' instead of six spaces. The format of xsnames.adb was modified
28479 in the last update.
28480
28481 * a-numeri.ads: Add reference to AI-388 for greek letter pi
28482 identifier.
28483
28484 * clean.adb: Minor reformatting.
28485
28486 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28487 gnatname.adb: Minor reformatting
28488 Add 2005 to copyright output when utility is run
28489
28490 * csets.adb: Eliminate obsolete comment
28491
28492 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28493 Update comments.
28494
28495 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28496
284972005-02-09 Sergey Rybin <rybin@adacore.com>
28498
28499 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28500 the difference between compact and incompact layout and add the record
28501 representation clause to the example illustrating different layouts.
28502 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28503 component clauses").
28504
285052005-02-09 Florian Villoing <villoing@adacore.com>
28506
28507 * gnat_ugn.texi: Fix typos.
28508 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28509 @file.
28510 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28511 in the generated documentation.
28512
285132005-02-09 Arnaud Charlet <charlet@adacore.com>
28514
28515 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28516 longer supported.
28517 Update linker wrapper when linking with non GNU C++.
28518
285192005-02-09 Pascal Obry <obry@adacore.com>
28520
a1286ef5 28521 * gnat_ugn.texi:
fc5a191d
AC
28522 Document the procedure to debug the DllMain routine on Windows.
28523 Add note about -funwind-tables and mixed Ada and C/C++ programming in
28524 ZCX mode.
28525 Document new BIND qualifer /RETURN_CODES=VMS.
28526
285272005-02-09 Ben Brosgol <brosgol@adacore.com>
28528
28529 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28530 Edited gnatmetric chapter
28531
285322005-02-09 Robert Dewar <dewar@adacore.com>
28533
a1286ef5 28534 * gnat_rm.texi:
fc5a191d
AC
28535 Changes to document new wide wide character support
28536 For AI-285
28537 Update documentation on Normalize_Scalars and Initialize_Scalars
28538
285392005-02-09 Pascal Obry <obry@adacore.com>
28540
28541 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28542
285432005-02-09 Jose Ruiz <ruiz@adacore.com>
28544
28545 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28546 from the VxWorks kernel) that is needed for getting the active
28547 priority of the different tasks.
28548
28549 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28550 Use a pragma Elaborate_Body in the spec file instead.
28551 Noticed by code reading.
28552
285532005-02-09 Thomas Quinot <quinot@adacore.com>
28554
28555 * exp_util.ads: Minor correction in comment.
28556
285572005-02-09 Arnaud Charlet <charlet@adacore.com>
28558
28559 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28560 since this procedure is now too complex to be worth inlining.
28561
c6a912da
RH
285622005-02-09 Richard Henderson <rth@redhat.com>
28563
28564 * utils.c (gnat_define_builtin): Remove.
28565 (gnat_install_builtins): Use build_common_builtin_nodes.
28566
4c2d6a70
AC
285672005-02-09 Arnaud Charlet <charlet@adacore.com>
28568
28569 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
28570 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
28571 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
28572 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
28573 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
28574 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
28575 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
28576 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
28577 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
28578 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
28579 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
28580 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
28581 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
28582 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
28583 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
28584 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
28585 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
28586 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
28587 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
28588 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
28589 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
28590 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
28591 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
28592 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
28593 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
28594 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
28595 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
28596 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
28597 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
28598 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
28599 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
28600 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
28601 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
28602 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
28603 library.
28604
9e94c78f 286052005-01-27 Laurent Guerby <laurent@guerby.net>
74a22497
LG
28606
28607 * Makefile.in: Fix a-intnam.ads from previous commit,
28608 add 2005 to copyright.
28609 * a-intman-rtems.ads: Renamed to...
28610 * a-intnam-rtems.ads:
28611
9e94c78f 286122005-01-27 Laurent Guerby <laurent@guerby.net>
7d921ba4
LG
28613
28614 * Makefile.in: Rename GNAT RTEMS specific files.
a1286ef5 28615 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
da8f5fd9 28616 5rosinte.ads, 5rparame.adb: Replaced by files below.
7d921ba4
LG
28617 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
28618 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
28619
9e94c78f
EB
286202005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
28621 Laurent Guerby <laurent@guerby.net>
9011d4bb
JS
28622
28623 PR ada/19488
28624 * 5rosinte.ads: Add No_Key constant.
a1286ef5
ZW
28625 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
28626 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
9011d4bb 28627
9e94c78f 286282005-01-26 Laurent Guerby <laurent@guerby.net>
d487e3c1
LG
28629
28630 PR ada/19414
28631 * i-cobol.adb (Valid_Numeric): Handle zero length case.
a1286ef5 28632
3f38e738
RH
286332005-01-20 Richard Henderson <rth@redhat.com>
28634
28635 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
28636 a-intnam-linux.ads and system-linux-alpha.ads.
28637 * a-intnam-linux-alpha.ads: Remove file.
28638 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
28639 * system-linux-alpha.ads: New file.
28640
4d960a7e
JJ
286412005-01-18 Jakub Jelinek <jakub@redhat.com>
28642
28643 PR ada/13470
28644 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
28645 set to the new string.
28646
b4c6a3a2
TM
286472005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
28648
28649 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
28650 to True.
28651
8d5e1df2
RH
286522005-01-18 Richard Henderson <rth@redhat.com>
28653
28654 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
28655 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
28656 for alpha-linux.
28657 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
28658
03eef11c
AP
286592005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
28660
28661 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
28662 (GCC_ZCX_Support): Likewise.
28663
bc7566ca
BB
286642005-01-11 Bastian Blank <waldi@debian.org>
28665
28666 * system-linux-s390.ads: Define Preallocated_Stacks.
28667 * system-linux-s390x.ads: Likewise.
28668
e550819c
AC
286692005-01-04 Arnaud Charlet <charlet@adacore.com>
28670
28671 * gnat_ugn.texi: Fix texi errors with null variables.
28672
376a74d4
AC
286732005-01-03 Thomas Quinot <quinot@adacore.com>
28674
28675 * gen-soccon.c: New utility program to generate g-soccon.ads
28676 automatically.
28677
28678 * socket.c, gsocket.h: Split inclusion of system header files into a
28679 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
28680
28681 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
28682 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28683 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
28684 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
28685 should not be edited by hand anymore, but should be regenerated using
28686 gen-soccon.
28687
286882005-01-03 Robert Dewar <dewar@adacore.com>
28689 Ed Schonberg <schonberg@adacore.com>
28690 Vincent Celier <celier@adacore.com>
28691
28692 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
28693 on/off, since this is an obsolescent feature, for which we now generate
28694 a warning.
28695
28696 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
28697 warning mode is set and obsolescent usage of this attribute occurs.
28698 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
28699 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
28700 predates, and partly motivates, the adoption of the AI.
28701 Implement new Ada 2005 attribute Mod
28702
28703 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
28704 attribute Mod.
28705
28706 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
28707
28708 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
28709 pragma restrictions.
28710 New entry for Ada 2005 attribute Mod.
28711
a1286ef5 28712 * par-prag.adb:
376a74d4
AC
28713 Add recognition of new pragma Restrictions No_Dependence
28714 Recognize restriction No_Obsolescent_Features at parse time
28715
28716 * bcheck.adb: Add circuitry for checking for consistency of
28717 No_Dependence restrictions.
28718
28719 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
28720 restrictions.
28721
28722 * restrict.ads, restrict.adb: Add subprograms to deal with
28723 No_Dependence restrictions.
28724
28725 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
28726 restrictions.
28727
28728 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
28729 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
28730
28731 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
28732 dummy parameter to scng instantiation.
28733 Needed for new restriction No_Obsolescent_Features
28734
28735 * scn.adb: (Obsolescent_Check): New procedure
28736 Needed for new restriction No_Obsolescent_Features
28737
28738 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
28739 specified by AI-285, needed for implementation of AI-388 (adding greek
28740 pi to Ada.Numerics).
28741 Add new generic formal to scng, needed for new restriction
28742 No_Obsolescent_Features.
28743
28744 * s-rident.ads: Add new restriction No_Obsolescent_Features.
28745
28746 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
28747 restrictions lines.
28748 (Scan_ALI): When finding an unexpected character on an R line, raise
28749 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
28750 Ignore_Errors is True, default restrictions are set and scanning of the
28751 ALI file continues with the next line. Also, when Bad_R_Line is raised
28752 and Ignore_Errors is True, skip to the end of le line.
28753
28754 * sem_ch10.adb: Check that explicit with's do not violate
28755 No_Dependence restrictions.
28756 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
28757 illegal context clauses containing child units of instance.
28758
28759 * sem_prag.adb: Processing and checking for new No_Dependence
28760 restrictions.
28761 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
28762 analyze and check the External argument.
28763
28764 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
28765
287662005-01-03 Robert Dewar <dewar@adacore.com>
28767
28768 * atree.adb: Add a fifth component to entities
28769 This allows us to add 32 flags and four new fields
28770
28771 * atree.ads: Add a fifth component to entities
28772 This allows us to add 32 flags and four new fields
28773
28774 * einfo.ads, einfo.adb: Document new fields and new flags now available
28775 Add routines for printing new fields
28776
28777 * treepr.adb: Call routines to print out additional fields if present
28778
287792005-01-03 Arnaud Charlet <charlet@adacore.com>
28780
28781 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
28782 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
28783
28784 * Makefile.in: Add support to build shared Ada libraries on solaris x86
28785 Remove gpr2make, replaced by gprmake.
28786 Remove references to gnatmem and libaddr2line.
28787 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
28788 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
28789 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
28790 a-numaux-darwin.ads and a-numaux-darwin.adb
28791 Enable mlib-tgt-lynxos.adb on lynxos.
28792
28793 * Make-lang.in: Remove rules for gpr2make.
28794 When generating sdefault.adb, do not call Relocate_Path
28795 on S3 for function Target_Name, as it is not a path.
28796 Remove references to gnatmem and libaddr2line.
28797
28798 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
28799 files.
28800
288012005-01-03 Samuel Tardieu <tardieu@adacore.com>
28802
28803 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
28804 address is incompatible with its base type alignment constraints when
28805 this can be decided statically.
28806
288072005-01-03 Olivier Hainque <hainque@adacore.com>
28808
28809 * decl.c (compatible_signatures_p): New function. The intended purpose
28810 is to check if two function signatures for a call-site and a callee are
28811 compatible enough for the call to be valid. The underlying purpose is
28812 to check if a call to a mapped builtin is using the right interface.
28813 The current code actually does not check antyhing - this a placeholder
28814 for future refinements.
28815 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
28816 builtin calls for convention Intrinsic.
28817
28818 * gigi.h (builtin_decl_for): Declare (new function).
28819
28820 * utils.c (gnat_install_builtins): Install the target specific builtins.
28821 (builtin_decl_for): New function, provide a dummy body for now.
28822
288232005-01-03 Geert Bosch <bosch@adacore.com>
28824
28825 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
28826 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
28827 (Pred): Implement in terms of Succ.
a1286ef5 28828
376a74d4
AC
28829 * trans.c (convert_with_check): Reimplement conversion of float to
28830 integer.
28831
288322005-01-03 Ed Schonberg <schonberg@adacore.com>
28833 Vincent Celier <celier@adacore.com>
28834
28835 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
28836 bounds can be negative, and must be declared Int, not Nat.
28837
28838 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
28839 array is checked after using the index in the array.
28840
28841 * makegpr.adb (Add_Switches): Check if there is a package for the
28842 processor. If there is no package, do not look for switches.
28843
288442005-01-03 Ed Schonberg <schonberg@adacore.com>
28845
28846 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
28847 generation of predefined stream operations (specs and bodies) should
28848 proceed. Under various restrictions these subprograms must not be
28849 generated.
28850
288512005-01-03 Thomas Quinot <quinot@adacore.com>
28852
a1286ef5 28853 * exp_dist.adb:
376a74d4
AC
28854 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
28855 amount of PCS-specific code in RACW stubs generation.
28856 (Copy_Specification): Set Etype on copied formal parameter entities, as
28857 this information is needed for PolyORB stubs generation.
28858 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
28859 variable Dynamic_Async.
28860 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
28861 (Build_RPC_Receiver_Specification): Make generic again, as recent
28862 changes have allowed RPC receivers to have the same profile for both
28863 variants of the PCS.
28864 Reorganise RPC receiver generation to reduce differences between the
28865 structure of GARLIC and PolyORB RPC receivers.
28866 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
28867 PCS-specific.
28868 Simplify elaboration code for RCI packages.
28869
28870 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
28871 generation to reduce differences between the structure of GARLIC and
28872 PolyORB RPC receivers.
28873
28874 * s-stratt.adb: Fix typo in comment.
28875
288762005-01-03 Thomas Quinot <quinot@adacore.com>
28877
28878 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
28879 copied from Make_Init_Call).
28880
28881 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
28882 reads and assignments on a temporary variable declared with appropriate
28883 discriminants.
28884
288852005-01-03 Robert Dewar <dewar@adacore.com>
28886
28887 * i-c.adb (To_C): Raise CE if string is null and Append_Null
28888
288892005-01-03 Robert Dewar <dewar@adacore.com>
28890
28891 * i-cstrin.adb (Update): Do not append a null in form called with a
28892 String. This avoids unintended behavior.
28893
288942005-01-03 Arnaud Charlet <charlet@adacore.com>
28895
28896 PR ada/17527
28897 * init.c: Fix warnings on Free BSD section.
28898
288992005-01-03 Arnaud Charlet <charlet@adacore.com>
28900
28901 PR ada/16949
28902 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
28903 xsinfo.adb).
28904
289052005-01-03 Vincent Celier <celier@adacore.com>
28906
28907 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
28908 libraries when Unique_Compile is True (-u switch).
28909 (Gnatmake): ditto.
28910
289112005-01-03 Robert Dewar <dewar@adacore.com>
28912
28913 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
28914 upper case letter or underscore after W, as allowed by spec.
28915
289162005-01-03 Arnaud Charlet <charlet@adacore.com>
28917
28918 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
28919 darwin port by using proper type definitions from header files.
28920 Use SIGTERM instead of SIGABRT for SIGADAABORT.
28921
289222005-01-03 Robert Dewar <dewar@adacore.com>
28923
28924 * par.adb: Enhance error message handling for configuration file
28925 pragmas.
28926
289272005-01-03 Robert Dewar <dewar@adacore.com>
28928
28929 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
28930 removed during the previous update (test properly for case of dividing
28931 largest negative number by -1, which generates overflow).
28932
289332005-01-03 Ed Schonberg <schonberg@adacore.com>
28934 Sergey Rybin <rybin@adacore.com>
28935
28936 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
28937 to use as the defining identifier for a formal package.
28938 (Remove_Parent): If the instance takes place within (an instance of)
28939 a sibling, preserve private declarations of common parent.
28940
289412005-01-03 Ed Schonberg <schonberg@adacore.com>
28942
28943 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
28944 to determine whether one of the operands is a fixed-point type for
28945 which a user-defined multiplication or division operation might be
28946 defined.
28947
28948 * sem_res.adb (Valid_Conversion): The legality rules for conversions
28949 of access types are symmetric in Ada 2005: either designated type can
28950 be unconstrained.
28951
289522005-01-03 Vincent Celier <celier@adacore.com>
28953
28954 * s-fileio.adb (Temp_File_Record): Change length of string component
28955 Name from L_tmpnam + 1 to max_path_len + 1.
28956
289572005-01-03 Arnaud Charlet <charlet@adacore.com>
28958
28959 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
28960 Self_Id.Deferral_Level = 0.
28961 (Do_Pending_Action): Move this function to the spec.
28962
28963 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
28964 Do_Pending_Action explicitely when needed, in case we're using
28965 No_Abort restrictions.
28966
28967 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
28968 deferral level since it will not get changed by the generated code.
28969 Keeping a default value of 1 would prevent some operations (e.g.
28970 select or delay) to proceed successfully.
28971
289722005-01-03 Ben Brosgol <brosgol@adacore.com>
28973 Robert Dewar <dewar@adacore.com>
28974 Cyrille Comar <comar@adacore.com>
28975
28976 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
28977 porting guide chapter (vms version).
28978 Revised doc title (removed "for native platforms") and subtitle.
28979 Add discussion on warning flag for obsolescent features. First we
28980 note that it applies to obsolete GNAT features, which was previously
28981 omitted. Second we contrast the behavior with that of the new
28982 Ada 2005 AI-368 restriction No_Obsolescent_Features.
28983 Preliminary rewriting of GNAT & libraries chapter in order to take
28984 into account default project locations & new project manager
28985 capabilities.
28986
289872005-01-03 Robert Dewar <dewar@adacore.com>
28988
28989 * cstand.adb (Create_Operators): Clean up format and documentation of
28990 unary and binary operator result tables. No change in code, just
28991 reformatting and addition of comments.
28992
28993 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
28994 sem_ch2.adb: Minor reformatting
28995
28996 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
28997 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
28998 comments for Tree_Read and Tree_Write.
28999
290002005-01-03 Pascal Obry <obry@adacore.com>
29001
29002 * exp_attr.ads: Minor reformatting.
29003
290042005-01-03 Romain Berrendonner <berrendo@adacore.com>
29005
29006 * comperr.adb (Compiler_Abort): Add specialized message for GAP
29007 versions.
29008
290092005-01-03 Ed Schonberg <schonberg@adacore.com>
29010
29011 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29012 whether the ancestor type is private, as may be the case with nested
29013 instantiations.
29014
9e94c78f 290152004-12-30 Sohail Somani <sohail@sohailsomani.com>
15cd18b9
SS
29016
29017 PR ada/19128
29018 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29019
2614034e 290202004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
15cd18b9 29021
2614034e
EB
29022 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29023 * utils2.c (build_unary_op): Likewise.
29024
ad50bc8d
RH
290252004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29026
29027 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29028
ed9c846c
RH
290292004-12-19 Richard Henderson <rth@redhat.com>
29030
29031 * trans.c (gigi): Update gimplify_body call.
29032
08f2586c
NS
290332004-12-09 Nathan Sidwell <nathan@codesourcery.com>
29034
29035 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29036
180684eb
AC
290372004-12-07 Ed Falis <falis@adacore.com>
29038
29039 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29040 current task being suspended.
29041
29042 * init.c (__gnat_clear_exception): added to reset VxWorks exception
29043 count.
29044 (__gnat_map_signal): removed test for current task being suspended.
29045
290462004-12-07 Gary Dismukes <dismukes@adacore.com>
29047
29048 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29049 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29050 targets (such as AAMP).
29051
290522004-12-07 Ed Schonberg <schonberg@adacore.com>
29053
29054 * atree.adb (Visit_Itype): Create a new name for the generated itype,
29055 because the back-end may otherwise treat it as a redefinition of the
29056 old symbol.
29057
290582004-12-07 Eric Botcazou <ebotcazou@adacore.com>
29059
29060 * back_end.adb (Scan_Back_End_Switches): Accept --param.
29061
29062 * lang-specs.h: Accept --param.
29063
290642004-12-07 Vincent Celier <celier@adacore.com>
29065
29066 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29067 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29068 Current_Body_Suffix => Ada_Body_Suffix).
29069 Take into account Externally_Built attribute.
29070
29071 * clean.adb (In_Extension_Chain): Always return False when one of the
29072 parameter is No_Project.
29073 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29074 Ada_Language_Index).
29075 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29076 Process_Languages for procedure Parse).
29077
29078 * gnatcmd.adb (Carg_Switches): New table.
29079 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29080 Adapt to name changes in package Prj (Current_Spec_Suffix =>
29081 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29082
29083 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29084 Header_Num and function Hash are now declared in package Prj,
29085 not Prj.Com.
29086
29087 * prj.adb (Suffix_Of): New function.
29088 (Set (Suffix)): New procedure.
29089 (Hash): One function moved from Prj.Com
29090 (Is_Present, Language_Processing_Data_Of): New functions
29091 (Set): Two new procedures
29092 (Add_Language_Name, Display_Language_Name): New procedures
29093
29094 * prj.ads: (Suffix_Of): New function
29095 (Set (Suffix)): New procedure
29096 Add several types and tables for multi-language support.
29097 (Header_Num): Type moved from Prj.Com
29098 (Hash): Two functions moved from Prj.Com
29099 (Is_Present, Language_Processing_Data_Of): New functions
29100 (Set): Two new procedures
29101 (Add_Language_Name, Display_Language_Name): New procedures
29102 (Naming): Component name changes:
29103 Current_Spec_Suffix => Ada_Spec_Suffix,
29104 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29105 Impl_Suffixes, Supp_Suffixes.
29106 (Project_Data): New components: Externally_Built, Supp_Languages,
29107 First_Language_Processing, Supp_Language_Processing, Default_Linker,
29108 Default_Linker_Path.
29109
29110 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29111 new package Language_Processing with its attributes (Compiler_Driver,
29112 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29113 Binder_Driver, Default_Linker).
29114
29115 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29116 (Header_Num): Type moved to package Prj
29117
29118 * prj-env.adb: Adapt to name changes in package Prj
29119 (Current_Spec_Suffix => Ada_Spec_Suffix,
29120 Current_Body_Suffix => Ada_Body_Suffix).
29121
29122 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29123 default to the project path, except the "-" is one of the directories
29124 in env var ADA_PROJECT_PATH.
29125 (Current_Project_Path): Global variable, replacing Project_Path
29126 that was in the body of Prj.Part.
29127 (Project_Path): New function
29128 (Set_Project_Path): New procedure
29129 Initialize Current_Project_Path during elaboration of the package
29130 Remove dependency on Prj.Com, no longer needed
29131
29132 * prj-ext.ads (Project_Path): New function
29133 (Set_Project_Path): New procedure
29134
29135 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29136 suffix is defined for language <lang>.
29137 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29138 accessing directly the components of Naming.
29139 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29140 Reorganise of this package.
29141 Break procedure Check in several procedures.
29142
29143 * prj-nmsc.ads: Replace all procedures (Ada_Check,
29144 Other_Languages_Check and Language_Independent_Check) with a single
29145 procedure Check.
29146
29147 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29148 Process_Languages, no longer needed.
29149
29150 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29151 Current_Project_Path.
29152 Remove elaboration code, moved to the body of Prj.Ext
29153 Use new function Prj.Ext.Project_Path instead of old variable
29154 Project_Path.
29155 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29156 When comparing with project paths on the stack, first put the resolved
29157 path in canonical case.
29158 (Parse_Single_Project): Set the path name of the project file in the
29159 tree to the normalized path.
29160
29161 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29162 parameter Process_Languages, no longer needed.
29163 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29164 Other_Languages_Check.
29165
29166 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29167 to store the resolved canonical path of the project file.
29168 Remove dependency to Prj.Com, no longer needed
29169
29170 * prj-util.adb: Adapt to name changes in package Prj
29171 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29172 Ada_Body_Suffix).
29173
29174 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29175 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29176 Externally_Built, Include_Option, Language_Processing.
29177
29178 * makegpr.adb: Numerous changes due to changes in packages
29179 Prj and Prj.Nmsc.
29180
29181 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29182 default to the project path, except whe "-" is one of the directories
29183 in env var ADA_PROJECT_PATH.
29184 (Gnatls): In verbose mode, add the new section "Project Search Path:"
29185
291862004-12-07 Robert Dewar <dewar@adacore.com>
29187
29188 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29189
29190 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29191 set -gnatR3m mode.
29192
29193 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29194 flag. No longer needed now that we handle this in gnat1drv.adb.
29195
29196 * repinfo.ads: Minor reformatting
29197
291982004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29199 Olivier Hainque <hainque@adacore.com>
29200 Eric Botcazou <ebotcazou@adacore.com>
29201
29202 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29203 TYPE_SIZE_UNIT of result type if SIZE is not specified.
29204 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29205 of a bitfield, which we know is useless and causes trouble because of
29206 alignment implications.
29207
29208 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29209 BSS sections.
29210 (process_attributes): Clear DECL_COMMON again when a section attribute
29211 is present.
29212 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29213 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29214 (create_field_decl): Special case ADDRESSABLE negative to mean
29215 "no bitfield creation", to be used by make_aligning_type. Don't
29216 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29217 fields claimed addressable still have to be bitfields. Use
29218 value_factor_p instead of a raw binop construction to check for the
29219 position's alignment.
29220
292212004-12-07 Geert Bosch <bosch@adacore.com>
29222
29223 * eval_fat.adb: Revert previous change.
29224
292252004-12-07 Thomas Quinot <quinot@adacore.com>
29226 Ed Schonberg <schonberg@adacore.com>
29227
29228 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29229 with an implicit dereference as its prefix, use
29230 Insert_Explicit_Dereference instead of merely rewriting the prefix into
29231 an explicit dereference. This ensures that a reference to the original
29232 prefix is generated, if appropriate.
29233
29234 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29235 dereference is rewritten to an explicit one, generate a reference to
29236 the entity denoted by its prefix using the original prefix node, so
29237 the dereference can be properly recorded as a read of the denoted
29238 access value, if appropriate.
29239
29240 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29241 emitting 'assigned but never read' warning on a variable on the basis
29242 that it has an access type.
29243 (Check_References): Emit unreferenced warning when the scope is a
29244 subprogram body.
29245
292462004-12-07 Robert Dewar <dewar@adacore.com>
29247 Ed Schonberg <schonberg@adacore.com>
29248
29249 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29250 intrinsic
29251
29252 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29253 leaving call unchanged.
29254 This deals with the case where the pragma Import specified
29255 an external name, to be handled by the back end.
29256
29257 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29258 subprogram which is Imported with convention Intrinsic if an
29259 External_Name argument is specified.
29260 (Process_Import_Or_Interface): Properly diagnose link name argument.
29261 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29262 with Sem_Ch6.Cannot_Inline.
29263 (Process_Inline): Provide separate warning for inapplicable inline
29264 pragma.
29265 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29266 treatment is uniform on different targets.
29267
292682004-12-07 Ed Schonberg <schonberg@adacore.com>
29269
29270 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29271 construct is rewritten, preserve end label to permit source navigation.
29272
292732004-12-07 Thomas Quinot <quinot@adacore.com>
29274
29275 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29276 Specific_Build_Stub_Target): New subprograms.
29277 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29278 the PCS implementation used, using the above PCS-customized subprograms.
29279 Minor reformatting.
29280 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29281 for generation of DSA code targeted to the PolyORB PCS.
29282 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29283 implementation of the partition communication subsystem in ancillary
29284 subprograms.
29285 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29286 PolyORB_Support.Build_Stub_Type): New subrograms containing the
29287 PCS-specific part of Add_Stub_Type.
29288 (Insert_Partition_Check): Use runtime library function to perform
29289 E.4(19) check.
29290
a1286ef5
ZW
29291 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29292 (RE_Same_Partition): New entity, from s-parint.
180684eb 29293
a1286ef5 29294 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
180684eb
AC
29295
292962004-12-07 Gary Dismukes <dismukes@adacore.com>
29297
29298 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29299 Output the copyright message on a separate line from the version
29300 message.
29301
293022004-12-07 Joel Brobecker <brobecker@adacore.com>
29303
29304 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29305 compile-time warning.
29306
293072004-12-07 Robert Dewar <dewar@adacore.com>
29308
29309 * g-regpat.adb: (Match): Change a misuse of or to or else
29310
293112004-12-07 Ed Schonberg <schonberg@adacore.com>
29312
15cd18b9 29313 * lib-xref.adb:
180684eb
AC
29314 (Generate_Reference): Handle properly a reference to an entry formal,
29315 when an accept statement has a pragma Unreferenced for it.
29316
29317 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29318 and the Has_Pragma_Unreferenced flag for each formal before analyzing
29319 the body, to ensure that warnings are properly emitted for each accept
29320 statement of a given task entry.
29321
293222004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
29323
29324 * Makefile.in: Add support for foreign threads on VMS.
29325
293262004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29327
29328 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29329 Remove.
29330 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29331
29332 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29333
29334 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29335 exception.
29336 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29337
293382004-12-07 Robert Dewar <dewar@adacore.com>
29339
29340 * nlists.adb (Prepend_Debug): Remove parameters and nest within
29341 Prepend.
29342 (Remove_Next_Debug): Same fix
29343
29344 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29345 maintain back pointers now, though we did not used to, and comments
29346 were out of date).
29347 (Prepend): Remove pragma Inline.
29348 (Remove_Next): Same cleanup
29349
293502004-12-07 Thomas Quinot <quinot@adacore.com>
29351
29352 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29353 used to record an implicit dereference as a read operation on its
29354 prefix when operating under -gnatc. Necessary to avoid spurious
29355 'variable assigned but never read' warnings in that mode.
29356 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29357 is a non-overloaded implicit dereference, call the above subprogram to
29358 ensure proper recording of references.
29359
293602004-12-07 Gary Dismukes <dismukes@adacore.com>
29361
29362 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29363 to be resolved later as part of Analyze_Iteration_Scheme's call to
29364 Make_Index.
29365
293662004-12-07 Ed Schonberg <schonberg@adacore.com>
29367
29368 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29369 prefix is not a scalar type, place error message on prefix, not on
29370 type entity.
29371
293722004-12-07 Bernard Banner <banner@adacore.com>
29373
29374 * vxaddr2line.adb: Add support for x86 vxworks
29375
293762004-12-07 Thomas Quinot <quinot@adacore.com>
29377
29378 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29379 documentation of the behaviour of these functions when passed an IP
29380 address that has no record in the system hosts database and no reverse
29381 record in the DNS.
29382
29383 * cstand.adb, a-tags.ads: Fix typos in comment.
29384
293852004-12-07 Robert Dewar <dewar@adacore.com>
29386
29387 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29388 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29389 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29390 s-poosiz.ads: Minor reformatting
29391
29392 * make.adb: Minor reformatting
29393 Add some ??? comments asking for more comments
29394
29395 * s-poosiz.adb: Minor reformatting
29396 Add comments on alignment requirement
29397
29398 * sinfo.ads: Remove obsolete comment and fix typo.
29399
294002004-12-07 Vincent Celier <celier@adacore.com>
29401 Sergey Rybin <rybin@adacore.com>
29402
29403 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29404 Files" with the new tool and package names.
29405 Reformatting to suppress most of the warnings for line too long
29406 Document the new section "Project Search Path:" in the output of
29407 gnatls -v.
29408 Add gnatmetric section
29409
294102004-12-07 Vincent Celier <celier@adacore.com>
29411
29412 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29413 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29414 and -eit to -ept. Added qualifier
29415 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29416
ed986c8e
AS
294172004-11-27 Andreas Schwab <schwab@suse.de>
29418
29419 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29420
3c13948a
AC
294212004-11-25 Arnaud Charlet <charlet@adacore.com>
29422
29423 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29424 internal implementation unit GNAT.Sockets.Thin,
29425 as their usage for sockets is non-portable (using the read and write
29426 functions from the system runtime library is fine on UNIX but won't
29427 work under Windows).
29428
29429 * mingw32.h: Update copyright notice.
29430
061fd2bf
AC
294312004-11-25 Arnaud Charlet <charlet@adacore.com>
29432
29433 * ada-tree.h: Minor reformatting of previous change to avoid lines
29434 longer than 79 characters.
29435
e850e1f4
OH
294362004-11-25 Olivier Hainque <hainque@adacore.com>
29437
29438 * tb-gcc.c: GCC infrastructure based implementation of
29439 __gnat_backtrace.
29440
39afeb1a
SB
294412004-11-24 Steven Bosscher <stevenb@suse.de>
29442
29443 * misc.c (gnat_post_options): Don't clear
29444 flag_inline_functions.
29445
9633a6ac
AP
294462004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
29447
29448 PR ada/17986
29449 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29450 tree.
29451
7fe16580
AJ
294522004-11-21 Andreas Jaeger <aj@suse.de>
29453
29454 * stylesw.adb: Change Style_Check_Subprogram_Order to
29455 Style_Check_Order_Subprograms.
29456
9716416b
AC
294572004-11-18 Arnaud Charlet <charlet@adacore.com>
29458
29459 * adaint.h, adaint.c
29460 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29461 to avoid warnings.
29462 Add also a cast to kill another warning.
29463 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29464 parameter with the priority class of the parent process instead of
29465 always using the NORMAL_PRIORITY_CLASS.
29466 (__gnat_dup): New function.
29467 (__gnat_dup2): New function.
29468 (__gnat_is_symbolic_link): Enable the effective body of this
29469 function when __APPLE__ is defined.
29470
29471 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29472 Update comments.
29473
294742004-11-18 Olivier Hainque <hainque@adacore.com>
29475
29476 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29477 address of which may be used to represent "others" and "all others"
29478 choices in exception tables, instead of the current harcoded
29479 (void *)0 and (void *)1.
29480 (Setup_Exception): Do nothing in the GNAT SJLJ case.
29481
29482 * gigi.h (others_decl, all_others_decl): New decls representing the
29483 new Others_Value and All_Others_Value objects.
29484 (struct attrib): Rename "arg" component as "args", since GCC expects a
29485 list of arguments in there.
29486
29487 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29488 corresponding objects exported by a-exexpr, instead of hardcoded dummy
29489 addresses.
29490
29491 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29492 others_decl and all_others_decl instead of hardcoded dummy addresses
29493 to represent "others" and "all others" choices, which is cleaner and
29494 more flexible with respect to the possible eh pointer encoding policies.
29495
29496 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29497 (process_attributes): Account for the naming change of the "args"
29498 attribute list entry component.
29499
29500 * decl.c (build_attr_list): Rename into prepend_attributes to allow
29501 cumulating attributes for different entities into a single list.
29502 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29503 attributes for the current entity and propagate first subtype
29504 attributes to other subtypes.
29505 <E_Procedure>: Attribute arguments are attr->args and not
29506 attr->arg any more.
29507 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29508 argument provided, as this is what GCC expects. Use NULL_TREE instead
29509 of 0 for trees.
29510
295112004-11-18 Robert Dewar <dewar@adacore.com>
29512
15cd18b9 29513 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
9716416b
AC
29514 Minor reformatting througout (including new function specs)
29515 Add ??? comments asking for clarification.
29516
295172004-11-18 Thomas Quinot <quinot@adacore.com>
29518
29519 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29520 incomplete duplicate implementation of this subprogram from butil.
29521
295222004-11-18 Thomas Quinot <quinot@adacore.com>
29523
29524 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29525 procedures factors the common processing for building an RPC receiver
29526 for an RCI package or an RACW type.
29527 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29528 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29529 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29530 in use.
29531 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29532 Add_RACW_Features.
29533 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29534 Add_RAST_Features.
29535 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29536 distribution subprogram identifiers that are either subprogram numbers
29537 or strings.
29538 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29539 string distribution identifiers assigned to a given subprogram.
29540 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29541 (Add_RAS_Dereference_TSS): Add comments.
29542 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29543 is not referenced yet because it will be used by the PolyORB DSA
29544 implementation.
29545 (Insert_Partition_Check): Remove fossile code.
29546 (First_RCI_Subprogram_Id): Document this constant.
29547 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29548 RAS_Access TSS.
29549 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29550 replaced with calls to Get_Library_Unit_Name_String. Previously there
29551 were several instances of the same code in different locations in the
29552 compiler; this checkin completes the replacement of all of these
29553 instances with calls to a common subprogram.
29554 Minor reformatting.
29555
29556 * sem_dist.adb: Remove comment noting that RPC receiver generation
29557 should be disabled for RACWs that implement RASs.
29558 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29559
29560 * sem_util.ads, sem_util.adb (Has_Stream): New function
29561 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29562 qualified name of a library unit into the name buffer.
29563 (Note_Possible_Modification): Generate a reference only
29564 if the context comes from source.
29565
29566 * snames.ads (PCS_Names): New subtype corresponding to names of
29567 supported implementations of the Partition Communication Subsystem
29568 (PCS) (i.e. the runtime library support modules for the distributed
29569 systems annex).
29570
295712004-11-18 Robert Dewar <dewar@adacore.com>
29572 Ed Schonberg <schonberg@adacore.com>
29573
29574 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
29575 (Has_Rep_Pragma): New function
29576 (Has_Attribute_Definition_Clause): New function
29577 (Record_Rep_Pragma): Moved here from sem_ch13.adb
29578 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
29579
29580 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
29581
29582 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
29583 (Expand_Pragma_Psect_Object): New procedure
29584 These procedures contain the revised and cleaned up processing for
29585 these two pragmas. This processing was formerly in Sem_Prag, but
29586 is more appropriately moved here. The cleanup involves making sure
29587 that the pragmas are properly attached to the tree, and that no
29588 nodes are improperly shared.
29589
29590 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
29591 pragmas to Exp_Prag, which is more appropriate.
29592 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
29593 check for duplicates Remove use of Is_Psected flag, no longer needed.
29594 Use new Make_String_Literal function with string.
29595
29596 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
29597 that are functions return universal values, that have to be converted
29598 to the context type.
29599 Use new Make_String_Literal function with string.
29600 (Get_Stream_Convert_Pragma): New function, replaces the use of
29601 Get_Rep_Pragma, which had to be kludged to work in this case.
29602
29603 * freeze.adb: Use new Has_Rep_Pragma function
29604
29605 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
29606 function with string.
29607 Use new Has_Rep_Pragma function.
29608
29609 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
29610 string argument.
29611
296122004-11-18 Robert Dewar <dewar@adacore.com>
29613
29614 * errout.ads, errout.adb: (First_Sloc): New function
29615
29616 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
29617 check (-gnatyx) instead of being included as a redundant construct
29618 warning.
29619
29620 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
29621 Style_Check_Order_Subprograms.
29622
29623 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
29624 stylesw.adb: Add Style_Check_Xtra_Parens
29625
29626 * usage.adb: Add line for -gnatyx (check extra parens)
29627
29628 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
29629
296302004-11-18 Ed Schonberg <schonberg@adacore.com>
29631 Robert Dewar <dewar@adacore.com>
29632
29633 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
29634 discriminant of a constrained subtype, analyze the copy of the
29635 corresponding constraint, because in some cases it may be only
29636 partially analyzed.
29637 Removes long-lived ??? comments.
29638
29639 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
29640 handled controlled or secondary-stack expressions within the
29641 iteration_scheme of a loop.
29642
29643 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
29644 bounds that may contain functions calls, to prevent memory leaks when
29645 the bound contains a call to a function that uses the secondary stack.
29646 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
29647 generate temporaries for loop bounds that might contain function calls
29648 that require secondary stack and/or finalization actions.
29649
29650 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
29651 selected component and the selector is overloadable (not just a
29652 function) treat as function call, Analyze_Call will disambiguate if
29653 necessary.
29654 (Analyze_Selected_Component): Do not generate an actual subtype for the
29655 selected component if expansion is disabled. The actual subtype is only
29656 needed for constraint checks.
29657 (Analyze_Allocator): If restriction No_Streams is set, then do
29658 not permit objects to be declared of a stream type, or of a
29659 composite type containing a stream.
29660
29661 * restrict.ads: Remove the a-stream entry from Unit_Array, since
29662 No_Streams no longer prohibits with'ing this package.
29663
29664 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
29665 discriminants, but the parent base has unknown discriminants, there is
29666 no discriminant constraint to inherit. Such a discrepancy can arise
29667 when the actual for a formal type with unknown discriminants is a
29668 similar private type whose full view has discriminants.
29669 (Analyze_Object_Declaration): If restriction No_Streams is set, then
29670 do not permit objects to be declared of a stream type, or of a
29671 composite type containing a stream.
29672
296732004-11-18 Ed Schonberg <schonberg@adacore.com>
29674
29675 * exp_dbug.ads: Update documentation to reflect simpler encoding for
29676 protected operations.
29677
29678 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
29679 generated name, it complicates decoding in gdb and hinders debugging
29680 of protected operations.
29681 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
29682 flag for the protected entry barrier function.
29683 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
29684 flag for the protected entry function.
29685
296862004-11-18 Nicolas Setton <setton@adacore.com>
29687
29688 * expect.c: Define __unix__ when __APPLE__ is defined.
29689
29690 * Makefile.in: Inform the value of the variable GMEM_LIB in the
29691 Darwin-specific section.
29692
29693 * lang-specs.h: Change the placement of the %1 marker.
29694 Works around the fact that gcc adds -fPIC by default under Darwin.
29695
296962004-11-18 Ed Schonberg <schonberg@adacore.com>
29697
29698 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
29699 type of the object with the packed array type, set the Analyzed flag
29700 on the object if it is an entity or simple indexed component, to avoid
29701 spurious type errors.
29702
297032004-11-18 Gary Dismukes <dismukes@adacore.com>
29704
29705 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
29706 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
29707 separate line from the version message.
29708
297092004-11-18 Ed Falis <falis@adacore.com>
29710
29711 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
29712 vthreads.
29713 (init_float): Eliminate initialization of floating point status for
29714 AE653. The instructions have no effect for vThreads.
29715
297162004-11-18 Vincent Celier <celier@adacore.com>
29717
29718 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
29719 gnatbind is invoked with -shared.
29720
297212004-11-18 Jose Ruiz <ruiz@adacore.com>
29722
29723 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
29724 for Detect_Blocking which is redundant with the check done within the
29725 procedure Protected_Single_Entry_Call.
29726 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
29727 Detect_Blocking which is redundant with the check done within the
29728 procedure Protected_Single_Entry_Call.
29729
297302004-11-18 Vincent Celier <celier@adacore.com>
29731
29732 * makegpr.adb (Compile): Put the compiling switches (in package
29733 Compiler and on the command line) immediately after "-c", instead of
29734 at the end of the command line invocation of the compiler, when
29735 compiling a non-Ada file.
29736 (Build_Global_Archive): When there is no need to rebuild the archive,
29737 set Global_Archive_Exists, so that the archive is passed to the linker
29738 if one is needed.
29739
297402004-11-18 Robert Dewar <dewar@adacore.com>
29741 Sergey Rybin <rybin@adacore.com>
29742
15cd18b9 29743 * gnat_ugn.texi:
9716416b
AC
29744 Remove extra paren check from list of checks for redundant constructs
29745 Add documentation of new -gnatyx style check (check extra parens)
29746 Remove paragraph about gnatelim debug options.
29747
29748 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
29749 objects rather than forbidding dependencies on the package Ada.Streams.
29750
29751 * sinfo.ads: Add ??? note that we should document pragmas passed to
29752 back end.
29753
29754 * g-expect.ads: Fix a few typos in the comments.
29755
9e637a26
JM
297562004-11-09 Joseph S. Myers <joseph@codesourcery.com>
29757
29758 * misc.c (gnat_handle_option): Use %< and %> for quoting in
29759 warning message.
29760
0506cb1c
RO
297612004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29762
29763 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
29764
426e7d28
AS
297652004-11-07 Andreas Schwab <schwab@suse.de>
29766
29767 * Makefile.in (install-gnatlib): Remove spurious hyphen.
29768
8785609e 297692004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
bb342a77
AP
29770
29771 PR ada/18228
29772 * Makefile.in (darwin): Set soext to .dylib.
29773
0ca5fab2
AC
297742004-10-26 Vincent Celier <celier@gnat.com>
29775 Thomas Quinot <quinot@act-europe.fr>
29776
29777 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
29778 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
29779 there is no use of GNAT.Sockets.Constants.
29780 Remove remaining pragma Import for C_Write
29781 Remove C_Read and C_Write from internal implementation unit
29782 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
29783 the read and write functions from the system runtime library is fine
29784 on UNIX but won't work under Windows).
29785
29786 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
29787 (Check_Selector): Use C_Recv instead of C_Read.
29788 Selectors are the GNAT.Sockets abstraction to perform a select()
29789 call on a set of descriptors. To allow abortion of an ongoing
29790 select operation, some data is written to a dedicated socket that
29791 is always monitored.
29792 Under Windows, the write and read library functions cannot operate
29793 on sockets, so we need to use send and recv instead, which is portable
29794 across all supported platforms.
29795
29796 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
29797 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
29798 (using the read and write functions from the system runtime library is
29799 fine on UNIX but won't work under Windows).
29800
298012004-10-26 Nicolas Setton <setton@act-europe.fr>
29802
29803 * mlib-tgt-darwin.adb: New file.
29804
29805 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
29806 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
29807 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
29808 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
29809 subprogram body.
29810
29811 * Makefile.in: Add support for building shared libraries under Darwin.
29812 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
29813 the low level EH init subprogram to be called from __gnat_initialize.
29814
29815 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
29816 indicates which options to pass to the archive indexer.
29817
29818 * mlib-utl.adb: Add support for calling ranlib with additional
29819 options. This is needed for instance under Mac OS X.
29820 (Ranlib_Options): New global variable, used to store the potential
29821 options to pass to ranlib.
29822 (Ar): Use Ranlib_Options when spawning ranlib.
29823 (Initialize): Set the value of ranlib option.
29824
298252004-10-26 Olivier Hainque <hainque@act-europe.fr>
29826
29827 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
29828 instead of 8K, to reflect the real potential needs for stack-checking
29829 in the ZCX case.
29830
298312004-10-26 Pascal Obry <obry@gnat.com>
29832
29833 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
29834
29835 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
29836 Windows only the initial thread stack size can be set so it is good to
29837 start we a low stack size.
29838 The OS will adjust the size as needed.
29839
298402004-10-26 Olivier Hainque <hainque@act-europe.fr>
29841 Nicolas Setton <setton@act-europe.fr>
29842
29843 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
29844 "__unix__" instead of "unix".
29845 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
29846 sections were just mistakenly ignored. The former is
29847 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
29848 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
29849 of hpux. This prevents an unwanted definition of the symbol
29850 convert_addresses in adaint.o.
29851
298522004-10-26 Gary Dismukes <dismukes@gnat.com>
29853
29854 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
29855 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
29856
298572004-10-26 Cyrille Comar <comar@act-europe.fr>
29858
29859 * a-filico.ads, a-filico.adb: fix incorrect header.
29860
298612004-10-26 Javier Miranda <miranda@gnat.com>
29862
29863 * a-ststio.ads: Fix typo in identifier
29864
298652004-10-26 Thomas Quinot <quinot@act-europe.fr>
29866
29867 * sem_ch4.adb: Minor reformatting.
29868
298692004-10-26 Ed Schonberg <schonberg@gnat.com>
29870
29871 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
29872 enabled, check the result of unary and binary operations when the
29873 expression is the right-hand side of an assignment.
29874
298752004-10-26 Vincent Celier <celier@gnat.com>
29876
29877 * clean.adb (Delete): Do not output warnings when in quiet output and
29878 not in verbose mode.
29879 (Force_Deletions): New Boolean flag, defaulted to False
29880 (Delete): Only delete a file if it is writable, and when
29881 Force_Deletions is True.
29882 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
29883 (Usage): Line for new switch -f
29884 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
29885 own.
29886
298872004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
29888
29889 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
29890 JM type only if its size matches that of the wrapper. When a size is
29891 prescribed and the field is not aliased, remove the wrapper of a JM
29892 type only if the size is not greater than that of the packed array.
29893 (gnat_to_gnu_entity): Change the extension of packed array wrappers
29894 from LJM to JM.
29895
298962004-10-26 Geert Bosch <bosch@gnat.com>
29897
29898 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
29899 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29900 (Pred): Implement in terms of Succ.
29901
299022004-10-26 Ed Schonberg <schonberg@gnat.com>
29903
29904 * exp_aggr.adb (Safe_Component): An aggregate component that is an
29905 unchecked conversion is safe for in-place use if the expression of the
29906 conversion is safe.
29907 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
29908 be expandable in place even if the aggregate does not come from source.
29909 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
29910 designated object of an allocator in place, rather than building it
29911 first on the stack. The previous scheme forces a full copy of the array,
29912 and may be altogether unsusable if the size of the array is too large
29913 for stack allocation.
29914
299152004-10-26 Robert Dewar <dewar@gnat.com>
29916
29917 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
29918 compares if the component is atomic.
29919
29920 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
29921 array assignment if the component type is atomic.
29922
299232004-10-26 Ed Schonberg <schonberg@gnat.com>
29924 Eric Botcazou <ebotcazou@act-europe.fr>
29925
29926 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
29927 is aliased and is a by_reference type, do not pass by copy.
29928 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
29929 detect whether the call is in the right side of an assignment or
29930 the expression of an object declaration. Recurse on component
29931 association within aggregates.
29932 Call it in the condition that determines whether the temporary is
29933 necessary for correct stack-checking.
29934
299352004-10-26 Thomas Quinot <quinot@act-europe.fr>
29936
29937 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
29938 RACW_Type, used in the PolyORB version.
29939 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
29940 version and the GARLIC version.
29941
15cd18b9 29942 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
0ca5fab2
AC
29943 Rename RCI_Info to RCI_Locator for better consistency between the
29944 GARLIC and PolyORB versions of the distributed systems annex.
29945 (DSA_Implementation_Name): This enumeration lists the possible
29946 implementations of the Partition Communication Subsystem for the
29947 Distributed Systems Annex (DSA). The three available implementations
29948 are the dummy stub implementation (No_DSA), and two versions based on
29949 two different distribution runtime libraries: GARLIC and PolyORB. Both
29950 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
29951 technology.
29952 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
29953 that organization.
29954
29955 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
29956 between the GARLIC and PolyORB versions of the distributed systems
29957 annex.
29958 Remove RE_Unbounded_Reclaim_Pool since it is unused.
29959
299602004-10-26 Gary Dismukes <dismukes@gnat.com>
29961
29962 * gnat1drv.adb: Suppress calling the back end when
29963 Frontend_Layout_On_Target is true.
29964
299652004-10-26 Thomas Quinot <quinot@act-europe.fr>
29966
29967 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
29968 Set_Read_Only): New subprograms.
29969 These new routines allow the user to set or unset the Owner execute
29970 and Owner write permission flags on a file.
29971
29972 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
29973 GNAT.OS_Lib.Set_Executable instead of rolling our own.
29974
299752004-10-26 Matthew Gingell <gingell@gnat.com>
29976
29977 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
29978
299792004-10-26 Pascal Obry <obry@gnat.com>
29980
29981 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
29982 memory before the faulting page we properly test the process read
29983 access for this address using appropriate Win32 routine.
29984 (HPUX sections): guard with "__hpux__" instead of "hpux".
29985
299862004-10-26 Robert Dewar <dewar@gnat.com>
29987
29988 * lib-xref.adb (Generate_Reference): Don't complain about reference to
29989 entry parameter if pragma Unreferenced set, since we do not properly
29990 handle the case of multiple parameters.
29991
299922004-10-26 Vincent Celier <celier@gnat.com>
29993
29994 * prj-env.adb: (Contains_ALI_Files): New Boolean function
29995 (Ada_Objects_Path.Add): For a library project, add to the object path
29996 the library directory only if there is no object directory or if the
29997 library directory contains ALI files.
29998 (Set_Ada_Paths.Add.Recursive_Add): Ditto
29999
300002004-10-26 Vincent Celier <celier@gnat.com>
30001
30002 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30003 extension of library projects.
30004
30005 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30006 path defaults to ".:<prefix>/lib/gnat".
30007 (Parse): For an extending all project, allow direct import of a project
30008 that is virtually extended.
30009
30010 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30011 the specified name is directly imported, return its ID. Otherwise, if
30012 an extension of this project is imported, return the ID of the
30013 extension.
30014
300152004-10-26 Robert Dewar <dewar@gnat.com>
30016
30017 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30018 (Sub3): New procedure, used by Scaled_Divide
30019 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30020 correct more than one instance of failure to propagate carries
30021 correctly.
30022 (Double_Divide): Handle overflow case of largest negative number
30023 divided by minus one.
30024
30025 * s-arit64.ads (Double_Divide): Document that overflow can occur in
30026 the case of a quotient value out of range.
30027 Fix comments.
30028
300292004-10-26 Robert Dewar <dewar@gnat.com>
30030
30031 * s-bitops.adb (Bit_Eq): Remove redundant check.
30032
30033 * s-bitops.ads: Minor comment updates
30034 Change some occurrences of Address to System.Address
30035
30036 * s-carsi8.ads: Fix minor cut-and-paste error in comments
30037
300382004-10-26 Ed Schonberg <schonberg@gnat.com>
30039
30040 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30041 accessibility check to prefix that is a protected operation.
30042
300432004-10-26 Ed Schonberg <schonberg@gnat.com>
30044
30045 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30046 empty, post message on stub.
30047
300482004-10-26 Ed Schonberg <schonberg@gnat.com>
30049 Javier Miranda <miranda@gnat.com>
30050
30051 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30052 current instance appears within a unit that is directly in the context
30053 of the main unit.
30054 Used to determine whether the body of the instance should be analyzed
30055 immediately after its spec, to make its subprogram bodies available
30056 for front-end inlining.
30057 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30058 constraint is not allowed on the component type (AARM 12.5.3(3))
30059
300602004-10-26 Cyrille Comar <comar@act-europe.fr>
30061
30062 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30063 'Storage_Pool): enhance, document & limit detection of non-sharable
30064 internal pools.
30065
30066 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30067
30068 * s-pooglo.ads: Add more documentation now that this pool is properly
30069 documented.
30070
300712004-10-26 Ed Schonberg <schonberg@gnat.com>
30072
30073 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30074 or protected type with discriminants, do not constrain the
30075 corresponding record type if the subtype declaration has no
30076 discriminant constraints. This can be the case in source code, or in
30077 the subtype declaration created to rename an actual type within an
30078 instantiation.
30079
300802004-10-26 Ed Schonberg <schonberg@gnat.com>
30081
30082 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30083 different kind of stub (possibly wrong name for file), do not check
30084 for conformance.
30085 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30086 includes call to some function that returns an unconstrained type, do
30087 not inline.
30088
300892004-10-26 Ed Schonberg <schonberg@gnat.com>
30090
30091 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30092 appear in the code for the main unit. Dependencies among units in the
30093 context of the main unit are established when those other units are
30094 compiled. Otherwise spurious elaboration constraints can generate
30095 incorrect elaboration circularities.
30096
300972004-10-26 Thomas Quinot <quinot@act-europe.fr>
30098 Ed Schonberg <schonberg@gnat.com>
30099
30100 * sem_util.adb (Is_Aliased_View): Defend against the case where this
30101 subprogram is called with a parameter that is not an object name. This
30102 situation arises for some cases of illegal code, which is diagnosed
30103 later, and in this case it is wrong to call Is_Aliased, as that might
30104 cause a compiler crash.
30105 (Explain_Limited_Type): Refine previous fix to include
30106 inherited components of derived types, to provide complete information.
30107
30108 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30109 is the prival for a protected object.
30110 It is necessary to mark this entity as a variable, in addition to
30111 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30112 modified to avoid checking the Aliased flag on entities that are not
30113 objects. (Checking that flag for non-objects is erroneous and could
30114 lead to a compiler crash).
30115
301162004-10-26 Robert Dewar <dewar@gnat.com>
30117
30118 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30119 X_Frac = 0.5, then we know that the number X must be positive.
30120 (Succ): Remove the same redundant test, and also fix the primary test
30121 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30122 Minor reformatting
30123 (Decompose): Add fuller comments to spec
30124
301252004-10-26 Pascal Obry <obry@gnat.com>
30126
30127 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30128 validity (process must have read access). Set to 0 in all other cases.
30129 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30130 violation on Win32.
30131 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30132 segmentation violation.
30133
301342004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30135
30136 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30137 whose type is a constructed subtype of an aliased object with an
30138 unconstrained nominal subtype, convert the actual to the constructed
30139 subtype before taking its address.
30140
301412004-10-26 Vincent Celier <celier@gnat.com>
30142
30143 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30144 (Is_Path_Name_Case_Sensitive): New function
30145
30146 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30147 (Base_Name, Simple_Name, Current_Directory, Compose,
30148 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30149 the result.
30150
301512004-10-26 Cyrille Comar <comar@act-europe.fr>
30152 Vasiliy Fofanov <fofanov@act-europe.fr>
30153 Vincent Celier <celier@gnat.com>
30154
30155 * gnat_ugn.texi: Generalize "finding memory problems" section into a
30156 "memory management issues" section and document some of the useful
30157 memory pools provided as part of the GNAT library.
30158 Remove "virtual" from declaration of A::method2 in
30159 the simple example of Ada/C++ mixed system.
30160 Library Projects may be virtually extended: their virtual extensions
30161 are not Library Projects.
30162 Added section on extending project hierarchies.
30163
d65c6710 301642004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
aa75e737
AL
30165
30166 * adaint.c (__gnat_get_libraries_from_registry): Cast value
30167 to LPBYTE.
30168 (__gnat_portable_spawn): Remove const.
30169
30170 * mingw32.h (MAXPATHLEN): Check for previous definition.
30171
95e19580
MK
301722004-10-17 Matthias Klose <doko@debian.org>
30173
30174 * gnatvsn.ads: Set gnat library version to 4.0.
30175
88a6ecb6
VC
301762004-10-05 Vincent Celier <celier@gnat.com>
30177
a1286ef5 30178 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
88a6ecb6 30179
9e94c78f 301802004-10-04 Laurent Guerby <laurent@guerby.net>
110aba14
LG
30181
30182 PR ada/15156
30183 * Makefile.in: Define and use RANLIB_FLAGS.
88a6ecb6 30184
09552763
PO
301852004-10-04 Pascal Obry <obry@gnat.com>
30186
30187 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30188 other x86 platforms).
30189
a8e490b7
OH
301902004-10-04 Olivier Hainque <hainque@act-europe.fr>
30191
30192 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30193 in general and triggers stack alignment adjustment for thread entry
30194 points on targets where this is necessary.
30195
71c10a83
BB
301962004-10-04 Bernard Banner <banner@gnat.com>
30197
30198 PR ada/13897
71c10a83
BB
30199 * Makefile.in: Add section for powerpc linux
30200 Add variant i-vxwork-x86.ads
30201
30202 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30203
9a03df55
OH
302042004-10-04 Olivier Hainque <hainque@act-europe.fr>
30205
30206 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30207 table registration calls when need be. Ensures no reference to the crt
30208 ctors symbol are issued in the SJLJ case, which avoids possible
30209 undefined symbol errors in the case of modules to be statically linked
30210 with the kernel.
30211
28d6470f
JM
302122004-10-04 Javier Miranda <miranda@gnat.com>
30213
30214 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30215 in-line the code corresponding to subprogram Analyze_Actuals. In
30216 addition, analyze the actuals only in case of subprogram call.
30217
06237875
EF
302182004-10-04 Ed Falis <falis@gnat.com>
30219
30220 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30221
259d6c3a
SR
302222004-10-04 Sergey Rybin <rybin@act-europe.fr>
30223
30224 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30225 in the documentation.
30226
6f21ed26
RD
302272004-10-04 Robert Dewar <dewar@gnat.com>
30228
30229 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30230 IF and CASE.
30231 (Analyze_Block_Statement): Add circuitry to detect following dead code
30232 (Check_Unreachable_Code): Handle case of block exit
30233
4cded177
RD
302342004-10-04 Robert Dewar <dewar@gnat.com>
30235
30236 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30237 (XMatchD): Avoid warning for Logic_Error call
30238
c6a60aa1
RD
302392004-10-04 Robert Dewar <dewar@gnat.com>
30240
30241 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30242 consider expressions buried within a procedure actual to be an actual.
30243 This caused some blowups with uses of packed slices within a procedure
30244 actual.
30245
1fdebfe5
RD
302462004-10-04 Robert Dewar <dewar@gnat.com>
30247
30248 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30249 longer need to be initialized to zero.
30250 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30251 initialized to zero.
30252
30253 * checks.adb (Expr_Known_Valid): Packed arrays are now always
30254 considered valid, even if the representation is modular. That's correct
30255 now that we no longer initialize packed modular arrays to zero.
30256
30257 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30258 suffixes. These are now documented as the only cases in which the
30259 debugger ignores outer records.
30260 Previously, the spec allowed arbitrary suffixes for this purpose.
30261 Change name of LJM to JM for packed array pad records
30262 Create separate section on packed array handling, and add a whole new
30263 set of comments to this section describing the situation with packed
30264 modular types and justification requirements depending on endianness.
30265
cd91501c
RD
302662004-10-04 Robert Dewar <dewar@gnat.com>
30267
30268 * a-except.adb: Add a comment for last change
30269
30270 * einfo.ads: Minor spelling correction in comment
30271
30272 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30273
30274 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30275 messages.
30276
30277 * sem_util.ads: Minor comment update
30278
c71c53a8
ES
302792004-10-04 Ed Schonberg <schonberg@gnat.com>
30280
30281 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30282 Inline_Always when in Configurable_Run_Time mode.
30283
30284 * sem_prag.adb (Process_Convention): If entity is an inherited
30285 subprogram, apply convention to parent subprogram if in same scope.
30286 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30287 when in Configurable_Run_Time mode.
30288
71d9e9f2
ES
302892004-10-04 Ed Schonberg <schonberg@gnat.com>
30290
30291 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30292 class_wide type after component list has been inherited.
30293
0b525bee
ES
302942004-10-04 Ed Schonberg <schonberg@gnat.com>
30295
30296 * sem_ch12.adb (Check_Generic_Actuals): New predicate
30297 Denotes_Previous_Actual, to handle properly the case of a private
30298 actual that is also the component type of a subsequent array actual.
30299 The visibility status of the first actual is not affected when the
30300 second is installed.
30301 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30302 make fully recursive the treatment of formals of packages declared
30303 with a box.
30304 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30305 the above on exit from an instantiation.
30306 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30307 current instantiation which is now complete.
30308 (Analyze_Package_Instantiation): No instantiated body is needed if the
30309 main unit is generic. Efficient, and avoid anomalies when a instance
30310 appears in a package accessed through rtsfind.
30311
27ad9660
ES
303122004-10-04 Ed Schonberg <schonberg@gnat.com>
30313
30314 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30315 do not generate a declaration for a temporary if the call is part of a
30316 library-level instantiation.
30317
1c6c6771
ES
303182004-10-04 Ed Schonberg <schonberg@gnat.com>
30319
30320 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30321 searching for a limited component to flag.
30322
30323 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30324 expansion of Input, to account for the fact that the implicit call
30325 generated by the attribute reference must freeze the user-defined
30326 stream subprogram. This is only relevant to 'Input, because it can
30327 appear in an object declaration, prior to the body of the subprogram.
30328
30329 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30330 expansion can proceed and further errors uncovered.
30331 (Minor clean up): Fix cases of using | instead of \ for continuation
30332 messages.
30333
8005f3e5
RK
303342004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30335
30336 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30337
30338 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30339 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30340 Use gcc_assert and gcc_unreachable.
30341
30342 * decl.c (gnat_to_gnu_entity, case object): Check and process a
30343 specified alignment before validating size.
30344 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30345 stripped-down declaration for the type of the inner field when making
30346 a JM type.
30347
30348 * utils.c (finish_record_type): Do not compute the size in units
30349 incrementally. Instead compute it once for the rep clause case.
30350 Use gcc_assert and gcc_unreachable.
30351
6a294a29
VC
303522004-10-04 Vincent Celier <celier@gnat.com>
30353
30354 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30355 in file name.
30356 (Is_Valid_Path_Name): Take '/' as a directory separator.
30357
9a080ea3
VC
303582004-10-04 Vincent Celier <celier@gnat.com>
30359
30360 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30361 (Extended_Project) only if Extended_Project is defined, to avoid
30362 assertion error.
30363 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30364 resolved path.
30365 (Parse_Single_Project): Ditto.
30366
30367 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30368 Add_To_Project_Path for virtual projects.
30369
51004cb5
VC
303702004-10-04 Vincent Celier <celier@gnat.com>
30371
15cd18b9
SS
30372 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30373 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30374 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
51004cb5
VC
30375 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30376 parameter Options_2.
30377
30378 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30379 Build_Dynamic_Library with an empty Options_2.
30380
30381 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30382 default anymore.
30383
30384 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30385 directory separator, if any.
30386 (Gprmake): Do not allow mains on the command line for library projects.
30387 Do not attempt to link when the project is a library project.
30388 (Library_Opts): New table to store Library_Options.
30389 (Build_Library): If Library_Options is specified, pass these options
30390 when building a shared library.
30391
3b37ffbf
JR
303922004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30393
30394 * s-tposen.adb (Service_Entry): The object must be always unlocked at
30395 the end of this procedure now that the unlock operation was inserted
30396 by the expander.
30397
b23e28d5
JR
303982004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30399
30400 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30401 corresponding to the Preallocated_Stacks flags in System.
30402 (Get_Target_Parameters): Including the processing for
30403 Preallocated_Stacks.
30404
15cd18b9
SS
30405 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30406 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30407 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30408 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30409 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30410 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30411 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30412 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30413 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30414 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
b23e28d5
JR
30415 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30416 used to signal whether the compiler creates the required stacks and
30417 descriptors for the different tasks (when True) or it is done by the
30418 underlying operating system at run time (when False).
30419 It is initially set to False in all targets.
30420
30421 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30422 if it is supported by the target.
30423 (Make_Task_Create_Call): Pass the stack address if it has been
30424 previously created. Otherwise pass a Null_Address.
30425
30426 * snames.adb: Add _stack.
30427
30428 * snames.ads: Add Name_uStack. Required to allow the expander to
30429 statically allocated task stacks.
30430
30431 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30432 Stack_Address argument.
30433 Check that its value is equal to Null_Address because this target does
30434 not support the static stack allocation.
30435
6fd459bb
TQ
304362004-10-04 Thomas Quinot <quinot@act-europe.fr>
30437
30438 * usage.adb: Change "pragma inline" to "pragma Inline" in information
30439 and error messages
30440
5885facb
TQ
304412004-10-04 Thomas Quinot <quinot@act-europe.fr>
30442
30443 * exp_dist.adb: Split declaration of asynchronous flag out of
30444 Add_RACW_Read_Attribute.
30445 Minor reformatting for better alignment with PolyORB version.
30446 Store the entity for the asynchronous flag of an RACW, rather than the
30447 expression, in the asynchronous flags table. This will allow this flag
30448 to be used in other subprograms beside Add_RACW_Read_Attribute.
30449
d6c7ed50
TQ
304502004-10-04 Thomas Quinot <quinot@act-europe.fr>
30451
30452 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
15cd18b9
SS
30453 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30454 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30455 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
d6c7ed50
TQ
30456 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
30457 sockets constant MSG_NOSIGNAL (Linux-specific).
30458 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30459 all Send operations.
30460 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30461 from trigerring SIGPIPE.
30462 Rename components to avoid clash with Ada 2005 possible reserved
30463 word 'interface'.
30464 (Check_Selector): When the select system call returns with an error
30465 condition, propagate Socket_Error to the caller.
30466
0f0377f6
JH
304672004-10-01 Jan Hubicka <jh@suse.cz>
30468
30469 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30470
2c9beb8a
RD
304712004-09-23 Robert Dewar <dewar@gnat.com>
30472
30473 PR ada/17540
2c9beb8a
RD
30474 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30475 instead do this at freeze time (we won't do it if there is an address
30476 clause).
30477 Change "pragma inline" to "pragma Inline" in information and error
30478 messages.
30479 Minor reformatting.
30480
30481 * freeze.adb (Check_Address_Clause): Remove previous change, not the
30482 right way of doing things after all.
30483 (Freeze_Entity): For object, set Is_Public for imported entities
30484 unless there is an address clause present.
30485
2494e673
OH
304862004-09-21 Olivier Hainque <hainque@act-europe.fr>
30487
30488 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30489 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30490 ensures proper handling of types with rep clauses, which might have
30491 their TYPE_SIZE set already.
30492
910d20fc
RD
304932004-09-21 Robert Dewar <dewar@gnat.com>
30494
30495 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30496 packed array types in both little- and big-endian cases. This change
30497 ensures that we no longer count on the unused bits being initialized
30498 for such types (and in particular ensures that equality testing will
30499 only read the relevant bits).
30500 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30501 These changes mean that we no longer need to initialize small packed
30502 arrays.
30503 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30504 optimization to an LJM field as to its parent field.
30505
30506 * ada-tree.h, trans.c, utils.c, utils2.c:
30507 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30508
8f235343
JH
305092004-09-20 Jan Hubicka <jh@suse.cz>
30510
30511 * utils.c (gnat_finalize): Remove.
30512 (end_subprog_body): Directly call cgraph_finalize_function;
30513 do not lower the nested functions.
30514
bb9be5eb
RD
305152004-09-20 Robert Dewar <dewar@gnat.com>
30516
30517 PR ada/17540
bb9be5eb
RD
30518 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30519 if an address clause is present, since that means that the Import
30520 should be ignored.
30521
796ef2e2
AC
305222004-09-20 Arnaud Charlet <charlet@act-europe.fr>
30523
30524 * 5tsystem.ads: Removed, no longer used.
30525
6615c446
JO
305262004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
30527 Zack Weinberg <zack@codesourcery.com>
30528
30529 * ada-tree.def: Use tree_code_class enumeration constants
30530 instead of code letters.
30531 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30532 Update for new tree-class enumeration constants.
30533
93ed8a01
VC
305342004-09-17 Vincent Celier <celier@gnat.com>
30535
30536 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30537 capabilities of the general project manager.
30538
c885d7a1
AC
305392004-09-09 Vincent Celier <celier@gnat.com>
30540
30541 * a-direct.ads: Add pragma Ada_05
30542 (Directory_Entry_Type): Give default value to component Kind to avoid
30543 not initialized warnings.
30544
30545 * a-direct.adb (Current_Directory): Remove directory separator at the
30546 end.
30547 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30548 an existing directory.
30549 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30550 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30551 Convert the result to File_Size.
30552
30553 * prj.ads: (Project_Error): New exception
30554
30555 * prj-attr.adb: Except in procedure Initialize, Fail comes from
30556 Prj.Com, not from Osint.
30557 (Attrs, Package_Attributes): Tables moved to private part of spec
30558 (Add_Attribute, Add_Unknown_Package): Moved to new child package
30559 Prj.Attr.PM.
30560 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30561 Prj.Project_Error after call to Fail.
30562 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30563 Fail. Check that package name is not already in use.
30564
30565 * prj-attr.ads: Comment updates to indicate that all subprograms may be
30566 used by tools, not only by the project manager, and to indicate that
30567 exception Prj.Prj_Error may be raised in case of problem.
30568 (Add_Unknown_Package, Add_Attribute): Moved to new child package
30569 Prj.Attr.PM.
30570 (Attrs, Package_Attributes): Table instantiations moved from the body to
30571 the private part to be accessible from Prj.Attr.PM body.
30572
30573 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
30574 from new package Prj.Attr.PM.
30575 (Parse_Attribute_Declaration): Call Add_Attribute from new package
30576 Prj.Attr.PM.
30577
30578 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
30579
30580 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
30581 instead of Elaboration_Checks).
30582
30583 * a-calend.adb: Minor reformatting
30584
305852004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30586
30587 * gigi.h (maybe_pad_type): New declaration.
30588 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
30589
30590 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
30591
30592 * cuintp.c: Convert to use buildN.
30593
30594 * decl.c (maybe_pad_type): No longer static.
30595 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
30596 target pointer.
30597 Convert to use buildN.
30598
30599 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
30600 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
30601 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
30602 RHS.
30603 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
30604 (gnat_gimplify_expr, case ADDR_EXPR): New case.
30605 Convert to use buildN.
30606
30607 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
30608 TREE_READONLY for const.
30609 Convert to use buildN.
30610
30611 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
30612 (create_var_decl): Refine when TREE_STATIC is set.
30613 Convert to use buildN.
30614
306152004-09-09 Gary Dismukes <dismukes@gnat.com>
30616
30617 * gnat_ugn.texi: Delete text relating to checking of ali and object
30618 consistency.
30619
30620 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
30621 routines.
30622
306232004-09-09 Jose Ruiz <ruiz@act-europe.fr>
30624
30625 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
30626 pragmas recognized by GNAT.
30627
30628 * gnat_rm.texi: Document pragma Detect_Blocking.
30629
30630 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
30631 raise Program_Error if called from a protected operation.
30632
30633 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
30634 the protected action nesting level.
30635 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
30636 protected action nesting level.
30637 (Unlock): When pragma Detect_Blocking is active decrease the protected
30638 action nesting level.
30639
30640 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
30641 Protected_Action_Nesting.
30642
30643 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
30644 Common_ATCB record. It contains the dynamic level of protected action
30645 nesting for each task. It is needed for checking whether potentially
30646 blocking operations are called from protected operations.
30647 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
30648 Detect_Blocking is active or not in the partition.
30649
30650 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
30651 raise Program_Error if called from a protected operation.
30652 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
30653 Program_Error if called from a protected operation.
30654 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
30655 Program_Error if called from a protected operation.
30656
30657 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
30658 raise Program_Error if called from a protected operation.
30659
30660 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
30661 raise Program_Error if called from a protected operation, and increase
30662 the protected action nesting level.
30663 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
30664 Program_Error if called from a protected operation, and increase the
30665 protected action nesting level.
30666 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
30667 protected action nesting level.
30668
30669 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
30670 raise Program_Error if called from a protected operation, and increase
30671 the protected action nesting level.
30672 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
30673 Program_Error if called from a protected operation, and increase the
30674 protected action nesting level.
30675 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
30676 raise Program_Error if called from a protected operation.
30677 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
30678 active, raise Program_Error if called from a protected operation.
30679 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
30680 protected action nesting level.
30681
30682 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
30683 insertion of the statement raising Program_Error. The run time
30684 contains the required machinery for handling that.
30685
30686 * sem_util.ads: Change comment associated to procedure
30687 Check_Potentially_Blocking_Operation.
30688 This procedure does not insert a call for raising the exception because
30689 that is currently done by the run time.
30690
30691 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
30692
30693 * init.c: Add the global variable __gl_detect_blocking that indicates
30694 whether pragma Detect_Blocking is active (1) or not (0). Needed for
30695 making the pragma available at run time.
30696 (__gnat_set_globals): Pass and update the detect_blocking parameter.
30697
30698 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
30699 pragma Detect_Blocking is active.
30700
30701 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
30702
30703 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
30704 DB is found in the ali file. Any unit compiled with pragma
30705 Detect_Blocking active forces its effect in the whole partition.
30706
30707 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
30708 Detect_Blocking is active and delay is called from a protected
30709 operation.
30710
30711 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
30712 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
30713 Detect_Blocking is active (0 otherwise).
30714 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
30715 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
30716 otherwise).
30717
307182004-09-09 Thomas Quinot <quinot@act-europe.fr>
30719
30720 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
30721 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
30722 package.
30723
30724 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
30725 (Register_Receiving_Stub): Add Subp_Info formal parameter.
30726 Update API in placeholder implemetation of s-parint to reflect changes
30727 in distribution runtime library.
30728
30729 * sem_ch3.adb (Expand_Derived_Record): Rename to
30730 Expand_Record_Extension.
30731
30732 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
30733 primitive operations of potentially distributed object types that have
30734 non-controlling anonymous access formals.
30735
30736 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
30737 subprogram.
30738 New implementation of expansion for remote access-to-subprogram types,
30739 based on the RACW infrastructure.
30740 This version of sem_dist is compatible with PolyORB/DSA as well as
30741 GLADE.
30742
30743 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
30744 Asynchrronous that applies to a remote access-to-subprogram type, mark
30745 the underlying RACW type as asynchronous.
30746
30747 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
30748 __gnat_using_gnu_linker to 1.
30749
30750 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
30751 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
30752 GNAT.Perfect_Hash_Generators, and remove the empty
30753 GNAT.Perfect_Hash package.
30754
30755 * atree.adb: Minor reformatting
30756
30757 * exp_ch3.adb (Expand_Derived_Record): Rename to
30758 Expand_Record_Extension.
30759 (Build_Record_Init_Proc.Build_Assignment): The default expression in
30760 a component declaration must remain attached at that point in the
30761 tree so New_Copy_Tree copies it if the enclosing record type is derived.
30762 It is therefore necessary to take a copy of the expression when building
30763 the corresponding assignment statement in the init proc.
30764 As a side effect, in the case of a derived record type, we now see the
30765 original expression, without any rewriting that could have occurred
30766 during expansion of the ancestor type's init proc, and we do not need
30767 to go back to Original_Node.
30768
30769 * exp_ch3.ads (Expand_Derived_Record): Rename to
30770 Expand_Record_Extension.
30771
30772 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
30773 Returns the RACW type used to implement a remote access-to-subprogram
30774 type.
30775 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
30776 New subprograms. Used to create a proxy tagged object for a remote
30777 subprogram. The proxy object is used as the designated object
30778 for RAS values on the same partition (unless All_Calls_Remote applies).
30779 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
30780 System.Partition_Interface.Get_Unique_Remote_Pointer.
30781 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
30782 Renamed from Add_RAS_*_Attribute.
30783 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
30784 subprograms.
30785 New implementation of expansion for remote access-to-subprogram types,
30786 based on the RACW infrastructure.
30787
30788 * exp_dist.ads (Copy_Specification): Update comment to note that this
30789 function can copy the specification from either a subprogram
30790 specification or an access-to-subprogram type definition.
30791
307922004-09-09 Ed Schonberg <schonberg@gnat.com>
30793
30794 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
30795 in an instance, between an explicit subprogram an one inherited from a
30796 type derived from an actual.
30797
30798 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
30799 add a polling call if the subprogram is to be inlined by the back-end,
30800 to avoid repeated calls with multiple inlinings.
30801
30802 * checks.adb (Apply_Alignment_Check): If the expression in the address
30803 clause is a call whose name is not a static entity (e.g. a dispatching
30804 call), treat as dynamic.
30805
308062004-09-09 Robert Dewar <dewar@gnat.com>
30807
30808 * g-trasym.ads: Minor reformatting
30809
30810 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
30811 packed arrays, since unused bits are expected to be zero for a
30812 comparison.
30813
308142004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
30815
30816 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
30817 comment.
30818
308192004-09-09 Pascal Obry <obry@gnat.com>
30820
30821 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
30822 enable map file generation. Add the right option to generate the map
30823 file if Map_File is set to True.
30824
30825 * gnatdll.adb (Gen_Map_File): New variable.
30826 (Syntax): Add info about new -m (Map_File) option.
30827 (Parse_Command_Line): Add support for -m option.
30828 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
30829 Minor reformatting.
30830
308312004-09-09 Laurent Pautet <pautet@act-europe.fr>
30832
30833 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
30834 new gnatdist implementation.
30835 Define a subpackage isolating the output routines specific to this
30836 verbose mode.
30837
308382004-09-09 Joel Brobecker <brobecker@gnat.com>
30839
30840 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
30841
30842 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
30843
308442004-09-09 Cyrille Comar <comar@act-europe.fr>
30845
30846 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
30847 internal unit.
30848
30849 * opt.ads: Add Ada_Version_Runtime constant used to decide which
30850 version of the language is used to compile the run time.
30851
308522004-09-09 Arnaud Charlet <charlet@act-europe.fr>
30853
30854 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
30855 of variable length temporaries for function return now that the
30856 back-end and gigi support it.
30857
23c7b149 308582004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6cdb2c6e
AC
30859
30860 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
30861
30862 * trans.c (struct stmt_group): Delete field GLOBAL.
30863 (gnat_init_stmt_group): Do not initialize it.
30864 (call_to_gnu): Use save_expr, not protect_multiple_eval.
30865 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
30866 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
30867 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
30868 (start_stmt_group): Likewise.
30869 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
30870
30871 * utils2.c (ggc.h): Include.
30872 (build_call_raise): Call build_int_cst, not build_int_2.
30873
30874 * utils.c (gnat_init_decl_processing): Fix arg to
30875 build_common_tree_nodes.
30876 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
30877 (gnat_define_builtin): Set built_in_decls.
30878 (init_gigi_decls): Call build_int_cst, not build_int_2.
30879
30880 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
30881 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
30882 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
30883 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
30884 SET_TYPE_MODULE): Use them.
30885 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
30886 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
30887 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
30888 SET_TYPE_ADA_SIZE): Likewise.
30889 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
30890 (DECL_CONST_CORRESPONDING_VAR,
30891 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
30892 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
30893 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
30894 (TYPE_RM_SIZE_NUM): New macro.
30895 (TYPE_RM_SIZE): Modified to use above.
30896
30897 * cuintp.c: (build_cst_from_int): New function.
30898 (UI_To_gnu): Use it.
30899
30900 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
30901 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
30902 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
30903 MIN_EXPR for the size, copy it into new.
30904
23c7b149 309052004-09-01 Robert Dewar <dewar@gnat.com>
6cdb2c6e
AC
30906
30907 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
30908 packed indexed component where array is an IN OUT formal. This
30909 generated garbage code previously.
30910
30911 * gnat_ugn.texi: Document -fverbose-asm
30912
30913 * gnat-style.texi: Minor updates (note that boolean constants and
30914 variables are joined with AND/OR rather than short circuit forms).
30915
23c7b149 309162004-09-01 Ed Schonberg <schonberg@gnat.com>
6cdb2c6e
AC
30917
30918 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
30919 it is an upward conversion of an untagged type with no representation
30920 change.
30921
23c7b149 309222004-09-01 Thomas Quinot <quinot@act-europe.fr>
6cdb2c6e
AC
30923
30924 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
30925 System.Partition_Interface.
30926
30927 * checks.adb (Apply_Access_Checks): Do not generate checks when
30928 expander is not active (but check for unset reference to prefix of
30929 dereference).
30930
30931 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
30932 pragma Debug as an if statement with a constant condition, for
30933 consistent treatment of entity references contained within the
30934 enclosed procedure call.
30935
23c7b149 309362004-09-01 Vincent Celier <celier@gnat.com>
6cdb2c6e
AC
30937
30938 * bindgen.adb: (Set_EA_Last): New procedure
30939 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
30940 Set_EA_Last.
30941 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
30942 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
30943 linked without errors.
30944 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
30945 ST and EA.
30946 (Gen_Exception_Table_C): Correct same bugs
30947
30948 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
30949
30950 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
30951 on Windows, make sure that the drive letter is in upper case.
30952
30953 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
30954 Windows, when the drive letter is added and Case_Sensitive is True, the
30955 drive letter is forced to upper case.
30956
30957 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
30958 to Options_2 for the call to MLib.Utl.Gcc.
30959
30960 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
30961 directory separator when defining BASE_DIR.
30962
23c7b149 309632004-09-01 Pascal Obry <obry@gnat.com>
6cdb2c6e
AC
30964
30965 * gprcmd.adb (Extend): Do not output trailing directory separator. This
30966 is not needed and it confuses Windows GNU/make which does not report
30967 directory terminated by a slash as a directory.
30968 (gprcmd): Idem for "pwd" internal command.
30969
30970 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
30971 target names rewrite to fix regressions with recent version of
30972 GNU/make. Starting with GNU/make 3.80 the pipe character was not
30973 handled properly anymore.
30974
4eb104c1
AS
309752004-09-01 Andreas Schwab <schwab@suse.de>
30976
30977 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
30978 * raise.c [!IN_RTS]: Undef abort.
30979
6a6bfc8e
NS
309802004-08-27 Nathan Sidwell <nathan@codesourcery.com>
30981
ce552f75
NS
30982 * utils2.c (build_allocator): Use ssize_int.
30983
6a6bfc8e
NS
30984 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
30985
f8b7bf58
AS
309862004-08-27 Andreas Schwab <schwab@suse.de>
30987
30988 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
30989
15793d0c
NS
309902004-08-25 Nathan Sidwell <nathan@codesourcery.com>
30991 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6615c446 30992
15793d0c
NS
30993 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
30994
7d60be94
NS
309952004-08-25 Nathan Sidwell <nathan@codesourcery.com>
30996
30997 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
30998 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
30999 * utils.c (init_gigi_decls): Likewise.
31000 * utils2.c (build_call_raise, build_allocator): Likewise.
6615c446 31001
8c1d6d62
NS
310022004-08-24 Nathan Sidwell <nathan@codesourcery.com>
31003
7d60be94 31004 * utils.c (gnat_init_decl_processing): Adjust
8c1d6d62
NS
31005 build_common_tree_nodes call.
31006
3224bead
NS
310072004-08-20 Nathan Sidwell <nathan@codesourcery.com>
31008
31009 * utils2.c (build_allocator): Use build_int_cst for negative
31010 size types.
31011
4766261d
RH
310122004-08-18 Richard Henderson <rth@redhat.com>
31013
31014 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31015
1f6c00df
NS
310162004-08-16 Nathan Sidwell <nathan@codesourcery.com>
31017
31018 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31019 call.s
31020 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31021 (gnat_to_gnu): Likewise.
31022
4c46b835
AC
310232004-08-16 Pascal Obry <obry@gnat.com>
31024
31025 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31026 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31027 option and not mdll anymore. Update comment.
31028
310292004-08-16 Pascal Obry <obry@gnat.com>
31030
31031 * bld.adb (Put_Include_Project): Properly handle directory separators
31032 on Windows.
31033
310342004-08-16 Ed Schonberg <schonberg@gnat.com>
31035
31036 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31037 decreasing the number of allocated junk nodes while searching for the
31038 appropriate subprogram.
31039
4a90aeeb
NS
310402004-08-15 Nathan Sidwell <nathan@codesourcery.com>
31041
31042 * cuintp.c (UI_To_gnu): Use build_int_cst..
31043 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31044 * utils.c (init_gigi_decls): Likewise.
31045 * utils2.c (build_call_raise): Likewise.
31046
244e5a2c
AC
310472004-08-13 Olivier Hainque <hainque@act-europe.fr>
31048
31049 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31050 for a global aliased object with a variable size and an unconstrained
31051 nominal subtype, pretend there is no initializer if the one we have is
31052 incomplete, and avoid referencing an inexistant component in there. The
31053 part we have will be rebuilt anyway and the reference may confuse
31054 further operations.
31055
310562004-08-13 Thomas Quinot <quinot@act-europe.fr>
31057
31058 * einfo.ads: Minor reformatting
31059
31060 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31061 restrictions in the ALI if we only want to warn about violations.
31062
310632004-08-13 Vincent Celier <celier@gnat.com>
31064
31065 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31066 when creating a new Unit_Record in table Units.
31067
31068 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31069 that are violated, if any.
31070
31071 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31072 add directory separator if path already ends with a directory separator.
31073
310742004-08-13 Ed Schonberg <schonberg@gnat.com>
31075
31076 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31077 unit, this is an attempt to inline a construct that is not available in
31078 the current restricted mode, so abort rather than trying to continue.
31079
31080 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31081 discriminants that rename those of the parent, recover names of
31082 original discriminants for the constraint on the full view of the
31083 parent.
31084 (Complete_Private_Subtype): Do not create a subtype declaration if the
31085 subtype is an itype.
31086
31087 * gnat_rm.texi: Added section on implementation of discriminated
31088 records with default values for discriminants.
31089
310902004-08-13 Ed Schonberg <schonberg@gnat.com>
31091
31092 PR ada/15601
31093 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31094 the second operand is overloaded.
31095
1a186ec5
RH
310962004-08-10 Richard Henderson <rth@redhat.com>
31097
31098 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31099 add __builtin_alloca.
31100
89f1a702
RH
311012004-08-10 Richard Henderson <rth@redhat.com>
31102
31103 * config-lang.in (boot_language): Yes.
31104
5d09245e
AC
311052004-08-09 Thomas Quinot <quinot@act-europe.fr>
31106
31107 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31108 from complaining on potential uninitialized reference.
31109 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31110 new specification and test explicitly for non-zero return value.
31111
31112 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31113 returning C.int, to avoid using a derived boolean type.
31114
31115 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31116 Duplicate_Subexpr_No_Checks in preference to direct use of
31117 Remove_Side_Effects and New_Copy_Tree.
31118 Clear Comes_From_Source on prefix of 'Size attribute reference.
31119
31120 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31121 g-socthi-vxworks.adb: Change calls to
31122 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31123 and test explicitly for non-zero return value.
31124
6615c446 31125 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
5d09245e
AC
31126 (Is_Socket_In_Set): Declare imported function as returning C.int, to
31127 avoid using a derived boolean type.
31128
311292004-08-09 Albert Lee <lee@gnat.com>
31130
31131 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31132
311332004-08-09 Pascal Obry <obry@gnat.com>
31134
31135 * gnat_ugn.texi: Document new way to build DLLs on Windows using
31136 GCC's -shared option.
31137
31138 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31139 Options_2 parameter (options put after object files).
31140
311412004-08-09 Olivier Hainque <hainque@act-europe.fr>
31142
31143 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31144 ignore overflows on low and high bounds of an index to also account for
31145 differences in signedness between sizetype and gnu_index_subtype.
31146 These are as legitimate as the ones caused by a lower TYPE_PRECISION
31147 on sizetype.
31148
311492004-08-09 Robert Dewar <dewar@gnat.com>
31150
31151 * s-solita.ads, s-solita.adb: Minor reformatting
31152
31153 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31154 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31155 obsolescent section
31156 Add note that No_Implicit_Conditionals does not suppress
31157 run time constraint checks.
31158
31159 * vms_conv.ads: Minor reformatting
31160
31161 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31162 and necessary for following change).
31163 (Mark): Return new format Mark_Id containing sec stack address
31164 (Release): Use sec stack address from Mark_Id avoiding Self call
31165
31166 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31167 pointer (cleanup and necessary for following change).
31168 Define Mark_Id as record containing address of secondary stack, that way
31169 Release does not need to find the stack again, decreasing the number of
31170 calls to Self and improving efficiency.
31171
31172 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31173
31174 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31175 case variable into the individual case branches when possible.
31176
31177 * sem_ch11.adb: Minor reformatting
31178
31179 * prj.ads: Correct spelling of suffixs
31180
31181 * prj-nmsc.adb: Minor reformatting
31182 Correct spelling suffixs throughout (also in identifiers)
31183
31184 * freeze.adb: Minor spelling correction
31185
31186 * exp_ch2.adb: Cleanups to handling of Current_Value
31187 (no functional effect).
31188
31189 * bld.adb: Correct spelling of suffixs
31190
31191 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31192
311932004-08-09 Ed Schonberg <schonberg@gnat.com>
31194
31195 PR ada/15408
5d09245e
AC
31196 * sem_ch7.adb (Install_Private_Declarations): In the body of the
31197 package or of a child, private entities are both immediately_visible
31198 and not hidden.
31199
312002004-08-09 Ed Schonberg <schonberg@gnat.com>
31201
31202 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31203 there are no range checks on the value of the literal.
31204
31205 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31206 wrapped is the triggering alternative of an asynchronous select, action
31207 statements mustbe inserted before the select itself.
31208
31209 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31210 case where the prefix is a protected function call.
31211 (Resolve_Attribute, case 'Access): The attribute reference on a
31212 subprogram is legal in a generic body if the subprogram is declared
31213 elsewhere.
31214
312152004-08-09 Vincent Celier <celier@gnat.com>
31216
31217 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31218 languages, otherwise building the library may fail with unresolved
31219 symbols.
31220 (Compile_Sources): Do not build libraries if -c switch is used
31221
31222 * gnatlink.adb (Process_Args): New switches -M and -Mmap
31223 (Write_Usage): If map file creation is supported, output new switches
31224 -M and -Mmap.
31225 (Gnatlink): When -M is specified, add the necessary switch(es) to the
31226 gcc call, when supported.
31227
31228 * Makefile.in: Added indepsw.o to the object list for gnatlink
31229 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31230
31231 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31232 indepsw.adb, indepsw.ads: New files.
31233
312342004-08-09 Bernard Banner <banner@gnat.com>
31235
31236 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31237
31238 * Makefile.in: add section for vxworks x86
31239
312402004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
31241
31242 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31243 per-object constrained components where the discriminant is of an
31244 Access type.
31245 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31246 the parent initialization procedure for derived Unchecked_Unions.
31247 Instead, derived Unchecked_Unions build their own initialization
31248 procedure.
31249 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31250 Check the body of the subprogram for details.
31251 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31252 functions for derived Unchecked_Union types by introducing a condition.
31253 Allow the creation of TSS equality functions for Unchecked_Unions.
31254 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31255 Add formal parameter Discr to function signature. Discr is used to
31256 control the generated case statement for Unchecked_Union types.
31257 (Make_Eq_If): Rename formal parameter Node to E in function signature.
31258
31259 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31260 Unchecked_Unions.
31261 Check the body of the subprogram for details.
31262 (Expand_Composite_Equality): Augment composite type equality to include
31263 correct handling of Unchecked_Union components.
31264 (Expand_N_In): Add condition to detect illegal membership tests when the
31265 subtype mark is a constrained Unchecked_Union and the expression lacks
31266 inferable discriminants, and build a Raise_Program_Error node.
31267 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31268 to detect types that contain components of unconstrained Unchecked_Union
31269 subtype. Add condition to detect equality between types that have an
31270 unconstrained Unchecked_Union component, and build a Raise_Program_Error
31271 node. Add condition to detect equality between Unchecked_Union types
31272 that lack inferable discriminants, and build a Raise_Program_Error node.
31273 Otherwise build a TSS equality function call.
31274 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31275 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31276 with the operand lacking inferable discriminants, and build a Raise_
31277 Program_Error node.
31278 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31279 composite equality.
31280 (Has_Inferable_Discriminants): Implement new predicate for objects and
31281 expressions of Unchecked_Union type. Check the body of subprogram for
31282 details.
31283 (Has_Unconstrained_UU_Components): Add function
31284 Component_Is_Unconstrained_UU. It is used to detect whether a single
31285 component is of an unconstrained Unchecked_Union subtype. Add function
31286 Variant_Is_Unconstrained_UU. It is used to detect whether a single
31287 component inside a variant is of an unconstrained Unchecked_Union type.
31288
31289 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31290 inferred discriminant values. Add condition to generate a case
31291 statement with an inferred discriminant as the switch.
31292 (Make_Component_List_Assign): Introduce a Boolean flag that determines
31293 the behaviour of the subprogram in the presence of an Unchecked_Union.
31294 Add condition to trigger the usage of the inferred discriminant value
31295 as the generated case statement switch.
31296 (Make_Field_Assign): Introduce a Boolean flag that determines the
31297 behaviour of the subprogram in the presence of an Unchecked_Union. Add
31298 condition to trigger the usage of the inferred discriminant value as
31299 the right-hand side of the generated assignment.
31300
31301 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31302 parameter generation when dealing with Unchecked_Unions.
31303
31304 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31305 checks for Unchecked_Unions.
31306
31307 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31308
31309 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31310 Raise_Program_Error nodes for the execution of Read and Write
31311 attributes of Unchecked_Union types and the execution of Input and
31312 Output attributes of Unchecked_Union types that lack default
31313 discriminant values.
31314
31315 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31316 Unchecked_Union. Add procedure Check_Component. It is used to inspect
31317 per-object constrained components of Unchecked_Unions for being
31318 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31319 check individual components withing a variant.
31320
31321 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31322 comparison of Unchecked_Unions.
31323 (Resolve_Equality_OP): Remove guard that prevents equality between
31324 Unchecked_Unions.
31325
31326 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31327 of component subtypes for Unchecked_Union components.
31328 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31329 since it is the actual subtype.
31330
31331 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31332 pass of Unchecked_Union subtypes as generic actuals to formal types
31333 that lack known_discriminant_parts or that are derived Unchecked_Union
31334 types, and do nothing. In any other case, produce an error message.
31335
31336 * sem_ch3.adb (Analyze_Component_Declaration): Add function
31337 Contains_POC. It determines whether a constraint uses the discriminant
31338 of an enclosing record type.
31339 Add condition to detect per-object constrained component and set the
31340 appropriate flag.
31341 (Derived_Type_Declaration): Remove guard that prevents derivation from
31342 Unchecked_Union types.
31343 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31344 Union subtypes.
31345
31346 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31347 references to Unchecked_Union discriminants.
31348
31349 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31350 formal generation when dealing with Unchecked_Unions.
31351 (Set_Actual_Subtypes): Add condition to prevent generation of actual
31352 subtypes for Unchecked_Unions.
31353
31354 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31355 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31356 completions of discriminated partial views by Unchecked_Unions and
31357 produce an error message.
31358
313592004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31360
31361 * trans.c (struct stmt_group): New field, GLOBAL.
31362 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31363 (struct elab_info): New struct.
31364 (elab_info_list, gnu_elab_proc_stack): New variables.
31365 (Compilation_Unit_to_gnu): New procedure.
31366 (gigi): Call it and also handle elaboration procs we've saved.
31367 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31368 global field from parent.
31369 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31370 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31371 (start_stmt_group): Initialize global field from parent.
31372 (add_decl_expr): Set to global for current statement group.
31373 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31374 post.
31375
31376 * utils.c (global_bindings_p): True when no current_function_decl; no
31377 longer check current_binding_level.
31378
313792004-08-09 Ben Brosgol <brosgol@gnat.com>
31380
31381 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31382 choice.
31383
31384 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31385
160ff372
AS
313862004-08-06 Andreas Schwab <schwab@suse.de>
31387
31388 * utils.c (gnat_define_builtin): Remove second parameter of
31389 make_decl_rtl.
31390 (begin_subprog_body): Likewise.
31391
615cbd95
AC
313922004-07-26 Arnaud Charlet <charlet@act-europe.fr>
31393
31394 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31395 optimization, not supported by the tree-ssa back-end.
31396
313972004-07-26 Olivier Hainque <hainque@act-europe.fr>
31398
31399 * s-mastop-irix.adb: Update comments.
31400
31401 * a-except.adb (Exception_Information): Raise Constraint_Error if
31402 exception Id is Null_Id.
31403 This is required behavior, which is more reliably and clearly checked
31404 at the top level interface level.
31405
314062004-07-26 Javier Miranda <miranda@gnat.com>
31407
31408 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31409 call if a component has no default_expression and the box is used.
31410
31411 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31412 default_expression and you use box, it behaves as if you had declared a
31413 stand-alone object.
31414 (Resolve_Record_Aggregate): If a component has no default_expression and
31415 you use box, it behaves as if you had declared a stand-alone object.
31416
31417 * sem_ch10.adb (Install_Siblings): Do not make visible the private
31418 entities of private-with siblings.
31419
314202004-07-26 Ed Schonberg <schonberg@gnat.com>
31421
31422 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31423 for a component of an itype, set the parent pointer for analysis,
31424 there is no list in which to insert it.
31425
31426 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31427 bona-fide renamings, not for inherited operations.
31428
31429 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31430 actual for a formal that is an access parameter, create local
31431 finalization list even if the expression is not an aggregate.
31432
314332004-07-26 Ed Schonberg <schonberg@gnat.com>
31434
31435 PR ada/16213
31436 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31437 Diagnose properly illegal subprogram renamings that are library units.
31438
314392004-07-26 Ed Schonberg <schonberg@gnat.com>
31440
31441 PR ada/15588
31442 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31443 conversion rewritten as an unchecked conversion, check that original
31444 expression is a variable.
31445
31446 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31447 unchecked_conversion, create new node rather than rewriting in place,
31448 to preserve original construct.
31449
314502004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31451
31452 * gigi.h (gnat_expand_body): Deleted.
31453
31454 * Make-lang.in: (trans.o): Depends on function.h.
31455
31456 * misc.c: (gnat_expand_body): Moved to here.
31457
31458 * trans.c (gnat_expand_body_1): Deleted.
31459 (gnat_expand_body): Moved from here.
31460 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31461 (add_stmt): Check for marked visited with global_bindings_p.
31462 (gnat_gimplify_expr, case COMPONENT_REF): New case.
31463 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31464
31465 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31466 VIEW_CONVERT_EXPR if not operation type.
31467
31468 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31469 fat pointer.
31470
31471 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31472 changes: reformatting of negation operators, removing unneeded
31473 inequality comparison with zero, converting equality comparisons with
31474 zero to negations, changing int/0/1 to bool/false/true, replace calls
31475 to gigi_abort with abort, and various other similar changes.
31476
314772004-07-26 Vincent Celier <celier@gnat.com>
31478
31479 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31480 "setup".
31481
31482 * make.adb (Gnatmake): Fail when a library is not present and there is
31483 no object directory.
31484
31485 * mlib-prj.adb (Check_Library): No need to check if the library needs
31486 to be rebuilt if there is no object directory, hence no object files
31487 to build the library.
31488
31489 * opt.ads (Setup_Projects): New Boolean flag.
31490
31491 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31492 Location.
31493 Create directory when Kind /= "" and in "gnat setup". Report error if
31494 directory cannot be created.
31495 (Ada_Check): Create library interface copy dir if it does not exist
31496 and we are in "gnat setup".
31497 (Find_Sources): No error if in "gnat setup" and no Ada sources were
31498 found.
31499 (Language_Independent_Check): Create object directory, exec directory
31500 and/or library directory if they do not exist and we are in
31501 "gnat setup".
31502
31503 * vms_conv.ads: (Command_Type): New command Setup.
31504
31505 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31506
31507 * vms_data.ads: Add qualifiers/switches for new built-in command
31508 "setup".
31509
b785f485
RH
315102004-07-25 Richard Henderson <rth@redhat.com>
31511
31512 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31513 DECL_IGNORED_P on RESULT_DECL.
31514
35ae2ed8
AC
315152004-07-20 Olivier Hainque <hainque@act-europe.fr>
31516
31517 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31518 allocation and potentially overflowing update with
31519 Tailored_Exception_Information. Use the sec-stack free procedural
31520 interface to output Exception_Information instead.
31521
31522 * a-except.adb (To_Stderr): New subprogram for character, and string
31523 version moved from a-exextr to be visible from other separate units.
31524 (Tailored_Exception_Information): Remove the procedural version,
31525 previously used by the default Last_Chance_Handler and not any more.
31526 Adjust various comments.
31527
31528 * a-exexda.adb: Generalize the exception information procedural
31529 interface, to minimize the use of secondary stack and the need for
31530 local buffers when the info is to be output to stderr:
31531 (Address_Image): Removed.
31532 (Append_Info_Character): New subprogram, checking for overflows and
31533 outputing to stderr if buffer to fill is of length 0.
31534 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31535 (Append_Info_Address, Append_Info_Exception_Name,
31536 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31537 Append_Info_Basic_Exception_Traceback,
31538 Append_Info_Exception_Information): New subprograms.
31539 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31540 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31541 Exception_Info_Maxlength, Exception_Name_Length,
31542 Exception_Message_Length): New subprograms.
31543 (Exception_Information): Use Append_Info_Exception_Information.
31544 (Tailored_Exception_Information): Use
31545 Append_Info_Basic_Exception_Information.
31546 Export services for the default Last_Chance_Handler.
31547
31548 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31549 other separate units.
31550
315512004-07-20 Vincent Celier <celier@gnat.com>
31552
31553 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31554
315552004-07-20 Ed Schonberg <schonberg@gnat.com>
31556
31557 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31558 emit itype references for the designated types of component types that
31559 are declared outside of the full record declaration, and that may
31560 denote a partial view of that record type.
31561
315622004-07-20 Ed Schonberg <schonberg@gnat.com>
31563
31564 PR ada/15607
31565 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
31566 which is the designated type in an access component declaration, to the
31567 list of incomplete dependents of the parent type, to avoid elaboration
31568 issues with out-of-scope subtypes.
31569 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
31570 full view of the parent.
31571
315722004-07-20 Ed Schonberg <schonberg@gnat.com>
31573
31574 PR ada/15610
31575 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
31576 entities that are hidden, such as references to generic actuals
31577 outside an instance.
31578
315792004-07-20 Javier Miranda <miranda@gnat.com>
31580
31581 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
31582 support to the new notation.
31583 (Analyze_Selected_Component): Add call to Try_Object_Operation.
31584
315852004-07-20 Jose Ruiz <ruiz@act-europe.fr>
31586
31587 * s-taprob.adb: Adding the elaboration code required for initializing
31588 the tasking soft links that are common to the full and the restricted
31589 run times.
31590
31591 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
31592 restricted run time has been moved to the package
31593 System.Soft_Links.Tasking.
31594
31595 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
31596 restricted run time has been moved to the package
31597 System.Soft_Links.Tasking.
31598
31599 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
31600
31601 * s-solita.ads, s-solita.adb: New files.
31602
316032004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31604
31605 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
31606 Case_Statement_to_gnu): Split off from gnat_to_gnu.
31607 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
31608 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
31609 Exception_Handler_to_gnu_zcx): Likewise.
31610
6e34d3a3
JM
316112004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
31612
31613 * gigi.h (builtin_function): Declare.
31614
523456db
AC
316152004-07-15 Robert Dewar <dewar@gnat.com>
31616
31617 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
31618 reformatting
31619
31620 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
31621 access values as an example of a warning.
31622
31623 * gnat_rm.texi: Document new attribute Has_Access_Values
31624
31625 * gnat-style.texi: Document that box comments belong on nested
31626 subprograms
31627
31628 * sem_util.ads (Has_Access_Values): Improved documentation
31629
31630 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
31631
31632 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
31633 (Process_Interface_Name): Call to this new procedure
31634 (Set_Extended_Import_Export_External_Name): Call to this new procedure
31635
31636 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
31637
31638 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
31639
31640 * einfo.ads: Minor comment typo fixed
31641
316422004-07-15 Jose Ruiz <ruiz@act-europe.fr>
31643
31644 * snames.adb: Add _atcb.
31645
31646 * snames.ads: Add Name_uATCB.
31647
31648 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
31649 (in the expanded code) when using the restricted run time.
31650
31651 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
31652 a in parameter in order to allow ATCBs to be preallocated (in the
31653 expanded code).
31654
31655 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
31656 order to allow ATCBs to be preallocated. In case of error, the ATCB is
31657 deallocated in System.Tasking.Stages.
31658
31659 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
31660 order to allow ATCBs to be preallocated.
31661
31662 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
31663 here. It was previously done in Initialize_ATCB.
31664
31665 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
31666
31667 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
31668 Restricted run time.
31669
31670 * exp_ch3.adb: When using the Restricted run time, pass the
31671 preallocated Ada_Task_Control_Block when creating a task.
31672
316732004-07-15 Ed Schonberg <schonberg@gnat.com>
31674
31675 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
31676 function call that is itself an actual in an enclosing call, diagnose
31677 problem here rather than assuming that resolution will catch it.
31678
31679 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
31680 the local copy of a generic unit for a formal package, and the generic
31681 is a child unit, install private part of ancestors before compiling
31682 private part of spec.
31683
31684 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
31685 use scope entities rather than tree structures, to handle properly
31686 parent units that are instances rewritten as bodies for inlining
31687 purposes.
31688
31689 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
31690 Remove_Parents): Handle properly a parent unit that is an
31691 instantiation, when the unit has been rewritten as a body for inlining
31692 purposes.
31693
31694 * par.adb (Goto_List): Global variable to collect goto statements in a
31695 given unit, for use in detecting natural loops.
31696
31697 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
31698 use in detecting natural loops.
31699
31700 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
31701 backwards goto's, and rewrite as a infinite loop, to improve locality
31702 of temporaries.
31703
31704 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
31705 subcomponent that includes an indexed reference, to prevent the
31706 generation of copies that would miscompile the desired assignment
31707 statement.
31708 (Build_Task_Image_Decls): Add a numeric suffix to
31709 generated name for string variable, to avoid spurious conflicts with
31710 the name of the type of a single protected object.
31711
31712 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
31713 loop with an explicit exit statement, to avoid generating an
31714 out-of-range value with 'Succ leading to spurious constraint_errors
31715 when compiling with -gnatVo.
31716
317172004-07-15 Thomas Quinot <quinot@act-europe.fr>
31718
31719 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
31720 might not be analyzed yet, even if its Etype is already set (case of an
31721 unchecked conversion built using Unchecked_Convert_To, for example).
31722 If the prefix has already been analyzed, this will be a nop anyway.
31723
31724 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
31725 controller type, or an assignment of a record type with controlled
31726 components, copy only user data, and leave the finalization chain
31727 pointers untouched.
31728
317292004-07-15 Vincent Celier <celier@gnat.com>
31730
31731 * make.adb (Collect_Arguments): Improve error message when attempting
31732 to compile a source not part of any project, when -x is not used.
31733
31734 * prj.ads: (Defined_Variable_Kind): New subtype
31735
31736 * prj-attr.adb (Register_New_Package): Two new procedures to register
31737 a package with or without its attributes.
31738 (Register_New_Attribute): Mew procedure to register a new attribute in a
31739 package.
31740 New attribute oriented subprograms: Attribute_Node_Id_Of,
31741 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31742 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31743 Next_Attribute.
31744 New package oriented subprograms: Package_Node_Id_Of,
31745 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31746
31747 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
31748 type.
31749 (Package_Node_Id): Now a private, self initialized type
31750 (Register_New_Package): New procedure to register a package with its
31751 attributes.
31752 New attribute oriented subprograms: Attribute_Node_Id_Of,
31753 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31754 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31755 Next_Attribute.
31756 New package oriented subprograms: Package_Node_Id_Of,
31757 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31758
31759 * prj-dect.adb (Parse_Attribute_Declaration,
31760 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
31761
31762 * prj-makr.adb (Make): Parse existing project file before creating
31763 other files. Fail if there was an error during parsing.
31764
31765 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
31766 new spec of Prj.Attr.
31767
31768 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
31769 to new spec of Prj.Attr.
31770
317712004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31772
31773 * utils2.c: Fix typo in comment.
31774
317752004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
54805e13
RK
31776
31777 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
31778 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
31779
a1c7af89
AS
317802004-07-14 Andreas Schwab <schwab@suse.de>
31781
31782 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
31783
a5cb3b30
AC
317842004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31785
31786 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
31787 object type.
31788 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
31789 TYPE_STUB_DECL.
31790
31791 * misc.c (gnat_types_compatible_p): New function.
31792 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
31793 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
31794
31795 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
31796 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
31797 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
31798 (mark_visited): Don't mark dummy type.
6615c446 31799 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
a5cb3b30
AC
31800 parameter, we must remove any LJM building from GNU_NAME.
31801 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
31802 (pos_to_constructor): Use int_const_binop.
31803 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
31804 PARM_DECL.
31805
31806 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
31807 (gnat_pushlevel): Set TREE_USE on BLOCK node.
31808 (gnat_install_builtins): Add __builtin_memset.
31809
318102004-07-13 Olivier Hainque <hainque@act-europe.fr>
31811
31812 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
31813 for a renaming, stabilize the initialization expression if we are at a
31814 local level. At the local level, uses of the renaming may be performed
31815 by a direct dereference of the initializing expression, and we don't
31816 want possible variables there to be evaluated for every use.
31817
31818 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
31819 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
31820 them on the way. Account for the fact that we may introduce side
31821 effects in the process.
31822
0976078c
RH
318232004-07-13 Richard Henderson <rth@redhat.com>
31824
31825 * misc.c (default_pass_by_ref): Use pass_by_reference.
31826
9dcf6e73
JM
318272004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
31828
31829 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
31830 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
31831
ac45df5d
RH
318322004-07-08 Richard Henderson <rth@redhat.com>
31833
31834 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
31835 commentary.
31836
15ce9ca2
AC
318372004-07-06 Vincent Celier <celier@gnat.com>
31838
31839 * vms_conv.ads: Minor reformatting.
31840 Alphabetical order for enumerated values of type Command_Type, to have
31841 the command in alphabetical order for the usage.
31842
31843 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
31844 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
31845
31846 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
31847
31848 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
31849 (Add_Archive_Path): Only add the global archive if there is one.
31850 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
31851 or not any object file to put in the global archive, and don't build
31852 a global archive if there is none.
31853 (X_Switches): New table
31854 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
31855 in the X_Switches table, if any.
31856 (Initialize): Make sure the X_Switches table is empty
31857 (Scan_Arg): Record -X switches in table X_Switches
31858
31859 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
31860
31861 * make.adb: Minor comment fix
31862
31863 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
31864 invoked with directory information, add the directory in front of the
31865 path.
31866
31867 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
31868 invoked with directory information, add the directory in front of the
31869 path.
31870
31871 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
31872 when Keep_Temporary_Files is False.
31873 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
31874 directory information, add the directory in front of the path.
31875 When not on VMS, handle new switch -dn before the command to set
31876 Keep_Temporary_Files to True.
31877 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
31878 everywhere.
31879
31880 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
31881 invoked with directory information, add the directory in front of the
31882 path.
31883
318842004-07-06 Thomas Quinot <quinot@act-europe.fr>
31885
31886 * snames.ads, snames.adb (Name_Stub): New name for the distributed
31887 systems annex.
31888
31889 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
31890 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
31891
31892 * g-socket.adb (To_Timeval): Fix incorrect conversion of
31893 Selector_Duration to Timeval for the case of 0.0.
31894
31895 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
31896 documentation from Evolve_And_Then.
31897
318982004-07-06 Jose Ruiz <ruiz@act-europe.fr>
31899
31900 * s-taprop-tru64.adb, s-taprop-os2.adb,
31901 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
31902
319032004-07-06 Robert Dewar <dewar@gnat.com>
31904
31905 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
31906 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
31907 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
31908 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
31909 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
31910 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
31911 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
31912 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
31913 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
31914 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
31915 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
31916 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
31917 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
31918 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
31919 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
31920 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
31921 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
31922 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
31923 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
31924 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
31925 vms_data.ads: Minor reformatting,
31926 Fix bad box comment format.
31927
31928 * gnat_rm.texi: Fix minor grammatical error
31929
31930 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
31931
31932 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
31933 more cases of discriminated records to be recognized as not needing a
31934 secondary stack.
31935 (Has_Access_Values): New function.
31936
31937 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
31938
31939 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
31940 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
31941 with LRM terminology).
31942 Change terminology in comments primitive type => elementary type.
31943
319442004-07-06 Ed Schonberg <schonberg@gnat.com>
31945
31946 PR ada/15602
31947 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
31948 parameters do not impose any requirements on the presence of a body.
31949
319502004-07-06 Ed Schonberg <schonberg@gnat.com>
31951
31952 PR ada/15593
31953 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
31954 compilation unit and is in an open scope at the point of instantiation,
31955 assume that a body may be present later.
31956
319572004-07-06 Ed Schonberg <schonberg@gnat.com>
31958
31959 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
31960 Improve error message when specified size is not supported.
31961
31962 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
31963 is never a primitive operation.
31964
cb42deba
AS
319652004-07-05 Andreas Schwab <schwab@suse.de>
31966
31967 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
31968 RECORD_OR_UNION_CHECK.
31969 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
31970
98877933
KC
319712004-07-04 Kelley Cook <kcook@gcc.gnu.org>
31972
31973 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
31974 dependency on xgnatugn, instead build it via a submake.
31975 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
31976
8fff4fc1
RH
319772004-07-04 Richard Henderson <rth@redhat.com>
31978
31979 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
31980
4dfa0342
RH
319812004-07-01 Richard Henderson <rth@redhat.com>
31982
31983 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
31984 * utils.c (max_size): Likewise.
31985
909f21b3
RK
319862004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31987
31988 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
31989 and rest_of_type_compilation; add arg to create_*_decl.
15cd18b9 31990 (annotate_decl_with_node): Deleted.
909f21b3
RK
31991 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
31992 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
31993 (get_current_block_context, gnat_pushdecl): New declarations.
31994 (gnat_init_stmt_group): Likewise.
31995 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
31996 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
31997 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
31998 (gnat_init): Call gnat_init_stmt_group.
31999 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32000 (gnu_pending_elaboration_list): Deleted.
32001 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32002 (gigi): Rearrange initialization calls and move some to last above.
32003 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32004 Delete calls to add_decl_expr; add arg to create_*_decl.
32005 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
6615c446 32006 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
909f21b3
RK
32007 begin_subprog_body and call it.
32008 Don't push and pop ggc context.
32009 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32010 (add_stmt): Remove handling of DECL_EXPR from here.
32011 If not in function, mark visited.
32012 (add_decl_expr): Put global at top level.
32013 Check for cases of DECL_INITIAL we have to handle here.
32014 (process_type): Add extra arg to create_type_decl.
32015 (build_unit_elab): Rework to just gimplify.
32016 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32017 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32018 (get_pending_elaborations, pending_elaborations_p): Likewise.
32019 (push_pending_elaborations, pop_pending_elaborations): Likewise.
32020 (get_elaboration_location, insert_elaboration_list): Likewise.
32021 (gnat_binding_level): Renamed from ada_binding_level.
32022 (init_gnat_to_gnu): Don't clear pending_elaborations.
32023 (global_bindings_p): Treat as global if no current_binding_level.
32024 (set_current_block_context): New function.
32025 (gnat_pushdecl): Renamed from pushdecl; major rework.
32026 All callers changed.
32027 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32028 (finish_record_type): Call call pushdecl for stub decl.
32029 (function_nesting_depth): Deleted.
32030 (begin_subprog_body): Delete obsolete code.
32031 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
6615c446 32032
246d2ceb
AC
320332004-06-28 Robert Dewar <dewar@gnat.com>
32034
32035 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32036 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32037 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32038 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32039 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32040
32041 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32042 deal with problem of inefficient slices on machines with strict
32043 alignment, when the slice is a component of a composite.
32044
32045 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32046 machines, we need the check there as well.
32047
320482004-06-28 Ed Schonberg <schonberg@gnat.com>
32049
32050 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32051 determine safe copying direction for overlapping slice assignments
32052 when component is controlled.
32053
32054 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32055 formal derived type in the actual for a formal package are visible in
32056 the enclosing instance.
32057
320582004-06-28 Ed Schonberg <schonberg@gnat.com>
32059
32060 PR ada/15600
32061 * sem_util.adb (Trace_Components): Diagnose properly an illegal
32062 circularity involving a private type whose completion includes a
32063 self-referential component.
32064 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32065 renaming or an instantiation from an implicit derived operation.
32066
320672004-06-28 Pascal Obry <obry@gnat.com>
32068
32069 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32070 DLL.
32071 (Library_File_Name_For): Idem.
32072
320732004-06-28 Matthew Gingell <gingell@gnat.com>
32074
32075 * g-traceb.ads: Add explanatory note on the format of addresses
32076 expected by addr2line.
32077
320782004-06-28 Jerome Guitton <guitton@act-europe.fr>
32079
32080 * Makefile.in: Force debugging information on s-tasdeb.adb,
32081 a-except.adb and s-assert.adb needed by the debugger.
32082
320832004-06-28 Vincent Celier <celier@gnat.com>
32084
32085 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32086 Need_To_Build_Lib.
32087 (Gnatmake): Ditto.
32088
32089 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32090
32091 * prj.adb: Minor reformatting
32092 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32093
32094 * prj.ads: Comment updates
32095 Minor reformatting
32096 (Project_Data): Change Flag1 to Need_To_Build_Lib.
32097 Remove Flag2: not used.
32098
32099 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32100 declaration.
32101
32102 * gnat_ugn.texi: Put a "null;" declaration in one project file example
32103
32104 * gnat_rm.texi: Document Empty declarations "null;".
32105
32106 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32107 front of the linker options.
32108 (Link_Foreign): Put the global archives and the libraries in front of
32109 the linker options.
32110
321112004-06-28 Javier Miranda <miranda@gnat.com>
32112
32113 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32114 (RTU_Loaded): Code cleanup
32115 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32116 withed predefined units.
32117
32118 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32119 explicitly withed predefined units.
32120 Fix typo in comment
32121
32122 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32123 explicitly withed predefined units.
32124
bce3da32
RK
321252004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32126
32127 * ada-tree.def (DECL_STMT): Deleted.
32128 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32129 (DECL_STMT_VAR): Deleted.
32130 * decl.c: add_decl_stmt now add_decl_expr.
32131 * gigi.h: Likewise.
32132 * trans.c: Likewise.
15cd18b9 32133 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
bce3da32
RK
32134 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32135 (add_stmt): Only handle padded type here.
32136 (add_stmt_with_node): Allow gnat_node to not be present.
32137 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32138 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32139 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32140 make a SAVE_EXPR for the entire fat pointer.
32141 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32142 (create_index_type): Make a DECL_EXPR.
32143 (end_subprog_body): Don't call allocate_struct_function here but
32144 do clear cfun.
32145
0da2c8ac
AC
321462004-06-25 Pascal Obry <obry@gnat.com>
32147
32148 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32149 Relocatable from Build_Dynamic_Library call.
32150
32151 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32152 Relocatable are now synonym.
32153
32154 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32155
32156 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32157 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32158 call.
32159
32160 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32161 Lib_Address and Relocatable.
32162 (Default_DLL_Address): Removed.
32163
6615c446
JO
32164 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32165 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
0da2c8ac
AC
32166 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32167 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32168 (Default_DLL_Address): Removed.
32169
32170 * mlib-tgt-mingw.adb: Ditto.
32171 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32172
32173 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32174 the initial thread stack size.
32175
32176 * a-strmap.ads: Move package L to private part as it is not used in
32177 the spec. Found while reading code.
32178
321792004-06-25 Olivier Hainque <hainque@act-europe.fr>
32180
32181 * tracebak.c: Introduce support for a GCC infrastructure based
32182 implementation of __gnat_backtrace.
32183
32184 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32185 any more. Use accessors instead. This eases maintenance and relaxes
32186 some alignment constraints.
32187 (_GNAT_Exception structure): Remove the Ada specific fields
32188 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32189 a-exexpr.adb.
32190 (is_handled_by, __gnat_eh_personality): Replace component references to
32191 exception structure by use of the new accessors.
32192
32193 * init.c (__gnat_initialize): Adjust comments to match the just
32194 reverted meaning of the -static link-time option.
32195
32196 * adaint.c (convert_addresses): Arrange not to define a stub for
32197 mips-irix any more, as we now want to rely on a real version from a
32198 recent libaddr2line.
32199
32200 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32201 the personality routine can use them and not have to rely on a C
32202 counterpart of the record anymore. This simplifies maintenance and
32203 relaxes the constraint of having Standard'Maximum_Alignment match
32204 BIGGEST_ALIGNMENT.
32205 Update comments, and add a section on the common header alignment issue.
32206
322072004-06-25 Geert Bosch <bosch@gnat.com>
32208
32209 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32210 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32211
322122004-06-25 Robert Dewar <dewar@gnat.com>
32213
32214 * gnat_rm.texi: Fix section on component clauses to indicate that the
32215 restriction on byte boundary placement still applies for bit packed
32216 arrays.
32217 Add comment on stack usage from Initialize_Scalars
32218
32219 * gnat_ugn.texi: Add documentation for -gnatyLnnn
32220
32221 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32222 limiting nesting level.
32223
32224 * usage.adb: Add line for -gnatyLnnn switch
32225
32226 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32227 sem_ch13.adb, exp_aggr.adb: Minor reformatting
32228
32229 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32230 type as well as on the subtype. This corrects a problem in freeze in
32231 setting alignments of atomic types.
32232
32233 * sem_eval.ads: Minor comment typo fixed
32234
32235 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32236 level. Minor reformatting.
32237
32238 * fname.adb (Is_Predefined_File_Name): Require a letter after the
32239 minus sign. This means that file names like a--b.adb will not be
32240 considered predefined.
32241
32242 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32243 record Test new flag and give diagnostic for bad component clause.
32244 (Freeze_Entity): Set alignment of array from component alignment in
32245 cases where this is safe to do.
32246
32247 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32248 arrays.
32249
32250 * cstand.adb: (Create_Standard): Set alignment of String to 1
32251
32252 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32253
32254 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32255 code in the common constrained array cases.
32256
32257 * a-storio.adb: Change implementation to avoid possible alignment
32258 problems on machines requiring strict alignment (data should be moved
32259 as type Buffer, not type Elmt).
32260
32261 * checks.adb (Apply_Array_Size_Check): Improve these checks by
32262 killing the overflow checks which we really do not need (64-bits is
32263 enough).
32264
322652004-06-25 Vincent Celier <celier@gnat.com>
32266
32267 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32268 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32269 inconditionally for the main project.
32270 (Recursive_Add_Archives.Add_Archive_Path): New procedure
32271 (Link_Executables.Check_Time_Stamps): New procedure
32272 (Link_Executables.Link_Foreign): New procedure
32273 Changes made to reduce nesting level of this package
32274 (Check): New procedure
32275 (Add_Switches): When not in quiet output, check that a switch is not
32276 the concatenation of several valid switches. If it is, issue a warning.
32277 (Build_Global_Archive): If the global archive is rebuilt, linking need
32278 to be done.
32279 (Compile_Sources): Rebuilding a library archive does not imply
32280 rebuilding the global archive.
32281 (Build_Global_Archive): New procedure
32282 (Build_Library): New name for Build_Archive, now only for library
32283 project
32284 (Check_Archive_Builder): New procedure
32285 (Create_Global_Archive_Dependency_File): New procedure
32286 (Gprmake): Call Build_Global_Archive before linking
32287 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32288 throughout.
32289 (Scan_Arg): Display the Copyright notice when -v is used
32290
32291 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32292 for gnatls.
32293
32294 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32295 COMPILE.
32296 Add new GNAT LIST qualifier /FILES=
32297 Added qualifier /DIRECTORY= to GNAT METRIC
32298 Added qualifier /FILES= to GNAT METRIC
32299 Added qualifier /FILES to GNAT PRETTY
32300
32301 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32302 to take into account both versions of the switch.
32303
32304 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32305 always be the last switch to the gcc driver. Disable switch storing so
32306 that switches automatically added by the gcc driver are not put in the
32307 ALI file.
32308
32309 * prj.adb (Project_Empty): Take into account changes in components of
32310 Project_Data.
32311
32312 * prj.ads (Languages_Processed): New enumaration value All_Languages.
32313
32314 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32315 used. Split Boolean component Ada_Sources_Present in two Boolean
32316 components Ada_Sources_Present and Other_Sources_Present.
32317 Minor reformatting
32318
32319 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32320 instead of Sources_Present.
32321 (Set_Ada_Paths.Add.Recursive_Add): Ditto
32322
32323 * prj-nmsc.adb: Minor reformatting
32324 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32325 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32326 Check_Ada_Naming_Scheme.
32327 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32328 throughout.
32329
32330 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32331 In_Limited.
32332 Make sure that all cycles where there is at least one "limited with"
32333 are detected.
32334 (Parse_Single_Project): New Boolean parameter In_Limited
32335
32336 * prj-proc.adb (Recursive_Check): When Process_Languages is
32337 All_Languages, call first Prj.Nmsc.Ada_Check, then
32338 Prj.Nmsc.Other_Languages_Check.
32339
32340 * prj-proc.adb (Process): Use Ada_Sources_Present or
32341 Other_Sources_Present (instead of Sources_Present) depending on
32342 Process_Languages.
32343
32344 * lang-specs.h: Keep -g and -m switches in the same order, and as the
32345 last switches.
32346
32347 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32348 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32349 False.
32350 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32351 False.
32352
32353 * lib.ads (Disable_Switch_Storing): New procedure.
32354
32355 * make.adb: Modifications to reduce nesting level of this package.
32356 (Check_Standard_Library): New procedure
32357 (Gnatmake.Check_Mains): New procedure
32358 (Gnatmake.Create_Binder_Mapping_File): New procedure
32359 (Compile_Sources.Compile): Add switch -gnatez as the last option
32360 (Display): Never display -gnatez
32361
6615c446 32362 * Makefile.generic:
0da2c8ac
AC
32363 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32364
32365 * gnatcmd.adb (Check_Project): New function
32366 (Process_Link): New procedure to reduce nesting depth
32367 (Check_Files): New procedure to reduce the nesting depth.
32368 For GNAT METRIC, include the inherited sources in extending projects.
32369 (GNATCmd): When GNAT LS is invoked with a project file and no files,
32370 add the list of files from the sources of the project file. If this list
32371 is too long, put it in a temp text files and use switch -files=
32372 (Delete_Temp_Config_Files): Delete the temp text file that contains
32373 a list of source for gnatpp or gnatmetric, if one has been created.
32374 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32375 in the project file is too large, create a temporary text file that
32376 list them and pass it to the tool with "-files=<temp text file>".
32377 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32378
32379 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32380 generated file is in not in Ada.
32381
32382 * gnatls.adb: Remove all parameters And_Save that are no longer used.
32383 (Scan_Ls_Arg): Add processing for -files=
32384 (Usage): Add line for -files=
32385
32386 * g-os_lib.adb (On_Windows): New global constant Boolean flag
32387 (Normalize_Pathname): When on Windows and the path starts with a
32388 directory separator, make sure that the resulting path will start with
32389 a drive letter.
32390
32391 * clean.adb (Clean_Archive): New procedure
32392 (Clean_Project): When there is non-Ada code, delete the global archive,
32393 the archive dependency files, the object files and their dependency
32394 files, if they exist.
32395 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32396
323972004-06-25 Thomas Quinot <quinot@act-europe.fr>
32398
32399 * sinfo.ads: Fix typo in comment.
32400
32401 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32402 the TSS for remote access-to-subprogram types, since these TSS are
32403 always present once the type has been analyzed.
32404 (RAS_E_Dereference): Same.
32405
32406 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32407 reference raises Bad_Attribute, mark the reference as analyzed so the
32408 node (and any children resulting from rewrites that could have occurred
32409 during the analysis that ultimately failed) is not analyzed again.
32410
32411 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32412
32413 * exp_dist.adb: Minor comment fix.
32414
32415 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32416 type is an anonymous access type, no unchecked deallocation of the
32417 allocated object can occur. If the object is controlled, attach it with
32418 a count of 1. This allows attachment to the Global_Final_List, if
32419 no other relevant list is available.
32420 (Get_Allocator_Final_List): For an anonymous access type that is
32421 the type of a discriminant or record component, the corresponding
32422 finalisation list is the one of the scope of the type.
32423
324242004-06-25 Ed Schonberg <schonberg@gnat.com>
32425
32426 * sem_ch3.adb (Replace_Type): When computing the signature of an
32427 inherited subprogram, use the first subtype if the derived type
32428 declaration has no constraint.
32429
32430 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32431 before applying previous optimization. Minor code cleanup.
32432
32433 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32434 placed at the beginning of an unpacked record without explicit
32435 alignment, a slice of it will be aligned and does not need a copy when
32436 used as an actual.
32437
324382004-06-25 Ed Schonberg <schonberg@gnat.com>
32439
32440 PR ada/15591
32441 PR ada/15592
32442 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32443 reference is written with expressions mimicking parameters.
32444
324452004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
32446
32447 PR ada/15589
32448 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32449 STEP 2a. The constraints of a full type declaration of a derived record
32450 type are checked for conformance with those declared in the
32451 corresponding private extension declaration. The message
32452 "not conformant with previous declaration" is emitted if an error is
32453 detected.
32454
324552004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
32456
32457 * g-traceb.ads: Document the need for -E binder switch in the spec.
32458
32459 * g-trasym.ads: Document the need for -E binder switch in the spec.
32460
324612004-06-25 Jose Ruiz <ruiz@act-europe.fr>
32462
32463 * sem_prag.adb: Add handling of pragma Detect_Blocking.
32464
32465 * snames.h, snames.ads, snames.adb: Add entry for pragma
32466 Detect_Blocking.
32467
32468 * s-rident.ads: Change reference to pragma Detect_Blocking.
32469
32470 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32471 system.ads.
32472
32473 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32474 to indicate whether pragma Detect_Blocking is active.
32475
32476 * par-prag.adb: Add entry for pragma Detect_Blocking.
32477
32478 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32479 of not handling WITH.
32480 Note that this replaces the previous update which was incorrect.
32481
324822004-06-25 Javier Miranda <miranda@gnat.com>
32483
32484 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32485 use-clauses to have a clean environment.
32486
32487 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32488 the installation of the use-clauses to stablish a clean environment in
32489 case of compilation of a separate unit; otherwise the call to
32490 use_one_package is protected by the barrier Applicable_Use.
32491
32492 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32493 the installation of the use-clauses to stablish a clean environment in
32494 case of compilation of a separate unit.
32495 (End_Use_Clauses): Minor comment cleanup.
32496
324972004-06-25 Sergey Rybin <rybin@act-europe.fr>
32498
32499 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32500
65355d53
RH
325012004-06-23 Richard Henderson <rth@redhat.com>
32502
32503 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32504
c0e3aa48
RK
325052004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32506
32507 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32508 now bool instead of int.
32509 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32510 * trans.c (gnu_switch_label_stack): New function.
32511 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32512 elaboration of renamed entity returns.
32513 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32514 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32515 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32516 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32517 DECL_SIZE_UNIT and simplify variable-sized case.
32518 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32519 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32520 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32521 (build_unit_elab): Disable for now.
32522 * utils.c (mark_visited): New function.
32523 (pushdecl): Walk tree to call it for global decl.
32524 (update_pointer_to): Update all variants of pointer and ref types.
32525 Add arg to COMPONENT_REF.
32526 (convert): Likewise.
32527 Move check for converting between variants lower down.
32528 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32529 (build_allocator): Don't force type of MODIFY_EXPR.
32530 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32531 put_var_into_stack.
32532
966389ee
RK
325332004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32534
32535 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32536 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32537 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32538 subprograms.
32539 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32540 all callers changed.
32541 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32542 the way that EXIT_STMT finds the loop label.
32543 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32544 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32545 (add_stmt): Use annotate_with_locus insted of setting directly.
32546 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32547 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32548 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32549 (build_vms_descriptor): Add extra args to ARRAY_REF.
32550 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32551 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32552 New cases.
32553 (build_binary_op): Don't make explicit CONVERT_EXPR.
32554 Add extra rgs to ARRAY_REF.
32555
cc335f43
AC
325562004-06-14 Pascal Obry <obry@gnat.com>
32557
32558 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32559 Windows. Fix minor typo.
32560
32561 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32562 which is now supported on Windows. With this implementation using the
32563 Library Project feature is no different on Windows than on UNIX.
32564
325652004-06-14 Vincent Celier <celier@gnat.com>
32566
32567 * makegpr.adb (Compile_Sources): Nothing to do when there are no
32568 non-Ada sources.
32569
32570 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
32571
32572 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
32573 found, show the project name and the path of the previously parsed
32574 project file.
32575
325762004-06-14 Ed Schonberg <schonberg@gnat.com>
32577
32578 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
32579 array, avoid copying the actual before the call.
32580
325812004-06-14 Thomas Quinot <quinot@act-europe.fr>
32582
32583 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
32584 Instead, allocate memory on worst-case alignment assumptions, and then
32585 return an aligned address within the allocated zone.
32586
325872004-06-14 Robert Dewar <dewar@gnat.com>
32588
32589 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
32590 elab entities in predefined units in No_Run_Time_Mode.
32591 (Gen_Adainit_C): Same fix
32592 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
32593 units in No_Run_Time_Mode
32594 (Gen_Elab_Calls_C): Same fix
32595
32596 * symbols-vms-alpha.adb: Minor reformatting
32597
32598 * g-debpoo.ads: Minor reformatting
32599
32600 * lib.adb (In_Same_Extended_Unit): Version working on node id's
32601
32602 * lib.ads (In_Same_Extended_Unit): Version working on node id's
32603
32604 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
32605 working on nodes.
32606
32607 * make.adb: Minor reformatting
32608
32609 * par-ch12.adb: Minor reformatting
32610
32611 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
32612
32613 * prj-strt.adb: Minor reformatting
32614
32615 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
32616 be more general.
32617
32618 * sem_attr.adb: Minor reformatting
32619
32620 * sem_ch7.adb: Minor reformatting
32621
32622 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
32623 for type in the same unit as the object declaration.
32624
32625 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
32626 static string expressions and not just string literals.
32627 Minor reformatting
32628 (Set_Warning): Reset restriction warning flag for restriction pragma
32629 Implement pragma Profile_Warnings
32630 Implement pragma Profile (Restricted)
32631 Give obolescent messages for old restrictions and pragmas
32632
32633 * snames.h, snames.ads, snames.adb: Add new entry for pragma
32634 Profile_Warnings.
32635
32636 * s-rident.ads: Add declarations for restrictions required by profile
32637 Restricted and profile Ravenscar.
32638
32639 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
32640
32641 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
32642 configuration pragmas.
32643
5453d5bd
AC
326442004-06-11 Vincent Celier <celier@gnat.com>
32645
32646 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
32647 gnatsym, when symbol policy is Restricted.
32648
32649 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
32650 gnatsym, when symbol policy is Restricted.
32651
32652 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
32653 read the symbol file.
32654 (Finalize): Fail in symbol policy Restricted if a symbol in the original
32655 symbol file is not in the object files. Do not create a new symbol file
32656 when symbol policy is Restricted.
32657
32658 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
32659 in Scng.
32660
32661 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
32662 Restricted.
32663 (Usage): Line for new switch -R
32664
32665 * make.adb (Initialize): When the platform is not VMS, add the
32666 directory where gnatmake is invoked in the front of the path, if
32667 gnatmake is invoked with directory information. Change the Scan_Args
32668 while loop to a for loop.
32669 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
32670 if Depth is equal or greater than the proposed depth, there is nothing
32671 to do.
32672 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
32673 instead of 0.
32674
32675 * prj.ads: Add new symbol policy Restricted.
32676
32677 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
32678 with the new parameters Check_All_Labels and Case_Location.
32679
32680 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
32681 (Library_Symbol_File needs to be defined).
32682
32683 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
32684 and Case_Location If Check_All_Labels is True, check that all values of
32685 the string type are used, and output warning(s) if they are not.
32686
32687 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
32688 and Case_Location.
32689
32690 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
32691
32692 * gnat_ugn.texi: Update documentation about the library directory in
32693 Library Projects.
32694
32695 * makegpr.adb (Display_Command): In verbose mode, also display the
32696 value of the CPATH env var, when the compiler is gcc.
32697 (Initialize): Change the Scan_Args while loop to a for loop
32698 (Compile_Individual_Sources): Change directory to object directory
32699 before compilations.
32700
32701 * symbols.ads: New symbol policy Restricted.
32702
327032004-06-11 Olivier Hainque <hainque@act-europe.fr>
32704
32705 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
32706 is now taken care of internally in the Exception_Propagation package
32707 and does not require clients assistance any more.
32708
32709 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
32710 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
32711 functions. Helpers to maintain a predicate required in the handling of
32712 occurrence transfer between tasks.
32713 This is now handled internally and does not require clients assistance
32714 for the setup/propagate separation anymore.
32715 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
32716 allocation strategy, handle the Setup_And_Not_Propagated predicate and
32717 document.
32718
32719 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
32720 raise_after_setup, now that everything is handled internally within the
32721 setup/propagation engine.
32722
327232004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
32724
32725 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
32726 Add additional conditions for the case of an actual being a simple
32727 name or literal. Improve inlining by preventing the generation
32728 of temporaries with a short lifetime (one use).
32729
327302004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
32731
32732 PR ada/15587
5453d5bd
AC
32733 * einfo.ads: Minor comment updates for Has_Completion and
32734 E_Constant list of flags.
32735
32736 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
32737 and constant redeclarations now set the Has_Completion flag of their
32738 defining identifiers.
32739
32740 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
32741 Inspect_Deferred_Constant_Completion.
32742 Used to detect private deferred constants that have not been completed
32743 either by a constant redeclaration or pragma Import. Emits error message
32744 "constant declaration requires initialization expression".
32745
32746 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
32747 completes a deferred constant.
32748
327492004-06-11 Geert Bosch <bosch@gnat.com>
32750
32751 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
32752
32753 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
32754 calculating exponent for scaling denormal numbers.
32755 (Leading_Part): Properly raise Constraint_Error for zero or negative
32756 Adjustment.
32757 (Remainder): Properly raise Constraint_Error for zero divisor.
32758
327592004-06-11 Thomas Quinot <quinot@act-europe.fr>
32760
32761 * sem_util.adb: Minor reformatting.
32762
32763 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
32764 dereference when accessing the entry parameter record.
32765 (Check_Array_Type): Always check for possible implicit dereference.
32766 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32767 Abort if a pointer is still present (denoting that an implicit
32768 dereference was left in the tree by the front-end).
32769
32770 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
32771 dereference when accessing the entry parameter record.
32772 (Check_Array_Type): Always check for possible implicit dereference.
32773 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32774 Abort if a pointer is still present (denoting that an implicit
32775 dereference was left in the tree by the front-end).
32776
327772004-06-11 Emmanuel Briot <briot@act-europe.fr>
32778
32779 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
32780 message, like the compiler itself does. Easier to parse the output.
32781
32782 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
32783
32784 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
32785 be base names, and not includes directories.
32786
327872004-06-11 Arnaud Charlet <charlet@act-europe.fr>
32788
32789 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
32790 so that dependencies are properly taken into account by make.
32791
327922004-06-11 Arnaud Charlet <charlet@act-europe.fr>
32793
32794 PR ada/15622
32795 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
32796 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
32797
327982004-06-11 Jerome Guitton <guitton@act-europe.fr>
32799
32800 * Makefile.in (install-gnatlib): install target-specific run-time files.
32801
32802 * Make-lang.in: Remove obsolete targets.
32803
328042004-06-11 Ed Schonberg <schonberg@gnat.com>
32805
32806 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
32807 specification, to catch misuses of program unit names.
32808
32809 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
32810 superfluous conversions in an instance.
32811
328122004-06-11 Ed Schonberg <schonberg@gnat.com>
32813
32814 PR ada/15403
5453d5bd
AC
32815 * sem_ch12.adb (Save_References): If operator node has been folded to
32816 enumeration literal, associated_node must be discarded.
32817
328182004-06-11 Jose Ruiz <ruiz@act-europe.fr>
32819
32820 * s-stchop-vxworks.adb: Add required pragma Convention to
32821 Task_Descriptor because it is updated by a C function.
32822
a98f59be
AC
328232004-06-08 Arnaud Charlet <charlet@act-europe.fr>
32824
32825 PR ada/15568
a98f59be
AC
32826 * Makefile.in: Remove target specific SO_OPT on IRIX
32827
821e1ea1
RK
328282004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32829
32830 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
32831 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
32832 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
32833 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
32834 (STMT_STMT, USE_STMT): New statement codes.
32835 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
32836 * ada-tree.h: Reflect above changes.
15cd18b9 32837 (struct tree_loop_id): Deleted.
821e1ea1
RK
32838 (union lang_tree_node, struct lang_decl, struct lang_type):
32839 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
32840 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
32841 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
32842 (IS_ADA_STMT): New macro.
32843 * decl.c (annotate_decl_with_node): New function.
32844 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
32845 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
32846 Call add_stmt_with_node to do needed assignments.
32847 Add call to update setjmp buffer directly, not via EXPR_STMT.
32848 (maybe_variable): Argment GNAT_NODE deleted.
32849 * gigi.h (maybe_variable): Likewise.
32850 (make_transform, add_stmt_with_node, set_block_for_group): New.
32851 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
32852 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
32853 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
32854 (set_lineno, set_lineno_from_sloc): Likewise.
32855 (record_code_position, insert_code_for): Likewise.
32856 (gnat_poplevel): Now returns void.
32857 (end_subprog_body): Now takes argument.
32858 * misc.c (cgraph.h, tree-inline.h): New includes.
32859 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
32860 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
32861 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
32862 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
32863 (gnat_parse_file): Don't set immediate_size_expand.
32864 Call cgraph functions.
32865 (gnat_expand_expr): Remove most cases.
32866 (record_code_position, insert_code_for): Remove from here.
32867 * trans.c (toplev.h, tree-gimple.h): Now included.
32868 (discard_file_names): Deleted.
32869 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
32870 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
32871 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
32872 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
32873 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
32874 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
32875 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
32876 (set_block_for_group, add_stmt_list): Likewise.
32877 (start_stmt_group): Renamed from start_block_stmt.
32878 (end_stmt_group): Likewise, from end_block_stmt.
32879 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
32880 (gigi): Don't set discard_file_names or call set_lineno.
32881 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
32882 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
32883 Numerous changes throughout to reflect new names and complete
32884 function-at-a-time implementation.
32885 (gnat_expand_stmt): Delete or comment out all cases.
32886 (process_inlined_subprograms): Use add_stmt.
32887 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
32888 call set_lineno; also remove unneeded block handling.
32889 (process_type): Remove unneeded block handling.
32890 (build_unit_elab): Remove calls to deleted functions.
32891 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
32892 (tree-dump.h): Likewise.
32893 (struct ada_binding_level): Add field jmpbuf_decl.
32894 (gnat_define_builtin, gnat_install_builtins): New.
32895 (gnat_gimplify_function, gnat_finalize): Likewise.
32896 (gnat_poplevel): No longer return BLOCK, set it instead.
32897 Remove code dealing with nested functions.
32898 (gnat_init_decl_processing): Also set size_type_node.
32899 Call gnat_install_builtins.
32900 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
32901 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
32902 Remove special-case for "main".
32903 (end_subprog_body): Add arg and rework for tree-ssa.
32904 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
32905 Add case for BOOLEAN_TYPE.
32906 * utils2.c (rtl.h): Now include.
32907 (build_call_raise): Test Debug_Flag_NN directly.
32908 (build_call_alloc_dealloc): Don't use local stack allocation for now.
32909 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
32910 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
32911
0ab80019
AC
329122004-06-07 Robert Dewar <dewar@gnat.com>
32913
32914 * a-direct.ads, einfo.ads: Minor comment updates
32915
32916 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
32917 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
32918 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
32919 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
32920 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
32921
32922 * s-interr-sigaction.adb: Remove unreferenced variable
32923 (Attached_Interrupts). Minor reformatting.
32924 Avoid use of variable I (replace by J).
32925
32926 * par-ch10.adb: Fix text of one error message
32927
32928 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
32929 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
32930 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
32931 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
32932 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
32933 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
6615c446 32934 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
0ab80019
AC
32935 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
32936 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
32937 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
32938 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
32939 2005 support.
32940
329412004-06-07 Doug Rupp <rupp@gnat.com>
32942
32943 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
32944
32945 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
32946
32947 * mlib-tgt-vms-ia64.adb: New file.
32948
32949 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
32950 Add mlib-tgt-vms-ia64.adb
32951 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
32952 Move to alpha specific ifeq section.
32953 Add VMS specific versions of symbols.adb
32954 Renaming of 5q vms files.
32955
32956 * 5qsystem.ads renamed to system-vms_64.ads.
32957
329582004-06-07 Vincent Celier <celier@gnat.com>
32959
32960 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
32961 explain that when a time of day corresponding to the non existing hour
32962 on the day switching to DST is specified, Split may return a different
32963 value for Seconds.
32964
32965 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
32966 to GNAT PRETTY.
32967
32968 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
32969 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
32970
32971 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
32972 to False.
32973 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
32974 the linking options.
32975 (Build_Library.Check_Libs): On VMS, if there is a dependency on
32976 g-trasym.ads, set Gtrasymobj_Needed to True.
32977
32978 * prj-attr.adb: Add new package Metrics for gnatmetric
32979
32980 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
32981 canonical case to take into account files with upper case characters on
32982 Windows.
32983 (Ada_Check): Load the reference symbol file name in the name buffer to
32984 check it, not the symbol file name.
32985
32986 * snames.ads, snames.adb: Add standard name Metrics (name of project
32987 file package for gnatmetric).
32988
32989 * vms_conv.ads: Add Metric to Comment_Type
32990
32991 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
32992
32993 * vms_data.ads: Add qualifiers for GNAT METRIC
32994
32995 * makegpr.adb (Link_Executables): Take into account the switches
32996 specified in package Linker of the main project.
32997
329982004-06-07 Thomas Quinot <quinot@act-europe.fr>
32999
33000 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33001 the index of the last element is Units.Last, not Units.Table'Last
33002 (which is usually not a valid index within the actually allocated
33003 storage for the table).
33004
33005 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33006 determines whether to generate a call to a checked storage pool
33007 Dereference action.
33008 Generate such a call only for a dereference that either comes from
33009 source, or is the result of rewriting a dereference that comes from
33010 source.
33011
330122004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
33013
33014 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33015
330162004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
33017
33018 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33019 file level, elaborate the stride for inner dimensions in alignment
33020 units, not bytes.
33021
33022 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33023 in a comment.
33024
330252004-06-07 Javier Miranda <miranda@gnat.com>
33026
33027 * exp_ch6.adb: Correct wrong modification in previous patch
33028
330292004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
33030
33031 * g-trasym.ads: Corrected comment to properly reflect level of support
33032 on VMS.
33033
330342004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
33035
33036 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33037 includes case of a variable referenced on the left hand side of an
33038 assignment, therefore remove redundant code. Variables and prefixes of
33039 indexed or selected components are now marked as referenced on left
33040 hand side. Warnings are now properly emitted when variables or prefixes
33041 are assigned but not read.
33042
33043 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33044 left hand side referenced variables. Private access types do not
33045 produce the warning "variable ... is assigned but never read".
33046 Add also additional checks to left hand side referenced variables.
33047 Aliased, renamed objects and access types do not produce the warning
33048 "variable ... is assigned but never read" since other entities may read
33049 the memory location.
33050
330512004-06-07 Jerome Guitton <guitton@act-europe.fr>
33052
33053 * Makefile.in: In the powerpc/vxworks-specific section, restore
33054 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33055 by mistake).
33056
330572004-06-07 Ed Schonberg <schonberg@gnat.com>
33058
33059 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33060 predefined operators.
33061 Removes spurious type errors from g-trasym-vms.adb.
33062
33063 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33064 distinct from the operator appearing in the source, call appropriate
33065 routine to insert conversions when needed, and complete resolution of
33066 node.
33067 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33068 interpretations for rewritten right operand.
33069 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33070 the other operand is overloaded and the context is a type conversion.
33071
330722004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33073
33074 * ada-tree.def (BLOCK_STMT): Now has two operands.
33075 (BREAK_STMT): New.
33076
33077 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33078
33079 * gigi.h: (gnat_poplevel): Now returns a tree.
33080
33081 * trans.c (end_block_stmt): Add arg; all callers changed.
33082 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33083 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33084 (add_stmt): Set TREE_TYPE.
33085 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33086 (gnat_expand_stmt, case BREAK_STMT): New case.
33087
33088 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33089
330902004-06-07 Jose Ruiz <ruiz@act-europe.fr>
33091
33092 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33093 procedure Set_Stack_Size that is not needed.
33094
330952004-06-07 Sergey Rybin <rybin@act-europe.fr>
33096
33097 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33098 used for gnatpp input file and for the files upon which it depends
33099
331002004-06-07 Ben Brosgol <brosgol@gnat.com>
33101
33102 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33103
331042004-06-07 Arnaud Charlet <charlet@act-europe.fr>
33105
33106 * gnatvsn.ads: Bump version numbers appropriately.
33107 Add new build type.
33108
331092004-06-07 Pascal Obry <obry@gnat.com>
33110
33111 * gnat_ugn.texi: Improve comments about imported names and link names
33112 on Windows. Add a note about the requirement to use -k gnatdll's option
33113 when working with a DLL which has stripped stdcall symbols (no @nn
33114 suffix).
33115
8a36a0cc
AC
331162004-05-27 Vincent Celier <celier@gnat.com>
33117
33118 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33119 COMMENTS_LAYOUT=UNTOUCHED
33120
33121 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33122 symbols-vms-alpha.adb
33123
331242004-05-27 Thomas Quinot <quinot@act-europe.fr>
33125
33126 * sem.ads: Clarify documentation on checks suppression.
33127
33128 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33129
331302004-05-27 Ed Schonberg <schonberg@gnat.com>
33131
33132 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33133 the case of multiple derivations.
33134 (Is_Object_Reference): For a selected component, verify that the prefix
33135 is itself an object and not a value.
33136
33137 * sem_ch12.adb (Same_Instantiated_Constant): New name for
33138 Same_Instantiated_Entity.
33139 (Same_Instantiated_Variable): Subsidiary to
33140 Check_Formal_Package_Instance, to recognize actuals for in-out generic
33141 formals that are obtained from a previous formal package.
33142 (Instantiate_Subprogram_Body): Emit proper error when
33143 generating code and the proper body of a stub is missing.
33144
33145 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33146 has a universal interpretation, do the disambiguation here.
33147
33148 * exp_ch4.adb (Expand_N_Type_Conversion,
33149 Expand_N_Unchecked_Type_Conversion): Special handling when target type
33150 is Address, to avoid typing anomalies when Address is a visible integer
33151 type.
33152
33153 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33154 to determine whether a subprogram should not be marked Pure, even when
33155 declared in a pure package.
33156
331572004-05-27 Jose Ruiz <ruiz@act-europe.fr>
33158
33159 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33160
33161 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33162 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33163 Update the documentation about the Ravenscar profile, following the
33164 definition found in AI-249.
33165
33166 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33167 setting the Profile (Ravenscar). This must be done in addition to
33168 setting the required restrictions.
33169
33170 * rtsfind.ads: Add the set of operations defined in package
33171 Ada.Interrupts.
33172
33173 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33174 restriction.
33175
331762004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
33177
33178 lang-specs.h: Always require -c or -S and always redirect to /dev/null
33179 if -gnatc or -gnats is passed.
33180
331812004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
33182
33183 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33184 a significant reference. Warnings are now properly emitted when a
33185 discriminated type is not referenced.
33186
33187 * lib-xref.adb (Generate_Reference): A deferred constant completion,
33188 record representation clause or record type discriminant does not
33189 produce a reference to its corresponding entity. Warnings are now
33190 properly emitted when deferred constants and record types are not
33191 referenced.
33192
331932004-05-27 Geert Bosch <bosch@gnat.com>
33194
33195 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33196 Fixes ACATS Annex G tests.
33197
331982004-05-27 Robert Dewar <dewar@gnat.com>
33199
33200 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33201 handling WITH
33202
332032004-05-27 Arnaud Charlet <charlet@act-europe.fr>
33204
33205 * s-interr.adb (Server_Task): Take into account case of early return
33206 from sigwait under e.g. linux.
33207
332082004-05-27 Sergey Rybin <rybin@act-europe.fr>
33209
33210 * gnat_ugn.texi: Add description for the new gnatpp options:
33211 -rnb - replace the original source without creating its backup copy
33212 -c0 - do not format comments
33213
0fb2ea01
AC
332142004-05-24 Geert Bosch <bosch@gnat.com>
33215
33216 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33217 with 192 bits of precision, sufficient to reduce a double-extended
33218 arguments X with a maximum relative error of T'Machine_Epsilon, for X
33219 in -2.0**32 .. 2.0**32.
33220 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
33221 reduction by the processor, which only uses a 68-bit approximation of
33222 Pi.
33223 (Tan): Always reduce arguments and compute function either using
33224 the processor's fptan instruction, or by dividing sin and cos as needed.
33225
332262004-05-24 Doug Rupp <rupp@gnat.com>
33227
33228 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33229 gcc error on 32/64 bit VMS.
33230
332312004-05-24 Olivier Hainque <hainque@act-europe.fr>
33232
33233 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33234 since this is what we get for stack overflows although not documented
33235 as such.
33236 Document the issues which may require adjustments to our signal
33237 handlers.
33238
332392004-05-24 Ed Schonberg <schonberg@gnat.com>
33240
33241 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33242 enclosing dynamic scope if the instantiation is within a generic unit.
33243
332442004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33245
33246 * exp_dbug.ads: Fix typo.
33247
33248 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33249 Rename it to its proper name: system-linux-ia64.ads
33250 (stamp-gnatlib1): Remove extra target specific run time files when
33251 setting up the rts directory.
33252
332532004-05-24 Javier Miranda <miranda@gnat.com>
33254
33255 * einfo.ads, einfo.adb (Limited_Views): Removed.
33256 (Limited_View): New attribute that replaces the previous one. It is
33257 now a bona fide package with the limited-view list through the
33258 first_entity and first_private attributes.
33259
33260 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33261 limited-private-with clause.
33262 (Install_Limited_Withed_Unit): Install the private declarations of a
33263 limited-private-withed package. Update the installation of the shadow
33264 entities according to the new structure (see Build_Limited_Views)
33265 (Build_Limited_Views): Replace the previous implementation of the
33266 limited view by a package entity that references the first shadow
33267 entity plus the first shadow private entity (required for limited-
33268 private-with clause)
33269 (New_Internal_Shadow_Entity): Code cleanup.
33270 (Remove_Limited_With_Clause): Update the implementation to undo the
33271 new work carried out by Build_Limited_Views.
33272 (Build_Chain): Complete documentation.
33273 Replace Ada0Y by Ada 0Y in comments
33274 Minor reformating
33275
33276 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33277 types the level of accessibility depends on the enclosing type
33278 declaration.
33279
33280 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33281 entities. Complete documentation of previous change.
33282
332832004-05-24 Robert Dewar <dewar@gnat.com>
33284
33285 * namet.adb: Minor reformatting
33286 Avoid use of name I (replace by J)
33287 Minor code restructuring
33288
33289 * sem_ch6.adb: Minor reformatting
33290
33291 * lib-writ.adb: Do not set restriction as active if this is a
33292 Restriction_Warning case.
33293
33294 * sem_prag.adb: Reset restriction warning flag if real pragma
33295 restriction encountered.
33296
33297 * s-htable.adb: Minor reformatting
33298 Change rotate count to 3 in Hash (improves hash for small strings)
33299
33300 * 5qsystem.ads: Add comments for type Address (no literals allowed).
33301
33302 * gnat_ugn.texi: Add new section of documentation "Code Generation
33303 Control", which describes the use of -m switches.
33304
333052004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
33306
a1db9d9c
AC
33307 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33308 through the DECL_INITIAL for renamed variables.
0fb2ea01 33309
7599f1b0
AC
333102004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33311
33312 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33313
c37bb106
AC
333142004-05-19 Joel Brobecker <brobecker@gnat.com>
33315
33316 * exp_dbug.ads: Correct comments concerning handling of overloading,
33317 since we no longer use $ anymore.
33318
333192004-05-19 Sergey Rybin <rybin@act-europe.fr>
33320
33321 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33322 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33323 with illegal subunits.
33324
333252004-05-19 Ed Schonberg <schonberg@gnat.com>
33326
33327 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33328 body with front-end inlining enabled, check whether an inline pragma
33329 appears immediately after the body and applies to it.
33330
33331 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33332 enabled and the pragma appears after the body of the subprogram.
33333
b5e792e2
AC
333342004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33335
33336 Part of function-at-a-time conversion
33337
33338 * misc.c (adjust_decl_rtl): Deleted.
33339 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33340 Define.
33341
33342 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33343 (add_decl_stmt, add_stmt, block_has_vars): New functions.
33344 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33345
33346 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33347 when making a decl.
33348 (gnat_to_gnu_entity): Likewise.
33349 Use add_stmt to update setjmp buffer.
33350 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33351 flush_addressof.
33352 No longer call adjust_decl_rtl.
33353 (DECL_INIT_BY_ASSIGN_P): New macro.
33354 (DECL_STMT_VAR): Likewise.
33355
33356 * trans.c (gigi): Call start_block_stmt to make the outermost
33357 BLOCK_STMT.
33358 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33359 Call start_block_stmt and end_block_stmt temporarily.
33360 Use gnat_expand_stmt instead of expand_expr_stmt.
33361 (add_decl_stmt): New function.
33362 (tree_transform): Call it.
33363 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33364 (end_block_stmt): Set type and NULL_STMT.
33365 (gnat_expand_stmt): Make recursize call instead of calling
33366 expand_expr_stmt.
33367 (gnat_expand_stmt, case DECL_STMT): New case.
33368 (set_lineno_from_sloc): Do nothing if global.
33369 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33370 (start_block_stmt, add_stmt, end_block_stmt): New functions.
33371 (build_block_stmt): Call them.
33372 (gnat_to_code): Don't expand NULL_STMT.
33373 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33374 args.
33375 (tree_transform): Likewise.
33376 (tree_transform, case N_Null_Statement): Return NULL_STMT.
33377 (gnat_expand_stmt, case NULL_STMT): New case.
33378 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33379 IF_STMT_TRUE.
33380
33381 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33382 TREE_ADDRESSABLE.
33383
33384 * utils.c (create_var_decl): Do not call expand_decl or
33385 expand_decl_init.
33386 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33387 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33388 here.
33389 (struct e_stack): Add chain_next to GTY.
33390 (struct binding_level): Deleted.
33391 (struct ada_binding_level): New struct.
33392 (free_block_chain): New.
33393 (global_binding_level, clear_binding_level): Deleted.
33394 (global_bindings_p): Rework to see if no chain.
33395 (kept_level_p, set_block): Deleted.
33396 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33397 new data structure and work directly on BLOCK node.
33398 (gnat_poplevel): Similarly.
33399 (get_decls): Look at BLOCK_VARS.
33400 (insert_block): Work directly on BLOCK node.
33401 (block_has_var): New function.
33402 (pushdecl): Rework for new binding structures.
33403 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33404 poplevel.
33405 (build_subprog_body): Likewise.
33406 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33407
33408 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33409
33410 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33411 (DECL_STMT_VAR): Likewise.
33412
334132004-05-17 Robert Dewar <dewar@gnat.com>
33414
33415 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33416 procedure
33417
33418 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33419 of restriction synonyums by using
33420 Restrict.Process_Restriction_Synonyms.
33421
33422 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33423
33424 * s-restri.ads (Tasking_Allowed): Correct missing comment
33425
33426 * s-rident.ads: Add entries for restriction synonyms
33427
33428 * ali.adb: Fix some problems with badly formatted ALI files that can
33429 result in infinite loops.
33430
33431 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33432 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33433 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33434 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33435 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33436 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33437 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33438 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33439 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33440 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33441 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33442 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33443 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33444 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33445 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33446 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33447 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33448 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33449 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33450 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33451 to Task_Id (minor cleanup).
33452
334532004-05-17 Vincent Celier <celier@gnat.com>
33454
33455 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33456 directory separator.
33457
33458 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33459 project being extended, if Languages is not declared in extending
33460 project.
33461
334622004-05-17 Javier Miranda <miranda@gnat.com>
33463
33464 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33465 limited view of a visible sibling.
33466
9bc856dd
AC
334672004-05-14 Robert Dewar <dewar@gnat.com>
33468
33469 * gnat_ugn.texi: Minor change to -gnatS documentation
33470
33471 * sprint.adb: Remove some instances of Assert (False) and for this
33472 purpose replace them by output of a ??? string.
33473
33474 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33475 Assert (False).
33476
33477 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33478 flag processing. This was suppressing required dependencies in
33479 No_Run_Time mode and is not needed since the binder does not generate
33480 references for things in libgnat anyway.
33481
33482 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33483 warning.
33484
334852004-05-14 Thomas Quinot <quinot@act-europe.fr>
33486
33487 * gnat_ugn.texi: Document AIX-specific issue with initialization of
33488 resolver library.
33489
33490 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33491 action for the case of an actual parameter in an init proc call.
33492
334932004-05-14 Ed Schonberg <schonberg@gnat.com>
33494
33495 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33496 subtype, check visible entities in base type.
33497
33498 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33499 actions if the object is a renaming.
33500
33501 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33502 Check_Formal_Package_Instance, to determine more precisely when the
33503 formal and the actual denote the same entity.
33504
335052004-05-14 Javier Miranda <miranda@gnat.com>
33506
33507 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33508
33509 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33510 corresponding to a private_with must be removed from visibility; it
33511 will be made visible later, just before we analyze the private part of
33512 the package.
33513 (Check_Private_Child_Unit): Allow private_with clauses in public
33514 siblings.
33515 (Install_Siblings): Make visible the private entities of private-withed
33516 siblings.
33517 (Install_Withed_Unit): Do not install the private withed unit if we
33518 are compiling a package declaration and the Private_With_OK flag was
33519 not set by the caller. These declarations will be installed later,
33520 just before we analyze the private part of the package.
33521
33522 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33523 during the evaluation of the expression that initializes the object,
33524 decorate it with the expected type to avoid cascade errors.
33525 Code cleanup.
33526
33527 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33528 subprogram we have to install the private_with clauses after its
33529 specification has been analyzed (as documented in AI-262.TXT).
33530
33531 * sem_ch8.adb (Has_Private_With): New function. Determines if the
33532 current compilation unit has a private with on a given entity.
33533 (Find_Direct_Name): Detect the Beaujolais problem described in
33534 AI-262.TXT
33535
33536 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33537 provides the functionality of the function Is_Ancestor that was
33538 previously available in sem_ch10. It has been renamed to avoid
33539 overloading.
33540
33541 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33542
335432004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33544
33545 * utils.c (build_vms_descriptor): Use SImode pointers.
33546
335472004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
33548
33549 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33550
335512004-05-14 GNAT Script <nobody@gnat.com>
33552
33553 * Make-lang.in: Makefile automatically updated
33554
084c663c
AC
335552004-05-14 Arnaud Charlet <charlet@act-europe.fr>
33556
33557 Renaming of target specific files for clarity
33558
6615c446 33559 * Makefile.in: Rename GNAT target specific files.
084c663c
AC
33560
33561 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33562 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33563 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33564 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33565 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
33566 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
33567 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
33568 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
33569 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
33570 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
33571 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
33572 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
33573 51osinte.adb, 51osinte.ads, 51system.ads,
33574 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33575 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
33576 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
33577 56tpopsp.adb, 57system.ads, 58system.ads,
33578 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
33579 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33580 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
33581 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
33582 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
33583 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33584 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
33585 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33586 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33587 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
33588 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
33589 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
33590 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
33591 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
33592 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
33593 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33594 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33595 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33596 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
33597 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
33598 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
33599 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
33600 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
33601 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33602 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
33603 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
33604 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33605 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
33606 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33607 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
33608 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
33609 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
33610 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
33611 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
33612 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
33613 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
33614 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
33615 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
33616 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
33617 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
33618
33619 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
33620 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
33621 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
33622 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
33623 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
33624 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
33625 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
33626 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
33627 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
33628 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
33629 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
33630 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
33631 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
33632 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
33633 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
33634 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
33635 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
33636 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
33637 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
33638 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
33639 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
33640 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
33641 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
33642 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
33643 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
33644 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
33645 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
33646 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
33647 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
33648 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
33649 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
33650 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
33651 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
33652 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
33653 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
33654 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
33655 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
33656 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
33657 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
33658 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
33659 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
33660 s-osinte-vms.ads, s-osinte-vxworks.adb,
33661 s-osinte-vxworks.ads, s-osprim-mingw.adb,
33662 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
33663 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
33664 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
33665 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
33666 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
33667 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
33668 s-stchop-vxworks.adb, s-taprop-dummy.adb,
33669 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
33670 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
33671 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
33672 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
33673 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
33674 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
33675 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
33676 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
33677 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
33678 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
33679 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
33680 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
33681 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
33682 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
33683 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
33684 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
33685 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
33686 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
33687 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
33688 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
33689 system-irix-o32.ads, system-linux-x86_64.ads,
33690 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
33691 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
33692 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
33693 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
33694 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
33695 system-vxworks-mips.ads, system-vxworks-ppc.ads,
33696 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
33697 above.
33698
90afe2c9
ZW
336992004-05-13 Zack Weinberg <zack@codesourcery.com>
33700
33701 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
33702
6de9cd9a
DN
337032004-05-13 Diego Novillo <dnovillo@redhat.com>
33704
33705 Merge from tree-ssa-20020619-branch.
33706
33707 * config-lang.in (boot_language, build_by_default): Set
33708 to no.
33709 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
33710 (max_size): Add static chain op for call_expr.
33711
f5657d67
RS
337122004-05-12 Richard Sandiford <rsandifo@redhat.com>
33713
33714 PR target/15331
33715 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
33716
4413b636
RS
337172004-05-11 Roger Sayle <roger@eyesopen.com>
33718
33719 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
33720 COND_EXPR.
33721
5950a3ac
AC
337222004-05-10 Doug Rupp <rupp@gnat.com>
33723
33724 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
33725 system.aux_dec.
33726
33727 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
33728
33729 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
33730
33731 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
33732 Fixes undefined symbols in IA64 gnatlib.
33733
33734 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
33735
33736 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
33737 Short_Address). This will be moved to system.auxdec.
33738
337392004-05-10 Thomas Quinot <quinot@act-europe.fr>
33740
33741 * sem_util.adb: Replace test for presence of a node that is always
33742 present with a call to Discard_Node.
33743
33744 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
33745 Analyze on the library unit node after generation of distribution stub
33746 constructs. The call was a no-op because Unit_Node has already been
33747 Analyzed, and the tree fragments for the distribution stubs are
33748 analyzed as they are inserted in Exp_Dist.
33749 Update comment regarding to distribution stubs to reflect that we
33750 do not generate stub in separate files anymore.
33751
33752 * einfo.ads: Clarify the fact that a tagged private type has the
33753 E_Record_Type_With_Private Ekind.
33754
33755 * erroutc.adb: Minor reformatting
33756
33757 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
33758 values if line length is increased using -gnatyM (noticed during code
33759 reading).
33760
33761 * eval_fat.adb: Minor reformatting
33762 Put spaces around exponentiation operator
33763
337642004-05-10 Ed Schonberg <schonberg@gnat.com>
33765
33766 PR ada/15005
33767 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
33768 has been rewritten as an explicit dereference, retrieve type of
33769 original node to check for possibly unconstrained record type.
33770
337712004-05-10 Ed Schonberg <schonberg@gnat.com>
33772
33773 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
33774 overriding, use the operation of the parent unconditionally.
33775
33776 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
33777 operation when either operand is a literal, to avoid further
33778 ambiguities.
33779
33780 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
33781 overridden by a previous explicit declaration, mark the previous entity
33782 as overriding.
33783
33784 * sem_disp.adb (Check_Dispatching_Operation): New predicate
33785 Is_Visibly_Controlled, to determine whether a declaration of a
33786 primitive control operation for a derived type overrides an inherited
33787 one. Add warning if the explicit declaration does not override.
33788
337892004-05-10 Vincent Celier <celier@gnat.com>
33790
33791 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
33792 some cases when the sources are no longer present.
33793
33794 * make.adb (Collect_Arguments): Fail if an external source, not part
33795 of any project need to be compiled, when switch -x has not been
33796 specified.
33797
33798 * makeusg.adb: Document new switch -x
33799
33800 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
33801 defaulted to False.
33802
33803 * switch-m.adb (Scan_Make_Switches): New switch -x
33804
33805 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
33806 gnatmake switch -x.
33807
33808 * gnat_ugn.texi: Document new gnatmake switch -x
33809
338102004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
33811
33812 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
33813
33814 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
33815 (process_attributes): Likewise.
33816
338172004-05-10 Joel Brobecker <brobecker@gnat.com>
33818
33819 * s-inmaop.ads: Fix spelling mistake in one of the comments.
33820
338212004-05-10 Robert Dewar <dewar@gnat.com>
33822
33823 * gnat_ugn.texi: Document that for config pragma files, the maximum
33824 line length is always 32767.
33825
33826 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
33827 literals is now allowed.
33828
33829 * gnat-style.texi: Remove statement about splitting long lines before
33830 an operator rather than after, since we do not follow this rule at all.
33831 Clarify rule (really lack of rule) for spaces around exponentiation
33832
33833 * sem_elim.adb: Allow concatenation of string literals as well as a
33834 single string literal for pragma arguments.
33835
33836 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
33837
33838 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
33839 written for append case.
33840
33841 * frontend.adb: Changes to avoid checking max line length in config
33842 pragma files.
33843
33844 * g-os_lib.ads: Minor reformatting
33845
33846 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
33847 wrong in any case. Instead use standard value. Noticed during code
33848 reading.
33849
33850 * opt.ads (Max_Line_Length): New field, used to implement removal of
33851 limitation on length of lines when scanning config pragma files.
33852
33853 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
33854 makeutl.ads, makeutl.adb: Minor reformatting
33855
33856 * scn.adb: Do not check line length while scanning config pragma files
33857 Do not check line length while scanning out license information
33858
33859 * scng.adb: Changes to avoid line length checks while parsing config
33860 pragma files.
33861
338622004-05-10 GNAT Script <nobody@gnat.com>
33863
33864 * Make-lang.in: Makefile automatically updated
33865
48664302
AC
338662004-05-05 Arnaud Charlet <charlet@act-europe.fr>
33867
33868 * osint.adb (Find_Program_Name): Fix handling of VMS version
33869 number.
33870
aa720a54
AC
338712004-05-05 Emmanuel Briot <briot@act-europe.fr>
33872
33873 * g-os_lib.ads (Invalid_Time): New constant
33874
33875 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
33876 return OS_Time instead of time_t to match what is imported by Ada.
33877 Now return -1 if the file doesn't exist, instead of a random value
33878
338792004-05-05 Robert Dewar <dewar@gnat.com>
33880
33881 * usage.adb: Add line for -gnatR?s switch
33882
33883 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
33884
33885 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
33886 and for Match (Data_First, Data_last)
33887
33888 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
33889 written when we are dealing with multi-unit files.
33890
338912004-05-05 Jerome Guitton <guitton@act-europe.fr>
33892
33893 * Makefile.in: Remove unused targets and variables.
33894
338952004-05-05 Vincent Celier <celier@gnat.com>
33896
33897 * switch-m.adb: New gnatmake switch -eI
33898
33899 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
33900 of new gnatmake switch -eInnn.
33901
33902 * makegpr.adb: Take into account new parameters Index and Src_Index in
33903 Prj.Util.
33904
33905 * clean.adb: Implement support for multi-unit sources, including new
33906 switch -i.
33907
33908 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
33909 Src_Index.
33910
33911 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
33912 (Extract_From_Q): New out parameter Index
33913 (Mark, Is_Marked): Subprograms moved to Makeutl
33914 (Switches_Of): New parameter Source_Index
33915 (Add_Switch): New parameter Index
33916 (Check): New parameter Source_Index
33917 (Collect_Arguments): New parameter Source_Index
33918 (Collect_Arguments_And_Compile): New parameter Source_Index
33919 (Compile): New parameter Source_Index
33920 Put subprograms in alphabetical order
33921 Add support for multi-source sources, including in project files.
33922
33923 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
33924 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
33925 Make.
33926
33927 * makeusg.adb: New gnatmake switch -eInnn
33928
33929 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
33930 Prj.Util.Value_Of.
33931
33932 * opt.ads (Main_Index): New variable, defaulted to 0.
33933
33934 * osint.ads, osinte.adb (Add_File): New parameter Index
33935 (Current_Source_Index): New function
33936
33937 * prj.adb: Take into account new components Index and Src_Index
33938
33939 * prj.ads (String_Element): New component Index
33940 (Variable_Value): New component Index
33941 (Array_Element): New component Src_Index
33942
33943 * prj-attr.adb: Indicate that optional index may be specified for
33944 attributes Main, Executable, Spec, Body and some of Switches.
33945
33946 * prj-attr.ads (Attribute_Kind): New values for optional indexes
33947 (Attribute_Record): New component Optional_Index
33948
33949 * prj-com.ads (File_Name_Data): New component Index
33950
33951 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
33952
33953 * prj-env.adb (Put): Output optional index
33954
33955 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
33956 attributes Spec and Body.
33957
33958 * prj-nmsc.adb: Process optional indexes
33959
33960 * prj-pp.adb: Ouput "at" for optional indexes
33961
33962 * prj-proc.adb: Take into account optional indexes
33963
33964 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
33965 Optional_Index. For string literal,
33966 process optional index when Optional_Index is True.
33967 (Parse_Expresion): New Boolean parameter Optional_Index
33968
33969 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
33970 (Set_Source_Index_Of): New procedure
33971
33972 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
33973 index.
33974
33975 * prj-util.ads (Executable_Of): New parameter Index
33976 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
33977 New parameter Src_Index, defaulted to 0.
33978
339792004-05-05 Ed Schonberg <schonberg@gnat.com>
33980
33981 PR ada/15257
33982 * sem_ch3.adb (Access_Definition): If this is an access parameter
33983 whose designated type is imported through a limited_with clause, do
33984 not add the enclosing subprogram to the list of private dependents of
33985 the type.
33986
339872004-05-05 Ed Schonberg <schonberg@gnat.com>
33988
33989 PR ada/15258
33990 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
33991 a limited_with clause, and the other is its non-limited view.
33992
339932004-05-05 Thomas Quinot <quinot@act-europe.fr>
33994
33995 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
33996
90afe2c9 33997 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
aa720a54
AC
33998 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
33999 Stand.Boolean_Literals to produce references to entities
34000 Standard_False and Standard_True from compile-time computed boolean
34001 values.
34002
34003 * stand.ads (Boolean_Literals): New variable, provides the entity
34004 values for False and True, for use by the expander.
34005
340062004-05-05 Doug Rupp <rupp@gnat.com>
34007
34008 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34009 5vinmaop.adb: Unchecked convert Short_Address vice Address
34010
34011 * adaint.c, raise.c: Caste CRTL function return value
34012 to avoid gcc error on 32/64 bit IVMS.
34013
34014 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34015 target = IA64/VMS.
34016
34017 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34018
34019 * 5qsystem.ads (Address): Declare as Long_Integer
34020 (Short_Address): Declare as 32 bit subtype of Address
34021 Declare abstract address operations to avoid gratuitous ambiguities.
34022
340232004-05-05 Jose Ruiz <ruiz@act-europe.fr>
34024
34025 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34026 instead of the old Boolean_Entry_Barriers.
34027 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34028
340292004-05-05 GNAT Script <nobody@gnat.com>
34030
34031 * Make-lang.in: Makefile automatically updated
34032
1ab2888d
AC
340332004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34034
34035 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34036
9f4fd324
AC
340372004-05-03 Olivier Hainque <hainque@act-europe.fr>
34038
34039 PR ada/15152
9f4fd324
AC
34040 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34041 alone. Replacing object references by literals is inappropriate in a
34042 so low level context.
34043
340442004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34045
34046 * a-exexpr.adb: Add comments
34047
340482004-05-03 Joel Brobecker <brobecker@gnat.com>
34049
34050 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34051 declare the Ancestor_Tags array in Type_Specific_Data with a small size
34052 without risking a bounds check error when accessing one of its
34053 components.
34054 (Type_Specific_Data): Define Ancestor_Tags as a small array.
34055 This prevents us from hitting a limitation during the debug info
34056 generation when using stabs.
34057
34058 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34059 small array.
34060 This prevents us from hitting a limitation during the debug info
34061 generation when using stabs.
34062
340632004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
34064
34065 lang-specs.h: Remove -gnatz* from specs.
34066
340672004-05-03 Vincent Celier <celier@gnat.com>
34068
34069 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34070
34071 * Make-lang.in, Makefile.in: Add gprmake
34072
340732004-05-03 Thomas Quinot <quinot@act-europe.fr>
34074
34075 * sem_aggr.adb: Fix typo in comment.
34076
340772004-05-03 Robert Dewar <dewar@gnat.com>
34078
34079 * make.adb: Minor reformatting
34080
34081 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34082
34083 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34084 so that it works when address is not a private type.
34085
34086 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34087 properly with rewritten unchecked conversions. This prevents
34088 order-of-elaboration issues that can otherwise arise.
34089 (Minimum_Size): Don't check size of access types under VMS
34090
34091 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34092 interpretations of integer literals as type System.Address.
34093
34094 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34095 (Is_Descendent_Of): New function
34096
340972004-05-03 Jose Ruiz <ruiz@act-europe.fr>
34098
34099 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34100 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34101 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34102
34103 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34104 of the old Max_Entry_Queue_Depth.
34105
34106 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34107 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34108 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34109
34110 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34111 New entry for proper handling of Max_Entry_Queue_Depth.
34112 New entry for proper handling of No_Dynamic_Interrupts.
34113
34114 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34115 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34116 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34117 the GNAT specific restriction Max_Entry_Queue_Depth.
34118 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34119 the GNAT specific restriction No_Dynamic_Interrupts.
34120
34121 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34122 instead of the old Boolean_Entry_Barriers.
34123 Use the new restriction No_Dynamic_Attachment instead of the old
34124 No_Dynamic_Interrupts.
34125
34126 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34127 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34128
34129 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34130 of the old Max_Entry_Queue_Depth.
34131
341322004-05-03 GNAT Script <nobody@gnat.com>
34133
34134 * Make-lang.in: Makefile automatically updated
34135
d935a36e
AC
341362004-04-29 Ed Schonberg <schonberg@gnat.com>
34137
34138 * checks.adb (Enable_Range_Check): If the prefix of an index component
34139 is an access to an unconstrained array, perform check unconditionally.
34140
341412004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34142
34143 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34144 Component_Clause.
34145
341462004-04-29 Olivier Hainque <hainque@act-europe.fr>
34147
34148 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34149 alternate stack setting. There was no support for the tasking cases
34150 and the changes eventually caused a number of side-effect failures in
34151 the non-tasking case too.
34152
341532004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
34154
34155 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34156 -gnats is passed.
34157
341582004-04-29 Vincent Celier <celier@gnat.com>
34159
34160 * make.adb (Gnatmake): Increase max size of argument array for
34161 gnatbind for the potential addition of -F.
34162 If there are Stand-Alone Library projects, invoke gnatbind with -F to
34163 be sure that elaboration flags will be checked.
34164
34165 * switch-c.adb: Correct call to Scan_Pos for -gnateI
34166
341672004-04-29 Thomas Quinot <quinot@act-europe.fr>
34168
34169 * sem_warn.adb (Check_References): Move '<access-variable> may be
34170 null' warning out of under Warn_On_No_Value_Assigned.
34171
341722004-04-29 Ed Falis <falis@gnat.com>
34173
34174 * gnat_ugn.texi: Fixed texi error
34175
341762004-04-29 Robert Dewar <dewar@gnat.com>
34177
34178 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34179 abstract operations if they come from predefined files.
34180
34181 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34182 Dynamic, not RM).
34183
34184 * s-addope.adb: Correct obvious error in mod function
34185
341862004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
34187
34188 * Makefile.in: Add target pairs for powerpc darwin*
34189 tasking support.
34190
34191 * a-intnam-darwin.ads, s-osinte-darwin.adb,
34192 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34193
ea16c81b
UW
341942004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34195
34196 * Makefile.in: Add target macro definitions for s390*-linux*.
34197 * system-linux-s390.ads: New file.
34198 * system-linux-s390x.ads: New file.
34199
f0e6f845
JM
342002004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
34201
34202 * gnat_ugn.texi: Correct argument to @setfilename.
34203
e8c2eedc
UW
342042004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34205
34206 * a-exexpr.adb (Unwind_Word): New data type.
34207 (Unwind_Exception): Use it as type of Private1 and Private2.
34208
34209 * raise.c (db_action_for): Fix debug printf.
34210
f2c9e65a
AC
342112004-04-27 Ed Schonberg <schonberg@gnat.com>
34212
34213 * a-wtmoio.ads: Formal type must be a modular type, not a signed
34214 integer type.
34215
342162004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34217
34218 * decl.c (gnat_to_gnu_entity, case object): Call
34219 __builtin_update_setjmp_buf.
34220
34221 * gigi.h (update_setjmp_buf): Deleted.
34222 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34223
34224 * misc.c: (update_setjmp_buf): Deleted.
34225
34226 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34227 around block of RTL.
34228
34229 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34230
35b7fa6a
AC
342312004-04-26 Thomas Quinot <quinot@act-europe.fr>
34232
34233 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34234 subprogram for which no pragma All_Calls_Remote applies, store the
34235 address of the real subprogram in the underlying record type, so local
34236 dereferences do not go through the PCS.
34237
342382004-04-26 Robert Dewar <dewar@gnat.com>
34239
34240 * i-c.ads: Add some type qualifications to avoid ambiguities when
34241 compiling with s-auxdec.ads and a non-private address type.
34242
342432004-04-26 Arnaud Charlet <charlet@act-europe.fr>
34244
34245 * Makefile.rtl: Fix error in previous check-in:
34246 Add s-addope.o to non tasking object list (rather than tasking object
34247 list).
34248
342492004-04-26 Javier Miranda <miranda@gnat.com>
34250
34251 * sem_aggr.adb: Fix typo in comments
34252 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34253 Required to check the null-exclusion attribute.
34254
34255 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34256 case of anonymous access types in record and array components. For a
34257 component definition the level is the same of the enclosing composite
34258 type.
34259
34260 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34261 that are anonymous access types the level of accessibility depends on
34262 the enclosing type declaration. In order to have this information, set
34263 the scope of the anonymous access type to the enclosing record type
34264 declaration.
34265 (Array_Type_Declaration): In case of components that are anonymous
34266 access types the level of accessibility depends on the enclosing type
34267 declaration. In order to have this information, set the scope of the
34268 anonymous access type to the enclosing array type declaration.
34269
34270 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34271 access type.
34272
34273 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34274 renaming of anonymous access-to-constant types allowed if and only if
34275 the renamed object is access-to-constant.
34276
34277 * sem_util.adb (Type_Access_Level): In case of anonymous access types
34278 that are component_definition or discriminants of a nonlimited type,
34279 the level is the same as that of the enclosing component type.
34280
342812004-04-26 Sergey Rybin <rybin@act-europe.fr>
34282
34283 * sem_elim.adb: Some minor code reorganization from code reading. Fix
34284 misprint in the function name (File_Name_Match).
34285
9e94c78f 342862004-04-23 Laurent Guerby <laurent@guerby.net>
5a944040 34287
90afe2c9 34288 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
5a944040 34289 install.
90afe2c9 34290
d0fd1344
RO
342912004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34292
34293 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34294
cc4f0de1
AC
342952004-04-23 Emmanuel Briot <briot@act-europe.fr>
34296
34297 * adaint.c (__gnat_try_lock): No longer requires that the parent
34298 directory be writable, the directory itself is enough.
34299 (gnat_is_absolute_path): Change profile, so that the call from
34300 GNAT.OS_Lib can be made more efficient.
34301
34302 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34303 from GNAT.OS_Lib can be made more efficient.
34304
34305 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34306 one copy of the file name. Found by code reading.
34307
343082004-04-23 Vincent Celier <celier@gnat.com>
34309
34310 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34311 Correct documentation on gnatmake switches transmitted to the compiler
34312
34313 * ali.ads: Minor comment fix
34314
343152004-04-23 Javier Miranda <miranda@gnat.com>
34316
34317 * sem_ch6.adb: (Confirming Types): Code cleanup
34318
34319 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34320 subprogram types: E_Anonymous_Access_Subprogram_Type and
34321 E_Anonymous_Access_Protected_Subprogram_Type.
34322
343232004-04-23 Thomas Quinot <quinot@act-europe.fr>
34324
34325 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34326 whether a pragma All_Calls_Remote applies to the subprogram on which
34327 'Access is taken.
34328 No functional change is introduced by this revision; the new parameter
34329 will be used to allow calls to local RCI subprograms to be optimized
34330 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34331 as is already done in the PolyORB implementation of the DSA.
34332
34333 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34334 whether a pragma All_Calls_Remote applies to the subprogram on which
34335 'Access is taken.
34336 No functional change is introduced by this revision; the new parameter
34337 will be used to allow calls to local RCI subprograms to be optimized
34338 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34339 as is already done in the PolyORB implementation of the DSA.
34340
343412004-04-23 Robert Dewar <dewar@gnat.com>
34342
34343 * Makefile.rtl: Add entry for s-addope.o in run time library list
34344 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34345 * s-addope.ads, s-addope.adb: New files.
34346
90afe2c9
ZW
34347 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34348 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
cc4f0de1
AC
34349 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34350 System.Address to be non-private and signed.
34351
34352 * sem_elim.adb: Minor reformatting (fairly extensive)
34353 Some minor code reorganization from code reading
34354 Add a couple of ??? comments
34355
343562004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34357
34358 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
90afe2c9 34359 (tree_transform, case N_If_Statement): Remove non-determinism.
cc4f0de1
AC
34360
34361 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34362
343632004-04-23 Sergey Rybin <rybin@act-europe.fr>
34364
34365 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34366 Eliminate' section.
34367
34368 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34369 no longer used as a parameter name for Eliminate pragma).
34370
9e94c78f 343712004-04-22 Laurent Guerby <laurent@guerby.net>
78bad775
LG
34372
34373 PR optimization/14984
34374 PR optimization/14985
34375 * trans.c (gigi): Fix non determinism leading to bootstrap
34376 comparison failures.
34377
af4b9434
AC
343782004-04-21 Pascal Obry <obry@gnat.com>
34379
34380 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34381 passed to spawnvp() to properly handle program pathname with spaces on
34382 Win32.
34383
343842004-04-21 Emmanuel Briot <briot@act-europe.fr>
34385
34386 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34387 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34388 unlocked in case of exceptions.
34389
343902004-04-21 Joel Brobecker <brobecker@gnat.com>
34391
34392 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34393 This function does not exist anymore.
34394
343952004-04-21 Thomas Quinot <quinot@act-europe.fr>
34396
34397 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34398
34399 * link.c: Move variables to the __gnat name space.
34400
34401 * Makefile.in: list link.o explicitly when needed.
34402
34403 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34404
344052004-04-21 Javier Miranda <miranda@gnat.com>
34406
34407 * einfo.adb (Original_Access_Type): New subprogram
34408 (Set_Original_Access_Type): New subprogram
34409 (Write_Field21_Name): Write the name of the new field
34410
34411 * einfo.ads (Original_Access_Type): New field present in access to
34412 subprogram types.
34413 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34414 E_Anonymous_Access_Protected_Subprogram_Type.
34415
34416 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34417 subprogram types.
34418
34419 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34420 to anonymous access to subprogram types.
34421
34422 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34423 to subprogram types.
34424
34425 * sem_ch3.adb (Access_Definition): Complete decoration of entities
34426 corresponding to anonymous access to subprogram types.
34427 (Analyze_Component_Declaration): Add new actual to the call to
34428 subprogram replace_anonymous_access_to_protected_subprogram.
34429 (Array_Type_Declaration): Add new actual to the call to subprogram
34430 replace_anonymous_access_to_protected_subprogram.
34431 (Process_Discriminants): Add new actual to the call to subprogram
34432 replace_anonymous_access_to_protected_subprogram.
34433 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34434
34435 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34436 formal.
34437
34438 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34439 access to subprogram types.
34440
34441 * sem_util.adb (Has_Declarations): Addition of package_specification
34442 nodes.
34443
344442004-04-21 Ed Schonberg <schonberg@gnat.com>
34445
34446 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34447 inlined flags to renamed entity only if in current unit.
34448
344492004-04-21 Thomas Quinot <quinot@act-europe.fr>
34450
34451 * s-parint.ads: Add DSA implementation marker.
34452
34453 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34454 value of System.Partition_Interface.DSA_Implementation to determine
34455 what version of the distributed systems annex is available (no
34456 implementation, GLADE, or PolyORB).
34457
344582004-04-21 Joel Brobecker <brobecker@gnat.com>
34459
34460 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34461
344622004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34463
34464 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34465 with new type if alias sets differ.
34466 Fixes ACATS c41103b.
34467
344682004-04-21 Vincent Celier <celier@gnat.com>
34469
34470 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34471 Add array Lang_Args for the language specific compiling argument
34472 switches.
34473
34474 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34475
344762004-04-21 Sergey Rybin <rybin@act-europe.fr>
34477
34478 * gnat_rm.texi: Update the descripton of the Eliminate pragma
34479 according to the recent changes in the format of the parameters of the
34480 pragma (replacing Homonym_Number with Source_Location).
34481
7324bf49
AC
344822004-04-19 Arnaud Charlet <charlet@act-europe.fr>
34483
34484 * 5isystem.ads: Removed, unused.
34485
34486 * gnat_rm.texi: Redo 1.13 change.
34487
344882004-04-19 Robert Dewar <dewar@gnat.com>
34489
34490 * s-stoele.ads: Clean up definition of Storage_Offset (the new
34491 definition is cleaner, avoids the kludge of explicit Standard operator
34492 references, and also is consistent with a visible System.Address with
34493 no visible operations.
34494
34495 * s-geveop.adb: Add declarations to avoid assumption of visible
34496 operations on type System.Address (since these might not be available
34497 if Address is a non-private type for which the operations
34498 are made abstract).
34499
34500 * sem_eval.adb: Minor reformatting
34501
34502 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34503 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34504 reformatting (new function spec format).
34505
34506 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34507 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34508 s-caun64.adb: Add declarations to avoid assumption of visible
34509 operations on type System.Address (since these might not be available
34510 if Address is a non-private type for which the operations are made
34511 abstract).
34512
34513 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34514
34515 * exp_intr.adb: Minor comment update
34516
34517 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34518
34519 * 5omastop.adb: Add declarations to avoid assumption of visible
34520 operations on type System.Address (since these might not be available
34521 if Address is a non-private type for which the operations
34522 are made abstract).
34523
345242004-04-19 Vincent Celier <celier@gnat.com>
34525
34526 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34527
34528 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34529 defaulted to Ada.
34530
34531 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34532 defaulted to Ada.
34533 Call Check with Process_Languages.
34534 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34535 with Process_Languages.
34536 (Recursive_Check): New Boolean parameter Process_Languages. Call
34537 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34538 Process_Languages.
34539
34540 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34541
34542 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34543 parameter Ada_Main, defaulted to True.
34544 Check for Ada specific characteristics only when Ada_Main is True.
34545
34546 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34547
34548 * prj.adb: (Project_Empty): Add new Project_Data components.
34549
34550 * prj.ads: New types and tables for non Ada languages.
34551 (Project_Data): New components Languages, Impl_Suffixes,
34552 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34553 Include_Path, Include_Data_Set.
34554
34555 * prj-env.ads, prj-env.adb: Minor reformatting
34556
34557 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34558 Put subprograms in alphabetical order
34559
34560 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34561 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34562 Opt.Follow_Links.
34563
34564 * mlib-prj.adb: Back out modification in last version, as they are
34565 incorrect.
34566 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
34567
34568 * make.adb: (Mains): Moved to package Makeutl
34569 (Linker_Opts): Moved to package Makeutl
34570 (Is_External_Assignment): Moved to package Makeutl
34571 (Test_If_Relative_Path): Moved to package Makeutl
34572 (Gnatmake): Move sorting of linker options to function
34573 Makeutl.Linker_Options_Switches.
34574
8f9df7d8
VC
34575 * makeutl.ads, makeutl.adb: New files.
34576
7324bf49
AC
34577 * Makefile.in: Add makeutl.o to the object files for gnatmake
34578
34579 * makeusg.adb: Add line for new switch -eL.
34580
34581 * gnatls.adb (Image): New function.
34582 (Output_Unit): If in verbose mode, output the list of restrictions
34583 specified by pragmas Restrictions.
34584
34585 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
34586 Text_IO.
34587
34588 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
34589 needed, to put it in the range 1970 (included) - 2026 (excluded).
34590 (Time_Of): Do not shift Unix_Min_Year (1970).
34591 Shift the date by multiple of 56 years, if needed, to put it in the
34592 range 1970 (included) - 2026 (excluded).
34593
34594 * adaint.h, adaint.c (__gnat_set_executable): New function.
34595
345962004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34597
34598 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
34599 and pop GC context.
34600 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
34601 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
34602 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
34603 (tree_transform, case N_Code_Statement): Likewise.
34604 (gnat_expand_stmt, case LABEL_STMT): Don't look at
34605 LABEL_STMT_FIRST_IN_EH.
34606 (gnat_expand_stmt, case ASM_STMT): New case.
34607
34608 * utils2.c (build_unary_op): Properly set TREE_READONLY of
34609 UNCONSTRAINED_ARRAY_REF.
34610
34611 * utils.c (poplevel): Temporarily push/pop GC context around inline
34612 function expansion.
34613
34614 * decl.c (maybe_variable): Properly set TREE_READONLY of
34615 UNCONSTRAINED_ARRAY_REF.
34616 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
34617
34618 * ada-tree.def: (ASM_STMT): New.
34619
34620 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
34621 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
34622 ASM_STMT_INPUT): New.
34623 (ASM_STMT_CLOBBER): Likewise.
34624
346252004-04-19 Thomas Quinot <quinot@act-europe.fr>
34626
34627 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
34628 general rcheck mechanism to raise Program_Error for E.4(18), instead
34629 of a custom raiser in System.Partition_Interface.
34630 Part of general cleanup work before PolyORB integration.
34631
34632 * snames.ads, snames.adb: Add new runtime library entities and names
34633 for PolyORB DSA.
34634
34635 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34636 exp_dist.
34637 (Build_Subprogram_Id): New subprogram provided by exp_dist
34638 Code reorganisation in preparation for PolyORB integration.
34639
34640 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34641 exp_dist.
34642 (Build_Subprogram_Id): New subprogram provided by exp_dist
34643
34644 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
34645 actual parameter types for call to dereference of an
34646 access-to-subprogram type.
34647
34648 * rtsfind.ads: Add new runtime library entities and names for PolyORB
34649 DSA.
34650
34651 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
34652 instead, which has the same behaviour here since we never pass it a
34653 NULL pointer.
34654
34655 * link.c (run_path_option, Solaris case): Use -Wl, as for other
34656 platforms.
34657
34658 * Makefile.in: adjust object file lists for gnatlink and gnatmake
34659 to account for new dependency upon Interfaces.C.Strings + link.o
34660 For x86 FreeBSD, use 86numaux.
34661
34662 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
34663 from Mlib.Tgt to Mlib.
34664
34665 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
34666 target-independent.
34667
34668 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
34669 target-specific versions of this subprogram, now implemented as a
34670 target-independent function in Mlib.
34671
34672 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
34673 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
34674 (Linker_Library_Path_Option): Remove target-specific versions of this
34675 subprogram, now implemented as a target-independent function in Mlib.
34676
34677 * atree.adb: (Allocate_Initialize_Node): New subprogram.
34678 Factors out node table slots allocation.
34679 (Fix_Parents): New subprogram.
34680 Encapsulate the pattern of fixing up parent pointers for syntactic
34681 children of a rewritten node.
34682 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
34683 (Rewrite): Use New_Copy when creating saved copy of original node.
34684 (Replace): Use Copy_Node to copy nodes.
34685
346862004-04-19 Javier Miranda <miranda@gnat.com>
34687
34688 * sprint.adb (Sprint_Node_Actual): Give support to the new
34689 Access_To_Subprogram node available in Access_Definition nodes. In
34690 addition, give support to the AI-231 node fields: null-exclusion,
34691 all-present, constant-present.
34692
34693 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
34694
90afe2c9 34695 * sinfo.ads, sinfo.adb:
7324bf49
AC
34696 New field Access_To_Subprogram_Definition in Access_Definition nodes
34697
34698 * sem_ch6.adb (Process_Formals): Move here the code that creates and
34699 decorates internal subtype declaration corresponding to the
34700 null-excluding formal. This code was previously in Set_Actual_Subtypes.
34701 In addition, carry out some code cleanup on this code. In case of
34702 access to protected subprogram call
34703 Replace_Anonymous_Access_To_Protected_Subprogram.
34704 (Set_Actual_Subtypes): Code cleanup.
34705
34706 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
34707 Find_Type in case of anonymous access renamings. Add warning in case of
34708 null-excluding attribute used in anonymous access renaming.
34709
34710 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34711 subprogram
34712
34713 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
34714 subprogram.
34715 (Access_Definition): In case of anonymous access to subprograms call
34716 the corresponding semantic routine to decorate the node.
34717 (Access_Subprogram_Declaration): Addition of some comments indicating
34718 some code that probably should be added here. Detected by comparison
34719 with the access_definition subprogram.
34720 (Analyze_Component_Declaration): In case of access to protected
34721 subprogram call Replace_Anonymous_Access_To_Protected.
34722 (Array_Type_Declaration): In case of access to protected subprogram call
34723 Replace_Anonymous_Access_To_Protected_Subprogram.
34724 (Process_Discriminants): In case of access to protected subprogram call
34725 Replace_Anonymous_Access_To_Protected_Subprogram.
34726
34727 * par.adb (P_Access_Definition): New formal that indicates if the
34728 null-exclusion part was present.
34729 (P_Access_Type_Definition): New formal that indicates if the caller has
34730 already parsed the null-excluding part.
34731
34732 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
34733 (P_Identifier_Declarations): Code cleanup and give support to renamings
34734 of anonymous access to subprogram types.
34735 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
34736 (P_Array_Type_Definition): Give support to AI-254.
34737 (P_Component_Items): Give support to AI-254.
34738 (P_Access_Definition): New formal that indicates if the header was
34739 already parsed by the caller.
34740 (P_Access_Type_Definition): New formal that indicates if the caller has
34741 already parsed the null-excluding part.
34742
34743 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
34744 call to P_Access_Definition.
34745
347462004-04-19 Geert Bosch <bosch@gnat.com>
34747
34748 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
34749 the delicate semantics of floating-point to integer conversion.
34750 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
34751
34752 * eval_fat.adb (Machine_Mantissa): Moved to spec.
34753 (Machine_Radix): New function.
34754
34755 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
34756 conversion checks.
34757 (Machine_Radix): New function also for use in conversion checks.
34758
347592004-04-19 Ed Schonberg <schonberg@gnat.com>
34760
34761 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
34762
34763 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
34764 to decorate the access-to-protected subprogram and the equivalent type.
34765
34766 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
34767 to anonymous access to subprogram types.
34768
34769 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
34770 constant-folding, for legality checks in contexts that require an RM
34771 static expression.
34772
34773 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
34774 temporary but stack checking is not enabled, increment serial number
34775 to so that symbol generation is consistent with and without stack
34776 checking.
34777
34778 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
34779 independent on whether stack checking is enabled, caller must check
34780 the corresponding flag.
34781
34782 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
34783 range checks.
34784 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
34785 parent if it has discriminants.
34786 (Build_Derived_Private_Type): Constructed full view does
34787 not come from source.
34788 (Process_Discriminants): Default discriminants on a tagged type are
34789 legal if this is the internal completion of a private untagged
34790 derivation.
34791
34792 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
34793 no constraint checks, because it corresponds to an existing object.
34794
34795 * sem_prag.adb (Process_Convention): Pragma applies
34796 only to subprograms in the same declarative part, i.e. the same unit,
34797 not the same scope.
34798
34799 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
34800 ignore type mismatch on a numeric conversion if expression comes from
34801 expansion.
34802
348032004-04-19 Sergey Rybin <rybin@act-europe.fr>
34804
34805 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
34806 Homonym_Number parameter, add processing for Source_Location parameter
34807 corresponding.
34808 (Check_Eliminated): Remove the check for homonym numbers, add the check
34809 for source location traces.
34810
34811 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
34812 with Arg_Source_Location corresponding to the changes in the format of
34813 the pragma.
34814
34815 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
34816 Eliminate pragma corresponding to the changes in the format of the
34817 pragma: Homonym_Number is replaced with Source_Location, two ways of
34818 distinguishing homonyms are mutially-exclusive.
34819
348202004-04-19 Joel Brobecker <brobecker@gnat.com>
34821
34822 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
34823
34824 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
34825 No_Dollar_In_Label, no longer necessary, as it is always True.
34826 (Strip_Suffixes): Likewise.
34827
348282004-04-19 Gary Dismukes <dismukes@gnat.com>
34829
34830 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
34831 modulus for compatibility with size clause on targets with 16-bit
34832 Integer.
34833
34834 * layout.adb (Discrimify): In the case of private types, set Vtyp to
34835 full type to fix type mismatches on calls to size functions for
34836 discriminant-dependent array components.
34837
348382004-04-19 Jerome Guitton <guitton@act-europe.fr>
34839
34840 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
34841 lib.
34842
348432004-04-19 Pascal Obry <obry@gnat.com>
34844
34845 * mdll-utl.adb (Locate): New version is idempotent.
34846
9e94c78f 348472004-04-17 Laurent Guerby <laurent@guerby.net>
fa795c69
LG
34848
34849 PR ada/14988 (partial)
34850 * impunit.adb: Fix typo.
90afe2c9 34851
cce0244b
NN
348522004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
34853
34854 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
34855 and install-rts-cert targets. Remove all gnatlib and gnattools
34856 targets and all other rts-* targets (moved to libada). Remove (now)
34857 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
34858 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
34859
af152989
AC
348602004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34861
34862 * trans.c (tree_transform): Shortcut returning error_mark_node for
34863 statements in annotate_only_mode.
34864 (tree_transform, case N_Label, case N_Return_Statement,
34865 N_Goto_Statement): Make statement tree instead of generating code.
34866 (tree_transform, case N_Assignment_Statement): No longer check
34867 type_annotate_only.
34868 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
34869 RETURN_STMT): New.
34870 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
34871 New fcns.
34872 (gnat_to_gnu): Collect any RTL generated and deal with it.
34873 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
34874 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
34875 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
34876
34877 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
34878
34879 * ada-tree.def (EXPR_STMT): Fix typo in name.
34880 (BLOCK_STMT, IF_STMT): New nodes.
34881
34882 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
34883 LABEL_STMT_FIRST_IN_EH): New macros.
34884 (RETURN_STMT_EXPR): Likewise.
34885
34886 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
34887 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
34888
348892004-04-08 Thomas Quinot <quinot@act-europe.fr>
34890
34891 * atree.ads: Correct documentation on extended nodes.
34892
34893 * link.c: Set run_path_option for FreeBSD.
34894
348952004-04-08 Vincent Celier <celier@gnat.com>
34896
34897 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
34898 one of the ALI file, do not link with DEC lib.
34899
34900 * par.adb Remove the last two characters ("%s" or "%b") when checking
34901 if a language defined unit may be recompiled.
34902
349032004-04-08 Ed Schonberg <schonberg@gnat.com>
34904
34905 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
34906 removal of abstract operation leaves no possible interpretation for
34907 expression.
34908
34909 * sem_eval.adb (Eval_Qualified_Expression): Use
34910 Set_Raises_Constraint_Error on node when needed, so that it does not
34911 get optimized away by subsequent optimizations.
34912
34913 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
34914 operands even when they are not wrapped in a type conversion.
34915
349162004-04-08 Olivier Hainque <hainque@act-europe.fr>
34917
34918 * sem_prag.adb (Set_Exported): Warn about making static as result of
34919 export only when the export is coming from source. This may be not
34920 be true e.g. on VMS where we expand export pragmas for exception codes
34921 together with imported or exported exceptions, and we don't want the
34922 user to be warned about something he didn't write.
34923
349242004-04-08 Thomas Quinot <quinot@act-europe.fr>
34925
34926 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
34927 duplication between normal entities and those declared as renamings.
34928 No functional change.
34929
90afe2c9 34930 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
af152989
AC
34931 inline functions returning an unconstrained result.
34932
349332004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
34934
34935 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
34936 conform to what other front-ends do.
34937
349382004-04-08 Doug Rupp <rupp@gnat.com>
34939
34940 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
34941 libraries.
34942
3984e89a
AC
349432004-04-06 Pascal Obry <obry@gnat.com>
34944
34945 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
34946
34947 * osint.adb (Program_Name): Do not look past a directory separator.
34948
349492004-04-06 Thomas Quinot <quinot@act-europe.fr>
34950
34951 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
34952
34953 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
34954 requirement for preserving a copy of the original assignment node.
34955
34956 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
34957
349582004-04-06 Olivier Hainque <hainque@act-europe.fr>
34959
34960 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
34961 when supported.
34962
349632004-04-06 Ed Schonberg <schonberg@gnat.com>
34964
34965 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
34966 operator calls in functional notation, and apply
34967 Universal_Interpretation to operands, not to their type.
34968
349692004-04-06 Robert Dewar <dewar@gnat.com>
34970
34971 * 5wdirval.adb: Minor reformatting
34972
349732004-04-06 Ed Falis <falis@gnat.com>
34974
34975 * gnat_rm.texi: Improve a reference to the GCC manual
34976
30c20106
AC
349772004-04-05 Vincent Celier <celier@gnat.com>
34978
34979 * adaint.h, adaint.c: Add function __gnat_named_file_length
34980
34981 * impunit.adb: Add Ada.Directories to the list
34982
34983 * Makefile.in: Add VMS and Windows versions of
34984 Ada.Directories.Validity package body.
34985
34986 * Makefile.rtl: Add a-direct and a-dirval
34987
34988 * mlib-tgt.ads: Minor comment update.
34989
34990 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
34991 a-direct.ads, a-direct.adb: New files.
34992
349932004-04-05 Vincent Celier <celier@gnat.com>
34994
34995 PR ada/13620
34996 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
34997 just to the compiler.
34998
349992004-04-05 Robert Dewar <dewar@gnat.com>
35000
35001 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35002 returned string is 1.
35003
35004 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35005
35006 * eval_fat.ads: Minor reformatting
35007
35008 * g-curexc.ads: Document that lower bound of returned string values
35009 is always one.
35010
35011 * gnatlink.adb: Add ??? comment for previous change
35012 (need to document why this is VMS specific)
35013
35014 * s-stoele.ads: Minor reformatting
35015
35016 * tbuild.ads: Minor reformatting throughout (new function specs)
35017
35018 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35019 after WITH.
35020
35021 * scng.adb: Minor reformatting
35022
350232004-04-05 Geert Bosch <bosch@gnat.com>
35024
35025 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35026 (Leading_Part): Still perform truncation to machine number if the
35027 specified radix_digits is greater or equal to machine_mantissa.
35028
350292004-04-05 Javier Miranda <miranda@gnat.com>
35030
35031 * par-ch3.adb: Complete documentation of previous change
35032 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35033 (aliased must appear before constant).
35034
35035 * par-ch4.adb: Complete documentation of previous change.
35036
35037 * par-ch6.adb: Complete documentation of previous change.
35038
35039 * sinfo.ads: Fix typo in commment.
35040
350412004-04-05 Ed Schonberg <schonberg@gnat.com>
35042
35043 * sem_ch3.adb (Inherit_Components): If derived type is private and has
35044 stored discriminants, use its discriminants to constrain parent type,
35045 as is done for non-private derived record types.
35046
35047 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35048 Ada 2005 AI-310: an abstract non-dispatching operation is not a
35049 candidate interpretation in an overloaded call.
35050
35051 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35052 expression is Null and target type is not an access type (e.g. a
35053 non-private address type).
35054
350552004-04-05 Thomas Quinot <quinot@act-europe.fr>
35056
35057 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35058 statement whose right-hand side is an inlined call, save a copy of the
35059 original assignment subtree to preserve enough consistency for
35060 Analyze_Assignment to proceed.
35061
35062 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35063 complete assignment subtree which is now unnecessary, as the expansion
35064 of inlined call has been improved to preserve a consistent assignment
35065 tree. Note_Possible_Modification must be called only
35066 after checks have been applied, or else unnecessary checks will
35067 be generated.
35068
35069 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35070 of explicit dereferences that do not Come_From_Source:
35071 - be selective on cases where we must go back to the dereferenced
35072 pointer (an assignment to an implicit dereference must not be
35073 recorded as modifying the pointer);
35074 - do not rely on Original_Node being present (Analyze_Assignment
35075 calls Note_Possible_Modification on a copied tree).
35076
35077 * sem_warn.adb (Check_References): When an unset reference to a pointer
35078 that is never assigned is encountered, prefer '<pointer> may be null'
35079 warning over '<pointer> is never assigned a value'.
35080
350812004-04-05 Ramon Fernandez <fernandez@gnat.com>
35082
35083 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35084 the ABI.
35085
350862004-04-05 Olivier Hainque <hainque@act-europe.fr>
35087
35088 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35089 libexc. We currently don't reference anything in this library and
35090 linking it in triggers linker warnings we don't want to see.
35091
35092 * init.c: Update comments.
35093
4f976745
RK
350942004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35095
35096 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35097 * utils.c (create_field_decl): Likewise.
35098 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35099
6da7d579
AC
351002004-04-02 Arnaud Charlet <charlet@act-europe.fr>
35101
35102 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35103 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35104 Add info directory entry and category.
35105
18c6ada9
JH
351062004-04-02 Jan Hubicka <jh@suse.cz>
35107
35108 * utils.c: Include function.h
35109 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35110
7cd4527e
AC
351112004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35112
35113 PR ada/14150
35114 * Make-lang.in: Clean up generation of documentation
35115
35116 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35117
35118 * xgnatug.adb: Removed, replaced by xgnatugn.adb
35119
35120 * xgnatugn.adb: Replaces xgnatug.adb
35121
35122 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35123
35124 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35125
35126 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35127 gnat_ug_wnt.texi: Removed.
35128
0c250f07
AC
351292004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35130
35131 * utils2.c: Update copyright notice.
35132
6b6fcd3e
AC
351332004-04-01 Robert Dewar <dewar@gnat.com>
35134
35135 * checks.adb: Minor reformatting throughout
35136 Note that prev checkin added RM reference to alignment warning
35137
351382004-04-01 Ed Schonberg <schonberg@gnat.com>
35139
35140 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35141 non-static when building aggregate for bit-packed array.
35142
35143 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35144 function call that is itself the actual in a procedure call, build
35145 temporary for it.
35146
35147 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35148 a string literal, create a temporary for it, constant folding only
35149 handles scalars here.
35150
351512004-04-01 Vincent Celier <celier@gnat.com>
35152
35153 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35154 Error_Msg_SP): New empty procedures to instantiate the Scanner.
35155 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35156 tokens.
35157 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35158 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35159 and get the checksum.
35160
35161 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35162 already in the Q.
35163 Increase the Marking_Label at the end of the Multiple_Main_Loop,
35164 instead of at the beginning.
35165
35166 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35167 directly.
35168 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35169 on VMS.
35170
35171 * osint.ads (Multi_Unit_Index_Character): New Character global variable
35172
35173 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35174 not '~' directly.
35175
35176 * par.adb: Remove test on file name to detect language defined units.
35177 Add test on unit name, after parsing, to detect language defined units
35178 that are not compiled with -gnatg (except System.RPC and its children)
35179
35180 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35181 following units without style checking.
35182
35183 * switch-c.adb: Change -gnatC to -gnateI
35184
35185 * usage.adb: Document new switch -gnateInnn
35186
35187 * scng.adb (Accumulate_Token_Checksum): New procedure
35188 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35189 word or literal number.
35190 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35191 numbers.
35192
351932004-04-01 Thomas Quinot <quinot@act-europe.fr>
35194
35195 * a-tasatt.adb,
35196 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35197 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35198 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35199 5vtpopde.adb: Add missing 'constant' keywords.
35200
352012004-04-01 Javier Miranda <miranda@gnat.com>
35202
35203 * par-ch4.adb: (P_Allocator): Code cleanup
35204
35205 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35206 attribute.
35207
35208 * sinfo.ads: Complete documentation of previous change
35209
352102004-04-01 Pascal Obry <obry@gnat.com>
35211
35212 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35213 only on VMS. This special handling was done because an old GNU/ld bug
35214 on Windows which has been fixed.
35215
352162004-04-01 GNAT Script <nobody@gnat.com>
35217
35218 * Make-lang.in: Makefile automatically updated
35219
8df83eae
RK
352202004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35221
35222 * decl.c (gnat_to_gnu_entity, make_type_from_size):
35223 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35224 * trans.c (tree_transform, convert_with_check): Likewise.
35225 * utils.c (gnat_signed_or_unsigned_type): Likewise.
35226 (build_vms_descriptor, unchecked_convert): Likewise.
35227 * utils2.c (nonbinary_modular_operation): Likewise.
35228
2820d220
AC
352292004-03-29 Javier Miranda <miranda@gnat.com>
35230
35231 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35232 (Install_Null_Excluding_Check): Local subprogram that determines whether
35233 an access node requires a runtime access check and if so inserts the
35234 appropriate run-time check.
35235 (Apply_Access_Check): Call Install_Null_Excluding check if required
35236 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35237
35238 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35239
35240 * einfo.ads: Fix typo in comment
35241
35242 * exp_ch3.adb (Build_Assignment): Generate conversion to the
35243 null-excluding type to force the corresponding run-time check.
35244 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35245 type to force the corresponding run-time check.
35246
35247 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35248 the null-excluding type to force the corresponding run-time check.
35249
35250 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35251 case of access types unless they have the null-excluding attribute.
35252
35253 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35254 part.
35255
35256 * exp_util.ads: Fix typo in comment
35257
35258 * par.adb (P_Null_Exclusion): New subprogram
35259 (P_Subtype_Indication): New formal that indicates if the null-excluding
35260 part has been scanned-out and it was present
35261
35262 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35263
35264 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35265 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35266 type to force the corresponding run-time check
35267 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35268 components
35269 (Resolve_Array_Aggregate): Carry out some static checks
35270 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35271
35272 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35273 attribute must be set only if specified by means of the null-excluding
35274 part. In addition, we must also propagate the access-constant attribute
35275 if present.
35276 (Access_Subprogram_Declaration, Access_Type_Declaration,
35277 Analyze_Component_Declaration, Analyze_Object_Declaration,
35278 Array_Type_Declaration, Process_Discriminants,
35279 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35280 and carry out some static checks.
35281 (Build_Derived_Access_Type): Set the null-excluding attribute
35282 (Derived_Type_Declaration, Process_Subtype): Carry out some static
35283 checks.
35284
35285 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35286
35287 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35288
35289 * sem_ch6.adb (Process_Formals): Carry out some static checks.
35290 (Set_Actual_Subtypes): Generate null-excluding subtype if the
35291 null-excluding part was present; it is not required to be done here in
35292 case of anonymous access types.
35293 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35294 value.
35295
35296 * sem_res.adb (Resolve_Actuals): Carry out some static check
35297 (Resolve_Null): Allow null in anonymous access
35298
35299 * sinfo.adb: New subprogram Null_Exclusion_Present
35300 All_Present and Constant_Present available on access_definition nodes
35301
35302 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35303 object_declaration, derived_type_definition, component_definition,
35304 discriminant_specification, access_to_object_definition,
35305 access_function_definition, allocator, access_procedure_definition,
35306 access_definition, parameter_specification, All_Present and
35307 Constant_Present flags available on access_definition nodes.
35308
353092004-03-29 Robert Dewar <dewar@gnat.com>
35310
35311 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35312 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35313 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35314 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35315 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35316 sem_prag.adb: Updates to handle multiple units/file
35317
35318 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35319
35320 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35321 sem_util.adb: Minor reformatting
35322
35323 * sem_ch12.adb: Add comment for previous change
35324
353252004-03-29 Laurent Pautet <pautet@act-europe.fr>
35326
35327 * osint.adb (Executable_Prefix): Set Exec_Name to the current
35328 executable name when not initialized. Otherwise, use its current value.
35329
35330 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35331 initialize it to another executable name than the current one. This
35332 allows to configure paths for an executable name (gnatmake) different
35333 from the current one (gnatdist).
35334
353352004-03-29 Ed Schonberg <schonberg@gnat.com>
35336
35337 * exp_ch6.adb (Expand_Call): A call to a function declared in the
35338 current unit cannot be inlined if it appears in the body of a withed
35339 unit, to avoid order of elaboration problems in gigi.
35340
35341 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35342 information for protected (wrapper) operation as well, to simplify gdb
35343 use.
35344
35345 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35346 protected body, indicate that the entity for the generated spec comes
35347 from source, to ensure that references are properly generated for it.
35348 (Build_Body_To_Inline): Do not inline a function that returns a
35349 controlled type.
35350
35351 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35352 apply convention to homonyms that are declared explicitly.
35353
35354 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35355 that renames an equality operator and the operands are overloaded,
35356 resolve them with the declared formal types, before rewriting as an
35357 operator.
35358
353592004-03-29 GNAT Script <nobody@gnat.com>
35360
35361 * Make-lang.in: Makefile automatically updated
35362
6d11af89
AC
353632004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
35364
35365 * memtrack.adb: Log realloc calls, which are treated as free followed
35366 by alloc.
35367
353682004-03-25 Vincent Celier <celier@gnat.com>
35369
35370 * prj-makr.adb (Process_Directories): Detect when a file contains
35371 several units. Do not include such files in the config pragmas or
35372 in the naming scheme.
35373
35374 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35375 Resolve links only when not in Trusted_Mode.
35376 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35377 Do not resolve links for the display names.
35378
35379 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35380 resolve links when computing the display names.
35381
353822004-03-25 Thomas Quinot <quinot@act-europe.fr>
35383
35384 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35385 attribute reference does not denote a subtype, it can be any
35386 expression that has a classwide type, potentially after an implicit
35387 dereference. In particular, the prefix can be a view conversion for
35388 a classwide type (for which Is_Object_Reference holds), but it can
35389 also be a value conversion for an access-to-classwide type. In the
35390 latter case, there is an implicit dereference, and the original node
35391 for the prefix does not verify Is_Object_Reference.
35392
35393 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35394 conversion of a discriminant-dependent component of a mutable object
35395 is one itself.
35396
353972004-03-25 Ed Schonberg <schonberg@gnat.com>
35398
35399 * freeze.adb (Freeze_Entity): When an inherited subprogram is
35400 inherited, has convention C, and has unconstrained array parameters,
35401 place the corresponding warning on the derived type declaration rather
35402 than the original subprogram.
35403
35404 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35405 indication on renaming declaration, if formal has a box and actual
35406 is absent.
35407
35408 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35409 determine whether to generate an implicit or explicit reference to
35410 the renamed entity.
35411
35412 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35413 subprogram renaming comes from a defaulted formal subprogram in an
35414 instance.
35415
354162004-03-25 Gary Dismukes <dismukes@gnat.com>
35417
35418 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35419 value expressions to ensure that calls within a component definition
35420 will be checked (since those are evaluated during the record type's
35421 elaboration).
35422
354232004-03-25 Arnaud Charlet <charlet@act-europe.fr>
35424
35425 * s-tpobop.adb: Code clean up:
35426 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35427 code.
35428 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35429
354302004-03-25 Jose Ruiz <ruiz@act-europe.fr>
35431
35432 * Makefile.in: Clean up in the ravenscar run time.
35433
22421b79
RK
354342004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35435
35436 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35437 of No_Strict_Aliasing to build_pointer_type_for_mode.
35438 * utils.c (update_pointer_to): Walk pointer and ref chains.
35439
24105bab
AC
354402004-03-22 Cyrille Comar <comar@act-europe.fr>
35441
35442 * ali.ads: Fix Comment about Dynamic_Elab.
35443
35444 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35445 Has_RACW, Is_Generic, etc.)
35446 (Output_Object, Gnatls): Take into account ALI files not attached to
35447 an object.
35448
354492004-03-22 Vincent Celier <celier@gnat.com>
35450
35451 * gprep.adb: Change all String_Access to Name_Id
35452 (Is_ASCII_Letter): new function
35453 (Double_File_Name_Buffer): New procedure
35454 (Preprocess_Infile_Name): New procedure
35455 (Process_Files): New procedure
35456 (Gnatprep): Check if output and input are existing directories.
35457 Call Process_Files to do the real job.
35458
354592004-03-22 Robert Dewar <dewar@gnat.com>
35460
35461 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35462 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35463
354642004-03-22 Sergey Rybin <rybin@act-europe.fr>
35465
35466 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35467 case when the source contains only comments.
35468
354692004-03-22 Ed Schonberg <schonberg@gnat.com>
35470
35471 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35472 declaration for a child subprogram body that acts as a spec, indicate
35473 that the entity in the declaration needs debugging information.
35474
35475 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35476 full view if the subtype is created for a constrained record component;
35477 gigi has enough information to construct the record, and there is no
35478 place in the tree for the declaration.
35479
35480 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35481 serial number for the dummy body that is built for analysis, to avoid
35482 inconsistencies in the generation of internal names when compiling
35483 with -gnatN.
35484
354852004-03-22 Thomas Quinot <quinot@act-europe.fr>
35486
35487 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35488 object.
35489
354902004-03-22 GNAT Script <nobody@gnat.com>
35491
35492 * Make-lang.in: Makefile automatically updated
35493
6fce44af
RK
354942004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35495
35496 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35497 * trans.c (tree_transform, emit_index_check): Likewise.
35498 * utils.c (build_template): Likewise.
35499 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35500 (maybe_unconstrained_array, unchecked_convert): Likewise.
35501 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35502 (build_unary_op): Likewise.
35503 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35504 (fill_vms_descriptor): Likewise.
35505 (build_call_alloc_dealloc): Likewise.
35506 ALIGN is unsigned.
35507 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35508
802f6d4b
JM
355092004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
35510
35511 PR other/14630
35512 * gnat_ug.texi: Add info directory category and entry.
35513 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35514 gnat_ug_wnt.texi: Regenerate.
35515
30f3b32b
AC
355162004-03-19 Arnaud Charlet <charlet@act-europe.fr>
35517
35518 * ada-tree.h: Update copyright notice.
35519 Minor reformatting.
35520
355212004-03-19 Olivier Hainque <hainque@act-europe.fr>
35522
35523 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35524 as regular exception objects and not as mere integers representing the
35525 condition code. The latter approach required some dynamics to mask off
35526 severity bits, which did not fit well into the GCC table based model.
35527 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35528 exception data objects. We don't it and it would conflict with the other
35529 external symbol we have to generate for such exceptions.
35530
35531 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35532 the special code for VMS exceptions, since these are now represented
35533 as regular exceptions objects.
35534
7548281d
RK
355352004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35536
35537 * decl.c (debug_no_type_hash): Remove.
35538 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35539 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35540
9e94c78f 355412004-03-19 Laurent Guerby <laurent@guerby.net>
dbee7ab9 35542
90afe2c9 35543 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
dbee7ab9 35544 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
90afe2c9 35545
eb34af89
RK
355462004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35547
35548 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35549 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35550 (TYPE_RM_SIZE_INT): Directly use type.values.
35551 (TREE_LOOP_ID): Clean up check.
35552 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35553 TYPE_VALUES, not TYPE_FIELDS.
35554 * trans.c (convert_with_check): Delay access of bounds of basetype
35555 until sure is numeric.
35556
a336eaca
AC
355572004-03-18 Arnaud Charlet <charlet@act-europe.fr>
35558
35559 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35560
35561 Code clean up:
35562 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35563 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35564 Specific.Set instead of direct call to e.g pthread_setspecific.
35565
355662004-03-18 Thomas Quinot <quinot@act-europe.fr>
35567
35568 * adaint.c: Update comments.
35569
35570 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
35571 GNATLIB_SHARED for FreeBSD.
35572
355732004-03-18 Jose Ruiz <ruiz@act-europe.fr>
35574
35575 * init.c [VxWorks]: Do not fix the stack size for the environment task.
35576 When needed (stack checking) the stack size is retrieved
35577 from the VxWorks kernel.
35578
35579 * Makefile.in: Flag -nostdinc is required when building the run time
35580 for avoiding looking for files in the base compiler.
35581 Add the VxWorks specific version of the package body for
35582 System.Stack_checking.Operations (5zstchop.adb).
35583
35584 * Make-lang.in: Add the object file for
35585 System.Stack_Checking.Operations.
35586
35587 * Makefile.rtl: Add object file for the package
35588 System.Stack_Checking.Operations.
35589
35590 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
35591
35592 * s-stache.ads, s-stache.adb: Move the operations related to stack
35593 checking from this package to package System.Stack_Checking.Operations.
35594 This way, stack checking operations are only linked in the final
35595 executable when using the -fstack-check flag.
35596
355972004-03-18 Doug Rupp <rupp@gnat.com>
35598
35599 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
35600 Reorganize ifeq's.
35601
35602 * 5qsystem.ads, 5xcrtl.ads: New files.
35603
356042004-03-18 Vincent Celier <celier@gnat.com>
35605
35606 * prj.adb (Reset): Reset hash table Files_Htable
35607
35608 * prj-env.adb (Source_Paths, Object_Paths): New tables.
35609 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
35610 the procedures Add_To_Path_File.
35611 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
35612 making sure that each directory is present only once and, for object
35613 dirs, when a directory already present is added, the duplicate is
35614 removed and the directory is always put as the last in the table.
35615 Write the path files at the end of these accumulations.
35616
35617 * prj-nmsc.adb (Record_Source): Add source file name in hash table
35618 Files_Htable for all sources.
35619
35620 * prj-proc.adb (Process): Remove restrictions between not directly
35621 related extending projects.
35622
356232004-03-18 Emmanuel Briot <briot@act-europe.fr>
35624
35625 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
35626 (Find_Sources): Minor speed optimization.
35627
35628 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
35629 parameter Trusted_Mode.
35630
356312004-03-18 Sergey Rybin <rybin@act-europe.fr>
35632
35633 * scn.adb (Determine_License): Take into account a degenerated case
35634 when the source contains only comments.
35635
356362004-03-18 Ed Schonberg <schonberg@gnat.com>
35637
35638 * sem_warn.adb (Check_References): For a warning on a selected
35639 component that does not come from source, locate an uninitialized
35640 component of the record type to produce a more precise error message.
35641
e6f69614
AC
356422004-03-15 Jerome Guitton <guitton@act-europe.fr>
35643
35644 * 3zsoccon.ads: Fix multicast options.
35645
35646 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
35647 in the spec.
35648
356492004-03-15 Robert Dewar <dewar@gnat.com>
35650
35651 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
35652 pragma used for a private type.
35653
35654 * lib-xref.adb (Generate_Reference): Do not generate warning if
35655 reference is in a different unit from the pragma Unreferenced.
35656
35657 * 5vtpopde.adb: Minor reformatting
35658 Fix casing of To_Task_ID
35659
35660 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
35661 flag if we have an unchecked conversion to an access type in the same
35662 unit.
35663
356642004-03-15 Geert Bosch <bosch@gnat.com>
35665
35666 * a-ngcoty.adb (Modulus): In alternate formula for large real or
35667 imaginary parts, use Double precision throughout.
35668
35669 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
35670 we want to be able to compile run-time with -gnata for testing, but
35671 this may also be instantiated in user code that is compiled with -gnata.
35672
356732004-03-15 Olivier Hainque <hainque@act-europe.fr>
35674
35675 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
35676 codes. Having a separate type for this is useful to enforce consistency
35677 throughout the various run-time units.
35678 (Exception_Data): Use Exception_Code for Import_Code.
35679
35680 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
35681 Natural and Integer in various places.
35682 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
35683 with the severity bits masked off.
35684 (Register_VMS_Exception): Handle the additional exception data pointer
35685 argument.
35686
35687 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
35688 component, now reflected by an exported accessor.
35689 (is_handled_by): New routine to compute whether the propagated
35690 occurrence matches some handler choice specification. Extracted out of
35691 get_action_description_for, and expanded to take care of the VMS
35692 specifities.
35693 (get_action_description_for): Use is_handled_by instead of an explicit
35694 complex condition to decide if the current choice at hand catches the
35695 propagated occurrence.
35696
35697 * raise.h (Exception_Code): New type for C.
35698
35699 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
35700 System.Standard_Library.Exception_Code, to allow references from the
35701 pragma import/export expander.
35702
35703 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
35704 New accessors to allow easy access to GNAT exception data
35705 characteristics.
35706 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
35707 redundant Handled_By_Others component, helper for the personality
35708 routine which will now be able to call the appropriate exception data
35709 accessor instead.
35710
35711 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
35712 component of Standard_Exception_Type to be the closest possible to
35713 Exception_Code in System.Standard_Library, that we cannot get at this
35714 point. Expand a ??? comment to notify that this type node should
35715 probably be rewritten later on.
35716
35717 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
35718 registration call to include a pointer to the exception object in the
35719 arguments.
35720
35721 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
35722 instead of int and explicit bitmasks.
35723
357242004-03-15 Vincent Celier <celier@gnat.com>
35725
35726 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
35727 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
35728
35729 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
35730 longer needed now that it is in the spec of
35731 System.Tasking.Task_Attributes.
35732
35733 * adaint.h, adaint.c: (__gnat_create_output_file): New function
35734
35735 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
35736
35737 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
35738
35739 * make.adb (Gnatmake): Do not check the executable suffix; it is being
35740 taken care of in Scan_Make_Arg.
35741 (Scan_Make_Arg): Add the executable suffix only if the argument
35742 following -o, in canonical case, does not end with the executable
35743 suffix. When in verbose mode and executable file name does not end
35744 with executable suffix, output the executable name, in canonical case.
35745
35746 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
35747 to avoid warnings when instantiating Ada.Task_Attributes.
35748 Minor reformating.
35749
35750 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
35751 in the correct order.
35752
35753 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
35754 redirect standard output and error to a file for the invocation of the
35755 compiler, then read the file.
35756
35757 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
35758 directory, instead of the Value.
35759 (Find_Source_Dirs): Remove useless code & comments.
35760
357612004-03-15 Ed Schonberg <schonberg@gnat.com>
35762
35763 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
35764 tagged type is inherited, and the parent operation is not frozen yet,
35765 force generation of a freeze node for the inherited operation, so the
35766 corresponding dispatch entry is properly initialized.
35767 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
35768 when looking for user-defined equality operation.
35769
35770 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
35771 boolean when locating primitive equality of tagged component.
35772
35773 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
35774 bit-aligned field and the right-hand side a string literal, introduce
35775 a temporary before expanding assignment into a loop.
35776
35777 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
35778 priority in full, to ensure that any expanded subepxressions of it are
35779 elaborated in the scope of the init_proc.
35780
35781 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
35782 after object declaration, skipping over code that may have been
35783 generated for validity checks.
35784
35785 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
35786 discriminants, ignore the known discriminants of its full view, if
35787 any, to check legality.
35788
35789 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
35790 component if type has unknown discriminants.
35791 (Analyze_Private_Extension_Declaration): Discriminant constraint is
35792 null if type has unknown discriminants.
35793
35794 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
35795 for end label when present.
35796
35797 * s-fileio.adb (Open): When called with a C_Stream, use given name for
35798 temporary file, rather than an empty string.
35799
358002004-03-15 Ed Falis <falis@gnat.com>
35801
35802 * s-thread.adb: Removed, no longer used.
35803
358042004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35805
35806 * decl.c (target.h): Now include.
35807 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
35808 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
35809 (validate_size): For POINTER_TYPE, get smallest size permitted on
35810 machine.
35811
35812 * fe.h: Sort Einfo decls and add Set_Mechanism.
35813
35814 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
35815 (ada/decl.o): Depends on target.h.
35816
35817 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
35818 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
35819
358202004-03-15 Thomas Quinot <quinot@act-europe.fr>
35821
35822 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
35823
35824 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
35825 Insert_Dereference_Action when rewriting an implicit dereference into
35826 an explicit one, this will be taken care of during expansion of the
35827 explicit dereference.
35828 (Expand_N_Slice): Same. Always do the rewriting, even for the case
35829 of non-packed slices, since the dereference action generated by
35830 expansion of the explicit dereference is needed in any case.
35831 (Expand_N_Selected_Component): When rewriting an implicit dereference,
35832 analyze and resolve the rewritten explicit dereference so it is seen
35833 by the expander.
35834 (Insert_Dereference_Action): This procedure is now called only for the
35835 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
35836 dereferences that do not come from source (including explicit
35837 dereferences resulting from rewriting implicit ones), but do not
35838 recursively insert a check for the dereference nodes contained within
35839 the check.
35840 (Insert_Dereference_Action): Clarify and correct comment.
35841
e4c9c075
PB
358422004-03-08 Paolo Bonzini <bonzini@gnu.org>
35843
35844 PR ada/14131
35845 Move language detection to the top level.
35846 * config-lang.in: Build by default.
35847
8a6a52dc
AC
358482004-03-05 Robert Dewar <dewar@gnat.com>
35849
35850 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
35851
35852 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
35853 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
90afe2c9 35854 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
8a6a52dc
AC
35855 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
35856 unchecked conversion to spec to avoid warnings.
35857
35858 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
35859 to Task_ID
35860
35861 * 7stpopsp.adb: Correct casing in To_Task_ID call
35862
35863 * a-strsea.ads, a-strsea.adb: Minor reformatting
35864
35865 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
35866
35867 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
35868 Adjust Max_Msg_Length to be clearly large enough.
35869
35870 * fe.h: Define In_Same_Source_Unit
35871
35872 * osint.adb: Add pragma Warnings Off to suppress warnings
35873 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
35874 aliasing warnings.
35875
35876 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
35877
35878 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
35879
35880 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
35881
35882 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
35883
35884 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
35885
35886 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
35887 node. We now do generate them for gcc back end.
35888
35889 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
35890 warning.
35891
35892 * sinput-c.adb: Fix bad name in header.
35893 Add pragma Warnings Off to suppress aliasing warning.
35894
35895 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
35896
35897 * snames.h, snames.ads, snames.adb: Add entry for pragma
35898 No_Strict_Aliasing.
35899
359002004-03-05 Vincent Celier <celier@gnat.com>
35901
35902 * prj-com.ads: Add hash table Files_Htable to check when a file name
35903 is already a source of another project.
35904
35905 * prj-nmsc.adb (Record_Source): Before recording a new source, check
35906 if its file name is not already a source of another project. Report an
35907 error if it is.
35908
35909 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
35910 source file name, call gnatpp with all the sources of the main project.
35911
35912 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
35913 of file names.
35914
35915 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
35916 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
35917 /RUNTIME_SYSTEM=, converted to --RTS=
35918 /NOTABS, converted to -notabs
35919
359202004-03-05 Pascal Obry <obry@gnat.com>
35921
35922 * make.adb: Minor reformatting.
35923
359242004-03-05 Ed Schonberg <schonberg@gnat.com>
35925
35926 Part of implemention of AI-262.
35927 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
35928
35929 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
35930 procedure.
35931
35932 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
35933 when component type is a partially constrained class-wide subtype.
35934 (Constrain_Discriminated_Type): If parent type has unknown
35935 discriminants, a constraint is illegal, even if full view has
35936 discriminants.
35937 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
35938 with unknown discriminants whose full view is a discriminated record.
35939
35940 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
35941 flag, to handle properly derivations of tagged types with unknown
35942 discriminants.
35943 (Analyze_Package_Spec, Analyze_Package_Body): Install
35944 Private_With_Clauses before analyzing private part or body.
35945
35946 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
35947 Has_Discriminants can be true for a given type (documentation).
35948
359492004-03-05 Arnaud Charlet <charlet@act-europe.fr>
35950
35951 * s-restri.ads: Fix license (GPL->GMGPL).
35952
35953 * s-tassta.adb: Minor reformatting.
35954
35955 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
35956 by calls to Exit_One_ATC_Level, since additional clean up is performed
35957 by this function.
35958
35959 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
35960 by calls to Exit_One_ATC_Level, since additional clean up is performed
35961 by this function.
35962
359632004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35964
35965 * trans.c: Reflect GCC changes to fix bootstrap problem.
35966 Add warning for suspicious aliasing unchecked conversion.
35967
359682004-03-05 GNAT Script <nobody@gnat.com>
35969
35970 * Make-lang.in: Makefile automatically updated
35971
555360a5
AC
359722004-03-02 Emmanuel Briot <briot@act-europe.fr>
35973
35974 * ali.adb (Read_Instantiation_Instance): Do not modify the
35975 current_file_num when reading information about instantiations, since
35976 this corrupts files in later references.
35977
359782004-03-02 Vincent Celier <celier@gnat.com>
35979
35980 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
35981 before checking if it is read-only.
35982
35983 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
35984 of SRC_DIRS and eliminate duplicates.
35985
35986 * gprcmd.adb: Replace command "path" with command "path_sep" to return
35987 the path separator.
35988 (Usage): Document path_sep
35989
35990 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
35991 C++ compiler. No need for a script.
35992 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
35993 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
35994 subst.
35995
35996 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
35997 where there are Ada sources.
35998 (Set_Ada_Paths): Only add to the include path the source dirs of project
35999 with Ada sources.
36000 (Add_To_Path): Add the Display_Values of the directories, not their
36001 Values.
36002
36003 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36004 data.
36005
36006 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36007 is not No_Name.
36008 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36009 Value is canonicalized.
36010 (Language_Independent_Check): Do not copy Value to Display_Value when
36011 canonicalizing Value.
36012
36013 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36014 path to find limited with cycles.
36015 (Parse_Single_Project): Use canonical cased path to find the end of a
36016 with cycle.
36017
360182004-03-02 Ed Schonberg <schonberg@gnat.com>
36019
36020 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36021 and not a child unit.
36022
36023 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36024 appear in a with_clause.
36025
36026 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36027 only happen in type_annotate mode, do not try to elaborate it.
36028
36029 * exp_util.adb (Force_Evaluation): If expression is a selected
36030 component on the left of an assignment, use a renaming rather than a
36031 temporary to remove side effects.
36032
36033 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36034 inlined instance body, which is analyzed before the end of the
36035 enclosing scope.
36036
360372004-03-02 Robert Dewar <dewar@gnat.com>
36038
36039 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36040 sem_ch4.adb: Use new feature for substitution of keywords in VMS
36041
36042 * errout.ads, errout.adb: Implement new circuit for substitution of
36043 keywords in VMS.
36044
36045 * sem_case.adb (Analyze_Choices): Place message properly when case is
36046 a subtype reference rather than an explicit range.
36047
36048 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36049
360502004-03-02 Doug Rupp <rupp@gnat.com>
36051
36052 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36053
360542004-03-02 Thomas Quinot <quinot@act-europe.fr>
36055
36056 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36057
360582004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36059
36060 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36061 BLKmode bitfield.
36062
8a7988f5
AC
360632004-02-25 Robert Dewar <dewar@gnat.com>
36064
36065 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36066 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36067 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36068 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36069 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36070 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36071 the defining instance of the type to avoid aliasing problems.
36072 Fix copyright header. Fix bad comments in package header.
36073
36074 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36075
360762004-02-25 Ed Schonberg <schonberg@gnat.com>
36077
36078 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36079 rewritten as references when aliased through an address clause.
36080
36081 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36082 whether call can be interpreted as an indirect call to the result of a
36083 parameterless function call returning an access subprogram.
36084
360852004-02-25 Arnaud Charlet <charlet@act-europe.fr>
36086
36087 Code clean up:
36088 * exp_ch7.adb (Make_Clean): Remove generation of calls to
36089 Unlock[_Entries], since this is now done by Service_Entries directly.
36090
36091 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36092
36093 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36094 Requeue_Call for better code readability. Change spec and update calls:
36095 PO_Service_Entries now unlock the PO on exit.
36096 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36097 PO_Service_Entries.
36098
36099 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36100
36101 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36102
361032004-02-25 Sergey Rybin <rybin@act-europe.fr>
36104
36105 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36106 protected subprogram call and analyzing the result of such expanding
36107 in case when the called protected subprogram is eliminated.
36108
36109 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36110 names.
36111
361122004-02-25 Jerome Guitton <guitton@act-europe.fr>
36113
36114 * Makefile.in: Clean ups.
36115
6871ba5f
AC
361162004-02-23 Ed Schonberg <schonberg@gnat.com>
36117
36118 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36119 protected operations if original subprogram is flagged as eliminated.
36120 (Expand_N_Subprogram_Body): For a protected operation, create
36121 discriminals for next operation before checking whether the operation
36122 is eliminated.
36123
36124 * exp_ch9.adb (Expand_N_Protected_Body,
36125 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36126 for internal protected operations if the original subprogram is
36127 eliminated.
36128
36129 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36130 declared in a single protected object.
36131
361322004-02-23 Vincent Celier <celier@gnat.com>
36133
36134 * prj-attr.adb: Make attribute Builder'Executable an associative array,
36135 case insensitive if file names are case insensitive, instead of a
36136 standard associative array.
36137
36138 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36139 them as case insensitive on platforms where the file names are case
36140 sensitive.
36141
36142 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36143 project file has already been parsed that canonical path are compared.
36144
361452004-02-23 Robert Dewar <dewar@gnat.com>
36146
36147 * sinput-c.ads: Correct bad unit title in header
36148
36149 * freeze.adb: Minor reformatting
36150
361512004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36152
36153 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36154 nonaddressable COMPONENT_REF that is removing padding that we are
36155 taking the address of, take the address of the padded record instead
36156 if item is variable size.
36157
6e059adb
AC
361582004-02-20 Robert Dewar <dewar@gnat.com>
36159
36160 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36161
361622004-02-20 Ed Schonberg <schonberg@gnat.com>
36163
36164 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36165 itype references for the constrained designated type of a component
36166 whose base type is already frozen.
36167
361682004-02-20 Arnaud Charlet <charlet@act-europe.fr>
36169
36170 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36171 avoid GCC warnings.
36172
361732004-02-20 Sergey Rybin <rybin@act-europe.fr>
36174
36175 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36176 identifier for a phantom package that rewrites the formal package
36177 declaration with a box. The Add semantic decorations for the defining
36178 identifier from the original node (that represents the formal package).
36179
88e3a2a3
MK
361802004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
36181
36182 * Make-lang.in (ada/stamp-sdefault): Use the top level
36183 move-if-change.
36184
4221057e
RH
361852004-02-19 Richard Henderson <rth@redhat.com>
36186
36187 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36188
5c1c8a03
AC
361892004-02-18 Emmanuel Briot <briot@act-europe.fr>
36190
36191 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36192 Scan_ALI can be used for multiple ALI files without reinitializing
36193 between calls.
36194
361952004-02-18 Robert Dewar <dewar@gnat.com>
36196
36197 * debug.adb: Minor reformatting.
36198
361992004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36200
36201 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36202 to zero if there is an address clause.
36203
362042004-02-18 Thomas Quinot <quinot@act-europe.fr>
36205
36206 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36207
362082004-02-18 Gary Dismukes <dismukes@gnat.com>
36209
36210 * layout.adb (Layout_Component_List): Revise generation of call to
36211 discriminant-checking function to pass selections of all of the type's
36212 discriminants rather than just the variant-controlling discriminant.
36213
362142004-02-18 Olivier Hainque <hainque@act-europe.fr>
36215
36216 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36217 fail in the current setup and triggers spurious system error messages.
36218 Pretend it occurred and failed instead.
36219
362202004-02-18 Vincent Celier <celier@gnat.com>
36221
36222 * bld.adb: Mark FLDFLAGS as saved
36223 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36224 it is not the root project. Put each directory to be
36225 extended between double quotes to prevent it to be expanded on Windows.
36226 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36227 the project file. Set them back to their initial values if they have not
36228 been set in the project file.
36229
36230 * gprcmd.adb: (Gprdebug, Debug): New global variables
36231 (Display_Command): New procedure
36232 (Usage): Document new command "linkopts"
36233 Call Display_Command when env var GPRDEBUG has the value "TRUE"
36234 Implement new command "linkopts"
36235 Remove quotes that may be around arguments for "extend"
36236 Always call Normalize_Pathname with arguments formatted for the platform
36237
36238 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36239 Change @echo to @$(display) in target clean to be able to clean silently
36240
36241 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36242
36243 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36244 canonical case.
36245
36246 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36247 = Extending_All when current project is an extending all project.
36248
36249 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36250 set to True only for LINK command, after Unix switch -o.
36251 (Process_Arguments): Set Output_File_Expected to True for LINK command
36252 after Unix switch -o. When Output_File_Expected is True, never add an
36253 extension to a file name.
36254
36255 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36256 option file name, only to the --for-linker= switch.
36257 (Option_File_Name): If option file name do not end with ".opt", append
36258 "/OPTIONS".
36259
362602004-02-18 GNAT Script <nobody@gnat.com>
36261
36262 * Make-lang.in: Makefile automatically updated
36263
80bcb4d2
MK
362642004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
36265
36266 * Make-lang.in (stamp-sdefault): Do not depend on
36267 move-if-change.
36268
1daa84b6
ZW
362692004-02-12 Zack Weinberg <zack@codesourcery.com>
36270
36271 * config-lang.in: Disable Ada by default until probe logic for
36272 a bootstrap Ada compiler can be moved to the top level configure
36273 script.
36274
18c0ecbe
AC
362752004-02-12 Olivier Hainque <hainque@act-europe.fr>
36276
36277 * decl.c (components_to_record): Don't claim that the internal fields
36278 we make to hold the variant parts are semantically addressable, because
36279 they are not.
36280
36281 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36282 adjust the comment describing the modular type form when we can use it.
36283 (Install_PAT): Account for the Esiz renaming.
36284
36285 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36286 sc_onstack context indication before raising the exception to which
36287 the signal is mapped. Allows better handling of later signals possibly
36288 triggered by the resumed user code if the exception is handled.
36289
362902004-02-12 Arnaud Charlet <charlet@act-europe.fr>
36291
36292 * 5zinit.adb: Removed, no longer used.
36293
362942004-02-12 Robert Dewar <dewar@gnat.com>
36295
36296 * ali.adb: Remove separating space between parameters on R line. Makes
36297 format consistent with format used by the binder for Set_Globals call.
36298
36299 * atree.ads, atree.adb: Minor reformatting (new function header format)
36300
36301 * bindgen.adb: Add Run-Time Globals documentation section containing
36302 detailed documentation of the globals passed from the binder file to
36303 the run time.
36304
36305 * gnatls.adb: Minor reformatting
36306
36307 * init.c (__gnat_set_globals): Add note pointing to documentation in
36308 bindgen.
36309
36310 * lib-writ.ads, lib-writ.adb: Remove separating space between
36311 parameters on R line.
36312 Makes format consistent with format used by the binder for Set_Globals
36313 call.
36314
36315 * osint.ads: Add 2004 to copyright notice
36316 Minor reformatting
36317
36318 * snames.ads: Correct capitalization of FIFO_Within_Priorities
36319 Noticed during code reading, documentation issue only
36320
36321 * usage.adb: Remove junk line for obsolete C switch
36322 Noticed during code reading
36323
363242004-02-12 Vincent Celier <celier@gnat.com>
36325
36326 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36327 extend for each directory, so that multiple /** directories are
36328 extended individually.
36329 (Recursive_Process): Set the default for LANGUAGES to ada
36330
36331 * gprcmd.adb: Define new command "ignore", to do nothing.
36332 Implement new comment "path".
36333
36334 * Makefile.generic: Suppress output when SILENT is set
36335 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36336 used, so that the correct compiler is invoked.
36337 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36338 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36339
363402004-02-12 Jerome Guitton <guitton@act-europe.fr>
36341
36342 * Makefile.in: Clean ups and remove obsolete targets.
36343
363442004-02-12 Ed Schonberg <schonberg@gnat.com>
36345
36346 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36347 predicate declared in exp_util.
36348
36349 * exp_util.adb: Add comments.
36350
36351 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36352 visibility before compiling context of the subunit.
36353
36354 * sem_res.adb (Check_Parameterless_Call): If the context expects a
36355 value but the name is a procedure, do not attempt to analyze as a call,
36356 in order to obtain more telling diagnostics.
36357
36358 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36359 'Access on parameterless function calls.
36360 (Normalize_Actuals): For a parameterless function call with missing
36361 actuals, defer diagnostic until resolution of enclosing call.
36362
36363 * sem_util.adb (Wrong_Type): If the context type is an access to
36364 subprogram and the expression is a procedure name, suggest a missing
36365 'attribute.
36366
c1dcfa14
AC
363672004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
36368 Nathanael Nerode <neroden@gcc.gnu.org>
36369
6f7f72f9
EB
36370 PR ada/6637
36371 PR ada/5911
c1dcfa14 36372 Merge with libada-branch:
90afe2c9 36373 * config-lang.in: Build libada only when ada is built.
c1dcfa14 36374
2e071734
AC
363752004-02-09 Ed Schonberg <schonberg@gnat.com>
36376
36377 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36378 for a tagged type, verify that both formals have the same type.
36379
36380 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36381 temporary when the formal is an in-parameter and the actual a possibly
36382 unaligned slice.
36383
36384 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36385 when expansion is disabled, to ensure proper name capture with
36386 overloaded literals. Condition can be of any boolean type, resolve
36387 accordingly.
36388
36389 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36390 renaming is for a formal subprogram with a default operator name, and
36391 there is a usable operator that is visible at the point of
36392 instantiation.
36393
363942004-02-09 Robert Dewar <dewar@gnat.com>
36395
36396 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36397 rewrite to ignore errors in ali files, intended to allow tools downward
36398 compatibility with new versions of ali files.
36399
36400 * ali.ads: Add new parameter Ignore_Errors
36401
36402 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36403 duplicating the error message giving the file with restrictions.
36404
36405 * debug.adb: Add debug flag I for gnatbind
36406
36407 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36408 operators for the case where the operator is a defining operator.
36409
36410 * exp_ch3.adb: Minor reformatting (new function spec format).
36411
36412 * exp_ch4.adb: Add comment for previous change, and make minor
36413 adjustment to loop to always check for improper loop termination.
36414 Minor reformatting throughout (new function spec format).
36415
36416 * gnatbind.adb: Implement -di debug flag for gnatbind
36417
36418 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36419
36420 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36421
36422 * lib-load.adb: Fix bad assertion.
36423 Found by testing and code reading.
36424 Minor reformatting.
36425
36426 * lib-load.ads: Minor reformatting.
36427
36428 * lib-writ.adb: There is only one R line now.
36429
36430 * lib-writ.ads: Add documentation on making downward compatible changes
36431 to ali files so old tools work with new ali files.
36432 There is only one R line now.
36433 Add documentation on format incompatibilities (with special GPS note)
36434
36435 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36436
36437 * par-load.adb: Minor reformatting
36438
36439 * sem_ch8.adb: Fix to error message from last update
36440 Minor reformatting and restructuring of code from last update
36441
36442 * par-prag.adb, snames.adb, snames.ads, snames.h,
36443 sem_prag.adb: Implement pragma Profile.
36444
36445 * stylesw.adb: Implement -gnatyN switch to turn off all style check
36446 options.
36447
36448 * usage.adb: Add line for -gnatyN switch
36449
36450 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36451
a41ea816
AC
364522004-02-09 Albert Lee <lee@gnat.com>
36453
36454 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36455
364562004-02-09 Ed Schonberg <schonberg@gnat.com>
36457
36458 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36459 slices.
36460
36461 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36462 is nested in an instance that is not frozen yet, to avoid
36463 order-of-elaboration problems in gigi.
36464
36465 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36466 body the attribute is legal.
36467
364682004-02-09 Robert Dewar <dewar@gnat.com>
36469
36470 * s-rident.ads: Minor comment correction
36471
36472 * targparm.adb: Remove dependence on uintp completely. There was
36473 always a bug in Make in that it called Targparm before initializing
36474 the Uint package. The old code appeared to get away with this, but
36475 the new code did not! This caused an assertion error in gnatmake.
36476
36477 * targparm.ads: Fix bad comment, restriction pragmas with parameters
36478 are indeed fully supported.
36479
725c60f8
AM
364802004-02-06 Alan Modra <amodra@bigpond.net.au>
36481
36482 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36483
136e64db
KH
364842004-02-05 Kazu Hirata <kazu@cs.umass.edu>
36485
36486 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36487 with targetm.calls.promote_prototypes.
36488
06effe87
AC
364892004-02-04 Robert Dewar <dewar@gnat.com>
36490
36491 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36492 ali.ads, gprcmd.adb: Minor reformatting
36493
36494 * bindgen.adb: Output restrictions string for new style restrictions
36495 handling
36496
36497 * impunit.adb: Add s-rident.ads (System.Rident) and
36498 s-restri (System.Restrictions)
36499
36500 * lib-writ.adb: Fix bug in writing restrictions string (last few
36501 entries wrong)
36502
36503 * s-restri.ads, s-restri.adb: Change name Restrictions to
36504 Run_Time_Restrictions to avoid conflict with package name.
36505 Add circuit to read and acquire run time restrictions.
36506
365072004-02-04 Jose Ruiz <ruiz@act-europe.fr>
36508
36509 * restrict.ads, restrict.adb: Use the new restriction
36510 No_Task_Attributes_Package instead of the old No_Task_Attributes.
36511
36512 * sem_prag.adb: No_Task_Attributes is a synonym of
36513 No_Task_Attributes_Package.
36514
36515 * snames.ads, snames.adb: New entry for proper handling of
36516 No_Task_Attributes.
36517
36518 * s-rident.ads: Adding restriction No_Task_Attributes_Package
36519 (AI-00249) that supersedes the GNAT specific restriction
36520 No_Task_Attributes.
36521
365222004-02-04 Ed Schonberg <schonberg@gnat.com>
36523
90afe2c9 36524 * sem_prag.adb:
06effe87
AC
36525 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36526 body, an identifier may be wrapped in an unchecked conversion.
36527
365282004-02-04 Vincent Celier <celier@gnat.com>
36529
36530 * lib-writ.ads: Comment update for the W lines
36531
36532 * bld.adb: (Expression): An empty string list is static
36533
36534 * fname-uf.adb: Minor comment update
36535
36536 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36537
36538 * gnatbind.adb: Initialize Cumulative_Restrictions with the
36539 restrictions on the target.
36540
2fb00d7f
KH
365412004-02-03 Kazu Hirata <kazu@cs.umass.edu>
36542
36543 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36544 gen_rtx.
36545
5ed23e25
AC
365462004-02-02 Arnaud Charlet <charlet@gnat.com>
36547
36548 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36549
6e937c1c
AC
365502004-02-02 Vincent Celier <celier@gnat.com>
36551
36552 * gprcmd.adb (Check_Args): If condition is false, print the invoked
36553 comment before the usage.
36554 Gprcmd: Fail when command is not recognized.
36555 (Usage): Document command "prefix"
36556
36557 * g-md5.adb (Digest): Process last block.
36558 (Update): Do not process last block. Store remaining characters and
36559 length in Context.
36560
36561 * g-md5.ads (Update): Document that several call to update are
36562 equivalent to one call with the concatenated string.
36563 (Context): Add fields to allow new Update behaviour.
36564
36565 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
36566 defaulted to False.
36567 When May_Fail is True and no existing file can be found, return No_File.
36568
36569 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
36570 functions.
36571
36572 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
36573 spec file name instead on the W line.
36574
365752004-02-02 Robert Dewar <dewar@gnat.com>
36576
36577 * ali.adb: Read and acquire info from new format restrictions lines
36578
36579 * bcheck.adb: Add circuits for checking restrictions with parameters
36580
36581 * bindgen.adb: Output dummy restrictions data
36582 To be changed later
36583
36584 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36585 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
36586 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
36587 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
36588 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
36589
36590 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
36591 the warning message on access to possibly uninitialized variable S)
36592 Minor changes for new restrictions handling.
36593
36594 * gnatbind.adb: Minor reformatting
36595 Minor changes for new restrictions handling
36596 Move circuit for -r processing here from bcheck (cleaner)
36597
36598 * gnatcmd.adb, gnatlink.adb: Minor reformatting
36599
36600 * lib-writ.adb: Output new format restrictions lines
36601
36602 * lib-writ.ads: Document new R format lines for new restrictions
36603 handling.
36604
36605 * s-restri.ads/adb: New files
36606
36607 * Makefile.rtl: Add entry for s-restri.ads/adb
36608
36609 * par-ch3.adb: Fix bad error messages starting with upper case letter
36610 Minor reformatting
36611
36612 * restrict.adb: Major rewrite throughout for new restrictions handling
36613 Major point is to handle restrictions with parameters
36614
36615 * restrict.ads: Major changes in interface to handle restrictions with
36616 parameters. Also generally simplifies setting of restrictions.
36617
36618 * snames.ads/adb: New entry for proper handling of No_Requeue
36619
36620 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
36621 restriction counting.
36622 Other minor changes for new restrictions handling
36623
36624 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
36625 Restriction_Warnings now allows full parameter notation
36626 Major rewrite of Restrictions for new restrictions handling
36627
366282004-02-02 Javier Miranda <miranda@gnat.com>
36629
36630 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
36631 syntax rule for object renaming declarations.
36632 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
36633 component definitions.
36634
36635 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
36636 components.
36637 (Array_Type_Declaration): Give support to access components. In addition
36638 it was also modified to reflect the name of the object in anonymous
36639 array types. The old code did not take into account that it is possible
36640 to have an unconstrained anonymous array with an initial value.
36641 (Check_Or_Process_Discriminants): Allow access discriminant in
36642 non-limited types.
36643 (Process_Discriminants): Allow access discriminant in non-limited types
36644 Initialize the new Access_Definition field in N_Object_Renaming_Decl
36645 node. Change Ada0Y to Ada 0Y in comments
36646
36647 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
36648 equality operators.
36649 Change Ada0Y to Ada 0Y in comments
36650
36651 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
36652 renamings Change Ada0Y to Ada 0Y in comments
36653
36654 * sem_type.adb (Find_Unique_Type): Give support to the equality
36655 operators for universal access types
36656 Change Ada0Y to Ada 0Y in comments
36657
36658 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
36659
36660 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
36661 field.
36662 (N_Object_Renaming_Declaration): Addition of Access_Definition field
36663 Change Ada0Y to Ada 0Y in comments
36664
36665 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
36666 component definition and object renaming nodes
36667 Change Ada0Y to Ada 0Y in comments
36668
366692004-02-02 Jose Ruiz <ruiz@act-europe.fr>
36670
36671 * restrict.adb: Use the new restriction identifier
36672 No_Requeue_Statements instead of the old No_Requeue for defining the
36673 restricted profile.
36674
36675 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
36676 No_Requeue_Statements.
36677
36678 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
36679 that supersedes the GNAT specific restriction No_Requeue. The later is
36680 kept for backward compatibility.
36681
366822004-02-02 Ed Schonberg <schonberg@gnat.com>
36683
36684 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
36685 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
36686 pragma and fix incorrect ones.
36687
36688 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
36689 warning if the pragma is redundant.
36690
366912004-02-02 Thomas Quinot <quinot@act-europe.fr>
36692
36693 * 5staprop.adb: Add missing 'constant' keywords.
36694
36695 * Makefile.in: use consistent value for SYMLIB on
36696 platforms where libaddr2line is supported.
36697
366982004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36699
36700 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
36701 annotating types.
36702
367032004-02-02 Olivier Hainque <hainque@act-europe.fr>
36704
36705 * init.c (__gnat_install_handler): Setup an alternate stack for signal
36706 handlers in the environment thread. This allows proper propagation of
36707 an exception on stack overflows in this thread even when the builtin
36708 ABI stack-checking scheme is used without support for a stack reserve
36709 region.
36710
36711 * utils.c (create_field_decl): Augment the head comment about bitfield
36712 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
36713 here, because the former is not accurate enough at this point.
36714 Let finish_record_type decide instead.
36715 Don't make a bitfield if the field is to be addressable.
36716 Always set a size for the field if the record is packed, to ensure the
36717 checks for bitfield creation are triggered.
36718 (finish_record_type): During last pass over the fields, clear
36719 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
36720 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
36721 from DECL_BIT_FIELD.
36722
71cbe2c1
KC
367232004-01-30 Kelley Cook <kcook@gcc.gnu.org>
36724
90afe2c9 36725 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
71cbe2c1
KC
36726 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
36727 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
36728
7f996f90
RO
367292004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36730
36731 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
36732
36733 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
36734 (ZCX_By_Default): Likewise.
36735 (Front_End_ZCX_Support): Likewise.
36736
36737 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
36738 (Initialize_Lock): Mark Level unreferenced.
36739 (Sleep): Mark Reason unreferenced.
36740 (Timed_Sleep): Likewise.
36741 (Wakeup): Likewise.
36742 (Exit_Task): Use Result.
36743 (Check_No_Locks): Mark Self_ID unreferenced.
90afe2c9 36744
7f996f90
RO
36745 * 5gtasinf.adb (New_Sproc): Make Attr constant.
36746 (Bound_Thread_Attributes): Make Sproc constant.
36747 (New_Bound_Thread_Attributes): Likewise.
36748
26fd4eae
AC
367492004-01-26 Ed Schonberg <schonberg@gnat.com>
36750
36751 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
36752 one-dimensional array an slice assignments, when component type is
36753 controlled.
36754
36755 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
36756 component type is controlled, and control_actions are in effect, use
36757 TSS procedure rather than generating inline code.
36758
36759 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
36760 arrays with controlled components.
36761
367622004-01-26 Vincent Celier <celier@gnat.com>
36763
36764 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
36765 command line for the non VMS case.
36766
36767 * gnatlink.adb (Process_Binder_File): When building object file, if
36768 GNU linker is used, put all object paths between quotes, to prevent ld
36769 error when there are unusual characters (such as '!') in the paths.
36770
36771 * Makefile.generic: When there are sources in Ada and the main is in
36772 C/C++, invoke gnatmake with -B, instead of -z.
36773
36774 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
36775 from VMS_Conversion.
36776 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
36777 specification of argument file on the command line.
36778
367792004-01-26 Bernard Banner <banner@gnat.com>
36780
36781 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
36782
367832004-01-26 Ed Schonberg <schonberg@gnat.com>
36784
36785 * snames.adb: Update copyright notice.
36786 Add info on slice assignment for controlled arrays.
36787
b7e429ab
AC
367882004-01-23 Robert Dewar <dewar@gnat.com>
36789
36790 * exp_aggr.adb: Minor reformatting
36791
36792 * exp_ch9.adb: Minor code clean up
36793 Minor reformatting
36794 Fix bad character in comment
36795
36796 PR ada/13471
36797 * targparm.adb (Get_Target_Parameters): Give clean abort error on
36798 unexpected end of file, along with more detailed message.
36799
368002004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36801
36802 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
36803 PAT.
36804
36805 * decl.c (copy_alias_set): New function.
36806 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
36807
368082004-01-23 Doug Rupp <rupp@gnat.com>
36809
36810 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
36811 lib$${file} in case subsequent character is not a separator.
36812
368132004-01-23 Vincent Celier <celier@gnat.com>
36814
36815 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
36816 when the GCC version is at least 3.
36817
36818 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
36819 Remove all "Opt.", to prepare for opt split
36820
36821 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
36822 Extends_All. Set to True when the project parsed is an extending all
36823 project. Fails for importing an extending all project only when the
36824 imported project is an extending all project.
36825 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
36826 depending on the value of Extends_All returned.
36827
36828 * prj-proc.adb (Process): Check that no project shares its object
36829 directory with a project that extends it, directly or indirectly,
36830 including a virtual project.
36831 Check that no project extended by another project shares its object
36832 directory with another also extended project.
36833
36834 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
36835 Kind = N_With_Clause
36836
36837 * prj-tree.ads: Minor reformatting
36838 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
36839
368402004-01-23 Ed Schonberg <schonberg@gnat.com>
36841
36842 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
36843 applies to a type with an incomplete view, use full view in Name of
36844 clause, for consistency with uses of Get_Attribute_Definition_Clause.
36845
368462004-01-23 Arnaud Charlet <charlet@act-europe.fr>
36847
36848 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
36849 SCHED_RR, since other values are not supported by this policy.
36850 (Initialize): Move initialization of mutex attribute to package
36851 elaboration, to prevent early access to this variable.
36852
36853 * Makefile.in: Remove mention of Makefile.adalib, unused.
36854
b291953f
AC
36855 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
36856 1ssecsta.ads: Removed, unused.
b7e429ab 36857
adc04486
AC
368582004-01-21 Javier Miranda <miranda@gnat.com>
36859
36860 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
36861 entity if already built in the current scope.
36862
36863 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
36864 reminder in internal scopes. Required for nested limited aggregates.
36865
368662004-01-21 Doug Rupp <rupp@gnat.com>
36867
36868 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
36869 VMS. Replace all occurences of libgnat- and libgnarl- with
36870 libgnat$(hyphen) and libgnarl$(hyphen).
36871 Fixed shared library build problem on VMS.
36872
368732004-01-21 Robert Dewar <dewar@gnat.com>
36874
36875 * mlib-prj.adb: Minor reformatting
36876
368772004-01-21 Thomas Quinot <quinot@act-europe.fr>
36878
36879 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
36880 'constant' keywords for declaration of pointers that are not modified.
36881
36882 * exp_pakd.adb: Fix English in comment.
36883
368842004-01-21 Ed Schonberg <schonberg@gnat.com>
36885
36886 PR ada/10889
36887 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
36888 copy all attributes of the parent, including the foreign language
36889 convention.
36890
368912004-01-21 Sergey Rybin <rybin@act-europe.fr>
36892
36893 PR ada/10565
36894 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
36895 for 'delay until' statement.
36896
a541f69d
KC
368972004-01-20 Kelley Cook <kcook@gcc.gnu.org>
36898
36899 * Make-lang.in: Replace $(docdir) with doc.
36900 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
36901 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
36902 to use consistent MAKEINFO rule.
36903 (ada.man, ada.srcman): Dummy entry.
36904 (ADA_INFOFILES): Define.
36905 (ada.info, ada.srcinfo): New rules.
36906
c01a9391
AC
369072004-01-19 Arnaud Charlet <charlet@act-europe.fr>
36908
36909 * utils.c: Update copyright notice, missed in previous change.
36910
369112004-01-19 Vincent Celier <celier@gnat.com>
36912
36913 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
36914 args if Bind is True. Set First_ALI, if not already done.
36915 (Build_Library): For Stand Alone Libraries, extract from one ALI file
36916 an eventual --RTS switch, for gnatbind, and all backend switches +
36917 --RTS, for linking.
36918
369192004-01-19 Robert Dewar <dewar@gnat.com>
36920
36921 * sem_attr.adb, memtrack.adb: Minor reformatting
36922
369232004-01-19 Ed Schonberg <schonberg@gnat.com>
36924
36925 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
36926 that rename enumeration literals. This is properly done in sem_eval.
36927
36928 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
36929 to functions that rename enumeration literals.
36930
36931 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
36932 functions that rename enumeration literals.
36933
510d1e80
KH
369342004-01-16 Kazu Hirata <kazu@cs.umass.edu>
36935
36936 * Make-lang.in (utils.o): Depend on target.h.
36937 * utils.c: Include target.h.
36938 (process_attributes): Use targetm.have_named_sections instead
36939 of ASM_OUTPUT_SECTION_NAME.
36940
fbf3e0dd
AJ
369412004-01-16 Andreas Jaeger <aj@suse.de>
36942
36943 * Makefile.in: Add $(DESTDIR).
36944
acd47d2a
AC
369452004-01-15 Olivier Hainque <hainque@act-europe.fr>
36946
36947 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
36948 also when not defining if a Size clause applies. That information is
36949 not to be ignored.
36950
369512004-01-15 Arnaud Charlet <charlet@act-europe.fr>
36952
36953 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
36954 symbolic links for the shared gnat run time when needed.
36955
369562004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
36957
36958 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
36959 for writing, and terminate with an error message if not.
36960
369612004-01-15 Ed Schonberg <schonberg@gnat.com>
36962
36963 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
36964 warning on an access to subprogram in an instance, when the target
36965 type is declared in the same generic unit.
36966 (Eval_Attribute): If 'access is known to fail accessibility check,
36967 rewrite as a raise statement.
36968
369692004-01-15 GNAT Script <nobody@gnat.com>
36970
36971 * Make-lang.in: Makefile automatically updated
36972
03787dfd
KC
369732004-01-15 Kelley Cook <kcook@gcc.gnu.org>
36974
36975 * Make-lang.in (ada.srcextra): Dummy entry.
36976
73e232f0
KC
369772004-01-14 Kelley Cook <kcook@gcc.gnu.org>
36978
36979 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
36980
9bc43c53
AC
369812004-01-13 Ed Schonberg <schonberg@gnat.com>
36982
36983 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
36984 components that are initialized with aggregates.
36985
369862004-01-13 Vincent Celier <celier@gnat.com>
36987
36988 * gnatlink.adb (Process_Binder_File): To find directory of shared
36989 libgcc, if "gcc-lib" is not a subdirectory, look for the last
36990 subdirectory "lib" in the path of the shared libgnat or libgnarl.
36991
36992 * make.adb (Gnatmake): If GCC version is at least 3, link with
36993 -shared-libgcc, when there is at least one shared library project.
36994
36995 * opt.ads (GCC_Version): New integer constant.
36996
36997 * adaint.c (get_gcc_version): New function.
36998
369992004-01-13 Robert Dewar <dewar@gnat.com>
37000
37001 * sem_dist.adb, sem_res.adb, sem_util.adb,
37002 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37003 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37004
370052004-01-13 Thomas Quinot <quinot@act-europe.fr>
37006
37007 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37008 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37009 declarations.
37010
8b52de7b
AC
370112004-01-12 Arnaud Charlet <charlet@act-europe.fr>
37012
f6ea0188
AC
37013 * misc.c: Remove trailing spaces.
37014 Update copyright notice missed in previous change.
37015
8b52de7b
AC
37016 PR ada/13572
37017 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37018 prefix/share/make
37019
37020 * Makefile.generic: Update copyright.
37021 Add license notice.
37022
37023 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37024 of prefix/share/make.
37025
37026 * Makefile.prolog: Update copyright.
37027 Add license notice.
37028
370292004-01-12 Laurent Pautet <pautet@act-europe.fr>
37030
37031 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37032 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37033 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37034 instead of String.
37035
37036 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37037 signature.
37038
370392004-01-12 Javier Miranda <miranda@gnat.com>
37040
37041 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37042 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37043 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37044 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37045 Component_Definition node.
37046
370472004-01-12 Ed Falis <falis@gnat.com>
37048
37049 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37050
370512004-01-12 Thomas Quinot <quinot@act-europe.fr>
37052
37053 * link.c: Change default libgnat kind to STATIC for FreeBSD.
37054
370552004-01-12 Bernard Banner <banner@gnat.com>
37056
37057 * Makefile.in: map 86numaux to a-numaux for x86_64
37058
370592004-01-12 Ed Schonberg <schonberg@gnat.com>
37060
37061 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37062 generated to rename a generic actual, go to the actual itself, the
37063 subtype is not a user-visible entity.
37064
37065 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37066 part is a private subtype, reset the visibility of its full view, if
37067 any, to be consistent.
37068
37069 PR ada/13417
37070 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37071 to use a generic package G as a formal package for another generic
37072 declared within G.
37073
370742004-01-12 Robert Dewar <dewar@gnat.com>
37075
37076 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37077
37078 * usage.adb: Remove mention of obsolete -gnatwb switch
37079 Noticed during code reading
37080
370812004-01-12 Jerome Guitton <guitton@act-europe.fr>
37082
37083 * 1ssecsta.adb: Minor changes for -gnatwa warnings
37084
370852004-01-12 GNAT Script <nobody@gnat.com>
37086
37087 * Make-lang.in: Makefile automatically updated
37088
0fab64a3
MM
370892004-01-09 Mark Mitchell <mark@codesourcery.com>
37090
37091 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37092
47527624
RO
370932004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37094
37095 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37096
dedebde1
KC
370972004-01-05 Kelley Cook <kcook@gcc.gnu.org>
37098
fbf3e0dd 37099 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
dedebde1
KC
37100 Update comment and copyright date.
37101 * stamp-xgnatug: Delete.
37102
91b1417d
AC
371032004-01-05 Robert Dewar <dewar@gnat.com>
37104
37105 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37106 be modified by the binder generated main program if the -D switch is
37107 used.
37108
37109 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37110 imported functions (since now we expect this to be done for imported
37111 functions)
37112
37113 * 5vtaprop.adb: Add several ??? for sections requiring more comments
37114 Minor reformatting throughout
37115
37116 * 5zinit.adb: Minor reformatting
37117 Add 2004 to copyright date
37118 Minor changes to avoid -gnatwa warnings
37119 Correct some instances of using OR instead of OR ELSE (noted while
37120 doing reformatting)
37121
37122 * sprint.adb: Minor updates to avoid -gnatwa warnings
37123
fbf3e0dd 37124 * s-secsta.ads, s-secsta.adb:
91b1417d
AC
37125 (SS_Get_Max): New function to obtain high water mark for ss stack
37126 Default_Secondary_Stack is not a constant since it may be modified by
37127 the binder generated main program if the -D switch is used.
37128
37129 * switch-b.adb: New -Dnnn switch for binder
37130
fbf3e0dd 37131 * switch-c.adb:
91b1417d
AC
37132 Make -gnatg imply all warnings currently in -gnatwa
37133
37134 * vms_conv.adb: Minor reformatting
37135 Add 2004 to copyright notice
37136 Add 2004 to printed copyright notice
37137
37138 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37139 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37140 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37141 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37142 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37143 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37144 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37145 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37146 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37147 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37148 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37149 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37150 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37151 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37152 checks.adb, clean.adb, cstand.adb, einfo.ads,
37153 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37154 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37155 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37156 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37157 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37158 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37159 Minor reformatting and code clean ups.
37160 Minor changes to prevent -gnatwa warnings
37161
37162 * ali.adb: Minor reformatting and cleanup of code
37163 Acquire new SS indication of secondary stack use from ali files
37164
37165 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37166 (since now we expect this to be done for imported functions)
37167
37168 * bindgen.adb: Generate call to modify default secondary stack size if
37169 -Dnnn switch given
37170
37171 * bindusg.adb: Add line for new -D switch
37172
37173 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37174 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37175 Add circuitry for both records and arrays to avoid gigi
37176 processing if the type involved has non-bit-aligned components
37177
37178 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37179 N_String_Literal node always references an E_String_Literal_Subtype
37180 entity. This may not be true in the future.
37181 (Possible_Bit_Aligned_Component): Move processing of
37182 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37183
37184 * exp_ch6.adb (Expand_Thread_Body): Pick up
37185 Default_Secondary_Stack_Size as variable so that we get value modified
37186 by possible -Dnnn binder parameter.
37187
37188 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37189 (Type_May_Have_Bit_Aligned_Components): New function.
37190
37191 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37192 (Type_May_Have_Bit_Aligned_Components): New function.
37193
37194 * fe.h: (Set_Identifier_Casing): Fix prototype.
37195 Add declaration for Sem_Elim.Eliminate_Error_Msg.
37196 Minor reformatting.
37197
37198 * freeze.adb (Freeze_Entity): Add RM reference to error message about
37199 importing constant atomic/volatile objects.
37200 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37201 unless explicit Pure_Function pragma given, to avoid insidious bug of
37202 call to non-pure imported function getting eliminated.
37203
37204 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37205 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37206 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37207 Add 2004 to printed copyright notice
37208
37209 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37210 stack used.
37211
37212 * Makefile.rtl: Add entry for g-sestin.o
37213 g-sestin.ads: New file.
37214
37215 * mdll.adb: Minor changes to avoid -gnatwa warnings
37216
37217 * mlib-tgt.adb: Minor reformatting
37218
37219 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37220 New switch Sec_Stack_Used (GNAT, GNATBIND)
37221 Make Default_Secondary_Stack_Size a variable instead of a constant,
37222 so that it can be modified by the new -Dnnn bind switch.
37223
37224 * rtsfind.adb (Load_Fail): Give full error message in configurable
37225 run-time mode if all_errors mode is set. This was not done in the case
37226 of a file not found, which was an oversight.
37227 Note if secondary stack unit is used by compiler.
37228
37229 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37230 ineffective elaborate all pragmas on non-visible packages (this
37231 happened when a renamed subprogram was called). Now the elaborate all
37232 always goes on the package containing the renaming rather than the one
37233 containing the renamed subprogram.
37234
37235 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37236 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37237
37238 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37239 has an Etype that references an E_String_Literal.
37240 (Eval_String_Literal): Avoid assumption that N_String_Literal node
37241 always references an E_String_Literal_Subtype entity. This may not
37242 be true in the future.
37243
37244 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37245 pragma location.
37246
37247 * sem_res.adb (Resolve): Specialize msg for function name used in proc
37248 call.
37249
372502004-01-05 Ed Falis <falis@gnat.com>
37251
37252 * g-debuti.adb: Replaced direct boolean operator with short-circuit
37253 form.
37254
372552004-01-05 Vincent Celier <celier@gnat.com>
37256
37257 * bld.adb: Minor comment updates
37258 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37259 of Item_Name).
37260
37261 * make.adb (Gnatmake): Special process for files to compile/check when
37262 -B is specified. Fail when there are only foreign mains in attribute
37263 Main of the project file and -B is not specified. Do not skip bind/link
37264 steps when -B is specified.
37265
37266 * makeusg.adb: Document new switch -B
37267
37268 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37269
37270 * switch-m.adb: (Scan_Make_Switches): Process -B switch
37271
37272 * vms_data.ads: Add new GNAT PRETTY qualifier
37273 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37274
372752004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37276
37277 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37278 case.
37279
37280 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37281 Set_Identifier_Casing.
37282
37283 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37284 has size that overflows.
37285
372862004-01-05 Gary Dismukes <dismukes@gnat.com>
37287
37288 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37289 -gnatwa warning on static condition.
37290
372912004-01-05 Doug Rupp <rupp@gnat.com>
37292
37293 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37294
372952004-01-05 Arnaud Charlet <charlet@act-europe.fr>
37296
37297 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37298 all attributes, including read-only attribute.
37299
373002004-01-05 Pascal Obry <obry@gnat.com>
37301
37302 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37303 library naming scheme.
37304
37305 * mlib-prj.adb (Build_Library): Generate different names for the static
37306 or dynamic version of the GNAT runtime. This is needed to support the
37307 new shared library naming scheme.
37308 (Process_Binder_File): Add detection of shared library in binder file
37309 based on the new naming scheme.
37310
37311 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37312 scheme for the shared runtime libraries.
37313
37314 * Makefile.in:
37315 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37316 scheme.
37317 (install-gnatlib): Do not create symlinks for shared libraries.
37318 (gnatlib-shared-default): Idem.
37319 (gnatlib-shared-dual-win32): New target. Not used for now as the
37320 auto-import feature does not support arrays/records.
37321 (gnatlib-shared-win32): Do not create copy for the shared libraries.
37322 (gnatlib-shared-vms): Fix shared runtime libraries names.
37323
37324 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37325 dependent runtime shared library name.
37326
373272004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
37328
37329 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37330 than the object.
37331
373322004-01-05 Ed Schonberg <schonberg@gnat.com>
37333
37334 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37335 protected objects when allocator has a subtype indication, not a
37336 qualified expression. Note that qualified expressions may have to be
37337 checked when limited aggregates are implemented.
37338
37339 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37340 pure, emit warning.
37341 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37342 subprogram is imported, remove warning.
37343
373442004-01-05 Geert Bosch <bosch@gnat.com>
37345
37346 * s-poosiz.adb: Update copyright notice.
37347 (Allocate): Use Task_Lock to protect against concurrent access.
37348 (Deallocate): Likewise.
37349
373502004-01-05 Joel Brobecker <brobecker@gnat.com>
37351
37352 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37353 comment.
37354
2ab127f3
KC
373552003-12-23 Kelley Cook <kcook@gcc.gnu.org>
37356
37357 * gnat_ug.texi: Force a CVS commit by updating copyright.
37358 * gnat_ug_vxw.texi: Regenerate.
37359 * gnat_ug_wnt.texi: Regenerate.
37360 * gnat_ug_vms.texi: Regenerate.
37361 * gnat_ug_unx.texi: Regenerate.
37362
aed8bfdc
KH
373632003-12-20 Kazu Hirata <kazu@cs.umass.edu>
37364
37365 * trans.c: Remove uses of "register" specifier in
37366 declarations of local variables.
37367
90c2f1de
KC
373682003-12-18 Kelley Cook <kcook@gcc.gnu.org>
37369
37370 * stamp-xgnatug: New stamp file.
37371 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
37372 (ada/doctools/xgnatug): Add $(build_exeext).
37373 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37374 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37375
891a6e79
AC
373762003-12-17 Ed Falis <falis@gnat.com>
37377
37378 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37379 eliminate warning.
37380
37381 * a-exextr.adb: Add context clause for
37382 Ada.Exceptions.Last_Chance_Handler.
37383
373842003-12-17 Sergey Rybin <rybin@act-europe.fr>
37385
37386 * cstand.adb (Create_Standard): Change the way how the declaration of
37387 the Duration type is created (making it the same way as it is for all
37388 the other standard types).
37389
373902003-12-17 Robert Dewar <dewar@gnat.com>
37391
37392 * s-crtl.ads: Fix header format
37393 Change Pure to Preelaborate
37394
373952003-12-17 Ed Schonberg <schonberg@gnat.com>
37396
37397 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37398 the expression type only if it is declared in the current unit.
37399
37400 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37401 are universal and already analyzed, as can occur in constrained
37402 subcomponents that depend on discriminants, when one constraint is a
37403 subtype mark.
37404
37405 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37406 type Any_Fixed is legal as the argument of a conversion, if only one
37407 fixed-point type is in context.
37408
374092003-12-17 GNAT Script <nobody@gnat.com>
37410
37411 * Make-lang.in: Makefile automatically updated
37412
209db2bf
AC
374132003-12-15 Robert Dewar <dewar@gnat.com>
37414
37415 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37416 sec stack size.
37417
374182003-12-15 Vincent Celier <celier@gnat.com>
37419
37420 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37421 (Gnatchop): Do not set failure status when reporting the number of
37422 warnings.
37423
374242003-12-15 Doug Rupp <rupp@gnat.com>
37425
37426 * s-ctrl.ads: New file.
37427
37428 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37429
37430 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37431 (GNATBIND_OBJS): Add ada/s-crtl.o.
37432
37433 * Makefile.in [VMS]: Clean up ifeq rules.
37434
37435 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37436 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37437 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37438 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37439 s-tasdeb.adb: Update copyright.
37440 Import System.CRTL.
37441 Make minor modifications to use System.CRTL declared functions instead
37442 of importing locally.
37443
374442003-12-15 GNAT Script <nobody@gnat.com>
37445
37446 * Make-lang.in: Makefile automatically updated
37447
a9f4e3d2
AC
374482003-12-11 Ed Falis <falis@gnat.com>
37449
37450 * 5zinit.adb: Clean up.
37451
37452 * 5zintman.adb (Notify_Exception): replaced case statement with a call
37453 to __gnat_map_signal, imported from init.c to support
37454 signal -> exception mappings that depend on the vxWorks version.
37455
fbf3e0dd 37456 * init.c:
a9f4e3d2
AC
37457 Created and exported __gnat_map_signal to support signal -> exception
37458 mapping that is dependent on the VxWorks version.
37459 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37460
374612003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
37462
37463 * 5wosinte.ads: Link with -mthreads switch.
37464
374652003-12-11 Arnaud Charlet <charlet@act-europe.fr>
37466
37467 * init.c (__gnat_install_handler [NetBSD]): Set
37468 __gnat_handler_installed, as done on all other platforms.
37469 Remove duplicated code.
37470
374712003-12-11 Jerome Guitton <guitton@act-europe.fr>
37472
37473 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37474
374752003-12-11 Thomas Quinot <quinot@act-europe.fr>
37476
37477 * sinfo.ads: Fix inconsistent example code in comment.
37478
374792003-12-11 Robert Dewar <dewar@gnat.com>
37480
37481 * a-tiinau.adb: Add a couple of comments
37482
37483 * sem_ch3.adb: Minor reformatting
37484
fbf3e0dd 37485 * sem_prag.adb:
a9f4e3d2
AC
37486 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37487 Minor reformatting throughout
37488
374892003-12-11 Ed Schonberg <schonberg@gnat.com>
37490
37491 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37492 bounds of a loop, create a separate block in order to generate proper
37493 cleanup actions to prevent memory leaks.
37494
37495 * sem_res.adb (Resolve_Call): After a call to
37496 Establish_Transient_Scope, the call may be rewritten and relocated, in
37497 which case no further processing is needed.
37498
37499 * sem_util.adb: (Wrong_Type): Refine previous fix.
37500 Fixes ACATS regressions.
37501
37502 PR ada/13353
a9f4e3d2
AC
37503 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37504 be inlined.
37505
c45b6ae0
AC
375062003-12-08 Jerome Guitton <guitton@act-europe.fr>
37507
37508 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37509 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37510 obsolete files.
37511
37512 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37513 (rts-zfp): Ditto.
37514
375152003-12-08 Robert Dewar <dewar@gnat.com>
37516
37517 * 7sintman.adb: Minor reformatting
37518
37519 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37520 standard linker options to get standard libraries linked. We now plan
37521 to provide dummy versions of these libraries to match the appropriate
37522 configurable run-time (e.g. if a library is not needed at all, provide
37523 a dummy empty library).
37524
37525 * targparm.ads: Configurable_Run_Time mode no longer affects linker
37526 options (-L parameters and standard libraries). What we plan to do is
37527 to provide dummy libraries where the libraries are not required.
37528
37529 * gnatbind.adb: Minor comment improvement
37530
375312003-12-08 Javier Miranda <miranda@gnat.com>
37532
37533 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37534 aggregate in the parent. Otherwise constants with limited aggregates
37535 are not supported. Add new formal to pass the component type (Ctype).
37536 It is required to call the corresponding IP subprogram in case of
37537 default initialized components.
37538 (Gen_Assign): In case of default-initialized component, generate a
37539 call to the IP subprogram associated with the component.
37540 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37541 of aggregate with default initialized components.
37542 (Has_Default_Init_Comps): Improve implementation to recursively check
37543 all the present expressions.
37544
37545 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37546 to indicate that the initialization call corresponds to a
37547 default-initialized component of an aggregate.
37548 In case of default initialized aggregate with tasks this parameter is
37549 used to generate a null string (this is just a workaround that must be
37550 improved later). In case of discriminants, this parameter is used to
37551 generate a selected component node that gives access to the discriminant
37552 value.
37553
37554 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37555 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37556 allocated aggregates with default-initialized components.
37557
37558 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37559 the box notation is used in positional aggregates.
37560
375612003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
37562
37563 * lib.ads: Fix typo in comment
37564
375652003-12-08 Vincent Celier <celier@gnat.com>
37566
37567 * prj.adb (Project_Empty): New component Unkept_Comments
37568 (Scan): Remove procedure; moved to Prj.Err.
37569
37570 * prj.ads (Project_Data): New Boolean component Unkept_Comments
37571 (Scan): Remove procedure; moved to Prj.Err.
37572
37573 * prj-dect.adb: Manage comments for the different declarations.
37574
37575 * prj-part.adb (With_Record): New component Node
37576 (Parse): New Boolean parameter Store_Comments, defaulted to False.
37577 Set the scanner to return ends of line and comments as tokens, if
37578 Store_Comments is True.
37579 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
37580 comments are associated with these nodes. Store the node IDs in the
37581 With_Records.
37582 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
37583 With_Records.
37584 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
37585 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
37586 current project. Call Tree.Restore afterwards. Set the various nodes
37587 for comment storage (Next_End, End_Of_Line, Previous_Line,
37588 Previous_End).
37589
37590 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
37591 defaulted to False.
37592
37593 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
37594 to False. When Truncated is True, truncate the string, never go to the
37595 next line.
37596 (Write_End_Of_Line_Comment): New procedure
37597 (Print): Process comments for nodes N_With_Clause,
37598 N_Package_Declaration, N_String_Type_Declaration,
37599 N_Attribute_Declaration, N_Typed_Variable_Declaration,
37600 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
37601 Process nodes N_Comment.
37602
37603 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
37604 without comments and there are some comments, set the flag
37605 Unkept_Comments to True.
37606 (Scan): If there are comments, set the flag Unkept_Comments to True and
37607 clear the comments.
37608 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
37609 (Next_End_Nodes: New table
37610 (Comment_Zones_Of): New function
37611 (Scan): New procedure; moved from Prj. Accumulate comments in the
37612 Comments table and set end of line comments, comments after, after end
37613 and before end.
37614 (Add_Comments): New procedure
37615 (Save, Restore, Seset_State): New procedures
37616 (There_Are_Unkept_Comments): New function
37617 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
37618 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
37619 procedures.
37620 (First_Comment_After, First_Comment_After_End): New functions
37621 (First_Comment_Before, First_Comment_Before_End): New functions
37622 (Next_Comment): New function
37623 (End_Of_Line_Comment, Follows_Empty_Line,
37624 Is_Followed_By_Empty_Line): New functions
37625 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
37626 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
37627 (Set_Next_Comment): New procedure
37628 (Default_Project_Node): Associate comment before if the node can store
37629 comments.
37630
37631 * scans.ads (Token_Type): New enumeration value Tok_Comment
37632 (Comment_Id): New global variable
37633
37634 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
37635 defaulted to False.
37636 (Scan): Store position of start of comment. If comments are tokens, set
37637 Comment_Id and set Token to Tok_Comment when scanning a comment.
37638 (Set_Comment_As_Token): New procedure
37639
37640 * sinput-p.adb: Update Copyright notice
37641 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
37642 that no longer exists.
37643
376442003-12-08 Javier Miranda <miranda@gnat.com>
37645
37646 * sem_aggr.adb: Add dependence on Exp_Tss package
37647 Correct typo in comment
37648 (Resolve_Aggregate): In case of array aggregates set the estimated
37649 type of the aggregate before calling resolve. This is needed to know
37650 the name of the corresponding IP in case of limited array aggregates.
37651 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
37652 in case of default initialized array components.
37653
37654 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
37655 types. Required to give support to limited aggregates in generic
37656 formals.
37657
376582003-12-08 Ed Schonberg <schonberg@gnat.com>
37659
37660 * sem_ch3.adb (Check_Initialization): For legality purposes, an
37661 inlined body functions like an instantiation.
37662 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
37663 until bounds are analyzed, to diagnose premature use of type.
37664
37665 * sem_util.adb (Wrong_Type): Improve error message when the type of
37666 the expression is used prematurely.
37667
376682003-12-08 GNAT Script <nobody@gnat.com>
37669
37670 * Make-lang.in: Makefile automatically updated
37671
0875a894
AC
376722003-12-08 Arnaud Charlet <charlet@act-europe.fr>
37673
7618d510
AC
37674 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
37675 they are automatically generated by Make-lang.in and cause nothing but
0875a894
AC
37676 maintenance troubles.
37677
5b4994bc
AC
376782003-12-05 Thomas Quinot <quinot@act-europe.fr>
37679
37680 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
37681 version of this unit).
37682
376832003-12-05 Olivier Hainque <hainque@act-europe.fr>
37684
37685 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
37686 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
37687 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
37688 the body of System.Interrupt_Management common to several targets.
37689 Update copyright notice when appropriate.
37690
37691 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
37692 constant.
37693
37694 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
37695 to ensure that the kernel fills in the interrupted context structure
37696 before calling a signal handler, which is necessary to be able to
37697 unwind past it. Update the copyright notice.
37698
376992003-12-05 Jerome Guitton <guitton@act-europe.fr>
37700
37701 * a-elchha.ads: New file.
37702
37703 * a-elchha.adb: New default last chance handler. Contents taken from
37704 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
37705
37706 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
37707 is moved to a-elchha.adb to provide a target-independent default last
37708 chance handler.
37709
37710 * Makefile.rtl: Add a-elchha.o
37711
37712 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
37713
377142003-12-05 Ed Schonberg <schonberg@gnat.com>
37715
37716 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
37717 declared in an instance, do not inline the call if the instance is not
37718 frozen yet, to prevent order of elaboration problems.
37719
37720 * sem_prag.adb: Add comments for previous fix.
37721
377222003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
37723
37724 * g-table.adb: Use the right variable in Set_Item.
37725 Update copyright notice.
37726
377272003-12-05 Arnaud Charlet <charlet@act-europe.fr>
37728
37729 * Makefile.in: Remove unused rules.
37730
377312003-12-05 Vincent Celier <celier@gnat.com>
37732
37733 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
37734 -nostdlib. Not needed here after all.
37735
efdfd311
AC
377362003-12-03 Thomas Quinot <quinot@act-europe.fr>
37737
37738 PR ada/11724
fbf3e0dd 37739 * adaint.h, adaint.c, g-os_lib.ads:
efdfd311
AC
37740 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
37741 on some platforms (including FreeBSD), it is a 64 bit value.
37742 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
37743
377442003-12-03 Arnaud Charlet <charlet@act-europe.fr>
37745
37746 * gnatvsn.ads (Library_Version): Now contain only the relevant
37747 version info.
37748 (Verbose_Library_Version): New constant.
37749
37750 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
37751 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
37752 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
37753
37754 * gnatlbr.adb: Clean up: replace Library_Version by
37755 Verbose_Library_Version.
37756
fbf3e0dd 37757 * make.adb, lib-writ.adb, exp_attr.adb:
efdfd311
AC
37758 Clean up: replace Library_Version by Verbose_Library_Version.
37759
37760 * 5lintman.adb: Removed.
37761
fbf3e0dd 37762 * Makefile.in:
efdfd311
AC
37763 Update and simplify computation of LIBRARY_VERSION.
37764 Fix computation of GSMATCH_VERSION.
37765 5lintman.adb is no longer used: replaced by 7sintman.adb.
37766
377672003-12-03 Robert Dewar <dewar@gnat.com>
37768
fbf3e0dd 37769 * exp_ch5.adb:
efdfd311
AC
37770 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
37771 name. Modified to consider small non-bit-packed arrays as troublesome
37772 and in need of component-by-component assigment expansion.
37773
377742003-12-03 Vincent Celier <celier@gnat.com>
37775
37776 * lang-specs.h: Process nostdlib as nostdinc
37777
37778 * back_end.adb: Update Copyright notice
37779 (Scan_Compiler_Arguments): Process -nostdlib directly.
37780
377812003-12-03 Jose Ruiz <ruiz@act-europe.fr>
37782
fbf3e0dd 37783 * Makefile.in:
efdfd311
AC
37784 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
37785 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
37786 included in HIE_NONE_TARGET_PAIRS.
37787
377882003-12-03 Ed Schonberg <schonberg@gnat.com>
37789
fbf3e0dd 37790 * sem_attr.adb:
efdfd311
AC
37791 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
37792 is legal in an instance, because legality is cheched in the template.
37793
fbf3e0dd 37794 * sem_prag.adb:
efdfd311
AC
37795 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
37796 appplied to an unchecked conversion of a formal parameter.
37797
fbf3e0dd 37798 * sem_warn.adb:
efdfd311
AC
37799 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
37800 variables.
37801
378022003-12-03 Olivier Hainque <hainque@act-europe.fr>
37803
37804 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
37805 routines. The second one is new functionality to deal with backtracing
37806 through signal handlers.
37807 (unwind): Split into the two separate subroutines above.
37808 Update the documentation, and deal properly with sizeof (REG) different
37809 from sizeof (void*).
37810
08aa9a4a
AC
378112003-12-01 Nicolas Setton <setton@act-europe.fr>
37812
37813 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
37814 so that the debugger can reliably access the value of the parameter,
37815 and therefore is able to display the exception name when an exception
37816 breakpoint is reached.
37817
378182003-12-01 Thomas Quinot <quinot@act-europe.fr>
37819
37820 * fmap.adb: Fix typo in warning message.
37821
37822 * g-socket.ads, g-socket.adb: Make Free a visible instance of
37823 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
37824
378252003-12-01 Vincent Celier <celier@gnat.com>
37826
37827 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
37828 ther is no Afile.
37829 (Build_Library): Get the switches only if Default_Switches is declared
37830 in package Binder.
37831
378322003-12-01 Ed Schonberg <schonberg@gnat.com>
37833
37834 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
37835 actuals that are indexed components, reanalyze actual to ensure that
37836 packed array references are properly expanded.
37837
37838 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
37839 attempted assignment to a discriminant.
37840
378412003-12-01 Robert Dewar <dewar@gnat.com>
37842
37843 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
37844 reformatting.
37845
37846 * switch-c.adb: Minor reformatting of comments
37847
378482003-12-01 Arnaud Charlet <charlet@act-europe.fr>
37849
37850 * Makefile.in: Clean ups.
37851
378522003-12-01 GNAT Script <nobody@gnat.com>
37853
37854 * Make-lang.in: Makefile automatically updated
37855
c6135994
AC
378562003-12-01 Arnaud Charlet <charlet@act-europe.fr>
37857
37858 * 5wsystem.ads: Disable zero cost exception, not ready yet.
37859
51a30506
UW
378602003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
37861
37862 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
37863 to force serialization.
37864
81a5b587
AC
378652003-11-26 Thomas Quinot <quinot@act-europe.fr>
37866
fbf3e0dd 37867 * g-socket.ads, g-socket.adb:
81a5b587
AC
37868 Clarify documentation of function Stream. Introduce a Free procedure
37869 to release the returned Stream once it becomes unused.
37870
37871 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
37872
378732003-11-26 Arnaud Charlet <charlet@act-europe.fr>
37874
37875 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
37876 since NT 4 cannot handle timeout values that are too large,
37877 e.g. DWORD'Last - 1.
37878
378792003-11-26 Ed Schonberg <schonberg@gnat.com>
37880
fbf3e0dd 37881 * exp_ch4.adb:
81a5b587
AC
37882 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
37883 in procedure calls and whose expansion must be deferred.
37884
37885 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
37886 is in exp_ch4.
37887
fbf3e0dd 37888 * sem_ch3.adb:
81a5b587
AC
37889 (Build_Derived_Array_Type): Create operator for unconstrained type
37890 if ancestor is unconstrained.
37891
378922003-11-26 Vincent Celier <celier@gnat.com>
37893
37894 * make.adb (Project_Object_Directory): New global variable
37895 (Change_To_Object_Directory): New procedure
37896 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
37897 of Change_Dir directly. Do not change working directory to object
37898 directory of main project after each compilation.
37899 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
37900 directly.
37901 Change to object directory of main project before binding step.
37902 (Initialize): Initialize Project_Object_Directory to No_Project
37903
fbf3e0dd 37904 * mlib-prj.adb:
81a5b587
AC
37905 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
37906 binding a Stand-Alone Library.
37907
37908 * output.adb: Update Copyright notice
37909 (Write_Char): Output buffer when full
37910
379112003-11-26 Robert Dewar <dewar@gnat.com>
37912
37913 * sem_ch13.adb: (Check_Size): Reset size if size is too small
37914
fbf3e0dd 37915 * sem_ch13.ads:
81a5b587
AC
37916 (Check_Size): Fix documentation to include bit-packed array case
37917
37918 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
37919
37920 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
37921
37922 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
37923
9e94c78f 379242003-11-24 Arnaud Charlet <charlet@act-europe.fr>
d4c47b51
AC
37925
37926 PR ada/13142
37927 * utils.c (init_gigi_decls): Change name of built-in setjmp to
37928 __builtin_setjmp, since this is apparently needed by recent
37929 non Ada changes.
37930
7677e9e0
RO
379312003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37932
d4c47b51 37933 * adadecode.c: Only include ctype.h if not IN_GCC.
7677e9e0
RO
37934 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
37935
6c1e24d3
AC
379362003-11-24 Jose Ruiz <ruiz@act-europe.fr>
37937
fbf3e0dd 37938 * Makefile.in:
6c1e24d3
AC
37939 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
37940 signals and interrupts.
37941
37942 * 5zintman.ads: New File.
37943
37944 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
37945 add exception signals to the set of unmasked signals.
37946
fbf3e0dd 37947 * 5ztaprop.adb:
6c1e24d3
AC
37948 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
37949 between signals and interrupts.
37950 Add to Unblocked_Signal_Mask the set of signals that are in
37951 Keep_Unmasked.
37952
fbf3e0dd 37953 * 7sinmaop.adb:
6c1e24d3
AC
37954 Adding a check to see whether the Interrupt_ID we want to unmask is in
37955 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
37956 reason is that the index type of the Keep_Unmasked array is not always
37957 Interrupt_ID; it may be a subtype of Interrupt_ID.
37958
379592003-11-24 Gary Dismukes <dismukes@gnat.com>
37960
fbf3e0dd 37961 * exp_util.adb:
6c1e24d3
AC
37962 (Remove_Side_Effects): Condition constantness of object created for a
37963 an unchecked type conversion on the constantness of the expression
37964 to ensure the correct value for 'Constrained when passing components
37965 of view-converted class-wide objects.
37966
379672003-11-24 Robert Dewar <dewar@gnat.com>
37968
37969 * par-load.adb (Load): Improve handling of misspelled and missing units
37970 Removes several cases of compilation abandoned messages
37971
37972 * lib.adb: (Remove_Unit): New procedure
37973
37974 * lib.ads: (Remove_Unit): New procedure
37975
37976 * lib-load.adb: Minor reformatting
37977
379782003-11-24 Vincent Celier <celier@gnat.com>
37979
fbf3e0dd 37980 * make.adb:
6c1e24d3
AC
37981 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
37982 (Marking_Label): Label to mark processed source files. Incremented for
37983 each executable.
37984 (Gnatmake): Increase Marking_Labet for each executable
37985 (Is_Marked): Compare against marking label
37986 (Mark): Mark with marking label
37987
379882003-11-24 Jerome Guitton <guitton@act-europe.fr>
37989
fbf3e0dd 37990 * s-thread.ads:
6c1e24d3
AC
37991 Move the declaration of the TSD for System.Threads to System.Soft_Links.
37992 Add some comments.
37993
37994 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
37995 (rts-cert): build a single relocatable object for the run-time lib.
37996 Fix perms.
37997
379982003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
37999
fbf3e0dd 38000 * Make-lang.in:
6c1e24d3
AC
38001 Use gnatls rather than gcc to obtain the location of GNAT RTL for
38002 crosstools build.
38003
380042003-11-24 Sergey Rybin <rybin@act-europe.fr>
38005
38006 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38007 can not use it as before (that is, as a variable) when dumping it into
38008 the tree file. Add a local variable to store the result of this
38009 function and to be used as the string to be written into the tree.
38010
38011 * scn.adb (Initialize_Scanner): Add comments explaining the recent
38012 changes.
38013
38014 * sinput.adb (Source_First, Source_Last): In case of
38015 Internal_Source_File, replace returning attributes of
38016 Internal_Source_Ptr (which is wrong) with returning attributes of
38017 Internal_Source.
38018
380192003-11-24 Ed Schonberg <schonberg@gnat.com>
38020
fbf3e0dd 38021 * sem_ch3.adb:
6c1e24d3
AC
38022 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38023 used for implicit concatenation operators.
38024 Code cleanup.
38025
fbf3e0dd 38026 * sem_elab.adb:
6c1e24d3
AC
38027 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38028 task bodies that are in the scope of a Suppress pragma.
38029 (Check_A Call): Use the flag to prevent spurious elaboration checks.
38030
fbf3e0dd 38031 * sinfo.ads, sinfo.adb:
6c1e24d3
AC
38032 New flag No_Elaboration_Check on function/procedure calls, to properly
38033 suppress checks on calls in task bodies that are within a local suppress
38034 pragma.
38035
fbf3e0dd 38036 * exp_ch4.adb:
6c1e24d3
AC
38037 (Expand_Concatenate_Other): Use the proper integer type for the
38038 expression for the upper bound, to avoid universal_integer computations
38039 when possible.
38040
6f2aeb72
KC
380412003-11-21 Kelley Cook <kcook@gcc.gnu.org>
38042
38043 * .cvsignore: Delete.
38044
e9f85cd6
AS
380452003-11-21 Andreas Schwab <schwab@suse.de>
38046
38047 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38048
4e074baf
VF
380492003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
38050
38051 * 5wsystem.ads: Enable zero cost exception.
38052
f1f9fe30
AC
380532003-11-21 Jerome Guitton <guitton@act-europe.fr>
38054
38055 * 5ztiitho.adb: Remove an unreferenced variable.
38056
380572003-11-21 Thomas Quinot <quinot@act-europe.fr>
38058
38059 * adaint.c: For FreeBSD, use mkstemp.
38060
380612003-11-21 Arnaud Charlet <charlet@act-europe.fr>
38062
38063 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38064
380652003-11-21 Robert Dewar <dewar@gnat.com>
38066
38067 * bld.adb: Remove useless USE of gnatvsn
38068
38069 * gnatchop.adb: Minor reformatting
38070 Clean up version handling to be more consistent
38071
38072 * gnatxref.adb: Minor reformatting
38073
38074 * gprcmd.adb: Minor reformatting
38075 Fix output of copyright to be more consistent with other tools
38076
380772003-11-21 Vincent Celier <celier@gnat.com>
38078
38079 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38080
380812003-11-21 Sergey Rybin <rybin@act-europe.fr>
38082
38083 * atree.adb (Initialize): Add initializations for global variables
38084 used in New_Copy_Tree.
38085
38086 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38087 Internal_Source_File as the actual).
38088 Put the set of statements creating Any_Character before the set of
38089 statements creating Any_Array to have Any_Character fully initialized
38090 when it is used in creating Any_Array.
38091
38092 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38093 not call Scan in case if the actual is Internal_Source_File
38094 Add 2003 to copyright note.
38095
38096 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38097 processing Internal_Source_File.
38098
38099 * types.ads: Add the constant Internal_Source_File representing the
38100 source buffer for artificial source-code-like strings created within
38101 the compiler (the definition of Source_File_Index is changed).
38102
c5b2a8ae
AC
381032003-11-20 Arnaud Charlet <charlet@act-europe.fr>
38104
38105 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38106 56system.ads: New file, FreeBSD version.
38107
a03ad584
JM
381082003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
38109
38110 * Make-lang.in (ada.extraclean): Delete.
38111
19f0526a
AC
381122003-11-19 Arnaud Charlet <charlet@act-europe.fr>
38113
38114 * gnatmem.adb: Clean up verbose output.
38115
38116 * gprcmd.adb: Change copyright to FSF.
38117
381182003-11-19 Vincent Celier <celier@gnat.com>
38119
38120 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38121 and Version (ignored).
38122
38123 * symbols.ads: (Policy): New type
38124 (Initialize): New parameter Reference, Symbol_Policy and
38125 Library_Version.
38126 Remove parameter Force.
38127 Minor reformatting.
38128
38129 * snames.ads, snames.adbadb: New standard names
38130 Library_Reference_Symbol_File and Library_Symbol_Policy
38131
fbf3e0dd 38132 * mlib-prj.adb:
19f0526a
AC
38133 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38134 project.
38135
fbf3e0dd 38136 * mlib-tgt.adb:
19f0526a
AC
38137 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38138
38139 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38140
38141 * prj.adb: (Project_Empty): New component Symbol_Data
38142
38143 * prj.ads: (Policy, Symbol_Record): New types
38144 (Project_Data): New component Symbol_Data
38145
fbf3e0dd 38146 * prj-attr.adb:
19f0526a
AC
38147 New attributes Library_Symbol_File, Library_Symbol_Policy and
38148 Library_Reference_Symbol_File.
38149
fbf3e0dd 38150 * prj-nmsc.adb:
19f0526a
AC
38151 (Ada_Check): When project is a Stand-Alone library project, process
38152 attribute Library_Symbol_File, Library_Symbol_Policy and
38153 Library_Reference_Symbol_File.
38154
38155 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38156 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38157 5sml-tgt.adb (Build_Dynamic_Library): New parameter
38158 Symbol_Data (ignored).
38159
38160 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38161 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38162 functions Option_File_Name and Version_String. Set new options of
38163 gnatsym related to symbol file, symbol policy and reference symbol
38164 file.
38165
fbf3e0dd 38166 * 5vsymbol.adb:
19f0526a
AC
38167 Extensive modifications to take into account the reference symbol file,
38168 the symbol policy, the library version and to put in the symbol file the
38169 minor and major IDs.
38170
38171 * bld.adb (Process_Declarative_Items): Put second argument of
38172 gprcmd to_absolute between single quotes, to avoid problems with
38173 Windows.
38174
38175 * bld-io.adb: Update Copyright notice.
38176 (Flush): Remove last character of a line, if it is a back slash, to
38177 avoid make problems.
38178
fbf3e0dd 38179 * gnatsym.adb:
19f0526a
AC
38180 Implement new scheme with reference symbol file and symbol policy.
38181
38182 * g-os_lib.ads: (Is_Directory): Clarify comment
38183
381842003-11-19 Robert Dewar <dewar@gnat.com>
38185
38186 * atree.adb: Move New_Copy_Tree global variables to head of package
38187
38188 * errout.adb: Minor reformatting
38189
381902003-11-19 Javier Miranda <miranda@gnat.com>
38191
38192 * sem_ch4.adb: (Diagnose_Call): Improve error message.
38193 Add reference to Ada0Y (AI-50217)
38194
38195 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38196 sem_util.adb: Add reference to AI-50217
38197
38198 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38199
38200 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38201
38202 * sem_aggr.adb: Complete documentation of AI-287 changes
38203
38204 * par-ch4.adb: Document previous changes.
38205
38206 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38207 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38208 Ada0Y (AI-50217)
38209
38210 * exp_aggr.adb: Add references to AI-287 in previous changes
38211
382122003-11-19 Ed Schonberg <schonberg@gnat.com>
38213
fbf3e0dd 38214 * exp_ch6.adb:
19f0526a
AC
38215 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38216 in the rewriting is the result of an inlined call.
38217
38218 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38219 parameter is a type conversion, use original node to construct the
38220 post-call assignment, because expression may have been rewritten, e.g.
38221 if it is a packed array.
38222
fbf3e0dd 38223 * sem_attr.adb:
19f0526a
AC
38224 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38225 body, just as it is in an instance.
38226 Categorization routines
38227
38228 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38229 Instantiate_Object): Set proper sloc reference for message on missing
38230 actual.
38231
382322003-11-19 Thomas Quinot <quinot@act-europe.fr>
38233
38234 * Makefile.in: Add FreeBSD libgnat pairs.
38235
38236 * usage.adb: Fix typo in usage message.
38237
382382003-11-19 Jerome Guitton <guitton@act-europe.fr>
38239
38240 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38241 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38242 pragma Thread_Body.
38243 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38244
38245 * s-thread.adb: This file is now a dummy implementation of
38246 System.Thread.
38247
382482003-11-19 Sergey Rybin <rybin@act-europe.fr>
38249
38250 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38251
382522003-11-19 Emmanuel Briot <briot@act-europe.fr>
38253
38254 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38255 instanciation references in the parent type description.
38256
0d77ab84
AC
382572003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38258
38259 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38260
38261 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38262 TYPE_PRECISION directly from esize.
38263
382642003-11-18 Thomas Quinot <quinot@act-europe.fr>
38265
fbf3e0dd 38266 * cstreams.c:
0d77ab84
AC
38267 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38268
38269 * init.c: Initialization routines for FreeBSD
38270
38271 * link.c: Link info for FreeBSD
38272
38273 * sysdep.c: Add the case of FreeBSD
38274
cb7a5092
AC
382752003-11-17 Jerome Guitton <guitton@act-europe.fr>
38276
38277 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38278 already called in System.Threads.
38279
38280 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38281 environment task, as it has been moved to System.Threads.Initialization.
38282
382832003-11-17 Arnaud Charlet <charlet@act-europe.fr>
38284
38285 * adaint.c (__gnatlib_install_locks): Only reference
38286 __gnat_install_locks on VMS, since other platforms can avoid using
38287 --enable-threads=gnat
38288
382892003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38290
38291 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38292
38293 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38294 TYPE_PACKED_ARRAY_TYPE_P.
38295 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38296
38297 Part of PR ada/12806
38298 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38299 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38300
383012003-11-17 Vincent Celier <celier@gnat.com>
38302
38303 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38304 to False.
38305 Do not set exit status to Failure when Warning is True.
38306 (Gnatchop): Make errors "no compilation units found" and
38307 "no source files written" warnings only.
38308
38309 * make.adb (Gnatmake): When using a project file, set
38310 Look_In_Primary_Dir to False.
38311 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38312 and Local_Configuration_Pragmas in the project where they are declared
38313 not an extending project which might have inherited them.
38314
38315 * osint.adb (Locate_File): If Name is already an absolute path, do not
38316 look for a directory.
38317
38318 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38319 -gnats (Check_Syntax) is used, issue only a warning, not an error.
38320
38321 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38322 in objects of type Variable_Value.
38323
38324 * prj.ads: (Variable_Value): New component Project
38325
38326 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38327 is in a project extended by Project.
38328
38329 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38330 Project of Variable_Values to this new parameter value.
38331 (Expression): Set component Project of Variable_Values.
38332 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38333 Set the component Project in array elements.
38334
383352003-11-17 Sergey Rybin <rybin@act-europe.fr>
38336
38337 * errout.adb: (Initialize): Add initialization for error nodes.
38338
38339 * sem_ch12.adb (Initialize): Add missing initializations for
38340 Exchanged_Views and Hidden_Entities.
38341
383422003-11-17 Ed Schonberg <schonberg@gnat.com>
38343
38344 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38345 already instantiated tree for use in subsequent inlining.
38346 (Analyze_Associations, Instantiate_Formal_Subprogram,
38347 Instantiate_Object): improve error message for mismatch in
38348 instantiations.
38349
38350 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38351 instantiations of subprograms declared in instances.
38352
383532003-11-17 Javier Miranda <miranda@gnat.com>
38354
38355 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38356 executed only under the Extensions_Allowed flag.
38357
383582003-11-17 Robert Dewar <dewar@gnat.com>
38359
38360 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38361 zeroes suppressed.
38362 (Address_Image): Fix bug of returning 0x instead of 0x0
38363 Minor reformatting (function specs).
38364
38365 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38366 (missed case of 33-63)
38367
38368 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38369
38370 * s-thread.adb: Add comments for pragma Restriction
38371
38372 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38373 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38374
383752003-11-17 Ed Falis <falis@gnat.com>
38376
38377 * s-thread.adb: Added No_Tasking restriction for this implementation.
38378
383792003-11-17 Emmanuel Briot <briot@act-europe.fr>
38380
38381 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38382 instanciation references in the parent type description.
38383
383842003-11-17 GNAT Script <nobody@gnat.com>
38385
38386 * Make-lang.in: Makefile automatically updated
38387
7d60db05
JM
383882003-11-16 Jason Merrill <jason@redhat.com>
38389
38390 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38391 and TAGS files that include them for each front end.
38392
c0040397
AJ
383932003-11-14 Andreas Jaeger <aj@suse.de>
38394
a477ab83 38395 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
fbf3e0dd 38396 is the canonical version.
a477ab83
AJ
38397 * misc.c (gnat_handle_option): Likewise.
38398
c0040397
AJ
38399 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38400
38401 * 5nsystem.ads: New file for x86_64-linux-gnu.
38402
95a6aaf9
AC
384032003-11-14 Arnaud Charlet <charlet@act-europe.fr>
38404
262cc585 38405 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
95a6aaf9 38406
4a4fe537
AC
38407 * comperr.adb: Fix logic in previous change.
38408
65356e64
AC
384092003-11-13 Vincent Celier <celier@gnat.com>
38410
38411 * 5bml-tgt.adb (Build_Dynamic_Library): Use
38412 Osint.Include_Dir_Default_Prefix instead of
38413 Sdefault.Include_Dir_Default_Name.
38414
38415 * gnatlbr.adb: Update Copyright notice
38416 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38417 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38418 instead of Sdefault.Object_Dir_Default_Name
38419
c0040397 38420 * gnatlink.adb:
65356e64
AC
38421 (Process_Binder_File): Never suppress the option following -Xlinker
38422
c0040397 38423 * mdll-utl.adb:
65356e64
AC
38424 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38425 Sdefault.Object_Dir_Default_Name.
38426
c0040397 38427 * osint.ads, osint.adb:
65356e64
AC
38428 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38429 Minor reformatting.
38430
38431 * vms_conv.ads: Minor reformating
38432 Remove GNAT STANDARD and GNAT PSTA
38433
c0040397 38434 * vms_conv.adb:
65356e64
AC
38435 Allow GNAT MAKE to have several files on the command line.
38436 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38437 Sdefault.Object_Dir_Default_Name.
38438 Minor Reformating
38439 Remove data for GNAT STANDARD
38440
c0040397 38441 * vms_data.ads:
65356e64
AC
38442 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38443 Remove data for GNAT STANDARD
38444 Remove options and documentation for -gnatwb/-gnatwB: these warning
38445 options no longer exist.
38446
384472003-11-13 Ed Falis <falis@gnat.com>
38448
38449 * 5zthrini.adb: (Init_RTS): Made visible
38450
c0040397 38451 * 5zthrini.adb:
65356e64
AC
38452 (Register): Removed unnecessary call to taskVarGet that checked whether
38453 an ATSD was already set as a task var for the argument thread.
38454
c0040397 38455 * s-thread.adb:
65356e64
AC
38456 Updated comment to reflect that this is a VxWorks version
38457 Added context clause for System.Threads.Initialization
38458 Added call to System.Threads.Initialization.Init_RTS
38459
384602003-11-13 Jerome Guitton <guitton@act-europe.fr>
38461
c0040397 38462 * 5zthrini.adb:
65356e64
AC
38463 (Init_RTS): New procedure, for the initialization of the run-time lib.
38464
c0040397 38465 * s-thread.adb:
65356e64
AC
38466 Remove dependancy on System.Init, so that this file can be used in the
38467 AE653 sequential run-time lib.
38468
384692003-11-13 Robert Dewar <dewar@gnat.com>
38470
38471 * bindgen.adb: Minor reformatting
38472
384732003-11-13 Ed Schonberg <schonberg@gnat.com>
38474
c0040397 38475 * checks.adb:
65356e64
AC
38476 (Apply_Discriminant_Check): Do no apply check if target type is derived
38477 from source type with no applicable constraint.
38478
c0040397 38479 * lib-writ.adb:
65356e64
AC
38480 (Ensure_System_Dependency): Do not apply the style checks that may have
38481 been specified for the main unit.
38482
c0040397 38483 * sem_ch8.adb:
65356e64
AC
38484 (Find_Selected_Component): Further improvement in error message, with
38485 RM reference.
38486
c0040397 38487 * sem_res.adb:
65356e64
AC
38488 (Resolve): Handle properly the case of an illegal overloaded protected
38489 procedure.
38490
384912003-11-13 Javier Miranda <miranda@gnat.com>
38492
c0040397 38493 * exp_aggr.adb:
65356e64
AC
38494 (Has_Default_Init_Comps): New function to check the presence of
38495 default initialization in an aggregate.
38496 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38497 extension aggregate of a limited record. In addition, a new formal
38498 was added to do not initialize the record controller (if any) during
38499 this recursive expansion of ancestors.
38500 (Init_Controller): Add support for limited record components.
38501 (Expand_Record_Aggregate): In case of default initialized components
38502 convert the aggregate into a set of assignments.
38503
38504 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38505 describing the new syntax.
38506 Nothing else needed to be done because this subprogram delegates part of
38507 its work to P_Precord_Or_Array_Component_Association.
38508 (P_Record_Or_Array_Component_Association): Give support to the new
38509 syntax for default initialization of components.
38510
c0040397 38511 * sem_aggr.adb:
65356e64
AC
38512 (Resolve_Aggregate): Relax the strictness of the frontend in case of
38513 limited aggregates.
38514 (Resolve_Record_Aggregate): Give support to default initialized
38515 components.
38516 (Get_Value): In case of default initialized components, duplicate
38517 the corresponding default expression (from the record type
38518 declaration). In case of default initialization in the *others*
38519 choice, do not check that all components have the same type.
38520 (Resolve_Extension_Aggregate): Give support to limited extension
38521 aggregates.
38522
c0040397 38523 * sem_ch3.adb:
65356e64
AC
38524 (Check_Initialization): Relax the strictness of the front-end in case
38525 of aggregate and extension aggregates. This test is now done in
38526 Get_Value in a per-component manner.
38527
38528 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38529 expression corresponds to a limited aggregate. This test is now done
38530 in Get_Value.
38531
38532 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38533 Box_Present flag.
38534
38535 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38536 present in an N_Component_Association node
38537
385382003-11-13 Thomas Quinot <quinot@act-europe.fr>
38539
38540 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38541 type-conformant entry only if they are homographs.
38542
385432003-11-13 GNAT Script <nobody@gnat.com>
38544
38545 * Make-lang.in: Makefile automatically updated
38546
49add53f
RO
385472003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38548
38549 * adadecode.c: Use <> form of include for ctype.h.
38550 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38551
94bae1cc
RO
385522003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38553
38554 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38555 Works around PR middle-end/6552.
38556
463f452c
AC
385572003-11-10 Ed Falis <falis@gnat.com>
38558
38559 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38560
38561 * 5zinit.adb: (Install_Handler): Moved back to spec
38562 (Install_Signal_Handlers): Deleted
38563
38564 * 5zthrini.adb: Added context clause for System.Storage_Elements
38565 (Register): Only handles creation of taskVar; initialization moved to
38566 Thread_Body_Enter.
38567 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
38568 Added declaration of environment task secondary stack and
38569 initialization.
38570
38571 * s-thread.adb: Implement bodies for thread body processing
38572
c0040397 38573 * s-thread.ads:
463f452c
AC
38574 Added comment identifying supported targets for pragma Thread_Body.
38575
385762003-11-10 Pascal Obry <obry@gnat.com>
38577
38578 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
38579 GNAT_MAX_PATH_LEN.
38580
c0040397 38581 * s-fileio.adb:
463f452c
AC
38582 (Open): Properly check for string length before copying into the buffer.
38583 Raises Name_Error if buffer is too small. Note that this was a potential
38584 buffer overflow.
38585
385862003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
38587
38588 * bindgen.adb, comperr.adb: Code clean ups.
38589 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
38590
385912003-11-10 Sergey Rybin <rybin@act-europe.fr>
38592
38593 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
38594
385952003-11-10 Vincent Celier <celier@gnat.com>
38596
c0040397 38597 * gprcmd.adb:
463f452c
AC
38598 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
38599 installation.
38600
38601 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
38602
38603 * prj.adb: (Project_Empty): Add new boolean component Virtual
38604
38605 * prj.ads: (Virtual_Prefix): New constant string
38606 (Project_Data): New boolean component Virtual
38607
38608 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
38609 a library project is extended by a virtual extending project.
38610
c0040397 38611 * prj-part.adb:
463f452c
AC
38612 Modifications throughout to implement extending-all project, including:
38613 (Virtual_Hash, Processed_Hash): New hash tables
38614 (Create_Virtual_Extending_Project): New procedure
38615 (Look_For_Virtual_Projects_For): New procedure
38616
c0040397 38617 * prj-proc.adb:
463f452c
AC
38618 (Process): After checking the projects, if main project is an
38619 extending-all project, set the object directory of all virtual extending
38620 project to the object directory of the main project.
38621 Adjust error message when a virtual extending project has the same
38622 object directory as an project being extended.
38623 (Recursive_Process): If name starts with the virtual prefix, set Virtual
38624 to True in the project data.
38625
c0040397 38626 * prj-tree.adb:
463f452c
AC
38627 (Default_Project_Node): Add new boolean component Extending_All
38628 (Is_Extending_All): New function
38629 (Set_Is_Extending_All): New procedure
38630
38631 * prj-tree.ads: (Is_Extending_All): New function
38632 (Set_Is_Extending_All): New procedure
38633 (Project_Node_Record): New boolean component Extending_All
38634
38635 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
38636
c0040397 38637 * vms_data.ads:
463f452c
AC
38638 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
38639
38640 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
38641 "gprcmd prefix" to define it.
38642
386432003-11-10 Thomas Quinot <quinot@act-europe.fr>
38644
38645 * einfo.ads: Fix a typo and remove an extraneous word in comments.
38646
c0040397 38647 * lib-load.adb:
463f452c
AC
38648 (Create_Dummy_Package_Unit): Set the scope of the entity for the
38649 created dummy package to Standard_Standard, not to itself, to
38650 defend other parts of the front-end against encoutering a cycle in
38651 the scope chain.
38652
c0040397 38653 * sem_ch10.adb:
463f452c
AC
38654 (Analyze_With_Clause): When setting the entities for the successive
38655 N_Expanded_Names that constitute the name of a child unit, do not
38656 attempt to go further than Standard_Standard in the chain of scopes.
38657 This case arises from the placeholder units created by
38658 Create_Dummy_Package_Unit in the case of a with_clause for a
38659 nonexistent child unit.
38660
386612003-11-10 Ed Schonberg <schonberg@gnat.com>
38662
c0040397 38663 * exp_ch6.adb:
463f452c
AC
38664 (Expand_Thread_Body): Place subprogram on scope stack, so that new
38665 declarations are given the proper scope.
38666
c0040397 38667 * sem_ch13.adb:
463f452c
AC
38668 (Check_Expr_Constants): Reject an expression that contains a constant
38669 created during expansion, and that appears after the object to which
38670 the address clause applies.
38671
38672 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
38673 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
38674 that uses 'Range of a function call with controlled components, so
38675 that the function result can be finalized before starting the loop.
38676
c0040397 38677 * sem_ch8.adb:
463f452c
AC
38678 (Find_Selected_Component): Improve error message when prefix is
38679 an implicit dereference of an incomplete type.
38680
386812003-11-10 Robert Dewar <dewar@gnat.com>
38682
38683 * opt.ads: New Print_Standard flag for -gnatS switch
38684
38685 * sem_ch13.adb: Remove some additional checks for unaligned arrays
38686
38687 * cstand.adb (Create_Standard): Print out package standard if -gnatS
38688 switch set
38689
38690 * debug.adb: Update doc for -gnatds to discuss relationship with new
38691 -gnatS flag
38692
38693 * sinfo.adb: Add new field Entity_Or_Associated_Node
38694
38695 * sinfo.ads: Add new field Entity_Or_Associated_Node
38696 Update documentation for Associated_Node and Entity fields to clarify
38697 relationship and usage.
38698
c0040397 38699 * sprint.adb:
463f452c
AC
38700 (Write_Id): Properly process Associated_Node field in generic template
38701
c0040397 38702 * switch-c.adb:
463f452c
AC
38703 Recognize new -gnatS switch for printing package Standard
38704 This replaces gnatpsta
38705
c0040397 38706 * usage.adb:
463f452c
AC
38707 Add line for new -gnatS switch for printing package Standard
38708 This replaces gnatpsta
38709
c77c5f2e
AJ
387102003-11-10 Andreas Jaeger <aj@suse.de>
38711
38712 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
38713 integer.
38714
5c90f17f
AC
387152003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38716
38717 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
38718 by gnat1.
38719
139f0d1e
AC
387202003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38721
38722 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
38723 no longer needed.
38724
38725 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
38726
38727 * sysdep.c: Add handling of cygwin.
38728
f3e4c05c
GS
387292003-11-10 GNAT Script <nobody@gnat.com>
38730
38731 * Make-lang.in: Makefile automatically updated
38732
2cdc8909
AC
387332003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38734
38735 PR 12950
38736 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
38737 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
38738 Replace GNAT_ROOT by GCC_ROOT.
38739
38740 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
38741
37783865
ZW
387422003-11-06 Zack Weinberg <zack@codesourcery.com>
38743
38744 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
38745 and update for changed meaning of GET_MODE_BITSIZE.
38746
6bc1c519
AC
387472003-11-04 Doug Rupp <rupp@gnat.com>
38748
38749 * sysdep.c: Problem discovered during IA64 VMS port.
38750 [VMS] #include <unixio.h> to get proper prototypes.
38751
37783865 38752 * adaint.c:
6bc1c519
AC
38753 Issues discovered/problems fixed during IA64 VMS port.
38754 [VMS] #define _POSIX_EXIT for proper semantics.
38755 [VMS] #include <unixio.h> for proper prototypes.
38756 [VMS] (fork): #define IA64 version.
38757 (__gnat_os_exit): Remove unnecessary VMS specific code.
38758
387592003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38760
38761 Part of PR ada/12806
6bc1c519
AC
38762 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
38763 tree, not integer.
38764
37783865 38765 * decl.c:
6bc1c519
AC
38766 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
38767 not integer.
38768
38769 * targtyps.c, decl.c, misc.c,
38770 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
38771 routines to work around change in FP sizing semantics in GCC.
38772
37783865 38773 * utils.c:
6bc1c519
AC
38774 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
38775
38776 * gigi.h: (enumerate_modes): New function.
38777
38778 * Make-lang.in: (ada/misc.o): Add real.h.
38779
38780 * misc.c: (enumerate_modes): New function.
38781
387822003-11-04 Robert Dewar <dewar@gnat.com>
38783
38784 * 3vtrasym.adb: Minor reformatting
38785 Use terminology encoded/decoded name, rather than C++ specific notion
38786 of mangling (this is the terminology used throughout GNAT).
38787
38788 * einfo.h: Regenerated
38789
38790 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
38791
37783865 38792 * exp_ch6.adb:
6bc1c519
AC
38793 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
38794
38795 * par-prag.adb: Add dummy entry for Thread_Body pragma
38796
37783865 38797 * rtsfind.ads:
6bc1c519
AC
38798 Add entries for System.Threads entities for thread body processing
38799
37783865 38800 * sem_attr.adb:
6bc1c519
AC
38801 (Analyze_Pragma, Access attributes): Check these are not applied to a
38802 thread body, since this is not permitted
38803
38804 * sem_prag.adb: Add processing for Thread_Body pragma.
38805 Minor comment fix.
38806
37783865 38807 * sem_res.adb:
6bc1c519
AC
38808 (Resolve_Call): Check for incorrect attempt to call a thread body
38809 procedure with a direct call.
38810
38811 * snames.ads, snames.adb: Add entry for Thread_Body pragma
38812 Add names associated with thread body expansion
38813
38814 * snames.h: Add entry for Thread_Body pragma
38815
38816 * s-thread.adb: Add entries for thread body processing
38817 These are dummy bodies so far
38818
38819 * s-thread.ads: Add documentation on thread body handling.
38820 Add entries for thread body processing.
38821
388222003-11-04 Javier Miranda <miranda@gnat.com>
38823
37783865 38824 * sem_ch10.adb:
6bc1c519
AC
38825 (Build_Limited_Views): Return after posting an error in case of limited
38826 with_clause on subprograms, generics, instances or generic renamings
38827 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
38828 on subprograms, generics, instances or generic renamings
38829
388302003-11-04 Arnaud Charlet <charlet@act-europe.fr>
38831
38832 * raise.c (setup_to_install): Correct mistake in last revision; two
38833 arguments out of order.
38834
38835 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
38836 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
38837 notice, missed in previous change.
38838 Remove trailing blanks and other style errors introduced in previous
38839 change.
38840
388412003-11-04 Olivier Hainque <hainque@act-europe.fr>
38842
38843 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
38844 rid of the wrapper for a LJM type, ensuring we don't do that if the
38845 field is addressable. This avoids potential low level type view
38846 mismatches later on, for instance in a by-reference argument passing
38847 process.
38848
388492003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38850
38851 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
38852 aligned at byte boundary.
38853
388542003-11-04 Joel Brobecker <brobecker@gnat.com>
38855
38856 * decl.c (components_to_record): Do not delete the empty variants from
38857 the end of the union type.
38858
388592003-11-04 Ed Schonberg <schonberg@gnat.com>
38860
38861 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
38862 operation for a derived type, an explicit declaration may use a local
38863 subtype of Boolean.
38864
388652003-11-04 Vincent Celier <celier@gnat.com>
38866
38867 * make.adb (Gnatmake): Allow main sources on the command line with a
38868 library project when it is only for compilation (no binding or
38869 linking).
38870
487e9fff
RO
388712003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38872
38873 * Makefile.in: Remove many duplicate variables.
38874
63069342
KC
388752003-11-03 Kelley Cook <kcook@gcc.gnu.org>
38876
38877 * Make-lang.in (dvi): Move targets to $(docobjdir).
38878 (gnat_ug_vms.dvi): Simplify rule and adjust target.
38879 (gnat_ug_wnt.dvi): Likewise.
38880 (gnat_ug_unx.dvi): Likewise.
38881 (gnat_ug_vxw.dvi): Likewise.
38882 (gnat_rm.dvi): Likewise.
38883 (gnat-style.dvi): Likewise.
38884
c2edc52b
KC
388852003-10-31 Kelley Cook <kcook@gcc.gnu.org>
38886
38887 * gigi.h: Missed commit from update for C90.
38888
14df9585
KC
388892003-10-31 Kelley Cook <kcook@gcc.gnu.org>
38890
38891 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
38892
acd8e984
AS
388932003-10-31 Andreas Schwab <schwab@suse.de>
38894
38895 * raise.c (get_action_description_for): Fix typo in last change.
38896
b2c62c45
NN
388972003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
38898
38899 PR ada/12761
38900 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
38901 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
38902
9373164a
KC
389032003-10-30 Kelley Cook <kcook@gcc.gnu.org>
38904
38905 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
38906 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
38907 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
38908 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
38909 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
38910
bde58e32
AC
389112003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
38912
37783865 38913 * 3vtrasym.adb:
bde58e32
AC
38914 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
38915 numbers when symbol name is too long.
38916
389172003-10-30 Ed Falis <falis@gnat.com>
38918
38919 * g-signal.ads, g-signal.adb: New files
38920
38921 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
38922
38923 * Makefile.rtl: Introduce GNAT.Signals
38924
389252003-10-30 Robert Dewar <dewar@gnat.com>
38926
38927 * freeze.adb: Minor reformatting
38928
38929 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
38930
37783865
ZW
38931 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
38932 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
bde58e32
AC
38933 New handling of Id_Check parameter to improve recognition of keywords
38934 used as identifiers.
38935 Update copyright notice to include 2003
38936
657a9dd9
AC
389372003-10-29 Robert Dewar <dewar@gnat.com>
38938
38939 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
38940 sem_ch10.adb: Minor reformatting
38941
38942 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
38943 (Expand_Assign_Record): Test right hand side for bit unaligned as well
38944
389452003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
38946
37783865 38947 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
657a9dd9
AC
38948 Support for TBK$SYMBOLIZE-based symbolic traceback.
38949
389502003-10-29 Jose Ruiz <ruiz@act-europe.fr>
38951
37783865 38952 * exp_disp.adb:
657a9dd9
AC
38953 Revert previous change, that did not work well when pragma No_Run_Time
38954 was used in conjunction with a run-time other than ZFP.
38955
389562003-10-29 Vincent Celier <celier@gnat.com>
38957
37783865 38958 * make.adb:
657a9dd9
AC
38959 (Gnatmake): When there are no Ada mains in attribute Main, disable the
38960 bind and link steps only is switch -z is not used.
38961
389622003-10-29 Arnaud Charlet <charlet@act-europe.fr>
38963
38964 * Makefile.generic: Remove duplicated setting of CC.
38965
38966 * Makefile.prolog: Set CC to gcc by default, to override make's
38967 default (cc).
38968
38969 * einfo.h: Regenerated.
38970
389712003-10-29 Ed Schonberg <schonberg@gnat.com>
38972
38973 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
38974 current body, after compiling subunit.
38975
38976 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
38977 when in deleted code, because gigi needs properly ordered freeze
38978 actions to annotate types.
38979
38980 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
38981 prevent the premature freezing of record type that contains
38982 subcomponents with a private type that does not yet have a completion.
38983
389842003-10-29 Javier Miranda <miranda@gnat.com>
38985
37783865 38986 * sem_ch12.adb:
657a9dd9
AC
38987 (Analyze_Package_Instantiation): Check that instances can not be used in
38988 limited with_clauses.
38989
37783865 38990 * sem_ch8.adb:
657a9dd9
AC
38991 (Analyze_Package_Renaming): Check that limited withed packages cannot
38992 be renamed. Improve text on error messages related to limited
38993 with_clauses.
38994
38995 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
38996
38997 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
38998 Update copyright notice.
38999
39000 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39001 (Install_Limited_Context_Clauses): New subprogram that isolates all the
39002 checks required for limited context_clauses and installs the limited
39003 view.
39004 (Install_Limited_Withed_Unit): Complete its documentation.
39005 (Analyze_Context): Check that limited with_clauses are only allowed in
39006 package specs.
39007 (Install_Context): Call Install_Limited_Context_Clauses after the
39008 parents have been installed.
39009 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39010 package as 'From_With_Type'; this mark indicates that the limited view
39011 is installed. Used to check bad usages of limited with_clauses.
39012 (Build_Limited_Views): Do not add shadow entities to the scope's list
39013 of entities. Do not add real entities to the Non_Limited_Views chain.
39014 Improve error notification.
39015 (Remove_Context_Clauses): Remove context clauses in two phases:
39016 limited views first and regular views later (to maintain the
39017 stack model).
39018 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39019 its visible entities.
39020
390212003-10-29 Thomas Quinot <quinot@act-europe.fr>
39022
39023 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39024 with any type that Is_Fixed_Point_Type.
39025
39026 * sinfo.ads: Fix documentation for Associated_Node attribute.
39027
390282003-10-29 Sergey Rybin <rybin@act-europe.fr>
39029
39030 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39031 both '-gnatc' and '-gnatt' are specified.
39032
39033 * atree.adb (Initialize): Add initialization for Node_Count (set to
39034 zero).
39035
390362003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39037
39038 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39039 do not consider as Pure.
39040
39041 Part of implementation of function-at-a-time:
39042
39043 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39044 (tree_transform): Add new argument to build_component_ref.
39045 (tree_transform, case N_Assignment_Statement): Make and return an
39046 EXPR_STMT.
39047 (tree_transform): If result IS_STMT, set flags and return it.
39048 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39049
39050 * utils2.c (build_simple_component_ref, build_component_ref): Add new
39051 arg, NO_FOLD_P.
39052 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39053 (build_allocator): Likewise.
39054
39055 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39056 Add new arg to build_component_ref.
39057 (maybe_unconstrained_array, unchecked_convert): Likewise.
39058
39059 * ada-tree.def (EXPR_STMT): New code.
39060
39061 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39062
39063 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39064 build_component_ref calls.
39065
39066 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39067
39068 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39069 (build_component_ref): Add new argument, NO_FOLD_P.
39070
ecad994d
AC
390712003-10-27 Arnaud Charlet <charlet@act-europe.fr>
39072
39073 * Makefile.generic: Add missing substitution on object_deps handling.
39074
6f7f72f9 39075 PR ada/5909
ecad994d
AC
39076 * Make-lang.in (check-ada): Enable ACATS test suite.
39077
390782003-10-27 Robert Dewar <dewar@gnat.com>
39079
37783865 39080 * exp_ch3.adb:
ecad994d
AC
39081 (Freeze_Array_Type): We do not need an initialization routine for types
39082 derived from String or Wide_String. They should be treated the same
39083 as String and Wide_String themselves. This caused problems with the
39084 use of Initialize_Scalars.
39085
37783865 39086 * exp_ch5.adb:
ecad994d
AC
39087 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39088 composites. This allows use of component clauses that are not byte
39089 aligned.
39090
37783865 39091 * sem_prag.adb:
ecad994d
AC
39092 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39093 is an attempt to pack an array of atomic objects.
39094
39095 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39096
390972003-10-27 Pascal Obry <obry@gnat.com>
39098
37783865 39099 * g-dirope.adb:
ecad994d
AC
39100 (Basename): Check for drive letters in a pathname only on DOS based OS.
39101
391022003-10-27 Vincent Celier <celier@gnat.com>
39103
37783865 39104 * make.adb:
ecad994d
AC
39105 (Gnatmake): When unable to change dir to the object dir, display the
39106 content of the parent dir of the obj dir, to try to understand why this
39107 happens.
39108
391092003-10-27 GNAT Script <nobody@gnat.com>
39110
39111 * Make-lang.in: Makefile automatically updated
39112
391132003-10-27 Ed Schonberg <schonberg@gnat.com>
39114
37783865 39115 * sem_ch12.adb:
ecad994d
AC
39116 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39117 should not be done in Save/Restore_Scope_Stack, because it is performed
39118 locally.
39119
37783865 39120 * sem_ch8.adb:
ecad994d
AC
39121 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39122 whether use clauses should be removed/restored.
39123
37783865 39124 * sem_ch8.ads:
ecad994d
AC
39125 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39126 whether use clauses should be removed/restored.
39127
b6b3c138
AJ
391282003-10-26 Andreas Jaeger <aj@suse.de>
39129
39130 * Makefile.in: Remove duplicated lines.
39131
b6d83931
AC
391322003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39133
39134 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39135 minimize the differences with ACT tree.
39136
39137 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39138 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39139 Gnatvsn.Gnat_Static_Version_String to reduce differences between
39140 ACT and FSF trees.
39141
391422003-10-24 Pascal Obry <obry@gnat.com>
39143
6f7f72f9 39144 PR ada/12014
b6d83931
AC
39145 * adadecode.c (ostrcpy): New function.
39146 (__gnat_decode): Use ostrcpy of strcpy.
39147 (has_prefix): Set first parameter a const.
39148 (has_suffix): Set first parameter a const.
39149 Update copyright notice. Fix source name in header.
39150 Removes a trailing space.
b6d83931
AC
39151
391522003-10-24 Jose Ruiz <ruiz@act-europe.fr>
39153
b6b3c138 39154 * exp_disp.adb:
b6d83931
AC
39155 Remove the test against being in No_Run_Time_Mode before generating a
39156 call to Register_Tag. It is redundant with the test against the
39157 availability of the function Register_Tag.
39158
391592003-10-24 Vincent Celier <celier@gnat.com>
39160
39161 * g-catiio.adb: (Month_Name): Correct spelling of February
39162
39163 * make.adb: (Mains): New package
39164 (Initialize): Call Mains.Delete
39165 (Gnatmake): Check that each main on the command line is a source of a
39166 project file and, if there are several mains, each of them is a source
39167 of the same project file.
39168 (Gnatmake): When a foreign language is specified in attribute Languages,
39169 no main is specified on the command line and attribute Mains is not
39170 empty, only build the Ada main. If there is no Ada main, just compile
39171 the Ada sources and their closure.
39172 (Gnatmake): If a main is specified on the command line with directory
39173 information, check that the source exists and, if it does, that the path
39174 is the actual path of a source of a project.
39175
b6b3c138 39176 * prj-env.adb:
b6d83931
AC
39177 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39178 Full_Path is True, return the full path instead of the simple file name.
39179 (Project_Of): New function
39180
b6b3c138 39181 * prj-env.ads:
b6d83931
AC
39182 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39183 defaulted to False.
39184 (Project_Of): New function
39185
391862003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39187
b6b3c138 39188 * Makefile.generic:
b6d83931
AC
39189 Ensure objects of main project are always checked and rebuilt if needed.
39190 Set CC to gcc by default.
39191 Prepare new handling of link by creating a global archive (not activated
39192 yet).
39193
39194 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39195 stringt.h: Update copyright notice. Remove trailing blanks.
39196 Fix source name in header.
39197
391982003-10-24 Robert Dewar <dewar@gnat.com>
39199
39200 * sem_ch12.adb: Minor reformatting
39201
b6b3c138 39202 * sem_ch3.adb:
b6d83931
AC
39203 Minor reformatting (including new function return style throughout)
39204
b6b3c138 39205 * sem_ch3.ads:
b6d83931
AC
39206 Minor reformatting (including new function return style throughout)
39207
392082003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39209
39210 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39211 stringt.h: Update copyright notice. Remove trailing blanks.
39212 Fix source name in header.
39213
392142003-10-24 GNAT Script <nobody@gnat.com>
39215
39216 * Make-lang.in: Makefile automatically updated
39217
b4e2d709
NN
392182003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
39219
39220 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39221 stringt.h: Convert to ISO C90 declarations and definitions.
39222
9d7d51be
AC
392232003-10-23 Thomas Quinot <quinot@act-europe.fr>
39224
6f7f72f9 39225 PR ada/11978
9d7d51be
AC
39226 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39227 External_Tag attribute definition clauses.
39228
392292003-10-23 Ed Schonberg <schonberg@gnat.com>
39230
6f7f72f9 39231 PR ada/7613
9d7d51be
AC
39232 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39233 child unit, generate a fully qualified name to avoid spurious errors
39234 when the context contains renamings of different child units with
39235 the same simple name.
39236
39237 * exp_dbug.ads: Add documentation on name qualification for renamings
39238 of child units.
39239
392402003-10-23 Robert Dewar <dewar@gnat.com>
39241
39242 * g-regpat.ads, g-regpat.adb: Minor reformatting
39243
392442003-10-23 Jose Ruiz <ruiz@act-europe.fr>
39245
39246 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39247
392482003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39249
39250 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39251 Machine call.
39252
39253 * urealp.h: (Machine): Update to proper definition.
39254
6d244bbe
AC
392552003-10-23 Arnaud Charlet <charlet@act-europe.fr>
39256
39257 * init.c, adaint.c: Minor reformatting.
39258
8f4eb34b
DS
392592003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
39260
6d244bbe 39261 * adaint.c (w32_epoch_offset): Define static const at file level.
8f4eb34b
DS
39262 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39263 rather than t_create, t_access in call to GetFileTime. Use union
39264 to convert between FILETIME and unsigned long long.
39265 (__gnat_file_time_name): Test for invalid file handle.
39266 (__gnat_set_filetime_name): Support win32 targets using
39267 w32api SetFileTime.
39268
25412599
DS
392692003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
39270
39271 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39272
39273 * ctrl_c.c (__gnat_int_handler): Remove declaration.
39274
39275 * decl.c (creat_concat_name): Const-ify prefix.
39276
39277 * adaint.c: Include ctype.h if __MINGW32__.
39278 (__gnat_readlink): Mark arguments as possibly unused.
39279 (__gnat_symlink): Likewise.
39280 (__gnat_is_symbolic_link): Likewise.
39281 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
39282 declaration
b6b3c138 39283 (__gnat_file_time_name): Don't declare struct stat statbuf when
25412599
DS
39284 not needed.
39285 (__gnat_is_absolute_path): Add parenthesis around condition of
39286 'if' statement to avoid warning.
39287 (__gnat_plist_init): Specify void as parameter.
39288 (plist_enter): Likewise.
39289 (plist_leave): Likewise.
39290 (remove_handle): Make static. Initialize prev.
39291
698a5e79
AC
392922003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39293
6f7f72f9
EB
39294 PR ada/10110
39295 * Makefile.in: Disable build of gnatpsta.
698a5e79
AC
39296 * cstreams.c (__gnat_full_name): Minor improvements and clean up
39297 of previous change.
39298
e97c30aa
RO
392992003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39300
39301 * tracebak.c (MAX): Avoid redefinition warning.
39302
39303 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39304 Change msg to const char *.
39305 (__gnat_install_handler): Remove ss, unused.
39306 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39307 to const char *.
39308 * cstreams.c (__gnat_full_name): Declare p only when used.
39309 (__gnat_full_name) [sgi] Return buffer.
39310
65f1ebd1
AC
393112003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39312
39313 * mingw32.h: New file.
0c644933
AC
39314 * gnat_wrapper.adb: New file.
39315
6d244bbe 393162003-10-22 Jerome Roussel <roussel@act-europe.fr>
0c644933
AC
39317
39318 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39319 string match a pre compiled regular expression (the corresponding
39320 version of the function working on a raw regular expression)
39321 Fix typos in various comments
39322 Update copyright notice in spec
39323
6d244bbe 393242003-10-21 Gary Dismukes <dismukes@gnat.com>
0c644933 39325
b6b3c138 39326 * exp_ch3.adb:
0c644933
AC
39327 (Component_Needs_Simple_Initialization): Return False when the type is a
39328 packed bit array. Revise spec comments to document this case.
39329
b6b3c138 39330 * exp_prag.adb:
0c644933
AC
39331 (Expand_Pragma_Import): Set any expression on the imported object to
39332 empty to avoid initializing imported objects (in particular this
39333 covers the case of zero-initialization of bit arrays).
39334 Update copyright notice.
39335
6d244bbe 393362003-10-21 Ed Schonberg <schonberg@gnat.com>
0c644933 39337
b6b3c138 39338 * sem_ch12.adb:
0c644933
AC
39339 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39340 a subunit is missing.
39341 (Instantiate_Subprogram_Body): If body of function is missing, set type
39342 of return expression explicitly in dummy body, to prevent cascaded
39343 errors when a subunit is missing.
39344 Fixes PR 5677.
39345
b6b3c138 39346 * sem_ch3.adb:
0c644933
AC
39347 (Access_Subprogram_Declaration): Verify that return type is valid.
39348 Fixes PR 8693.
39349
b6b3c138 39350 * sem_elab.adb:
0c644933
AC
39351 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39352 generic.
39353 Fixes PR 12318.
39354
b6b3c138 39355 * sem_util.adb:
0c644933
AC
39356 (Corresponding_Discriminant): If the scope of the discriminant is a
39357 private type without discriminant, use its full view.
39358 Fixes PR 8247.
65f1ebd1 39359
fbf5a39b
AC
393602003-10-21 Arnaud Charlet <charlet@act-europe.fr>
39361
39362 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39363 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39364 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39365 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39366 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39367 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39368 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39369 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39370 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39371 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39372 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39373 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39374 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39375 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39376 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39377 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39378 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39379 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39380 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39381 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39382 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39383 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39384 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39385 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39386 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39387 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39388 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39389 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39390 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39391 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39392 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39393 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39394 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39395 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39396 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39397 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39398 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39399 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39400 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39401 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39402 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39403 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39404 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39405 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39406 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39407 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39408 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39409 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39410 vms_conv.ads, vms_conv.adb, vms_data.ads,
39411 vxaddr2line.adb: Files added. Merge with ACT tree.
39412
39413 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39414 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39415 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39416 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39417 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39418 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39419 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39420 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39421 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39422 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39423
39424 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39425 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39426 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39427 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39428 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39429 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39430 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39431 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39432 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39433 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39434 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39435 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39436 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39437 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39438 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39439 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39440 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39441 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39442 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39443 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39444 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39445 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39446 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39447 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39448 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39449 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39450 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39451 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39452 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39453 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39454 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39455 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39456 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39457 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39458 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39459 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39460 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39461 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39462 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39463 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39464 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39465 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39466 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39467 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39468 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39469 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39470 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39471 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39472 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39473 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39474 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39475 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39476 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39477 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39478 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39479 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39480 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39481 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39482 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39483 checks.adb, checks.ads, cio.c, comperr.adb,
39484 comperr.ads, csets.adb, cstand.adb, cstreams.c,
39485 debug_a.adb, debug_a.ads, debug.adb, decl.c,
39486 einfo.adb, einfo.ads, errout.adb, errout.ads,
39487 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39488 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39489 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39490 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39491 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39492 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39493 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39494 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39495 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39496 fe.h, fmap.adb, fmap.ads, fname.adb,
39497 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39498 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39499 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39500 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39501 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39502 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39503 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39504 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39505 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39506 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39507 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39508 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39509 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39510 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39511 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39512 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39513 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39514 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39515 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39516 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39517 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39518 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39519 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39520 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39521 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39522 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39523 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39524 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39525 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39526 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39527 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39528 layout.adb, lib.adb, lib.ads, lib-list.adb,
39529 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39530 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39531 link.c, live.adb, make.adb, make.ads,
39532 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39533 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39534 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39535 misc.c, mkdir.c, mlib.adb, mlib.ads,
39536 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39537 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39538 namet.adb, namet.ads, namet.h, nlists.ads,
39539 nlists.h, nmake.adt, opt.adb, opt.ads,
39540 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39541 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39542 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39543 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39544 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39545 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39546 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39547 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39548 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39549 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39550 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39551 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39552 prj-util.adb, prj-util.ads, raise.c, raise.h,
39553 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39554 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39555 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39556 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39557 scans.ads, scn.adb, scn.ads, s-crc32.adb,
39558 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39559 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39560 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39561 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39562 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39563 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39564 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39565 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
39566 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
39567 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
39568 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
39569 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
39570 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
39571 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
39572 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
39573 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
39574 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
39575 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
39576 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
39577 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
39578 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
39579 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
39580 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
39581 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
39582 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
39583 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
39584 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
39585 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
39586 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
39587 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
39588 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
39589 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
39590 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
39591 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
39592 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
39593 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
39594 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
39595 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
39596 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
39597 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
39598 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39599 stringt.adb, stringt.ads, stringt.h, style.ads,
39600 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
39601 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
39602 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
39603 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
39604 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
39605 table.adb, table.ads, targparm.adb, targparm.ads,
39606 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
39607 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
39608 ttypes.ads, types.ads, types.h, uintp.adb,
39609 uintp.ads, uintp.h, uname.adb, urealp.adb,
39610 urealp.ads, urealp.h, usage.adb, utils2.c,
39611 utils.c, validsw.adb, validsw.ads, widechar.adb,
39612 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
39613 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
39614 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
39615 gnatvsn.ads: Merge with ACT tree.
39616
39617 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
39618
97ae108d
MM
396192003-10-20 Mark Mitchell <mark@codesourcery.com>
39620
de696511
MM
39621 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
39622 (gnat_ug_vmx.info): Likewise.
39623 (gnat_ug_vxw.info): Likewise.
39624 (gnat_ug_wnt.info): Likewise.
39625 (gnat_rm.info): Likewise.
39626 (gnat-style.info): Likewise.
39627
97ae108d
MM
39628 * Make-lang.in (ada.install-info): Remove target.
39629 (info): New target.
39630 (install-info): Likewise.
39631 (gnat_ug_unx.info): Simplify rule.
39632 (gnat_ug_vmx.info): Likewise.
39633 (gnat_ug_vxw.info): Likewise.
39634 (gnat_ug_wnt.info): Likewise.
39635 (gnat_rm.info): Likewise.
39636 (gnat-style.info): Likewise.
39637
43aba518
NN
396382003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
39639
39640 * Make-lang.in: Replace uses of $(target_alias) with
39641 $(target_noncanonical).
39642 * ada/Makefile.in: Remove unused mention of $(target_alias).
39643
62b81e45
MM
396442003-10-06 Mark Mitchell <mark@codesourcery.com>
39645
39646 * Make-lang.in (ada.info): Replace with ...
39647 (info): ... this.
39648 (ada.dvi): Replace with ...
39649 (dvi): ... this.
39650
783be936
ZW
396512003-09-29 Zack Weinberg <zack@codesourcery.com>
39652
39653 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
39654 initialize dconstp5 and dconstmp5.
39655
177560b2
RH
396562003-09-28 Richard Henderson <rth@redhat.com>
39657
39658 * trans.c (tree_transform): Update call to expand_asm_operands.
39659
f31686a3
RH
396602003-09-21 Richard Henderson <rth@redhat.com>
39661
39662 * trans.c, utils.c: Revert.
39663
7e2af53a
RH
396642003-09-21 Richard Henderson <rth@redhat.com>
39665
39666 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
39667 change to const.
39668
5f1e32fa
MM
396692003-09-04 Michael Matz <matz@suse.de>
39670
39671 * misc.c: Include "target.h".
39672 * Make-lang.in (misc.o): Add dependency on target.h.
39673
61f71b34
DD
396742003-09-03 DJ Delorie <dj@redhat.com>
39675
39676 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
39677 hook.
39678
2ed26f6b
ZW
396792003-08-30 Zack Weinberg <zack@codesourcery.com>
39680
39681 * Makefile.in: Update substitutions to match changes to
39682 configure. Use include directives instead of @-insertions
39683 to read in host and target fragments. Add a rule to
39684 regenerate ada/Makefile.
39685
b2e608ca
NB
396862003-07-18 Neil Booth <neil@daikokuya.co.uk>
39687
39688 * lang-options.h: Remove.
39689 * lang.opt: Add help text.
39690
0cea056b
NS
396912003-07-07 Nathan Sidwell <nathan@codesourcery.com>
39692
39693 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
39694 calls.
39695
cb66e385
NB
396962003-07-06 Neil Booth <neil@daikokuya.co.uk>
39697
39698 * misc.c (gnat_handle_option): Don't handle filenames.
39699
9e94c78f 397002003-07-04 H.J. Lu <hongjiu.lu@intel.com>
8c90b13a
L
39701
39702 * Make-lang.in: Replace PWD with PWD_COMMAND.
39703 * Makefile.adalib: Likewise.
39704 * Makefile.in: Likewise.
39705
9c286213
MK
397062003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
39707
39708 * misc.c (gnat_argv): Revert last change.
39709 (gnat_handle_option, gnat_init_options): Copy arguments.
39710
b9add449
NB
397112003-07-03 Neil Booth <neil@daikokuya.co.uk>
39712
9c286213 39713 * misc.c (gnat_argv): Make const.
b9add449 39714
836d77a9
NB
397152003-07-02 Neil Booth <neil@daikokuya.co.uk>
39716
39717 * misc.c (save_argc, save_argv): Keep non-static!
39718
b86f6cd9
NB
397192003-07-02 Neil Booth <neil@daikokuya.co.uk>
39720
39721 * misc.c (save_argc, save_argv): Make static.
39722 (gnat_init_options): New prototype.
39723 (gnat_init_options): Update.
39724
6344b1f1
MK
397252003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
39726
39727 * gnat_ug.texi: Remove unlikely characters from @vars.
39728 * gnat_ug_vms.texi: Regenerate.
39729
2e040219
NS
397302003-06-27 Nathan Sidwell <nathan@codesourcery.com>
39731
39732 * misc.c (record_code_position): Adjust emit_note call.
39733
9eee5e72
NB
397342003-06-26 Neil Booth <neil@daikokuya.co.uk>
39735
39736 * misc.c (gnat_handle_option): Don't check for missing arguments.
39737
1f9cc6db
NS
397382003-06-20 Nathan Sidwell <nathan@codesourcery.com>
39739
39740 * utils.c (end_subprog_body): Adjust expand_function_end call.
39741
23d6baa3
MK
397422003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
39743
39744 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
39745 Bind_Main_Program.
39746
be43ab4e
NB
397472003-06-15 Neil Booth <neil@daikokuya.co.uk>
39748
39749 * lang.opt: Declare Ada.
39750 * misc.c (gnat_init_options): Update.
39751
ee6b0296
NS
397522003-06-14 Nathan Sidwell <nathan@codesourcery.com>
39753
39754 * utils.c (begin_subprog_body): Adjust init_function_start call.
39755
d7b42618
NB
397562003-06-14 Neil Booth <neil@daikokuya.co.uk>
39757
39758 * Make-lang.in: Update to use options.c and options.h.
39759 * misc.c: Include options.h not aoptions.h.
39760 (gnat_handle_option): Abort on unrecognized switch.
39761 (gnat_init_options): Request Ada switches.
39762
57eb6503
NB
397632003-06-14 Neil Booth <neil@daikokuya.co.uk>
39764
39765 * lang.opt: Add -Wall.
39766 * misc.c (gnat_handle_option): Handle it.
39767
70fd6569
NB
397682003-06-12 Neil Booth <neil@daikokuya.co.uk>
39769
39770 * misc.c (gnat_handle_option): Fix warnings.
39771
8cdea5a1
MK
397722003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
39773
39774 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
39775
3c900cb5
NB
397762003-06-11 Neil Booth <neil@daikokuya.co.uk>
39777
39778 * Make-lang.in: Update to handle command-line options.
39779 * lang.opt: New file.
39780 * misc.c: Include aoptions.h.
39781 (cl_options_count, cl_options): Remove.
39782 (gnat_handle_option): New.
39783 (gnat_decode_option): Remove.
39784 (LANG_HOOKS_DECODE_OPTION): Remove.
39785 (LANG_HOOKS_HANDLE_OPTION): Override.
39786
e8face4c
NN
397872003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
39788
39789 * init.c, misc.c, trans.c, utils.c: Remove dead code.
39790
4665e56c
NN
397912003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
39792
39793 * Makefile.in: Replace "host_canonical" with "host" for autoconf
39794 substitution.
39795
a165c302
NB
397962003-06-08 Neil Booth <neil@daikokuya.co.uk>
39797
39798 * Make-lang.in: Update.
39799 * misc.c: Include opts.h. Define cl_options_count and cl_options.
39800
2772ef3e
NB
398012003-06-07 Neil Booth <neil@daikokuya.co.uk>
39802
39803 * misc.c (gnat_init_options): Update.
39804
d8277a55
MK
398052003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
39806
39807 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
39808 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
39809 __attribute__ ((__unused__)).
39810
602a82f3 398112003-06-05 Jan Hubicka <jh@suse.cz>
8f231b5d
JH
39812
39813 * Make-lang.in: Add support for stageprofile and stagefeedback
39814
3aa07c6d
MK
398152003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
39816
39817 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
39818 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
39819
f1093866
MK
398202003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
39821
39822 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
39823 Remove non-VMS directive.
39824 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
39825 alternatives.
39826 (Examples of gnatls Usage): Remove VMS alternative.
dee2df72
OH
39827
398282003-06-04 Olivier Hainque <hainque@act-europe.fr>
39829
6f7f72f9 39830 PR ada/9953
2ed26f6b
ZW
39831 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
39832 and turn ZCX_By_Default back to False since the underlying support
39833 is not quite there yet.
dee2df72 39834
80eaf415
AJ
398352003-06-01 Andreas Jaeger <aj@suse.de>
39836
39837 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
39838 and ROUND_TYPE_SIZE_UNIT.
39839
9e94c78f 398402003-05-22 Geert Bosch <bosch@gnat.com>
36f9020c
GB
39841
39842 * gnat_rm.texi : Remove reference to Ada Core Technologies.
39843
e7b5f0c9
NS
398442003-05-03 Nathan Sidwell <nathan@codesourcery.com>
39845
39846 * trans.c (tree_transform): Use location_t and input_location
39847 directly.
39848 (build_unit_elab): Likewise.
39849 * utils.c (create_label_decl): Likewise.
39850
d479d37f
NS
398512003-05-01 Nathan Sidwell <nathan@codesourcery.com>
39852
561712fe
NS
39853 * trans.c (tree_transform, build_unit_elab,
39854 set_lineno): Rename lineno to input_line.
d479d37f
NS
39855 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
39856 end_subprog_body): Likewise.
39857 * utils2.c (build_call_raise): Likewise.
39858
9e94c78f 398592003-05-01 Laurent Guerby <guerby@acm.org>
4f9335cd 39860
2ed26f6b
ZW
39861 PR ada/10546
39862 * 5iosinte.ads: Increase pthread_cond_t size to match recent
39863 LinuxThread and NPTL version, merge from ACT.
80eaf415 39864
0864034e
ZW
398652003-04-28 Zack Weinberg <zack@codesourcery.com>
39866
39867 * utils.c (convert): No need to clear TREE_CST_RTL.
39868
9e94c78f 398692003-04-23 Geert Bosch <bosch@gnat.com>
bcea76b6
GB
39870
39871 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
39872 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39873 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39874 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39875 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39876 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
39877 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
39878 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
39879 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39880 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
39881 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
39882 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
39883 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
39884 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
39885 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
39886 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
39887 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
39888 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
39889 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
39890 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
39891 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
39892 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
39893 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39894 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
39895 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
39896 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
39897 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
39898 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
39899 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
39900 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
39901 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
39902 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
39903 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
39904 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
39905 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
39906 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
39907 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
39908 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
39909 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
39910 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
39911 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
39912 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
39913 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
39914 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
39915 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
39916 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
39917 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
39918 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
39919 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
39920 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
39921 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
39922 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
39923 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
39924 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
39925 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
39926 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
39927 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
39928 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
39929 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
39930 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
39931 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
39932 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
39933 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
39934 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
39935 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
39936 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
39937 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
39938 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
39939 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
39940 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
39941 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
39942 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
39943 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
39944 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
39945 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
39946 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
39947 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
39948 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
39949 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
39950 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
39951 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
39952 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
39953 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
39954 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
39955 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
39956 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
39957 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
39958 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
39959 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
39960 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
39961 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
39962 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
39963 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
39964 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
39965 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
39966 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
39967 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
39968 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
39969 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
39970 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
39971 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
39972 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
39973 ali.adb, ali.ads, alloc.ads, argv.c,
39974 atree.adb, atree.ads, atree.h, aux-io.c,
39975 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
39976 binde.adb, binde.ads, binderr.adb, binderr.ads,
39977 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
39978 butil.adb, butil.ads, cal.c, calendar.ads,
39979 casing.adb, casing.ads, ceinfo.adb, checks.adb,
39980 checks.ads, cio.c, comperr.adb, comperr.ads,
39981 config-lang.in, csets.adb, csets.ads, csinfo.adb,
39982 cstand.adb, cstand.ads, cuintp.c, debug.adb,
39983 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
39984 dec-io.ads, dec.ads, deftarg.c, directio.ads,
39985 einfo.adb, einfo.ads, elists.adb, elists.ads,
39986 elists.h, errno.c, errout.adb, errout.ads,
39987 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
39988 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
39989 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
39990 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
39991 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
39992 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
39993 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
39994 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
39995 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
39996 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
39997 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
39998 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
39999 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40000 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40001 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40002 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40003 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40004 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40005 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40006 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40007 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40008 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40009 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40010 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40011 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40012 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40013 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40014 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40015 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40016 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40017 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40018 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40019 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40020 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40021 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40022 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40023 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40024 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40025 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40026 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40027 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40028 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40029 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40030 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40031 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40032 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40033 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40034 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40035 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40036 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40037 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40038 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40039 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40040 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40041 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40042 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40043 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40044 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40045 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40046 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40047 lib.adb, lib.ads, live.adb, live.ads,
40048 machcode.ads, make.adb, make.ads, makeusg.adb,
40049 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40050 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40051 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40052 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40053 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40054 mlib.ads, namet.adb, namet.ads, nlists.adb,
40055 nlists.ads, opt.adb, opt.ads, osint-b.adb,
40056 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40057 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40058 osint.ads, output.adb, output.ads, par-ch10.adb,
40059 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40060 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40061 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40062 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40063 par-tchk.adb, par-util.adb, par.adb, par.ads,
40064 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40065 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40066 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40067 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40068 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40069 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40070 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40071 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40072 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40073 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40074 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40075 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40076 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40077 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40078 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40079 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40080 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40081 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40082 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40083 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40084 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40085 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40086 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40087 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40088 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40089 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40090 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40091 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40092 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40093 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40094 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40095 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40096 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40097 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40098 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40099 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40100 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40101 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40102 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40103 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40104 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40105 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40106 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40107 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40108 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40109 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40110 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40111 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40112 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40113 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40114 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40115 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40116 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40117 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40118 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40119 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40120 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40121 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40122 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40123 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40124 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40125 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40126 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40127 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40128 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40129 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40130 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40131 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40132 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40133 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40134 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40135 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40136 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40137 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40138 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40139 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40140 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40141 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40142 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40143 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40144 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40145 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40146 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40147 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40148 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40149 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40150 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40151 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40152 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40153 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40154 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40155 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40156 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40157 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40158 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40159 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40160 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40161 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40162 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40163 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40164 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40165 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40166 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40167 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40168 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40169 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40170 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40171 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40172 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40173 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40174 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40175 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40176 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40177 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40178 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40179 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40180 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40181 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40182 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40183 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40184 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40185 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40186 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40187 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40188 snames.ads, sprint.adb, sprint.ads, stand.adb,
40189 stand.ads, stringt.adb, stringt.ads, style.adb,
40190 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40191 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40192 switch-m.ads, switch.adb, switch.ads, system.ads,
40193 table.adb, table.ads, targparm.adb, targparm.ads,
40194 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40195 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40196 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40197 ttypef.ads, ttypes.ads, types.adb, types.ads,
40198 uintp.adb, uintp.ads, uname.adb, uname.ads,
40199 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40200 usage.adb, usage.ads, validsw.adb, validsw.ads,
40201 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40202 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40203 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40204 formatting and other trivial changes from ACT.
40205
dcf92453
ZW
402062003-04-12 Zack Weinberg <zack@codesourcery.com>
40207
40208 * gigi.h, utils2.c (build_constructor):
40209 Rename gnat_build_constructor. Use build_constructor.
40210 * decl.c (gnat_to_gnu_entity)
40211 * trans.c (tree_transform, pos_to_constructor, extract_values)
40212 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40213 (unchecked_convert)
40214 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40215 (fill_vms_descriptor):
40216 Update to match.
40217
d78e771d
ZW
402182003-04-06 Zack Weinberg <zack@codesourcery.com>
40219
40220 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40221 * misc.c (gnat_tree_size): New function.
40222 (LANG_HOOKS_TREE_SIZE): Override.
40223
78d55cc8
JM
402242003-04-03 Jason Merrill <jason@redhat.com>
40225
40226 * misc.c (gnat_adjust_rli): #if 0.
40227
9e94c78f 402282003-03-31 Geert Bosch <bosch@gnat.com>
b174e2d4
GB
40229
40230 PR ada/10020
40231 * link.c : Fix misspelled "const" keyword
40232
f29a2bd1
MM
402332003-03-23 Mark Mitchell <mark@codesourcery.com>
40234
40235 PR c++/7086
40236 * utils2.c: Adjust calls to put_var_into_stack.
40237
08e247b1
NN
402382003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
40239
40240 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40241
4bfec483
NB
402422003-03-08 Neil Booth <neil@daikokuya.co.uk>
40243
40244 * misc.c (gnat_init): Update for new prototype.
40245
3d713bb8
GB
402462003-03-05 Olivier Hainque <hainque@gnat.com>
40247
40248 ada/9961
78d55cc8
JM
40249 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40250 warning, and fix return type for the IN_RTS && !SJLJ case.
3d713bb8 40251
8b89fcdf
TT
402522003-03-04 Tom Tromey <tromey@redhat.com>
40253
40254 * Make-lang.in (ada.tags): New target.
40255
3d713bb8 402562003-03-04 Olivier Hainque <hainque@act-europe.fr>
23cae84f
OH
40257
40258 ada/9911
40259 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40260 wrapper, which name remains constant whatever underlying GCC
40261 scheme.
40262
40263 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40264 the stable interface needed for a-except.
40265
f4ae98be
AJ
402662003-03-02 Andreas Jaeger <aj@suse.de>
40267
40268 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40269 gnat_ug_wnt.texi: Regenerate.
40270
9e94c78f 402712003-03-02 Laurent Guerby <guerby@acm.org>
5348742b 40272
f4ae98be 40273 * Makefile.in (install-gnatlib): Match previous change there
5348742b 40274 so it works.
f4ae98be 40275
8c108db2
AS
402762003-02-28 Andreas Schwab <schwab@suse.de>
40277
40278 * Make-lang.in (install-gnatlib): Change to ada directory before
40279 running make instead of using ada/Makefile directly.
40280
601d71bc
BE
402812003-02-18 Ben Elliston <bje@redhat.com>
40282
6f7f72f9 40283 Part of PR ada/9406
601d71bc
BE
40284 * gnat_ug.texi (Binder output file): Grammar fix.
40285
bf7c02dd
BE
402862003-02-18 Ben Elliston <bje@redhat.com>
40287
40288 PR other/7350
40289 * 5qtaprop.adb (Sleep): Fix typo in comment.
40290
b3a8389d
JM
402912003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
40292
40293 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40294 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40295 gnat_ug_wnt.texi: Regenerate.
40296
9e94c78f 402972003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
5da14cb5
CC
40298
40299 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40300 be created if necessary.
40301 (ada.install-common): Let $(DESTDIR)$(bindir) be created
40302 if necessary. Remove erroneous and redundant gnatchop
40303 installation commands. Test for gnatdll before attempting
40304 to install it.
40305 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40306 and gnatdll from all plausible locations.
40307
271bd540
RS
403082003-02-01 Richard Sandiford <rsandifo@redhat.com>
40309
40310 * utils2.c (build_unary_op): Don't check flag_volatile.
40311 * gnat_ug.texi: Remove -fvolatile from example.
40312 * gnat_ug_vxw.texi: Likewise.
40313
9e94c78f 403142003-01-29 Laurent Guerby <guerby@acm.org>
c1cc6a51 40315
d78e771d
ZW
40316 PR ada/8344
40317 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40318 * Makefile.in: match previous change.
40319 * Make-lang.in: match previous change.
c1cc6a51 40320
9e94c78f 403212003-01-29 Joel Sherrill <joel@OARcorp.com>
c4039eb0
JS
40322
40323 * 5rosinte.ads: Add SIGXCPU.
40324 * 5rtpopsp.adb: New file.
40325 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40326 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40327 specific file 5rtpopsp.adb.
40328 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
40329 is likely needed for all newlib targets.
40330 * init.c: Add RTEMS specific version of __gnat_initialize().
40331
00d29f7d
RO
403322003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40333
40334 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40335
437026ef
RO
403362003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40337
40338 * init.c (__gnat_error_handler): Make msg const.
40339
40340 * gmem.c (convert_addresses): Move declaration ...
40341 * adaint.h: ... here.
40342 * adaint.c (convert_addresses): Adapt addrs type to match
40343 prototype.
40344
40345 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40346
e12825cd
AS
403472003-01-24 Andreas Schwab <schwab@suse.de>
40348
40349 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40350 size_t to avoid warning.
40351
a8729406
ZW
403522003-01-21 Zack Weinberg <zack@codesourcery.com>
40353
b09b91b9 40354 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
a8729406 40355
17211ab5
GK
403562003-01-09 Geoffrey Keating <geoffk@apple.com>
40357
40358 * gnat_rm.texi: Remove RCS version number.
40359
40360 * ada-tree.h (union lang_tree_node): Add chain_next option.
40361
1d27195c
CC
403622003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40363
40364 * Make-lang.in (ada.install-info, ada.install-common,
40365 ada.uninstall): Prepend $(DESTDIR) to the destination
40366 directory in all (un)installation commands.
40367 * Makefile.in (install-gnatlib, install-rts): Ditto.
40368
bdefb2ab
JM
403692002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
40370
40371 * gnat_rm.texi, gnat_ug.texi: Use @copying.
40372 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40373 gnat_ug_wnt.texi: Regenerate.
40374
46d40353
JM
403752002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
40376
40377 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
40378 only.
40379 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40380 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40381 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40382 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40383 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40384 $(srcdir)/doc/include/gcc-common.texi.
40385
9e94c78f 403862002-12-15 Geert Bosch <bosch@gnat.com>
d2f97d3e
GB
40387
40388 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40389
9e94c78f 403902002-12-14 Geert Bosch <bosch@gnat.com>
93a81b02 40391
6f7f72f9 40392 PR ada/5690
4977bab6
ZW
40393 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40394 case of a body created for a Renaming_As_Body, on which
6f7f72f9 40395 conformance checks are not performed.
4977bab6
ZW
40396
403972002-11-30 Zack Weinberg <zack@codesourcery.com>
40398
40399 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40400 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40401 not already included.
40402 * Make-lang.in: Update dependencies.
93a81b02 40403
dfc15546
NN
404042002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
40405 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
4977bab6 40406 solution to buffer overflow bug on GNU/Linux.
dfc15546 40407
8b54424d 404082002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9
EB
40409
40410 PR ada/5856
40411 PR ada/6919
8b54424d
NN
40412 * bindgen.adb: Remove all references to Public_Version.
40413 * comperr.adb: Remove all references to Public_Version and
40414 GNATPRO_Version; correct bug reporting instructions.
40415 * comperr.ads: Change to match bug box.
40416 * gnatvsn.ads: Remove all references to Public version and
40417 GNATPRO version.
40418
cc41268d 404192002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 40420
1a083c0e
NN
40421 PR ada/6919
40422 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40423 GNU/Linux.
40424
cc41268d
NN
40425 PR ada/6558
40426 * config-lang.in: Remove diff_excludes.
40427
1c7b0712 404282002-11-05 Graham Stott <graham.stott@btinternet.com>
6f7f72f9 40429
1c7b0712
GS
40430 PR ada/8358
40431 * trans.c (gnu_pending_elaboration_lists): New GC root.
4977bab6 40432 (build_unit_elab): Use..
1c7b0712 40433
9e94c78f 404342002-10-30 Geert Bosch <bosch@gnat.com>
6f7f72f9 40435
1c4048ca
GB
40436 PR ada/6558
40437 * misc.c : Include optabs.h
40438
40439 * Make-lang.in (misc.o): Add dependency on optabs.h
40440
9e94c78f 404412002-10-29 Geert Bosch <bosch@gnat.com>
6f7f72f9 40442
4977bab6 40443 PR ada/6558
f0d96f9c
GB
40444 * Make-lang.in (gnatbind): Depend on CONFIG_H
40445
a7512dec 404462002-10-29 Geert bosch <bosch@gnat.com>
6f7f72f9 40447
4977bab6
ZW
40448 PR ada/6558
40449 * misc.c: Unrevert misc.c (1.13)
a7512dec 40450
c6362f4f
NN
404512002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
40452
40453 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40454 maintainership comments.
40455
404562002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
6f7f72f9 40457
91ed4b19 40458 PR ada/5904
4977bab6
ZW
40459 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40460 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40461 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40462 7staprop.adb: Correct statements in comments about
91ed4b19
NN
40463 maintainership of GNAT.
40464
1f02b6af 40465 PR ada/5904
4977bab6
ZW
40466 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40467 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40468 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40469 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40470 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40471 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40472 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
1f02b6af
NN
40473 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40474 comments about maintainership of GNAT.
40475
71ff80dc 40476 PR ada/6919 (forward port of patch for PR ada/5904)
4977bab6
ZW
40477 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40478 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40479 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40480 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40481 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40482 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40483 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40484 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40485 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40486 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40487 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40488 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40489 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40490 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40491 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40492 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40493 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40494 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40495 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40496 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40497 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40498 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40499 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40500 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40501 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40502 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40503 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40504 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40505 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40506 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40507 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40508 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40509 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40510 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40511 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40512 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40513 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40514 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40515 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40516 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40517 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40518 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40519 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40520 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40521 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40522 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40523 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40524 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40525 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40526 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40527 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40528 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40529 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40530 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40531 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40532 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40533 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40534 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40535 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40536 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40537 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40538 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40539 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40540 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40541 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40542 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40543 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40544 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40545 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40546 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40547 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40548 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40549 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40550 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40551 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40552 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40553 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40554 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40555 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40556 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40557 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40558 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40559 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40560 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40561 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40562 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40563 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40564 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40565 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
40566 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
40567 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
40568 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
40569 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
40570 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
40571 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
40572 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
40573 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
40574 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
40575 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
40576 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
40577 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
40578 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
40579 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
40580 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
40581 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
40582 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
40583 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
40584 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
40585 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
40586 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
40587 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
40588 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
40589 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
40590 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
40591 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
40592 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
40593 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
40594 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
40595 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
40596 par-endh.adb par-labl.adb par-load.adb par-prag.adb
40597 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
40598 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
40599 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
40600 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
40601 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
40602 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
40603 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
40604 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
40605 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
40606 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
40607 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
40608 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
40609 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
40610 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
40611 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
40612 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
40613 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
40614 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
40615 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
40616 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
40617 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
40618 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
40619 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
40620 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
40621 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
40622 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
40623 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
40624 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
40625 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
40626 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
40627 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
40628 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
40629 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
40630 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
40631 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
40632 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
40633 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
40634 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
40635 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
40636 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
40637 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
40638 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
40639 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
40640 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
40641 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
40642 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
40643 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
40644 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
40645 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
40646 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
40647 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
40648 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
40649 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
40650 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
40651 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
40652 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
40653 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
40654 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
40655 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
40656 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
40657 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
40658 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
40659 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
40660 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
40661 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
40662 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
40663 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
40664 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
40665 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
40666 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
40667 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
40668 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
40669 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
40670 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
40671 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
40672 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
40673 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
40674 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
40675 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
40676 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
40677 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
40678 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
40679 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
40680 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
40681 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
40682 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
40683 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
40684 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
40685 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
40686 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
40687 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
40688 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
40689 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
40690 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
40691 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
40692 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
40693 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
40694 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
40695 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
40696 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
40697 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
40698 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
40699 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
40700 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
40701 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
40702 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
40703 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
40704 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
40705 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
40706 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
40707 stringt.ads stringt.h style.adb style.ads stylesw.adb
40708 stylesw.ads switch.adb switch.ads sysdep.c system.ads
40709 table.adb table.ads targparm.adb targparm.ads targtyps.c
40710 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
40711 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
40712 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
40713 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
40714 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
40715 usage.ads utils.c utils2.c validsw.adb validsw.ads
40716 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
40717 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
71ff80dc
NN
40718 xtreeprs.adb: Correct statements in comments about maintainership
40719 of GNAT.
40720
b4f94ac1
ZW
407212002-09-23 Zack Weinberg <zack@codesourcery.com>
40722
40723 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
40724 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
40725 * gnatvsn.ads: Gnat_Version_String is now a function.
40726 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
40727 copy the C version_string into a String and return it.
40728 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
40729 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
40730 Remove pragma Ident (Gnat_Version_String). If this was the
40731 sole use of package Gnatvsn, remove the with statement too.
40732 * gnat1drv.adb: Tweak -gnatv output.
40733
eaff3bf8
RH
407342002-09-17 Richard Henderson <rth@redhat.com>
40735
40736 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
40737 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
40738 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
40739 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
40740 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
40741 and real_2expN instead of a loop.
40742 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
40743 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
40744
9e94c78f
EB
407452002-08-25 Andre Leis <a.leis@gmx.net>
40746 David Billinghurst <David.Billinghurst@riotinto.com>
d241f75b 40747
f4ae98be 40748 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
d241f75b 40749
4320085a
RO
407502002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40751
40752 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
40753 Remove $(CONFIG_H) dependency.
40754
22aa533e
NS
407552002-08-08 Nathan Sidwell <nathan@codesourcery.com>
40756
40757 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
40758
1dcd444b
KG
407592002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
40760
40761 * adadecode.c (ada_demangle): Use xstrdup in lieu of
40762 xmalloc/strcpy.
40763 * misc.c (gnat_decode_option): Likewise.
40764
7bc7d27b
FW
407652002-07-15 Florian Weimer <fw@deneb.enyo.de>
40766
40767 * make.adb (Add_Switch): Make Generic_Position a procedure. The
40768 function approach did not work well because of a side effect (the
40769 function call could reallocate the table which was being indexed
40770 using its result). Fixes ada/4851. [RESURRECTED]
40771
6a2dd09a
RS
407722002-07-01 Roger Sayle <roger@eyesopen.com>
40773
40774 * ada/utils.c (builtin_function): Accept an additional parameter.
40775
c168bbd7
AJ
407762002-06-28 Andreas Jaeger <aj@suse.de>
40777
40778 PR ada/7144
40779 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
40780 <adi@thur.de>.
40781
b41e09a7
KG
407822002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
40783
40784 * Makefile.in (SHELL): Set to @SHELL@.
40785
62c71f4b
KG
407862002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
40787
40788 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
40789 array size calculation.
40790
94213cff
AJ
407912002-06-04 Andreas Jaeger <aj@suse.de>
40792
40793 * Make-lang.in (gnatbind): Readd rule that has been lost in last
40794 patch.
40795
e2500fed
GK
407962002-06-03 Geoffrey Keating <geoffk@redhat.com>
40797
40798 Merge from pch-branch:
40799
40800 * config-lang.in (gtfiles): Add ada-tree.h.
40801 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
40802 (SET_TYPE_MODULUS): New.
40803 (SET_TYPE_INDEX): New.
40804 (SET_TYPE_DIGITS_VALUE): New.
40805 (SET_TYPE_RM_SIZE): New.
40806 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
40807 (SET_TYPE_ADA_SIZE): New.
40808 (SET_TYPE_ACTUAL_BOUNDS): New.
40809 (SET_DECL_CONST_CORRESPONDING_VAR): New.
40810 (SET_DECL_ORIGINAL_FIELD): New.
40811 (TREE_LOOP_ID): Correct typo.
40812 * decl.c: Use new macros.
40813 * utils.c: Include debug.h, use new macros.
94213cff 40814 * utils2.c: Use new macros.
e2500fed
GK
40815
40816 * ada-tree.h: Update all macros for new tree description.
40817 (struct tree_loop_id): New.
40818 (union lang_tree_node): New.
40819 (struct lang_decl): New.
40820 (struct lang_type): New.
40821 * misc.c (gnat_mark_tree): Delete.
40822 (LANG_HOOKS_MARK_TREE): Delete.
40823 * trans.c (tree_transform): No longer any need to cast
40824 for TREE_LOOP_ID.
40825
40826 * utils.c (struct language_function): New dummy structure.
40827
40828 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
40829 (misc.o): Likewise.
40830 (utils.o): Likewise; also gtype-ada.h.
40831 * Make-lang.in (gnat1): Add dependency on s-gtype.
40832 (gnatbind): Add dependency on $(CONFIG_H).
40833 * utils.c: Correct last #include.
40834 (stuct e_stack): Remove unnecessary 'static'.
40835 (mark_e_stack): Remove unused prototype.
40836
40837 * scn-nlit.adb: Remove whitespace after version number to
40838 keep lines under 80 chars.
40839 * snames.adb: Likewise.
40840 * treepr.ads: Likewise.
94213cff 40841
e2500fed
GK
40842 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
40843 (misc.o): Likewise.
40844 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
40845 * config-lang.in (gtfiles): New.
40846 * decl.c: Use gengtype for roots.
40847 * gigi.h: Use gengtype for roots.
40848 * trans.c: Use gengtype for roots.
40849 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
40850
27e511e0
GDR
408512002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
40852
40853 * misc.c (gnat_init): Adjust setting of internal_error_function.
40854
113dc143
JM
408552002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
40856
40857 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
40858 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40859 gnat_ug_wnt.texi: Regenerate.
40860
5321fb3e
FW
408612002-05-31 Florian Weimer <fw@deneb.enyo.de>
40862
15e6136e
FW
40863 * 5ntaprop.adb (with System.OS_Primitives): Remove.
40864
019310ac
FW
40865 * cstreams.c (max_path_len): Move from here ...
40866 * adaint.c (__gnat_max_path_len): ... to here.
40867 * adaint.c (__gnat_max_path_len): Declare.
40868 * g-dirope.adb (Max_Path): Adjust.
40869 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
94213cff 40870 * i-cstrea.ads (max_path_len): Adjust.
019310ac
FW
40871 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
40872 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
40873
5321fb3e
FW
40874 * Makefile.in, Make-lang.in: Documentation is now built in
40875 Make-lang.in. Store Info and generated Texinfo files in the
40876 source directory.
40877 * gnat_ug.texi: Remove CVS keywords, correct version number.
40878 Set file name correctly.
40879
40880 * gnat_ug_*.texi: Add.
40881 * .cvsignore: Ignore generated Texinfo files.
40882
b1c12c4b
ZW
408832002-05-30 Zack Weinberg <zack@codesourcery.com>
40884
40885 * ada.h: Add MI guard macro.
40886 (SUBTYPE): Define constants with an anonymous enum, not static
40887 const variables.
40888 (IN): Cast constants to appropriate type before use.
40889
ead33da9
JM
408902002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
40891
40892 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
40893 (experimental)".
40894
7d600178
RO
408952002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40896
40897 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
40898 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
40899 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
40900 (ALL_ADA_CFLAGS): Likewise.
40901 (ADA_INCLUDES): Likewise.
40902 Adapt for new working dir.
40903 (GNATBIND): Use Makefile.in version.
40904 (.SUFFIXES): Copy from Makefile.in.
40905 (ada-warn): Define.
40906 (.adb.o, .ads.o): Copy from Makefile.in.
40907 Added $(OUTPUT_OPTION).
40908 (GNAT1_C_OBJS): Moved from Makefile.in.
40909 Prefix with ada subdir.
40910 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
40911 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
40912 Adapt for new working dir.
40913 (EXTRA_GNATBIND_OBJS): Likewise.
40914 (ADA_BACKEND): Moved from Makefile.in.
40915 Renamed to avoid conflict with global BACKEND.
40916 Use that one.
40917 (TARGET_ADA_SRCS): Moved from Makefile.in.
40918 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
40919 Use ADA_BACKEND.
40920 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
40921 (ada_extra_files): Moved from Makefile.in.
40922 Prefix with ada subdir.
40923 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
40924 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
40925 (ada/nmake.ads): Likewise.
40926 (update-sources): Moved from Makefile.in.
40927 Prefix with ada subdir.
40928 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
40929 (ADA_TREE_H): Likewise.
40930 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
40931 (ada/memtrack.o): Likewise.
40932 (ada/adadecode.o): Likewise.
40933 Update dependencies.
40934 (ada/adaint.o): New.
40935 (ada/argv.o): Moved from Makefile.in.
40936 Prefix with ada subdir.
94213cff 40937 Update dependencies.
7d600178
RO
40938 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
40939 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
40940 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
40941 Prefix with ada subdir.
40942 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
40943 (GNAT DEPENDENCIES): Regenerate.
40944 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
40945 toplevel Makefile.in.
40946 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
40947 (TARGET_ADA_SRCS): Removed.
40948 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
40949 (GNATBIND_OBJS): Likewise.
40950 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
40951 (BACKEND): Removed.
40952 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
40953 (TREE_H): Likewise.
40954 (ada_extra_files): Likewise.
40955 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
40956 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
40957 (update-sources): Likewise.
40958 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
40959 (ADA_TREE_H): Likewise.
40960 (adadecoce.o): Likewise.
40961 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
40962 (GNAT DEPENDENCIES): Likewise.
40963
1e6347d8
RO
409642002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40965
40966 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
40967 * Makefile.in: Likewise.
40968
db80834f
RO
409692002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40970
40971 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
40972 Restore $(CONFIG_H) and prefix.o dependencies.
40973 (ada.stage[1-4]): Depend on stage?-start.
40974
40975 * Makefile.in (b_gnatb.c): Depend on interfac.o.
40976
ac293f98
JW
409772002-05-02 Jim Wilson <wilson@redhat.com>
40978
40979 * utils.c (finish_record_type): Change record_size to record_type.
40980
b303008e
JDA
409812001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
40982
40983 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
40984 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
40985 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
94213cff 40986
ff45c01e
NB
409872002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
40988
40989 * misc.c (gnat_parse_file): Update.
40990
349ae713
NB
409912002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
40992
40993 * misc.c (gnat_init): Don't set lang_attribute_common.
40994
ace133aa
JM
409952002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
40996
40997 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
40998
5c558dd9
FW
409992002-04-21 Florian Weimer <fw@deneb.enyo.de>
41000
b4f94ac1 41001 * gnat_ug.texi: New file.
88e1739c 41002
5c558dd9
FW
41003 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
41004 instead of gfdl.texi
41005
41006 * xgnatug.adb, ug_words: New files.
41007
41008 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
b4f94ac1 41009 gnat_rm and gnat-style manuals.
5c558dd9 41010
7a228918
NB
410112002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
41012
41013 * gigi.h (incomplete_type_error): Remove.
41014 * utils.c (incomplete_type_error): Remove.
41015
b2123dc0
MM
410162002-04-16 Mark Mitchell <mark@codesourcery.com>
41017
41018 * trans.c (tree_transform): Add has_scope argument to
41019 expand_start_stmt_expr.
41020
78ef5b89
NB
410212002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41022
41023 * gigi.h (truthvalue_conversion): Rename.
41024 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41025 * trans.c (tree_transform): Update.
41026 * utils2.c (truthvalue_conversion): Rename, update.
41027 (build_binary_op, build_unary_op): Update.
41028
a71742a8
LG
410292002-04-04 Laurent Guerby <guerby@acm.org>
41030
41031 * make.adb: Implement -margs, remove restriction about file name placement.
41032 * makeusg.adb: Documentation update.
41033 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41034 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41035
82a4b025
NB
410362002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41037
41038 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41039 (builtin_function): Similarly.
41040
dffd7eb6
NB
410412002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41042
41043 * decl.c (gnat_to_gnu_entity): Update.
41044 * gigi.h (mark_addressable): Rename.
41045 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41046 * trans.c (tree_transform): Update.
41047 * utils.c (create_var_decl): Update.
41048 * util2.c (build_binary_op, build_unary_op,
41049 fill_vms_descriptor): Update.
41050 (mark_addressable): Rename, update.
41051
ceef8ce4
NB
410522002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41053
41054 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41055 Rename.
41056 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41057 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41058 * trans.c (tree_transform, convert_with_check): Update.
41059 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41060 Rename.
41061
48a7a235
NB
410622002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
41063
41064 * gigi.h (finish_incomplete_decl): Rename.
41065 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41066 * utils.c (gnat_init_decl_processing): Don't set hook.
41067 (finish_incomplete_decl): Rename.
41068
1d5af871
AS
410692002-03-29 Andreas Schwab <schwab@suse.de>
41070
41071 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41072 directory.
41073
9e94c78f 410742001-03-28 Robert Dewar <dewar@gnat.com>
8cbb664e
MG
41075
41076 * checks.ads:
41077 (Remove_Checks): New procedure
41078
41079 * checks.adb:
41080 (Remove_Checks): New procedure
41081
41082 * exp_util.adb:
41083 Use new Duplicate_Subexpr functions
41084 (Duplicate_Subexpr_No_Checks): New procedure
41085 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41086 (Duplicate_Subexpr): Restore original form (checks duplicated)
41087 (Duplicate_Subexpr): Call Remove_Checks
41088
82a4b025 41089 * exp_util.ads:
8cbb664e
MG
41090 (Duplicate_Subexpr_No_Checks): New procedure
41091 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41092 Add 2002 to copyright notice
41093
41094 * sem_util.adb: Use new Duplicate_Subexpr functions
41095
82a4b025 41096 * sem_eval.adb:
8cbb664e
MG
41097 (Eval_Indexed_Component): This is the place to call
41098 Constant_Array_Ref and to replace the value. We simply merge
41099 the code of this function in here, since it is now no longer
41100 used elsewhere. This fixes the problem of the back end not
41101 realizing we were clever enough to see that this was
41102 constant.
41103 (Expr_Val): Remove call to Constant_Array_Ref
41104 (Expr_Rep_Val): Remove call to Constant_Array_Ref
41105 Minor reformatting
41106 (Constant_Array_Ref): Deal with string literals (patch
41107 suggested by Zack Weinberg on the gcc list)
41108
9e94c78f 411092001-03-28 Ed Schonberg <schonber@gnat.com>
8cbb664e 41110
82a4b025 41111 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41112 Duplicate_Subexpr_Move_Checks.
41113
82a4b025 41114 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
8cbb664e
MG
41115 Duplicate_Subexpr_Move_Checks.
41116
82a4b025
NB
41117 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41118 value of array exists before retrieving it (it may a private
8cbb664e
MG
41119 protected component in a function).
41120
9e94c78f 411212002-03-28 Geert Bosch <bosch@gnat.com>
792c4e74
GB
41122
41123 * prj-pp.adb : New file.
41124
41125 * prj-pp.ads : New file.
41126
915e8bad
AJ
411272002-03-28 Andreas Jaeger <aj@suse.de>
41128
41129 * Makefile.in (stamp-sdefault): Fix path for Makefile.
41130
0840811c
NB
411312002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
41132
41133 * misc.c (gnat_expand_expr): Move prototype.
41134
7ffb4fd2
NB
411352002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41136
41137 * misc.c (insert_default_attributes): Remove.
41138
c9d892a8
NB
411392002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41140
41141 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41142 (gnat_init): Don't set hook.
41143 (gnat_expand_expr): Fix prototype.
41144
31c816cf
NB
411452002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41146
41147 * misc.c (ggc_p): Remove.
41148
ef83161c
GB
411492002-03-27 Geert Bosch <bosch@gnat.com>
41150
41151 * prj-makr.ads, prj-makr.adb : New files.
41152
4f0ade92
NB
411532002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
41154
41155 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41156 (lang_mark_tree): Make static, rename.
41157
c88770e9
NB
411582002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
41159
41160 * misc.c (maybe_build_cleanup): Remove.
41161
05671968
NB
411622002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
41163
41164 * gigi.h (yyparse): Remove.
41165
ad42149c
FW
411662002-03-23 Florian Weimer <fw@deneb.enyo.de>
41167
9e94c78f 41168 From Ben Brosgol <brosgol@gnat.com>
82a4b025 41169 * gnat_rm.texi: Sync with ACT version.
ad42149c 41170
7afff7cf
NB
411712002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
41172
41173 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41174 (gnat_init): Remove old hook.
41175
52dabb6c
NB
411762002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
41177
41178 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41179 (yyparse): Rename gnat_parse_file.
41180
6cbcc541
GK
411812002-03-14 Geoffrey Keating <geoffk@redhat.com>
41182
41183 Delete all lines containing "$Revision:".
41184 * xeinfo.adb: Don't look for revision numbers.
41185 * xnmake.adb: Likewise.
41186 * xsinfo.adb: Likewise.
41187 * xsnames.adb: Likewise.
41188 * xtreeprs.adb: Likewise.
41189
2f9834e8
KG
411902002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41191
41192 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41193 gnat_tree_code_name): Delete.
41194 (tree_code_type, tree_code_length, tree_code_name): Define.
41195 (gnat_init): Don't try to copy into the various tree_code
41196 arrays.
41197
63adb4ff
RH
411982002-03-11 Richard Henderson <rth@redhat.com>
41199
41200 * Makefile.in (.NOTPARALLEL): Add fake tag.
41201
43ff4547
GB
412022002-03-07 Geert Bosch <bosch@gnat.com>
41203
82a4b025
NB
41204 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41205 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41206 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
43ff4547
GB
41207 switch-m.adb, switch-m.ads : New files.
41208
07fc65c4
GB
412092002-03-07 Geert Bosch <bosch@gnat.com>
41210
41211 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41212 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41213 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41214 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41215 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41216 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41217 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41218 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41219 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41220 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41221 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41222 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41223 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41224 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41225 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41226 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41227 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41228 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41229 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41230 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41231 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41232 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41233 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41234 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41235 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41236 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41237 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41238 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41239 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41240 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41241 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41242 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41243 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41244 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41245 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41246 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41247 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41248 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41249 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41250 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41251 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41252 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41253 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41254 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41255 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41256 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41257 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41258 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41259 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41260 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41261 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41262 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41263 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41264 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41265 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41266 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41267 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41268 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41269 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41270 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41271 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41272 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41273 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41274 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41275 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41276 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41277 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41278 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41279 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41280 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41281 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41282 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41283 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41284 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41285 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41286 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41287 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41288 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41289 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41290 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41291 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41292 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41293 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41294 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41295 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41296 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41297 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41298 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41299 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41300 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41301 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41302 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41303 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41304 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41305 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41306 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41307 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41308
41309 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41310 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41311 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41312 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41313
41314 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41315 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41316
41317 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41318 to mdll-fil.ad[bs] and mdll-util.ad[bs]
41319
41320 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41321 from mdllfile.ad[bs] and mdlltool.ad[bs]
41322
ca7558fc
KG
413232002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41324
41325 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41326 lieu of explicit sizeof/sizeof.
41327
63e1b1c4
NB
413282002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
41329
41330 * misc.c (copy_lang_decl): Remove.
41331
f458d1d5
ZW
413322002-02-27 Zack Weinberg <zack@codesourcery.com>
41333
41334 * misc.c: Delete traditional-mode-related code copied from the
41335 C front end but not used, or used only to permit the compiler
41336 to link.
41337
21e09952
RH
413382002-02-07 Richard Henderson <rth@redhat.com>
41339
41340 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41341 * adaint.h (__gnat_to_gm_time): Update prototype.
41342
ead39bdf 413432002-01-30 Richard Henderson <rth@redhat.com>
e803a64b
RH
41344
41345 * trans.c (tree_transform) [N_Loop_Statement]: Use
41346 expand_exit_loop_top_cond.
41347
72ac12bf
RH
413482001-12-23 Richard Henderson <rth@redhat.com>
41349
41350 * utils.c (end_subprog_body): Push GC context around
41351 rest_of_compilation for nested functions.
41352
14aacce7
RH
413532001-12-23 Richard Henderson <rth@redhat.com>
41354
41355 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41356
b3d45d87
FW
413572001-12-23 Florian Weimer <fw@deneb.enyo.de>
41358
ece2d1b8
FW
41359 * gnat-style.texi (Declarations and Types): Remove ancient style
41360 rule which was mandated by code generation issues.
82a4b025 41361
b3d45d87
FW
41362 * gnat-style.texi (header): Add @dircategory, @direntry.
41363 (title page): Remove date.
41364 (general) Add @./@: where approriate, and two spaces after the
41365 full stop at the end of a sentence. Use @samp markup when
41366 referring concrete lexical entities (keywords, attribute names
41367 etc.), and @syntax for ARM grammar elements. Use @r for English
41368 text in comments. Use @emph for emphasis. Change "if-statements"
41369 etc. to "if statements" (without @samp). Break long lines. Make
41370 casing of section names consistent.
41371 (Identifiers): Use @samp markup for variable names.
41372 (Comments): Use @samp markup for comment characters. Line-end
41373 comments may follow any Ada code, not just statements. Fix
41374 misspelling of "Integer" as "integer".
41375 (Loop statements): Do not use variable name "I", use "J".
41376 (Subprogram Declarations): Document alignment.
41377 (Subprogram Bodies, Block statements): Document empty line before
41378 "begin".
41379
7a73ad55
FW
413802001-12-22 Florian Weimer <fw@deneb.enyo.de>
41381
41382 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41383 function approach did not work well because of a side effect (the
41384 function call could reallocate the table which was being indexed
41385 using its result). Fixes ada/4851.
41386
9e94c78f 413872001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41388
41389 * bindgen.adb: Minor reformatting
82a4b025 41390
17c5c8a5 41391 * cstand.adb: Minor reformatting
82a4b025 41392
17c5c8a5
GB
41393 * fmap.adb: Minor reformatting
41394 Change name from Add for Add_To_File_Map (Add is much too generic)
41395 Change Path_Name_Of to Mapped_Path_Name
41396 Change File_Name_Of to Mapped_File_Name
41397 Fix copyright dates in header
82a4b025 41398
17c5c8a5
GB
41399 * fmap.ads:
41400 Change name from Add for Add_To_File_Map (Add is much too generic)
41401 Change Path_Name_Of to Mapped_Path_Name
41402 Change File_Name_Of to Mapped_File_Name
41403 Fix copyright dates in header
82a4b025 41404
17c5c8a5
GB
41405 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
41406 Add use clause for Fmap.
82a4b025 41407
17c5c8a5 41408 * make.adb: Minor reformatting
82a4b025 41409
17c5c8a5
GB
41410 * osint.adb: Minor reformatting. Change of names in Fmap.
41411 Add use clause for Fmap.
82a4b025 41412
17c5c8a5 41413 * prj-env.adb: Minor reformatting
82a4b025 41414
17c5c8a5 41415 * prj-env.ads: Minor reformatting
82a4b025 41416
07fc65c4
GB
41417 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
41418 error found (there were odd exceptions to this general rule in
17c5c8a5 41419 -gnatec/-gnatem processing)
82a4b025 41420
9e94c78f 414212001-12-19 Olivier Hainque <hainque@gnat.com>
17c5c8a5 41422
07fc65c4
GB
41423 * raise.c (__gnat_eh_personality): Exception handling personality
41424 routine for Ada. Still in rough state, inspired from the C++ version
17c5c8a5 41425 and still containing a bunch of debugging artifacts.
07fc65c4 41426 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
17c5c8a5 41427 inspired from the C++ library.
82a4b025 41428
07fc65c4 41429 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
17c5c8a5 41430 exception handling integration.
82a4b025 41431
9e94c78f 414322001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5
GB
41433
41434 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41435 (HIE_SOURCES): Add s-secsta.ad{s,b}.
41436 (HIE_OBJS): Add s-fat*.o
07fc65c4 41437 (RAVEN_SOURCES): Remove files that are no longer required. Add
17c5c8a5
GB
41438 interrupt handling files.
41439 (RAVEN_MOD): Removed, no longer needed.
82a4b025 41440
9e94c78f 414412001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41442
41443 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41444 Add 2001 to copyright date
82a4b025 41445
07fc65c4 41446 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
17c5c8a5 41447 need to force universal inlining for these cases.
82a4b025 41448
9e94c78f 414492001-12-19 Arnaud Charlet <charlet@gnat.com>
17c5c8a5 41450
07fc65c4 41451 * s-taprob.adb: Minor clean ups so that this unit can be used in
17c5c8a5 41452 Ravenscar HI.
82a4b025 41453
17c5c8a5
GB
41454 * exp_ch7.adb: Allow use of secondary stack in HI mode.
41455 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
82a4b025 41456
9e94c78f 414572001-12-19 Vincent Celier <celier@gnat.com>
17c5c8a5 41458
07fc65c4 41459 * prj-tree.ads (Project_Node_Record): Add comments for components
17c5c8a5 41460 Pkg_Id and Case_Insensitive.
82a4b025 41461
9e94c78f 414622001-12-19 Pascal Obry <obry@gnat.com>
17c5c8a5
GB
41463
41464 * g-socket.adb: Minor reformatting. Found while reading code.
82a4b025 41465
9e94c78f 414662001-12-19 Robert Dewar <dewar@gnat.com>
17c5c8a5
GB
41467
41468 * prj-tree.ads: Minor reformatting
41469
38be19f6
JM
414702001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
41471
41472 * config-lang.in (diff_excludes): Remove.
41473
9e94c78f 414742001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41475
07fc65c4
GB
41476 * sem_res.adb (Resolve_Selected_Component): do not generate a
41477 discriminant check if the selected component is a component of
6510f4c9
GB
41478 the argument of an initialization procedure.
41479
07fc65c4
GB
41480 * trans.c (tree_transform, case of arithmetic operators): If result
41481 type is private, the gnu_type is the base type of the full view,
6510f4c9 41482 given that the full view itself may be a subtype.
82a4b025 41483
9e94c78f 414842001-12-17 Robert Dewar <dewar@gnat.com>
6510f4c9
GB
41485
41486 * sem_res.adb: Minor reformatting
82a4b025 41487
07fc65c4
GB
41488 * trans.c (tree_transform, case N_Real_Literal): Add missing third
41489 parameter in call to Machine (unknown horrible effects from this
6510f4c9 41490 omission).
82a4b025 41491
6510f4c9
GB
41492 * urealp.h: Add definition of Round_Even for call to Machine
41493 Add third parameter for Machine
82a4b025 41494
9e94c78f 414952001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41496
07fc65c4 41497 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
6510f4c9 41498 predefined units in No_Run_Time mode.
82a4b025 41499
9e94c78f 415002001-12-17 Richard Kenner <kenner@gnat.com>
6510f4c9
GB
41501
41502 * misc.c (insn-codes.h): Now include.
82a4b025 41503
9e94c78f 415042001-12-17 Olivier Hainque <hainque@gnat.com>
6510f4c9 41505
07fc65c4 41506 * a-except.adb: Preparation work for future integration of the GCC 3
6510f4c9
GB
41507 exception handling mechanism
41508 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41509 to factorize previous code sequences and make them externally callable,
41510 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41511 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41512 Use the new notification routines.
82a4b025 41513
9e94c78f 415142001-12-17 Emmanuel Briot <briot@gnat.com>
6510f4c9
GB
41515
41516 * prj-tree.ads (First_Choice_Of): Document the when others case
82a4b025 41517
9e94c78f 415182001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9 41519
07fc65c4 41520 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
6510f4c9 41521 HI-E mode, in order to support Ravenscar profile properly.
82a4b025 41522
07fc65c4 41523 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
6510f4c9 41524 mode on 32 bits targets.
82a4b025 41525
9e94c78f 415262001-12-17 Vincent Celier <celier@gnat.com>
6510f4c9
GB
41527
41528 * fmap.adb: Initial version.
82a4b025 41529
6510f4c9 41530 * fmap.ads: Initial version.
82a4b025 41531
6510f4c9
GB
41532 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41533 If search is successfully done, add to mapping.
82a4b025 41534
6510f4c9 41535 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
82a4b025 41536
6510f4c9
GB
41537 * make.adb:
41538 (Gnatmake): Add new local variable Mapping_File_Name.
41539 Create mapping file when using project file(s).
41540 Delete mapping file before exiting.
82a4b025 41541
6510f4c9 41542 * opt.ads (Mapping_File_Name): New variable
82a4b025 41543
6510f4c9 41544 * osint.adb (Find_File): Use path name found in mapping, if any.
82a4b025 41545
6510f4c9 41546 * prj-env.adb (Create_Mapping_File): New procedure
82a4b025 41547
6510f4c9 41548 * prj-env.ads (Create_Mapping_File): New procedure.
82a4b025 41549
07fc65c4 41550 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
6510f4c9 41551 (Mapping_File)
82a4b025 41552
6510f4c9 41553 * usage.adb: Add entry for new switch -gnatem.
82a4b025 41554
6510f4c9 41555 * Makefile.in: Add dependencies for fmap.o.
82a4b025 41556
9e94c78f 415572001-12-17 Ed Schonberg <schonber@gnat.com>
6510f4c9 41558
07fc65c4 41559 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
6510f4c9
GB
41560 is a package instantiation rewritten as a package body.
41561 (Install_Withed_Unit): Undo previous change, now redundant.
82a4b025 41562
9e94c78f 415632001-12-17 Gary Dismuke <dismukes@gnat.com>
6510f4c9
GB
41564
41565 * layout.adb:
41566 (Compute_Length): Move conversion to Unsigned to callers.
41567 (Get_Max_Size): Convert Len expression to Unsigned after calls to
41568 Compute_Length and Determine_Range.
41569 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
41570 Compute_Length and Determine_Range.
41571 Above changes fix problem with length computation for supernull arrays
07fc65c4 41572 where Max (Len, 0) wasn't getting applied due to the Unsigned
6510f4c9 41573 conversion used by Compute_Length.
82a4b025 41574
9e94c78f 415752001-12-17 Arnaud Charlet <charlet@gnat.com>
6510f4c9
GB
41576
41577 * rtsfind.ads:
41578 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
41579 System.Secondary_Stack.
41580 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
41581 in HI-E mode.
41582 Remove unused entity RE_Exception_Data.
82a4b025 41583
6510f4c9 41584 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
82a4b025 41585
6510f4c9
GB
41586 * rident.ads (No_Secondary_Stack): New restriction.
41587
9e94c78f 415882001-12-17 Joel Brobecker <brobecke@gnat.com>
3a77b68d 41589
07fc65c4 41590 * gnat_rm.texi: Fix minor typos. Found while reading the section
3a77b68d
GB
41591 regarding "Bit_Order Clauses" that was sent to a customer.
41592 Very interesting documentation!
82a4b025 41593
9e94c78f 415942001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d 41595
07fc65c4
GB
41596 * sem_case.adb (Choice_Image): Avoid creating improper character
41597 literal names by using the routine Set_Character_Literal_Name. This
3a77b68d 41598 fixes bombs in certain error message cases.
82a4b025 41599
9e94c78f 416002001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d
GB
41601
41602 * a-reatim.adb: Minor reformatting.
82a4b025 41603
9e94c78f 416042001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41605
07fc65c4
GB
41606 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
41607 case where the formal is an extension of another formal in the current
3a77b68d 41608 unit or in a parent generic unit.
82a4b025 41609
9e94c78f 416102001-12-17 Arnaud Charlet <charlet@gnat.com>
3a77b68d 41611
07fc65c4 41612 * s-tposen.adb: Update comments. Minor reformatting.
3a77b68d 41613 Minor code clean up.
82a4b025 41614
3a77b68d 41615 * s-tarest.adb: Update comments. Minor code reorganization.
82a4b025 41616
9e94c78f 416172001-12-17 Gary Dismukes <dismukes@gnat.com>
3a77b68d 41618
07fc65c4 41619 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
3a77b68d 41620 when Java_VM.
82a4b025 41621
9e94c78f 416222001-12-17 Robert Dewa <dewar@gnat.com>
3a77b68d
GB
41623
41624 * exp_attr.adb: Minor reformatting
82a4b025 41625
9e94c78f 416262001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41627
07fc65c4 41628 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
3a77b68d
GB
41629 derivations nested within a child unit: verify that the parent
41630 type is declared in an outer scope.
82a4b025 41631
9e94c78f 416322001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
41633
41634 * sem_ch12.adb: Minor reformatting
82a4b025 41635
9e94c78f 416362001-12-17 Ed Schonberg <schonber@gnat.com>
3a77b68d 41637
07fc65c4
GB
41638 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
41639 warning if current unit is a predefined one, from which bodies may
3a77b68d 41640 have been deleted.
82a4b025 41641
9e94c78f 416422001-12-17 Robert Dewar <dewar@gnat.com>
3a77b68d
GB
41643
41644 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
41645 Fix header format. Add 2001 to copyright date.
82a4b025 41646
07fc65c4 41647 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
3a77b68d
GB
41648 which caused CE during compilation if checks were enabled.
41649
9e94c78f 416502001-12-17 Vincent Celier <celier@gnat.com>
79503fdd
GB
41651
41652 * make.adb:
41653 (Switches_Of): New function
41654 (Test_If_Relative_Path): New procedure
41655 (Add_Switches): Use new function Switches_Of
41656 (Collect_Arguments_And_Compile): Use new function Switches_Of.
41657 When using a project file, test if there are any relative
41658 search path. Fail if there are any.
07fc65c4
GB
41659 (Gnatmake): Only add switches for the primary directory when not using
41660 a project file. When using a project file, change directory to the
41661 object directory of the main project file. When using a project file,
41662 test if there are any relative search path. Fail if there are any.
41663 When using a project file, fail if specified executable is relative
41664 path with directory information, and prepend executable, if not
41665 specified as an absolute path, with the exec directory. Make sure
79503fdd 41666 that only one -o switch is transmitted to the linker.
82a4b025 41667
79503fdd 41668 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
82a4b025 41669
79503fdd
GB
41670 * prj-nmsc.adb:
41671 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
41672 when using a non standard naming scheme.
41673 (Check_Ada_Naming_Scheme): Make sure that error messages
41674 do not raise exceptions.
41675 (Is_Illegal_Append): Return True if there is no dot in the suffix.
41676 (Language_Independent_Check): Check the exec directory.
82a4b025 41677
79503fdd 41678 * prj.adb (Project_Empty): Add new component Exec_Directory
82a4b025 41679
79503fdd
GB
41680 * prj.ads:
41681 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
41682 (Project_Data): Add component Exec_Directory
82a4b025 41683
79503fdd 41684 * snames.adb: Updated to match snames.ads revision 1.215
82a4b025 41685
79503fdd 41686 * snames.ads: Added Exec_Dir
82a4b025 41687
9e94c78f 416882001-12-17 Robert Dewar <dewar@gnat.com>
79503fdd
GB
41689
41690 * make.adb: Minor reformatting
82a4b025 41691
79503fdd 41692 * prj-nmsc.adb: Minor reformatting
82a4b025 41693
79503fdd 41694 * snames.adb: Updated to match snames.ads
82a4b025 41695
79503fdd
GB
41696 * snames.ads: Alphebetize entries for project file
41697
9e94c78f 416982001-12-17 Ed Schonberg <schonber@gnat.com>
79503fdd 41699
07fc65c4 41700 * trans.c (process_freeze_entity): Do nothing if the entity is a
79503fdd 41701 subprogram that was already elaborated.
82a4b025 41702
9e94c78f 417032001-12-17 Richard Kenner <kenner@gnat.com>
82a4b025 41704
07fc65c4 41705 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
79503fdd
GB
41706 and Esize if object is referenced via pointer.
41707
9e94c78f 417082001-12-17 Ed Schonberg <schonber@gnat.com>
855ff2e1 41709
07fc65c4 41710 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
855ff2e1 41711 is discrete before analyzing choices.
82a4b025 41712
9e94c78f 417132001-12-17 Joel Brobecker <brobecke@gnat.com>
855ff2e1 41714
07fc65c4
GB
41715 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
41716 containing the name of the Ada Main Program. This string is mainly
855ff2e1
GB
41717 intended for the debugger.
41718 (Gen_Output_File_C): Do the equivalent change when generating a C file.
82a4b025 41719
9e94c78f 417202001-12-17 Robert Dewar <dewar@gnat.com>
855ff2e1
GB
41721
41722 * ali.adb: Set new Dummy_Entry field in dependency entry
82a4b025 41723
855ff2e1 41724 * ali.ads: Add Dummy_Entry field to source dependency table
82a4b025 41725
855ff2e1 41726 * bcheck.adb (Check_Consistency): Ignore dummy D lines
82a4b025 41727
855ff2e1 41728 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
82a4b025 41729
855ff2e1 41730 * lib-writ.ads: Document dummy D lines for missing files.
82a4b025 41731
855ff2e1
GB
41732 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
41733
9e94c78f 417342001-12-17 Robert Dewar <dewar@gnat.com>
c1c22e7a
GB
41735
41736 * ali.adb: Type reference does not reset current file.
82a4b025 41737
c1c22e7a 41738 * ali.adb: Recognize and scan renaming reference
82a4b025 41739
c1c22e7a 41740 * ali.ads: Add spec for storing renaming references.
82a4b025 41741
c1c22e7a 41742 * lib-xref.ads: Add documentation for handling of renaming references
82a4b025 41743
c1c22e7a 41744 * lib-xref.adb: Implement output of renaming reference.
82a4b025 41745
c1c22e7a
GB
41746 * checks.adb:
41747 (Determine_Range): Document local variables
41748 (Determine_Range): Make sure Hbound is initialized. It looks as though
41749 there could be a real problem here with an uninitialized reference
41750 to Hbound, but no actual example of failure has been found.
82a4b025 41751
9e94c78f 417522001-12-17 Laurent Pautet <pautet@gnat.com>
c1c22e7a
GB
41753
41754 * g-socket.ads:
41755 Fix comment of Shutdown_Socket and Close_Socket. These functions
41756 should not fail silently because if they are called twice, this
41757 probably means that there is a race condition in the user program.
41758 Anyway, this behaviour is consistent with the rest of this unit.
41759 When an error occurs, an exception is raised with the error message
41760 as exception message.
41761
9e94c78f 417622001-12-17 Robert Dewar <dewar@gnat.com>
7eb7bb07 41763
07fc65c4 41764 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
7eb7bb07 41765 that it happens before modification of Sloc values for -gnatD.
82a4b025 41766
07fc65c4 41767 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
7eb7bb07 41768 so that it happens before modification of Sloc values for -gnatD.
82a4b025 41769
7eb7bb07
RD
41770 * switch.adb: Minor reformatting
41771
b6434700
RH
417722001-12-15 Richard Henderson <rth@redhat.com>
41773
41774 * sem_ch7.adb: Wrap comment.
41775
44d6a706
JM
417762001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
41777
41778 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
41779 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
41780 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
41781 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
41782 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
41783 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
41784 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
41785 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
41786 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
41787 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
41788 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
41789 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
41790 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
41791 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
41792 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
41793 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
41794 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
41795 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
41796 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
41797 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
41798 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
41799 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
41800 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
41801 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
41802 spelling errors.
41803
9e94c78f 418042001-12-14 Vincent Celier <celier@gnat.com>
226ada7a 41805
07fc65c4 41806 * osint.adb(Create_Debug_File): When an object file is specified,
226ada7a 41807 put the .dg file in the same directory as the object file.
82a4b025 41808
9e94c78f 418092001-12-14 Robert Dewar <dewar@gnat.com>
226ada7a
GB
41810
41811 * osint.adb: Minor reformatting
82a4b025 41812
07fc65c4 41813 * lib-xref.adb (Output_Instantiation): New procedure to generate
226ada7a 41814 instantiation references.
82a4b025 41815
226ada7a 41816 * lib-xref.ads: Add documentation of handling of generic references.
82a4b025 41817
07fc65c4 41818 * ali.adb (Read_Instantiation_Ref): New procedure to read
226ada7a 41819 instantiation references
82a4b025 41820
226ada7a 41821 * ali.ads: Add spec for storing instantiation references
82a4b025 41822
226ada7a 41823 * bindusg.adb: Minor reformatting
82a4b025 41824
226ada7a 41825 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 41826
226ada7a 41827 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 41828
226ada7a 41829 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 41830
226ada7a 41831 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 41832
226ada7a
GB
41833 * csets.ads:
41834 Fix header format
41835 Add 2001 to copyright date
41836 Add entry for Latin-5 (Cyrillic ISO-8859-5)
82a4b025 41837
9e94c78f 418382001-12-14 Matt Gingell <gingell@gnat.com>
226ada7a 41839
07fc65c4 41840 * adaint.c: mktemp is a macro on Lynx and can not be used as an
226ada7a 41841 expression.
82a4b025 41842
9e94c78f 418432001-12-14 Richard Kenner <kenner@gnat.com>
226ada7a 41844
07fc65c4 41845 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
226ada7a 41846 if operand is CONSTRUCTOR.
82a4b025 41847
9e94c78f 418482001-12-14 Ed Schonberg <schonber@gnat.com>
226ada7a 41849
07fc65c4
GB
41850 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
41851 before emiting check on right-hand side, so that exception information
226ada7a
GB
41852 is correct.
41853
9e94c78f 418542001-12-14 Richard Kenner <kenner@gnat.com>
82a4b025 41855
07fc65c4 41856 * utils.c (create_var_decl): Throw away initializing expression
226ada7a 41857 if just annotating types and non-constant.
82a4b025 41858
9e94c78f 418592001-12-14 Vincent Celier <celier@gnat.com>
226ada7a
GB
41860
41861 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
41862 Default_Ada_...
82a4b025 41863
07fc65c4 41864 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
41865 Remove functions.
41866 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
82a4b025 41867
07fc65c4 41868 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
226ada7a
GB
41869 Remove functions.
41870 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
41871
9b94bf9e
JM
418722001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
41873
41874 * ChangeLog: Remove piece of diff output.
41875
9e94c78f 418762001-12-14 Geert Bosch <bosch@gnat.com>
449d2be3
GB
41877
41878 * config-lang.in: Update copyright notice
41879
41880 * layout.adb: Remove commented out code.
41881
41882 * mdllfile.ads: Update copyright notice. Fix header format.
41883
41884 * sem_case.ads: Likewise.
41885
41886 * sem_ch3.adb: Minor reformatting.
41887
9e94c78f 418882001-12-12 Geert Bosch <bosch@gnat.com>
e5bd5cb4
GB
41889
41890 * freeze.ads: Update copyright date.
41891
41892 * g-comlin.ads: Minor reformatting.
41893
41894 * gnat-style.texi: Fix typo.
41895
9e94c78f 418962001-12-12 Geert Bosch <bosch@gnat.com>
b468d8ec
GB
41897
41898 * einfo.h: Regenerate.
41899
9e94c78f 419002001-12-12 Ed Schonberg <schonber@gnat.com>
ed7da216 41901
07fc65c4 41902 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
ed7da216 41903 on known node types, rather than untyped fields. Further cleanups.
82a4b025 41904
9e94c78f 419052001-12-12 Robert Dewar <dewar@gnat.com>
ed7da216
GB
41906
41907 * sem_ch12.adb:
41908 (Save_Entity_Descendant): Minor comment update.
41909 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
07fc65c4 41910 of an N_Attribute_Reference node. As per note below, this does not
ed7da216 41911 eliminate need for Associated_Node in attribute ref nodes.
07fc65c4 41912 (Associated_Node): Documentation explicitly mentions attribute
ed7da216 41913 reference nodes, since this field is used in such nodes.
82a4b025 41914
ed7da216
GB
41915 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
41916
9e94c78f 419172001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
41918
41919 * s-stalib.adb: Add more comments on with statements being needed
82a4b025 41920
de76a39c 41921 * par-ch12.adb: Minor reformatting
82a4b025 41922
de76a39c 41923 * prj-dect.ads: Fix copyright header
82a4b025 41924
07fc65c4 41925 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
de76a39c 41926 inputs fit in 32 bits, but the result still overflows.
82a4b025 41927
de76a39c 41928 * s-fatgen.ads: Minor comment improvement
82a4b025 41929
9e94c78f 419302001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 41931
07fc65c4
GB
41932 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
41933 formal derived type, look for an inherited component from the full
de76a39c 41934 view of the parent, if any.
82a4b025 41935
9e94c78f 419362001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
41937
41938 * checks.ads (Apply_Alignment_Check): New procedure.
82a4b025 41939
07fc65c4
GB
41940 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
41941 ensure that the alignment of objects with address clauses is
de76a39c
GB
41942 appropriate, and raise PE if not.
41943
07fc65c4 41944 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
de76a39c 41945 Exp_Pakd.Known_Aligned_Enough
82a4b025 41946
de76a39c
GB
41947 * mdllfile.ads: Minor reformatting
41948
41949 * mlib-fil.ads: Minor reformatting
82a4b025 41950
9e94c78f 419512001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 41952
07fc65c4
GB
41953 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
41954 fix to any component reference if enclosing record has non-standard
de76a39c 41955 representation.
82a4b025 41956
9e94c78f 419572001-12-12 Vincent Celier <celier@gnat.com>
de76a39c 41958
07fc65c4 41959 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
de76a39c 41960 Iteration
82a4b025 41961
9e94c78f 419622001-12-12 Ed Schonberg <schonber@gnat.com>
de76a39c 41963
07fc65c4 41964 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
de76a39c 41965 sem_attr.
82a4b025 41966
9e94c78f 419672001-12-12 Robert Dewar <dewar@gnat.com>
de76a39c
GB
41968
41969 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
82a4b025 41970
9e94c78f 419712001-12-12 Emmanuel Briot <briot@gnat.com>
de76a39c
GB
41972
41973 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
41974 and it adds dependencies to system.io.
82a4b025 41975
9e94c78f 419762001-12-12 Pascal Obry <obry@gnat.com>
de76a39c 41977
07fc65c4 41978 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
de76a39c
GB
41979 variable name.
41980
9e94c78f 419812001-12-11 Ed Schonberg <schonber@gnat.com>
0b09835f
ES
41982
41983 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
07fc65c4
GB
41984 that is the parent of other generics, the instance body replaces the
41985 instance node. Retrieve the instance of the spec, which is the one
0b09835f
ES
41986 that is visible in clients and within the body.
41987
9e94c78f 419882001-12-11 Vincent Celier <celier@gnat.com>
598c3446
GB
41989
41990 * gnatmain.adb: Initial version.
82a4b025 41991
598c3446 41992 * gnatmain.ads: Initial version.
82a4b025 41993
598c3446 41994 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
82a4b025 41995
598c3446 41996 * snames.adb: Updated to match snames.ads.
82a4b025 41997
598c3446 41998 * snames.ads: Added Gnatstub.
82a4b025 41999
9e94c78f 420002001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42001
07fc65c4 42002 * prj-attr.adb (Initialization_Data): Change name from
598c3446 42003 Initialisation_Data.
82a4b025 42004
9e94c78f 420052001-12-11 Emmanuel Briot <briot@gnat.com>
598c3446
GB
42006
42007 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42008 + and * applied to backslashed expressions like \r.
82a4b025 42009
9e94c78f 420102001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
598c3446 42011
07fc65c4 42012 * g-os_lib.ads: String_List type added, Argument_List type is now
598c3446 42013 subtype of String_List.
82a4b025 42014
9e94c78f 420152001-12-11 Robert Dewar <dewar@gnat.com>
598c3446
GB
42016
42017 * g-os_lib.ads: Change copyright to FSF
42018 Add comments for String_List type
82a4b025 42019
9e94c78f 420202001-12-11 Vincent Celier <celier@gnat.com>
598c3446 42021
07fc65c4 42022 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
598c3446
GB
42023 string to the buffer).
42024
9e94c78f 420252001-12-11 Ed Schonberg <schonber@gnat.com>
7fb754a1
GB
42026
42027 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42028 sem_attr.
82a4b025 42029
7fb754a1 42030 * sem_attr.adb: Simplify previous fix for Address.
07fc65c4
GB
42031 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42032 to avoid anomalies where the bound of the type appears to raise
7fb754a1
GB
42033 constraint error.
42034
9e94c78f 420352001-12-11 Robert Dewar <dewar@gnat.com>
7fb754a1 42036
07fc65c4 42037 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
7fb754a1 42038 handled.
82a4b025 42039
9e94c78f 420402001-12-11 Ed Schonber <schonber@gnat.com>
7fb754a1 42041
07fc65c4 42042 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
7fb754a1 42043 renamed unit before checking for recursive instantiations.
82a4b025 42044
9e94c78f 420452001-12-11 Emmanuel Briot <briot@gnat.com>
7fb754a1
GB
42046
42047 * prj.ads: Add comments for some of the fields.
42048
9e94c78f 420492001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc 42050
07fc65c4 42051 * lib-xref.adb (Output_Refs): Don't output type references outside
0873bafc 42052 the main unit if they are not otherwise referenced.
82a4b025 42053
9e94c78f 420542001-12-11 Ed Schonberg <schonber@gnat.com>
0873bafc 42055
07fc65c4 42056 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
0873bafc 42057 code and diagnose additional illegal uses
82a4b025 42058
07fc65c4 42059 * sem_util.adb (Is_Object_Reference): An indexed component is an
0873bafc 42060 object only if the prefix is.
82a4b025 42061
9e94c78f 420622001-12-11 Vincent Celier <celier@gnat.com>
0873bafc
GB
42063
42064 * g-diopit.adb: Initial version.
82a4b025 42065
0873bafc 42066 * g-diopit.ads: Initial version.
82a4b025 42067
0873bafc
GB
42068 * g-dirope.adb:
42069 (Expand_Path): Avoid use of Unbounded_String
42070 (Find, Wildcard_Iterator): Moved to child package Iteration
82a4b025 42071
0873bafc 42072 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
82a4b025 42073
9e94c78f 420742001-12-11 Robert Dewar <dewar@gnat.com>
0873bafc
GB
42075
42076 * sem_attr.adb: Minor reformatting
42077
9e94c78f 420782001-12-11 Ed Schonberg <schonber@gnat.com>
d087cd96
GB
42079
42080 * sem_ch3.adb: Clarify some ???.
82a4b025 42081
9e94c78f 420822001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96 42083
07fc65c4 42084 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
d087cd96 42085 Exp_Pakd.Known_Aligned_Enough
82a4b025 42086
07fc65c4 42087 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
d087cd96
GB
42088 version is moved to Exp_Ch13.
42089
9e94c78f 420902001-12-11 Robert Dewar <dewar@gnat.com>
d087cd96
GB
42091
42092 * einfo.ads: Minor reformatting
82a4b025 42093
d087cd96 42094 * exp_ch5.adb: Add comment for previous.change
82a4b025 42095
d087cd96 42096 * ali.adb: New interface for extended typeref stuff.
82a4b025 42097
d087cd96 42098 * ali.ads: New interface for typeref stuff.
82a4b025 42099
d087cd96 42100 * checks.adb (Apply_Alignment_Check): New procedure.
82a4b025 42101
d087cd96 42102 * debug.adb: Add -gnatdM for modified ALI output
82a4b025 42103
d087cd96 42104 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
82a4b025 42105
07fc65c4
GB
42106 * lib-xref.adb: Extend generation of <..> notation to cover
42107 subtype/object types. Note that this is a complete rewrite,
42108 getting rid of the very nasty quadratic algorithm previously
d087cd96 42109 used for derived type output.
82a4b025 42110
07fc65c4
GB
42111 * lib-xref.ads: Extend description of <..> notation to cover
42112 subtype/object types. Uses {..} for these other cases.
d087cd96 42113 Also use (..) for pointer types.
82a4b025 42114
d087cd96 42115 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
82a4b025 42116
07fc65c4 42117 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
d087cd96
GB
42118 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42119
9e94c78f 421202001-12-11 Vincent Celier <celier@gnat.com>
290986ed
GB
42121
42122 * gnatcmd.adb:
42123 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42124 Changed /BIND_ONLY to /ACTIONS=BIND
42125 Changed /LINK_ONLY to /ACTIONS=LINK
82a4b025 42126
290986ed
GB
421272001-12-11 Ed Schonberg <schonber@gnat.com>
42128
42129 * sem_ch8.adb (Find_Selected_Component): improved search for a
42130 candidate package in case of error.
82a4b025 42131
290986ed
GB
42132 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42133 chain back on scope stack before reinstalling use clauses.
82a4b025 42134
290986ed
GB
42135 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42136 is enabled, do not kill the code for the condition, to preserve
42137 warning.
42138
9e94c78f 421392001-12-11 Robert Dewar <dewar@gnat.com>
84157f51 42140
07fc65c4 42141 * checks.adb (Insert_Valid_Check): Apply validity check to expression
84157f51
GB
42142 of conversion, not to result of conversion.
42143
9e94c78f 421442001-12-11 Ed Schonberg <schonber@gnat.com>
82a4b025 42145
07fc65c4
GB
42146 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42147 before freezing parent. If the declarations are mutually recursive,
42148 an access to the current record type may be frozen before the
84157f51
GB
42149 derivation is complete.
42150
9e94c78f 421512001-12-05 Vincent Celier <celier@gnat.com>
7ffa903f 42152
07fc65c4 42153 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
7ffa903f 42154 -c /COMPILE_ONLY, -l /LINK_ONLY
82a4b025 42155
7ffa903f
VC
42156 * opt.ads:
42157 (Bind_Only): New Flag
42158 (Link_Only): New flag
82a4b025 42159
07fc65c4 42160 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
7ffa903f 42161 and -l (Link_Only)
82a4b025 42162
7ffa903f 42163 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
82a4b025 42164
7ffa903f
VC
42165 * make.adb:
42166 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42167 (Gnatmake): Set the step flags. Only perform a step if the
42168 corresponding step flag is True.
42169 (Scan_Make_Arg): Reset the bind and link step flags when -u
42170 or -gnatc has been specified.
42171
9e94c78f 421722001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42173
07fc65c4 42174 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
f91b40db 42175 get bounds from right operand.
82a4b025 42176
f91b40db 42177 * sem_eval.adb: Minor reformatting
82a4b025 42178
07fc65c4 42179 * exp_util.adb (Make_Literal_Range): use bound of literal rather
f91b40db 42180 than Index'First, its lower bound may be different from 1.
82a4b025 42181
07fc65c4 42182 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
f91b40db 42183 and C48009J
82a4b025 42184
9e94c78f 421852001-12-05 Vincent Celier <celier@gnat.com>
f91b40db
GB
42186
42187 * prj-nmsc.adb Minor reformatting
82a4b025 42188
07fc65c4 42189 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
f91b40db 42190 set and libraries are not supported.
82a4b025 42191
9e94c78f 421922001-12-05 Ed Schonberg <schonber@gnat.com>
f91b40db 42193
07fc65c4
GB
42194 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42195 private view explicitly, so the back-end can treat as a global
f91b40db
GB
42196 when appropriate.
42197
9e94c78f 421982001-12-05 Ed Schonberg <schonber@gnat.com>
45d04cbb
GB
42199
42200 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42201 unit, always replace instance node with new body, for ASIS use.
42202
9e94c78f 422032001-12-05 Vincent Celier <celier@gnat.com>
82a4b025 42204
07fc65c4
GB
42205 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42206 libraries are not supported and both attributes Library_Name and
45d04cbb 42207 Library_Dir are specified.
82a4b025 42208
07fc65c4 42209 * prj-proc.adb (Expression): Set location of Result to location of
45d04cbb 42210 first term.
82a4b025 42211
45d04cbb
GB
42212 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42213 (prj-nmsc is now importing MLib.Tgt)
82a4b025 42214
45d04cbb
GB
42215 * prj-proc.adb: Put the change indicated above that was forgotten.
42216
9e94c78f 422172001-12-05 Robert Dewar <dewar@gnat.com>
84436014
RD
42218
42219 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42220
9e94c78f 422212001-12-05 Ed Schonberg <schonber@gnat.com>
7ae0dcd8
ES
42222
42223 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42224 constraint, introduce explicit subtype declaration and derive from it.
82a4b025 42225
7ae0dcd8
ES
42226 * sem_ch3.adb: Minor reformatting
42227
9e94c78f 422282001-12-05 Robert Dewar <dewar@gnat.com>
c9a4817d 42229
07fc65c4 42230 * checks.adb (Determine_Range): Increase cache size for checks.
c9a4817d 42231 Minor reformatting
82a4b025 42232
c9a4817d
RD
42233 * exp_ch6.adb: Minor reformatting
42234 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42235 a parameter whose root type is System.Address, since treating such
42236 subprograms as pure in the code generator is almost surely a mistake
42237 that will lead to unexpected results.
82a4b025 42238
07fc65c4 42239 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
c9a4817d 42240 change handling of conversions.
82a4b025 42241
c9a4817d
RD
42242 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42243
9e94c78f 422442001-12-05 Ed Schonberg <schonber@gnat.com>
2514b839 42245
07fc65c4
GB
42246 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42247 aggregate with static wrong size, attach generated Raise node to
2514b839
ES
42248 declaration.
42249
9e94c78f 422502001-12-05 Robert Dewar <dewar@gnat.com>
457b6274 42251
07fc65c4 42252 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
457b6274
RD
42253 Fixes compilation abandoned bomb in B24009B.
42254
9e94c78f 422552001-12-05 Ed Schonberg <schonber@gnat.com>
19349925
ES
42256
42257 * sem_ch12.adb:
42258 Document use of Associated_Node on Selected_Components.
42259 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42260 to clarify use of untyped descendant fields.
42261
9e94c78f 422622001-12-05 Robert Dewar <dewar@gnat.com>
6663c393
RD
42263
42264 * prj-dect.ads: Add ??? comment
42265 Add 2001 to copyright notice (was not done in after all)
82a4b025 42266
6663c393 42267 * prj-part.adb: Minor reformatting. Reword one awkward error message.
82a4b025 42268
6663c393 42269 * prj.ads: Minor reformatting throughout, and add some ??? comments
82a4b025 42270
6663c393
RD
42271 * snames.ads: Minor reformatting
42272
9e94c78f 422732001-12-05 Geert Bosch <bosch@gnat.com>
d7b2a6af
GB
42274
42275 * snames.adb: Autoupdate
42276
9e94c78f 422772001-12-05 Vincent Celier <celier@gnat.com>
fbc9a404
VC
42278
42279 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
82a4b025 42280
fbc9a404 42281 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
82a4b025 42282
fbc9a404 42283 * prj-env.adb: Minor comment changes (modifying -> extends).
82a4b025 42284
fbc9a404 42285 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
82a4b025 42286
07fc65c4 42287 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
fbc9a404 42288 Tok_Extends.
82a4b025 42289
fbc9a404 42290 * prj.adb (Initialize): Change Modifying to Extends.
82a4b025 42291
fbc9a404 42292 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
82a4b025 42293
fbc9a404 42294 * prj.ads: Minor comment change (Modifying -> extending).
82a4b025 42295
fbc9a404
VC
42296 * snames.ads: Change modifying to extends.
42297
9e94c78f 422982001-12-05 Robert Dewar <dewar@gnat.com>
7cff0b1b 42299
07fc65c4 42300 * sem_warn.adb: Remove stuff for conditionals, we are not going to
7cff0b1b 42301 do this after all.
82a4b025 42302
07fc65c4 42303 * sem_warn.ads: Remove stuff for conditionals, we are not going to
7cff0b1b
RD
42304 do this after all. Add 2001 to copyright notice
42305
9e94c78f 423062001-12-04 Geert Bosch <bosch@gnat.com>
4f56ebb7
GB
42307
42308 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
42309
9e94c78f 423102001-12-04 Robert Dewar <dewar@gnat.com>
053defdf 42311
07fc65c4
GB
42312 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42313 location if we already have errors. Stops some cases of cascaded
053defdf 42314 errors.
82a4b025 42315
053defdf
RD
42316 * errout.adb: Improve comment.
42317
9e94c78f 423182001-12-04 Robert Dewar <dewar@gnat.com>
f311e166
RD
42319
42320 * sem_ch12.adb:
42321 (Analyze_Formal_Type_Definition): Defend against Error.
42322 (Analyze_Formal_Subprogram): Defend against Error.
82a4b025 42323
07fc65c4 42324 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
f311e166
RD
42325 remove following semicolon if present. Removes cascaded error.
42326
9e94c78f 423272001-12-04 Douglas B. Rupp <rupp@gnat.com>
d61bd65a
DR
42328
42329 * bindgen.adb:
42330 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42331 exceptions equals 0.
42332 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42333 Fixes PIWG E tests (which have to be run with -gnatL).
42334
9e94c78f 423352001-12-04 Robert Dewar <dewar@gnat.com>
4ba603e2
RD
42336
42337 * einfo.ads: Minor reformatting
42338
9e94c78f 423392001-12-04 Ed Schonberg <schonber@gnat.com>
57568d91 42340
07fc65c4
GB
42341 * einfo.ads: Block_Node points to the identifier of the block, not to
42342 the block node itself, to preserve the link when the block is
42343 rewritten, e.g. within an if-statement with a static condition.
82a4b025 42344
07fc65c4 42345 * inline.adb (Cleanup_Scopes): recover block statement from block
57568d91 42346 entity using new meaning of Block_Node.
82a4b025 42347
07fc65c4 42348 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
57568d91
ES
42349 identifier of block node, rather than to node itself.
42350
9e94c78f 423512001-12-04 Gary Dismukes <dismukes@gnat.com>
82a4b025 42352
0815d36a
GD
42353 * layout.adb:
42354 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42355 (Discrimify): Go back to setting the Etypes of the selected component
07fc65c4 42356 because the Vname component does not exist at this point and will
0815d36a
GD
42357 fail name resolution. Also set Analyzed.
42358 Remove with and use of Sem_Res.
42359
9e94c78f 423602001-12-04 Arnaud Charlet <charlet@gnat.com>
edc0f304
AC
42361
42362 * Makefile.in: (HIE_SOURCES): add s-fat*.
42363
9e94c78f 423642001-12-04 Robert Dewar <dewar@gnat.com>
32213142
RD
42365
42366 * sem_attr.adb:
42367 (Compile_Time_Known_Attribute): New procedure.
42368 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42369 proper range check.
42370
9e94c78f 423712001-12-04 Ed Schonberg <schonber@gnat.com>
c0def2ad 42372
07fc65c4 42373 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
c0def2ad
ES
42374 processing discriminants to diagnose illegal default values.
42375
9e94c78f 423762001-12-04 Ed Schonberg <schonber@gnat.com>
ee0a48c5 42377
07fc65c4
GB
42378 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42379 access discriminant within a type extension that constrains its
ee0a48c5
ES
42380 parent discriminants.
42381
9e94c78f 423822001-12-04 Ed Schonberg <schonber@gnat.com>
dd5875a6 42383
07fc65c4 42384 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
dd5875a6 42385 is malformed, use instance of Any_Id to allow analysis to proceed.
82a4b025 42386
07fc65c4 42387 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
dd5875a6
ES
42388 type definition is illegal.
42389 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42390 misplaced.
42391
9e94c78f 423922001-12-04 Ed Schonberg <schonber@gnat.com>
c2a41e57 42393
07fc65c4 42394 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
c2a41e57
ES
42395 constants.
42396
9e94c78f 423972001-12-04 Robert Dewar <dewar@gnat.com>
0ae84753
RD
42398
42399 * errout.adb: Minor reformatting
42400
9e94c78f 424012001-12-04 Robert Dewar <dewar@gnat.com>
63db260e
RD
42402
42403 * exp_util.adb: Minor reformatting from last change
82a4b025 42404
07fc65c4
GB
42405 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42406 which is a rewriting of an expression, traverse the original
63db260e
RD
42407 expression to remove warnings that may have been posted on it.
42408
9e94c78f 424092001-12-04 Ed Schonberg <schonber@gnat.com>
c6d289f4 42410
07fc65c4 42411 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
c6d289f4
ES
42412 record that has other packed components.
42413
9e94c78f 424142001-12-04 Douglass B. Rupp <rupp@gnat.com>
5917e80d
DR
42415
42416 * adaint.c: Minor cleanups.
42417
9e94c78f 424182001-12-04 Douglass B. Rupp <rupp@gnat.com>
2c70f9dd
DR
42419
42420 * adaint.c: Do not use utime.h on vxworks.
42421
9e94c78f 424222001-12-04 Arnaud Charlet <charlet@gnat.com>
e59b3387 42423
07fc65c4 42424 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
e59b3387
AC
42425 more confusion than it solves.
42426
9e94c78f 424272001-12-04 Geert bosch <bosch@gnat.com>
e288604a
GB
42428
42429 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42430
5ac21013
GB
424312001-12-04 Geert Bosch <bosch@gnat.com>
42432
07fc65c4 42433 * Makefile.in (update-sources): New target.
5ac21013
GB
42434 For use by gcc_release script.
42435
9e94c78f 424362001-12-04 Ed Schonberg <schonber@gnat.com>
7dd5bd5e 42437
07fc65c4 42438 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
7dd5bd5e
ES
42439 a configuration pragma, it is now legal wherever a pragma can appear.
42440
a078a589
ZW
424412001-12-04 Zack Weinberg <zack@codesourcery.com>
42442
42443 * Makefile.in: Don't set ALL. Delete @cross_defines@,
42444 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
42445 is now @CROSS@ -DIN_GCC; update comment.
42446
9e94c78f 424472001-12-04 Robert Dewar <dewar@gnat.com>
0839863c
GB
42448
42449 * einfo.adb (Has_Pragma_Pure_Function): New flag.
42450 Fix problem that stopped ceinfo from working
82a4b025 42451
0839863c 42452 * einfo.ads (Has_Pragma_Pure_Function): New flag.
82a4b025 42453
0839863c
GB
42454 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42455
9e94c78f 424562001-12-04 Douglas B. Rupp <rupp@gnat.com>
9678de49
DR
42457
42458 * gnatchop.adb:
42459 (File_Time_Stamp): New procedure.
42460 (Preserve_Mode): New boolean.
42461 (Write_Unit): Pass time stamp.
42462 Implement -p switch (preserve time stamps).
82a4b025 42463
9678de49 42464 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
82a4b025 42465
9678de49 42466 * gnatchop.adb: Do usage info for -p switch
82a4b025 42467
9678de49 42468 * adaint.h (__gnat_set_file_time_name): New function
82a4b025 42469
9678de49 42470 * adaint.c (__gnat_set_file_time_name): Implement
82a4b025 42471
9678de49
DR
42472 * adaint.h: Fix typo
42473
9e94c78f 424742001-12-03 Robert Dewar <dewar@gnat.com>
3b9a13c4 42475
667e5c5d 42476 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
b4f94ac1 42477 have Associated_Node.
3b9a13c4 42478
9e94c78f 424792001-12-03 Robert Dewar <dewar@gnat.com>
767b404e
RD
42480
42481 * prj-proc.adb: Minor reformatting
667e5c5d 42482
767b404e
RD
42483 * make.adb: Minor reformatting
42484
9e94c78f 424852001-12-03 Geert Bosch <bosch@gnat.com>
11ac71ba 42486
667e5c5d 42487 * make.adb: Minor reformatting.
11ac71ba 42488
ef3d4d6e 424892001-12-03 Robert Dewar <dewar@gnat.com>
b1446533
RD
42490
42491 * sem_ch12.adb: Minor reformatting
42492
9e94c78f 424932001-12-03 Ed Schonberg <schonber@gnat.com>
d6d32b24 42494
667e5c5d
AJ
42495 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42496 push Standard on the stack before analyzing the instance body,
d6d32b24 42497 in order to have a clean visibility environment.
667e5c5d
AJ
42498
42499 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
d6d32b24 42500
9e94c78f 425012001-12-03 Ed Schonberg <schonber@gnat.com>
13f08f03 42502
667e5c5d 42503 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
13f08f03
ES
42504 instantiation of a body that contains an inlined body.
42505
9e94c78f 425062001-12-03 Ed Schonberg <schonber@gnat.com>
3bd6c100
ES
42507
42508 * sem_ch12.adb:
42509 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42510 to prevent freezing within formal packages.
42511 (Freeze_Subprogram_Body): If body comes from another instance that
42512 appeared before its own body, place freeze node at end of current
42513 declarative part, to prevent a back-end crash.
42514 (Inline_Instance_Body): Handle properly a package instance within
42515 a subprogram instance that is a child unit.
42516
58d07d8f
GS
425172001-12-01 Graham Stott <grahams@redhat.com>
42518
42519 * Makefile.in (misc.o): Add missing $(srcdir) prefix
42520 and add optabs.h dependency.
42521
42522 * misc.c: Include optabs.h
42523 (gnat_tree_code_type): Make static and const.
42524 (gnat_tree_code_length): Likewise.
42525 (gnat_tree_code_name): Likewise.
42526 (update_setjmp_buf): Obtain operands mode from insn_data.
42527
c87222f0
RH
425282001-11-29 Richard Henderson <rth@redhat.com>
42529
42530 * init.c: Remove obsolete dwarf2 frame.h section.
42531
d3945f0a
JM
425322001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
42533
42534 * Make-lang.in (ada.generated-manpages): New dummy target.
42535
9e94c78f 425362001-11-29 Ed Schonberg <schonber@gnat.com>
9f639397 42537
667e5c5d
AJ
42538 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42539 into Command, an array conversion is illegal here. Uncovered by
9f639397
ES
42540 ACATS B460005.
42541
9e94c78f 425422001-11-28 Geert Bosch <bosch@gnat.com>
c835e5c6
GB
42543
42544 * init.c: Minor whitespace changes.
42545
9e94c78f 425462001-11-28 Doug Rupp <rupp@gnat.com>
49bb4548 42547
667e5c5d 42548 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
49bb4548
DR
42549 signal stack.
42550
ea2417e5
ZW
425512001-11-28 Zack Weinberg <zack@codesourcery.com>
42552
42553 * misc.c (gnat_expand_constant): Move declaration above
42554 definition of lang_hooks.
42555 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42556 (gnat_init): lang_expand_constant no longer exists.
42557
42558 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
42559 always have vprintf.
42560 (gnat_init): Always call set_internal_error_function.
42561
f8e0aa73
AJ
425622001-11-27 Andreas Jaeger <aj@suse.de>
42563
42564 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42565
d99b0e79
LG
425662001-11-27 Laurent Guerby <guerby@acm.org>
42567
42568 * Makefile.in: Regenerate Ada dependencies.
42569
3f0496e5
RH
425702001-11-26 Richard Henderson <rth@redhat.com>
42571
42572 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
42573 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
42574 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
42575
92fa4733
LG
425762001-11-25 Laurent Guerby <guerby@acm.org>
42577
42578 * sysdep.c (rts_get_*): Fix style.
42579
07626501
LG
425802001-11-19 Laurent Guerby <guerby@acm.org>
42581
42582 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
42583 since it is of no apparent use and cause warnings.
42584
22703ccc
NB
425852001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
42586
42587 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
42588 static too.
42589 (gnat_init): Don't return NULL.
42590 (finish_parse): Remove.
42591
b0df4321
LG
425922001-11-17 Laurent Guerby <guerby@acm.org>
42593
42594 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
42595 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
42596 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
42597 * lang-spec.h: Add missing struct field to silence warnings.
42598 * sysdep.c (rts_get_*): Provide K&R prototype.
42599 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
42600 * traceback.c (Unlock_Task, Lock_Task): Likewise.
42601 * tracebak.c (__gnat_backtrace): Remove unused variable.
42602 * utils.c (end_subprog_body): Move to K&R style.
42603
d215024f
RK
42604Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
42605
42606 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
42607
f5e99456
NB
426082001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
42609
42610 * misc.c (gnat_init): Change prototype. Include the
42611 functionality of the old init_parse and init_decl_processing.
42612 (gnat_init_decl_processing): New prototype.
42613 (init_parse): Remove.
42614 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
42615
5d69f816
NB
426162001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42617
42618 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
42619 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
42620 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
42621 set_yydebug): Remove.
42622
3ac88239
NB
426232001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42624
42625 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
42626 (struct lang_hooks): Constify.
42627 (language_string, lang_identify): Remove.
42628 * utils.c (init_decl_processing): Update.
42629
d23c55c2
NB
426302001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
42631
42632 * misc.c: Include langhooks-def.h.
42633 * Makefile.in: Update.
42634
9e94c78f 426352001-10-30 Robert Dewar <dewar@gnat.com>
04a1b79c
RD
42636
42637 * style.adb:
42638 (Check_Identifier): Rewrite circuit to be compatible with use of letters
42639 in the upper half of ASCII.
42640 (Check_Identifier): Minor reformatting
42641
9e94c78f 426422001-10-30 Geert Bosch <bosch@gnat.com>
81fa2d39 42643
f8e0aa73 42644 * (Associated_Node, Set_Associated_Node): Do not check for
81fa2d39
GB
42645 Freeze_Entity.
42646
9e94c78f 426472001-10-30 Robert Dewar <dewar@gnat.com>
ffc5527f
RD
42648
42649 * a-reatim.ads: Minor reformatting
42650
9e94c78f 426512001-10-30 Robert Dewar <dewar@gnat.com>
865335eb 42652
f8e0aa73 42653 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
865335eb
RD
42654 undocumented declarations.
42655
9e94c78f 426562001-10-30 Pascal Obry <obry@gnat.com>
5e257178 42657
f8e0aa73 42658 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
5e257178
PO
42659 to the binder and linker.
42660 Minor style fix.
f8e0aa73 42661
5e257178
PO
42662 * mdll.ads: Fix layout. Update copyright notice.
42663
42664 * mdll.adb: Fix layout. Update copyright notice.
42665
9e94c78f 426662001-10-30 Robert Dewar <dewar@gnat.com>
1753e0ad
RD
42667
42668 * usage.adb: Minor fix to output for -gnaty.
42669
9e94c78f 426702001-10-30 Ed Schonberg <schonber@gnat.com>
84bfdde0 42671
f8e0aa73
AJ
42672 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
42673 to accommodate all its possible values.
84bfdde0 42674
f8e0aa73 42675 * a-reatim.adb (Split): Special-case handling of Time_Span_First
84bfdde0
ES
42676 and of small absolute values of T.
42677
9e94c78f 426782001-10-30 Richard Kenner <kenner@gnat.com>
c296e5fc 42679
f8e0aa73
AJ
42680 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
42681 set_mem_attributes since not needed and wrong if RESULT if a REG;
c296e5fc
RK
42682 fixes ACATS failures.
42683
9e94c78f 426842001-10-30 Geert Bosch <bosch@gnat.com>
07c809df
GB
42685
42686 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
42687 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
42688
9e94c78f 426892001-10-30 Robert Dewar <dewar@gnat.com>
f8e0aa73 42690
54d22416 42691 * bindusg.adb: Undocument -f switch.
f8e0aa73 42692
54d22416 42693 * gnatcmd.adb: Remove /FULL_ELABORATION.
f8e0aa73
AJ
42694
42695 * opt.ads (Force_RM_Elaboration_Order): Document that this is
54d22416 42696 obsolescent.
f8e0aa73 42697
54d22416 42698 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
f8e0aa73 42699
54d22416
RD
42700 * gnatbind.adb: Minor update of warning msg.
42701
9e94c78f 427022001-10-30 Vincent Celier <celier@gnat.com>
af5cf6f8 42703
f8e0aa73 42704 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
af5cf6f8 42705 for project file switches (-P (/PROJECT_FILE=),
f8e0aa73 42706 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
af5cf6f8
VC
42707 or MEDIUM or HIGH)
42708
9e94c78f 427092001-10-30 Geert Bosch <bosch@gnat.com>
984bc4c3
GB
42710
42711 * decl.c: Minor whitespace fixes.
42712
9e94c78f 427132001-10-30 Richard Kenner <kenner@gnat.com>
5dece937
RK
42714
42715 * utils2.c (build_allocator): Test for SIZE overflow in array case too
42716
9e94c78f 427172001-10-30 Geert Bosch <bosch@gnat.com>
de4bf6cb 42718
f8e0aa73 42719 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
de4bf6cb 42720 Found due to GCC 3.0 warning of using uninitialized value.
f8e0aa73 42721
de4bf6cb
GB
42722 * layout.adb:
42723 (Get_Max_Size): Use variant record for tracking value/expression.
42724 Makes logic clearer and prevents warnings for uninitialized variables.
42725 (Layout_Array_Type): Use variant record for tracking value/expression.
42726 Makes logic clearer and prevents warnings for uninitialized variables.
42727
9e94c78f 427282001-10-30 Robert Dewar <dewar@gnat.com>
f5e44987
RD
42729
42730 * lib.adb: Minor reformatting
42731
42732 * s-taprop.ads: Minor reformatting
42733
45659035 427342001-10-29 Laurent Guerby <guerby@acm.org>
f8e0aa73 42735
45659035
GB
42736 * init.c:
42737 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
42738 const.
42739 (_gnat_error_handler): Make MSG const.
42740
9e94c78f 427412001-10-29 Richard Kenner <kenner@gnat.com>
45659035
GB
42742
42743 * sysdep.c: Fix localtime_r problem on LynxOS.
42744 Also remove #elif to avoid warnings.
f8e0aa73
AJ
42745
42746 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
45659035 42747 used by this.
f8e0aa73 42748
45659035
GB
42749 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
42750
638e383e
JM
427512001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
42752
42753 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
42754 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
42755 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
42756 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
42757 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
42758 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
42759 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
42760 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
42761 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
42762 types.ads, urealp.adb: Fix spelling errors.
42763
9e94c78f 427642001-10-27 Laurent Guerby <guerby@acm.org>
97f6baa0
LG
42765
42766 * trans.c (gigi): Fix non determinism leading to bootstrap
42767 comparison failures for debugging information.
42768
46b58b8c
FW
427692001-10-26 Florian Weimer <fw@deneb.enyo.de>
42770
42771 * gnat_rm.texi: Use @./@: where appropriate.
42772
9e94c78f 427732001-10-26 Robert Dewar <dewar@gnat.com>
30151c7b
RD
42774
42775 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
42776
9e94c78f 427772001-10-26 Richard Kenner <kenner@gnat.com>
c0b1738d
RK
42778
42779 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
42780
9e94c78f 427812001-10-26 Richard Kenner <kenner@gnat.com>
5b09c153 42782
f8e0aa73 42783 * decl.c (validate_size): Modify message for bad size to avoid
5b09c153
RK
42784 implication that compiler is modifying the size.
42785
9e94c78f 427862001-10-26 Robert Dewar <dewar@gnat.com>
4d553668
RD
42787
42788 * prj-util.adb: Minor reformatting. Fix bad header format.
42789
9e94c78f 427902001-10-26 Robert Dewar <dewar@gnat.com>
3e542a58
RD
42791
42792 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
f8e0aa73 42793
3e542a58 42794 * sinfo.ads: Clarify use of Associated_Node (documentation only).
f8e0aa73
AJ
42795
42796 * sem_ch12.adb: Change Node4 to Associated_Node. Change
42797 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
3e542a58
RD
42798 much more narrowly in places where needed. These are cleanups.
42799
9e94c78f 428002001-10-26 Joel Brobecker <brobecke@gnat.com>
0bf08bfe
JB
42801
42802 * 5zosinte.ads (null_pthread): new constant.
f8e0aa73 42803
0bf08bfe
JB
42804 * 5ztaprop.adb:
42805 (Initialize_TCB): Initialize thread ID to null, to be able to verify
42806 later that this field has been set.
42807 (Finalize_TCB): ditto.
42808 (Suspend_Task): Verify that the thread ID is not null before using it.
42809 (Resume_Task): ditto.
f8e0aa73 42810
0bf08bfe
JB
42811 * s-tasdeb.adb:
42812 (Resume_All_Tasks): Lock the tasks list before using it.
42813 (Suspend_All_Tasks): ditto.
42814
9e94c78f 428152001-10-26 Richard Kenner <kenner@gnat.com>
7a3a8c06 42816
f8e0aa73 42817 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
7a3a8c06
RK
42818 Make constant variant of designated type for Is_Access_Constant.
42819 Call update_pointer_to with main variant.
f8e0aa73
AJ
42820
42821 * trans.c (process_freeze_entity, process_type):
7a3a8c06 42822 Call update_pointer_to on main variant.
f8e0aa73 42823
7a3a8c06
RK
42824 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
42825 If main variant, update all other variants.
f8e0aa73
AJ
42826
42827 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
7a3a8c06
RK
42828 TREE_STATIC.
42829
9e94c78f 428302001-10-26 Robert Dewar <dewar@gnat.com>
a160babb
RD
42831
42832 * prj-util.adb: Minor reformatting
42833
9e94c78f 428342001-10-26 Robert Dewar <dewar@gnat.com>
b403bd17
RD
42835
42836 * prj-util.adb: Minor reformatting
42837
9e94c78f 428382001-10-26 Robert Dewar <dewar@gnat.com>
5fc3b4c7
RD
42839
42840 * prj-attr.adb: Minor reformatting throughout
42841
9e94c78f 428422001-10-26 Robert Dewar <dewar@gnat.com>
8c736034
RD
42843
42844 * prj-attr.ads: Minor reformatting
42845 Add ??? comment (this whole spec has almost no comments)
42846
9e94c78f 428472001-10-26 Vincent Celier <celier@gnat.com>
47d5b6ed 42848
f8e0aa73 42849 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
b4f94ac1 42850 ("//") that precede the drive letter on Interix.
47d5b6ed 42851
9e94c78f 428522001-10-26 Geert Bosch <bosch@gnat.com>
41af791f
GB
42853
42854 * gnat_rm.texi: Add GNAT Reference Manual.
42855
9e94c78f 428562001-10-25 Robert Dewar <dewar@gnat.com>
ed4a1468 42857
f8e0aa73 42858 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
b4f94ac1 42859 is Error. Similar change for other renaming cases.
ed4a1468 42860
9e94c78f 428612001-10-25 Robert Dewar <dewar@gnat.com>
24377ae4
RD
42862
42863 * s-atacco.ads: Add pragma Inline_Always for functions.
42864 Fix header format. Add copyright 2001
42865
9e94c78f 428662001-10-25 Ed Schonberg <schonber@gnat.com>
fef3204e 42867
f8e0aa73 42868 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
b4f94ac1 42869 return Error rather than Empty so that analysis can proceed.
fef3204e 42870
9e94c78f 428712001-10-25 Ed Schonberg <schonber@gnat.com>
dfc69d80 42872
f8e0aa73 42873 * sem_util.adb (Enter_Name): better handling of cascaded error
b4f94ac1 42874 messages when a unit appears in its own context.
dfc69d80 42875
9e94c78f 428762001-10-25 Ed Schonberg <schonber@gnat.com>
5a15af62 42877
f8e0aa73 42878 * sem_util.adb (Defining_Entity): in case of error, attach created
b4f94ac1 42879 entity to specification, so that semantic analysis can proceed.
5a15af62 42880
9e94c78f 428812001-10-25 Robert Dewar <dewar@gnat.com>
2b881d53 42882
f8e0aa73 42883 * sem_util.adb
b4f94ac1 42884 (Defining_Entity): Deal with Error.
2b881d53
RD
42885 (Process_End_Label): Deal with bad end label for.
42886
9e94c78f 428872001-10-25 Ed Schonberg <schonber@gnat.com>
578053f2 42888
f8e0aa73 42889 * sem_elab.adb (Check_A_Call): refine message when call is in an
578053f2
ES
42890 instance but callee is not declared in the generic unit.
42891
9e94c78f 428922001-10-25 Ed Schonberg <schonber@gnat.com>
f8e0aa73
AJ
42893
42894 * sem_elab.adb (Check_A_Call): check for renaming before finding the
0597ce0b
ES
42895 enclosing unit, which may already be different from the calling unit.
42896
9e94c78f 428972001-10-25 Geert Bosch <bosch@gnat.com>
3de6e6da
GB
42898
42899 * 4gintnam.ads: fix header format.
42900
9e94c78f 429012001-10-25 Ed Schonberg <schonber@gnat.com>
6f311316 42902
f8e0aa73 42903 * sem_res.adb (Resolve_Call): if the call is actually an indexing
b4f94ac1
ZW
42904 operation on the result of a parameterless call, perform elaboration
42905 check after the node has been properly rewritten.
f8e0aa73
AJ
42906
42907 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
b4f94ac1
ZW
42908 inlined within the generic tree, the defining identifier is not a
42909 compilation_unit.
6f311316 42910
9e94c78f 429112001-10-25 Ed Schonberg <schonber@gnat.com>
17be0cdf 42912
f8e0aa73 42913 * sem_res.adb (Resolve): special-case resolution of Null in an
b4f94ac1 42914 instance or an inlined body to avoid view conflicts.
f8e0aa73
AJ
42915
42916 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
b4f94ac1 42917 compatibility by retrieving the access type of the generic copy.
17be0cdf 42918
9e94c78f 429192001-10-25 Robert Dewar <dewar@gnat.com>
ce9e9122
RD
42920
42921 * sem_ch3.adb:
42922 (Analyze_Number_Declaration): Handle error expression.
42923 (Signed_Integer_Type_Declaration): Handle error bound.
42924 (Analyze_Subtype_Indication): Handle error range.
f8e0aa73 42925
ce9e9122
RD
42926 * sem_util.adb (Get_Index_Bounds): Check for Error.
42927
9e94c78f 429282001-10-25 Robert Dewar <dewar@gnat.com>
e12fbc9e 42929
f8e0aa73 42930 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
e12fbc9e
RD
42931 in no run time mode.
42932
9e94c78f 429332001-10-25 Pascal Obry <obry@gnat.com>
52b80488 42934
f8e0aa73 42935 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
b4f94ac1 42936 mode case for ALLOC case.
f8e0aa73
AJ
42937
42938 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
b4f94ac1 42939 all platforms. Improvement of last change.
52b80488 42940
9e94c78f 429412001-10-25 Robert Dewar <dewar@gnat.com>
316ad9c5
RD
42942
42943 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
42944
1a7e4df4
GB
429452001-10-25 Geert Bosch <bosch@gnat.com>
42946
42947 * osint.adb (Is_Relative): Remove duplicate.
42948
9e94c78f 429492001-10-25 Pascal Obry <obry@gnat.com>
90a9fff2 42950
f8e0aa73 42951 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
b4f94ac1 42952 pathnames in UNIX and DOS style with drive letter.
90a9fff2 42953 (Is_Relative): new routine.
f8e0aa73 42954
90a9fff2 42955 * osint.adb: Minor reformatting
f8e0aa73
AJ
42956
42957 * osint.adb (Is_Relative): implementation using
b4f94ac1 42958 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
90a9fff2 42959
9e94c78f 429602001-10-25 Pascal Obry <obry@gnat.com>
5c1ba4cc 42961
f8e0aa73 42962 * g-dirope.adb (Basename): correctly compute offset between the
b4f94ac1 42963 original Path and the translated one.
f8e0aa73 42964
5c1ba4cc
PO
42965 * g-dirope.adb: (Base_Name): add some comments.
42966
9e94c78f 429672001-10-25 Robert Dewar <dewar@gnat.com>
a7fb206d 42968
f8e0aa73 42969 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
b4f94ac1 42970 in HIE mode, avoids compilation abandoned message
f8e0aa73 42971
a7fb206d 42972 * exp_imgv.adb: Correct typo in previous change
f8e0aa73 42973
a7fb206d
RD
42974 * exp_imgv.adb: Correct typo in previous change (not my day!)
42975
9e94c78f 429762001-10-25 Robert Dewar <dewar@gnat.com>
e6a7e62e
RD
42977
42978 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
42979
9e94c78f 429802001-10-25 Pascal Obry <obry@gnat.com>
75c09e7d 42981
f8e0aa73 42982 * g-awk.ads: Move all pragma inlines next to the routine
0d2b8e0b 42983 declarations. This is more uniform with other GNAT spec.
75c09e7d 42984
0d2b8e0b 429852001-10-22 Geert Bosch <bosch@gnat.com>
d2740a69
GB
42986
42987 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
42988
0d2b8e0b 429892001-10-19 Geert Bosch <bosch@gnat.com>
d7ac9bdd
GB
42990
42991 * Makefile.in (tools, gnattools): Remove gnatmem.
42992
17ed6335
RH
429932001-10-17 Richard Henderson <rth@redhat.com>
42994
42995 * Makefile.in (misc.o): Depend on langhooks.h.
42996 * misc.c: Include it.
42997 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
42998 (LANG_HOOKS_DECODE_OPTION): New.
42999 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43000
f2436274
FW
430012001-10-16 Florian Weimer <fw@deneb.enyo.de>
43002
43003 * trans.c (tree_transform): Adjust to recent change in
43004 expand_asm_operands to implement named asm operands.
43005
b14127e6
ES
430062001-10-11 Ed Schonberg <schonber@gnat.com>
43007
f8e0aa73 43008 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
b14127e6
ES
43009 renaming of discriminant for mutable record type.
43010
e70ee92a
RD
430112001-10-11 Robert Dewar <dewar@gnat.com>
43012
43013 * validsw.adb: Properly save -gnatVn status.
43014
9e94c78f 430152001-10-11 Robert Dewar <dewar@gnat.com>
f8e0aa73 43016
9a5621d7
RD
43017 * usage.adb: Add lines for V switch.
43018
f8e0aa73 43019 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
9a5621d7
RD
43020 (/VALIDITY_CHECKING).
43021
9e94c78f 430222001-10-11 Ed Schonberg <schonber@gnat.com>
45667f04 43023
f8e0aa73 43024 * sem_type.adb (Add_One_Interp): an operator for a type declared in
45667f04
ES
43025 an extension of System is known to be visible.
43026
9e94c78f 430272001-10-11 Ed Schonberg <schonber@gnat.com>
c3de5c4c 43028
f8e0aa73 43029 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
c3de5c4c
ES
43030 properly. Fixes regression on ACATS C34005G.
43031
9e94c78f 430322001-10-11 Robert Dewar <dewar@gnat.com>
4fa964a6 43033
f8e0aa73 43034 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
4fa964a6
RD
43035 loop in generic instance, since this is likely not very useful.
43036
9e94c78f 430372001-10-11 Robert Dewar <dewar@gnat.com>
0868e09c 43038
f8e0aa73 43039 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
0868e09c 43040 the error message for high integrity mode.
f8e0aa73
AJ
43041
43042 * rtsfind.adb (RTE): Give message if we try to find an entity that
0868e09c 43043 is not available in high integrity mode.
f8e0aa73 43044
0868e09c
RD
43045 * rtsfind.ads:
43046 (OK_To_Use_In_HIE_Mode): New array.
43047 (RTE): May return Empty in high integrity mode.
f8e0aa73
AJ
43048
43049 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43050 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43051
43052 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43053 unit if not inlined always and in no runtime mode. Fixes problem
0868e09c 43054 caused by new Rtsfind changes.
f8e0aa73
AJ
43055
43056 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
0868e09c 43057 body is deleted.
f8e0aa73
AJ
43058
43059 * rtsfind.adb (RTE): Make sure we do not try to load unit after
0868e09c
RD
43060 giving message for entity not available in high integrity mode.
43061
9e94c78f 430622001-10-11 Pascal Obry <obry@gnat.com>
f8e0aa73 43063
934abf9c
PO
43064 * impunit.adb: Add GNAT.CRC32.
43065
9e94c78f 430662001-10-11 Ed Schonberg <schonber@gnat.com>
3c72bea4 43067
f8e0aa73
AJ
43068 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43069 properly the case where one universal operand in a non-static
3c72bea4
ES
43070 exponentiation of a real literal.
43071
9e94c78f 430722001-10-11 Ed Schonberg <schonber@gnat.com>
44d8d2bb 43073
f8e0aa73
AJ
43074 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43075 clause, return the gobal finalization list, for lack of anthing else.
44d8d2bb 43076
9e94c78f 430772001-10-11 Ed Schonberg <schonber@gnat.com>
9e2b9627 43078
f8e0aa73
AJ
43079 * exp_ch7.adb (Make_Transient_Block): if statement is within
43080 exception handler, always use new transient scope to place Clean
9e2b9627
ES
43081 procedure.
43082
9e94c78f 430832001-10-11 Pascal Obry <obry@gnat.com>
cfac6e9f
PO
43084
43085 * Makefile.in:
43086 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43087 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43088 (GNATLS_RTL_OBJS): add g-crc32.o
43089 (GNATMAKE_RTL_OBJS): add g-crc32.o
f8e0aa73 43090
cfac6e9f
PO
43091 * ali-util.adb:
43092 (CRC_Match): new function.
f8e0aa73 43093 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
cfac6e9f
PO
43094 instead of the previous simple checksum algorithm.
43095 (Time_Stamp_Mismatch): use CRC_Match for comparison.
43096 (Set_Source_Table): idem.
f8e0aa73 43097
cfac6e9f 43098 * ali-util.ads:
f8e0aa73 43099 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
cfac6e9f
PO
43100 instead of simple checksum.
43101 (CRC_Match): new function.
43102 (CRC_Error): new constant.
f8e0aa73
AJ
43103
43104 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43105 a CRC now and not a simple checksum. A CRC uses lower-case hex
cfac6e9f 43106 letters, fixes ambiguity in parsing.
f8e0aa73
AJ
43107
43108 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
cfac6e9f 43109 is what this variable will store.
f8e0aa73 43110
cfac6e9f 43111 * bcheck.adb: Change reference to chechsum in comments by CRC.
f8e0aa73
AJ
43112 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43113 rename All_Checksum_Match to All_CRC_Match. Change due to API
43114 renaming since now GNAT does not use a simple checksum but a
cfac6e9f 43115 CRC using GNAT.CRC32.
f8e0aa73
AJ
43116
43117 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
cfac6e9f 43118 now and not anymore a simple checksum.
f8e0aa73
AJ
43119
43120 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
cfac6e9f 43121 places.
f8e0aa73 43122
cfac6e9f 43123 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
f8e0aa73 43124
cfac6e9f
PO
43125 * scans.adb:
43126 (Restore_Scan_State): rename Checksum to CRC.
43127 (Save_Scan_State): idem.
f8e0aa73 43128
cfac6e9f
PO
43129 * scans.ads:
43130 With GNAT.CRC32.
43131 (Checksum): rename to CRC.
43132 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
f8e0aa73
AJ
43133
43134 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43135 GNAT.CRC32). Update copyright notice.
f8e0aa73
AJ
43136
43137 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
cfac6e9f 43138 GNAT.CRC32). Update copyright notice.
f8e0aa73 43139
cfac6e9f
PO
43140 * scn.adb:
43141 (Accumulate_Checksum): removed.
43142 (Update): new procedure. Add a wide-character into the CRC.
f8e0aa73 43143
cfac6e9f
PO
43144 * sinput-l.adb:
43145 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
f8e0aa73 43146 (Load_File): fix initialization of S (change Source_Checksum to
cfac6e9f 43147 Source_CRC)
f8e0aa73
AJ
43148
43149 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
cfac6e9f 43150 Source_CRC in S initialization.
f8e0aa73 43151
cfac6e9f 43152 * sinput.adb (Source_Checksum): renamed to Source_CRC.
f8e0aa73 43153
cfac6e9f
PO
43154 * sinput.ads (Source_Checksum): renamed to Source_CRC.
43155 Update comments for the CRC.
f8e0aa73 43156
cfac6e9f 43157 * types.adb (Hex): Use lowercase for the letter part.
f8e0aa73
AJ
43158
43159 * types.ads (Get_Hex_String): Returns the hexadecimal representation
43160 for a word. This is currently used only for CRC. In previous version,
43161 the checksum was using a representation with all letter being
43162 upper-case. With the new implementation (using CRC) we do not remove
43163 the 32th bit of the CRC, so we can have an upper-case starting letter
43164 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43165 It is ambigous since the CRC was optional and could be followed by
43166 options like EB, EE. So now this routines uses lower-case letter for
43167 the hexadecimal representation. Strange enough only lower case letters
cfac6e9f 43168 where checked in Scan_ALI (even if this was not a possible case).
f8e0aa73 43169
cfac6e9f 43170 * gnatvsn.ads (Library_Version): changed to 3.15a.
f8e0aa73
AJ
43171
43172 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43173 for the compiler.
f8e0aa73
AJ
43174
43175 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
cfac6e9f 43176 for the compiler.
f8e0aa73 43177
cfac6e9f
PO
43178 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43179 Add 2001 to copyright notice
43180 (Accumulate_Checksum): Modify to use System.CRC32.
f8e0aa73
AJ
43181
43182 * ali-util.ads: Redo changes of previous revision to continue to use
cfac6e9f 43183 the word Checksum. Add 2001 to copyright notice.
f8e0aa73 43184
cfac6e9f
PO
43185 * ali.adb: Undo some of previous changes, not needed.
43186 Keep the change for lower case letters in the checksum.
f8e0aa73 43187
cfac6e9f
PO
43188 * ali.ads: Undo previous change not needed.
43189
43190 * bcheck.adb: Undo most of previous change, not needed.
43191 But do use Checksums_Match for checksum comparison.
f8e0aa73 43192
cfac6e9f
PO
43193 * gnatls.adb: Undo most of previous change, not needed.
43194 But do use Checksums_Match for comparing checksums.
f8e0aa73 43195
cfac6e9f 43196 * lib-load.adb: Undo previous change, not needed.
f8e0aa73 43197
cfac6e9f 43198 * lib-writ.adb: Undo previous change, not needed.
f8e0aa73
AJ
43199
43200 * lib-writ.ads: Document that checksums use lower case,
cfac6e9f 43201 not upper case letters.
f8e0aa73 43202
cfac6e9f 43203 * scans.adb: Undo previous change, not needed
f8e0aa73 43204
cfac6e9f 43205 * scans.ads: Undo previous change, not needed.
f8e0aa73 43206
cfac6e9f 43207 * scn-nlit.adb: Undo previous changes, not needed.
f8e0aa73 43208
cfac6e9f 43209 * scn-slit.adb: Undo previous change, not needed. Fix header format.
f8e0aa73 43210
cfac6e9f
PO
43211 * scn.adb:
43212 (Accumulate_Checksum): Use System.CRC32.
43213 (Initialize_Checksum): New procedure.
43214 Remove other changes of previous revision.
f8e0aa73 43215
cfac6e9f 43216 * sinput-p.adb: Undo previous change, not needed.
f8e0aa73 43217
cfac6e9f
PO
43218 * sinput.adb: Undo previous change, not needed.
43219
43220 * sinput-l.adb: Undo previous change, not needed.
f8e0aa73
AJ
43221
43222 * sinput.ads: Undo previous change, not needed. Keep only comment
cfac6e9f 43223 on new checksum algorithm
f8e0aa73 43224
cfac6e9f
PO
43225 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43226 Also remove a-tags and a-stream from GNAT sources.
f8e0aa73 43227
cfac6e9f 43228 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
f8e0aa73 43229
cfac6e9f
PO
43230 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43231
4d6d06a5
GB
432322001-10-11 Geert Bosch <bosch@gnat.com>
43233
43234 * einfo.h: Regenerate.
43235
43236 * nmake.ads: Regenerate.
43237
43238 * nmake.adb: Regenerate.
43239
43240 * sinfo.h: Regenerate.
43241
43242 * treeprs.adb: Regenerate.
43243
c97412e2
GB
432442001-10-10 Geert Bosch <bosch@gnat.com>
43245
43246 * gnat-style.texi: New file describing coding guidelines for Ada.
f8e0aa73 43247
9e94c78f 432482001-10-10 Ed Schonberg <schonber@gnat.com>
b83018ca 43249
f8e0aa73 43250 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
b83018ca
ES
43251 is Flag174.
43252
e834fe1f
GB
432532001-10-10 Geert Bosch <bosch@gnat.com>
43254
43255 * snames.ads: Add new names for project facility.
43256
43257 * snames.adb: Update to reflect snames.ads changes.
43258
43259 * snames.h: Update to reflect snames.ads changes.
43260
9e94c78f 432612001-10-10 Vincent Celier <celier@gnat.com>
b30668b7
VC
43262
43263 * make.adb:
43264 (Add_Switches): reflect the changes for the switches attributes
43265 Default_Switches indexed by the programming language,
43266 Switches indexed by the file name.
43267 (Collect_Arguments_And_Compile): Idem.
43268 Reflect the attribute name changes.
f8e0aa73 43269
b30668b7
VC
43270 * prj-attr.adb:
43271 (Initialisation_Data): Change the names of some packages and
43272 attributes.
43273 (Initialize): process case insensitive associative arrays.
f8e0aa73 43274
b30668b7
VC
43275 * prj-attr.ads:
43276 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
f8e0aa73 43277
b30668b7
VC
43278 * prj-dect.adb:
43279 (Parse_Attribute_Declaration): For case insensitive associative
43280 arrays, set the index string to lower case.
f8e0aa73 43281
b30668b7
VC
43282 * prj-env.adb:
43283 Reflect the changes of the project attributes.
f8e0aa73 43284
b30668b7
VC
43285 * prj-nmsc.adb:
43286 Replace Check_Naming_Scheme by Ada_Check and
43287 Language_Independent_Check.
f8e0aa73 43288
b30668b7
VC
43289 * prj-nmsc.ads:
43290 Replaced Check_Naming_Scheme by 2 procedures:
43291 Ada_Check and Language_Independent_Check.
f8e0aa73 43292
b30668b7
VC
43293 * prj-proc.adb:
43294 (Process_Declarative_Items): For case-insensitive associative
43295 arrays, set the index string to lower case.
43296 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43297 Prj.Nmsc.Check_Naming_Scheme.
f8e0aa73 43298
b30668b7
VC
43299 * prj-tree.adb:
43300 (Case_Insensitive): New function
43301 (Set_Case_Insensitive): New procedure
f8e0aa73 43302
b30668b7
VC
43303 * prj-tree.ads:
43304 (Case_Insensitive): New function
43305 (Set_Case_Insensitive): New procedure
43306 (Project_Node_Record): New flag Case_Insensitive.
f8e0aa73 43307
b30668b7
VC
43308 * prj-util.adb:
43309 (Value_Of): new function to get the string value of a single
43310 string variable or attribute.
f8e0aa73 43311
b30668b7
VC
43312 * prj-util.ads:
43313 (Value_Of): new function to get the string value of a single
43314 string variable or attribute.
f8e0aa73 43315
b30668b7
VC
43316 * prj.adb:
43317 (Ada_Default_Spec_Suffix): New function
43318 (Ada_Default_Impl_Suffix): New function
43319 Change definitions of several constants to reflect
43320 new components of record types.
f8e0aa73 43321
b30668b7
VC
43322 * prj.ads:
43323 (Naming_Data): Change several components to reflect new
43324 elements of naming schemes.
43325 (Project_Data): New flags Sources_Present and
43326 Language_Independent_Checked.
43327 (Ada_Default_Spec_Suffix): New function.
43328 (Ada_Default_Impl_Suffix): New function.
f8e0aa73 43329
b30668b7
VC
43330 * snames.ads:
43331 Modification of predefined names for project manager: added
43332 Implementation, Specification_Exceptions, Implementation_Exceptions,
43333 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43334 Default_Switches, _Languages, Builder, Cross_Reference,
43335 Finder. Removed Body_Part, Specification_Append, Body_Append,
43336 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43337 Gnatlink.
f8e0aa73 43338
b30668b7
VC
43339 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43340 Add comments.
f8e0aa73 43341
b30668b7
VC
43342 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43343 not that it is Nil_Variable_Value.
f8e0aa73 43344
b30668b7
VC
43345 * prj.ads: Add ??? for uncommented declarations
43346
9e94c78f 433472001-10-10 Ed Schonberg <schonber@gnat.com>
662e57b4 43348
f8e0aa73
AJ
43349 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43350 constant, do not indicate possible modification, so that gigi can
662e57b4
ES
43351 treat it as a bona fide constant.
43352
9e94c78f 433532001-10-10 Robert Dewar <dewar@gnat.com>
72e4357f
RD
43354
43355 * sem_prag.adb: Add processing for pragma External.
f8e0aa73 43356
72e4357f 43357 * snames.ads: Add entry for pragma External.
f8e0aa73 43358
72e4357f 43359 * par-prag.adb: Add pragma External.
f8e0aa73 43360
72e4357f
RD
43361 * snames.adb: Updated to match snames.ads.
43362
9e94c78f 433632001-10-10 Ed Schonberg <schonber@gnat.com>
7bc1c7df
ES
43364
43365 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43366 a dynamic task if the allocator appears in an indexed assignment
43367 or selected component assignment.
f8e0aa73
AJ
43368
43369 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43370 For a dynamic task in an assignment statement, use target of
7bc1c7df
ES
43371 assignment to generate meaningful name.
43372
9e94c78f 433732001-10-10 Ed Schonberg <schonber@gnat.com>
c84700e7 43374
f8e0aa73 43375 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
c84700e7
ES
43376 a generic package.
43377
43378 * einfo.ads: Body_Entity is also defined for generic package.
43379 Documentation change only
f8e0aa73
AJ
43380
43381 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43382 others_choice for a discriminated component initialization,
43383 convert discriminant references into the corresponding discriminals.
43384
43385 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43386 only if original type is private and expression has to be wrapped
c84700e7 43387 in a conversion.
f8e0aa73
AJ
43388
43389 * checks.adb:
43390 (Apply_Constraint_Check): Do not perform length check
c84700e7 43391 if expression is an aggregate with only an others_choice.
f8e0aa73 43392 (Length_N_Cond): two references to the same in_parameter
c84700e7
ES
43393 (typically the discriminal in an init_proc) denote the same value.
43394 Two useful optimization uncovered by bugfixes above.
43395
9e94c78f 433962001-10-10 Robert Dewar <dewar@gnat.com>
d8d80dcd 43397
f8e0aa73 43398 * xeinfo.adb: Change int to char in translation of enumeration types.
d8d80dcd
RD
43399 This fixes a problem in the C representation of component alignment.
43400 Add 2001 to copyright notice
43401
9e94c78f 434022001-10-10 Richard Kenner <kenner@gnat.com>
a8fee948 43403
f8e0aa73 43404 * decl.c: (validate_size): Do check size of object of integral type
a8fee948
RK
43405 if it is a packed array type.
43406
9e94c78f 434072001-10-10 Richard Kenner <kenner@gnat.com>
c2d7fe59 43408
f8e0aa73 43409 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
c2d7fe59
RK
43410 VAR_DECL for constant if not Is_Public but -O0.
43411
fb75e100
RK
434122001-10-10 Richard Kenner <kenner@gnat.com>
43413
43414 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43415
1724557a
GB
434162001-10-10 Geert Bosch <bosch@gnat.com>
43417
f8e0aa73 43418 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
1724557a
GB
43419 use '/' as switch character, allowing for absolute file names.
43420
9f2f9eb6
JM
434212001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
43422
43423 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43424 FSF address.
43425
8fecf41d
GB
434262001-10-08 Geert Bosch <bosch@gnat.com>
43427
43428 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43429 Automatically build utilities when files need to be regenerated.
43430
589f1edf
GB
434312001-10-08 Geert Bosch <bosch@gnat.com>
43432
43433 * xsnames.adb: New utility for updating snames.ads and snames.adb
43434
67f28219
ZW
434352001-10-08 Zack Weinberg <zack@codesourcery.com>
43436
43437 * Make-lang.in (ADAFLAGS): Add -W -Wall.
43438 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43439 (gnat1): Also depend on attribs.o.
43440 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43441 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43442 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43443 (ADAFLAGS): Add -W -Wall.
43444 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43445 take out CFLAGS.
43446
43447 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43448 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43449 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43450 Use $(ADAC), not $(CC), as compilation command.
43451
43452 (gnattools): Depend directly on tools to build, don't use
43453 recursive make.
43454 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43455
43456 * einfo.h, sinfo.h: New files (autogenerated).
43457
295ef2bb
RH
434582001-10-08 Richard Henderson <rth@redhat.com>
43459
43460 * comperr.adb (Abort_In_Progress): New.
43461 (Compiler_Abort): Use it to prevent recursion.
43462
9e94c78f 434632001-10-08 Robert Dewar <dewar@gnat.com>
5c736541
RD
43464
43465 * atree.adb: Set Error_Posted in Error node, helps error recovery.
67f28219
ZW
43466
43467 * par-endh.adb (Output_End_Expected): We should also not test
5c736541 43468 Error_Posted on the Error node, since now it is always set.
67f28219
ZW
43469
43470 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
5c736541 43471 to help error recovery. Part of general work on 9407-004.
67f28219 43472
5c736541 43473 * par.adb: Add ??? for misuse of error
67f28219 43474
5c736541
RD
43475 * sem_res.adb:
43476 (Resolve): Defend against Error, fixes 9407-003.
43477 (Resolve_Discrete_Subtype_Indication): Defend against Error.
67f28219
ZW
43478
43479 * sinfo.ads (N_Error): Now has Etype field (which will be set
5c736541
RD
43480 to Any_Type to help error recovery).
43481
9e94c78f 434822001-10-08 Richard Kenner <kenner@gnat.com>
a153ae15
RK
43483
43484 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43485 Consistently set MEM attributes from expression; fixes
43486 bootstrap failure on x86.
43487
9e94c78f 434882001-10-08 Geert Bosch <bosch@gnat.com>
743f3c7b
GB
43489
43490 * 5oosinte.adb: Add 2001 to copyright notice.
43491
9e94c78f 434922001-10-08 Geert Bosch <bosch@gnat.com>
210c4ef4
GB
43493
43494 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43495
43496 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43497
cc712abf
JM
434982001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
43499
43500 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43501
9e94c78f 435022001-10-05 Geert Bosch <bosch@gnat.com>
4c4abc0f
GB
43503
43504 * adaint.h: Small formatting fix.
43505
7f50e2e3
GB
435062001-10-04 Geert Bosch <bosch@gnat.com>
43507
43508 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43509 Arg is int, not FILE *, in dummy version of functions.
67f28219 43510
7f50e2e3
GB
43511 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43512 Arg is int, not FILE *.
43513
5d1a9698
GB
435142001-10-04 Geert Bosch <bosch@gnat.com>
43515
43516 * 3lsoccon.ads: Added file, missed with initial check ins.
67f28219 43517
5d1a9698
GB
43518 * 4lintnam.ads: Fix header format.
43519 Change Linux to GNU/Linux.
67f28219 43520
5d1a9698
GB
43521 * 5iosinte.adb: Change Linux to GNU/Linux.
43522
43523 * 5iosinte.ads: Change Linux to GNU/Linux.
67f28219 43524
5d1a9698 43525 * 5itaprop.adb: Change Linux to GNU/Linux.
67f28219 43526
5d1a9698
GB
43527 * 5itaspri.ads: Change Linux to GNU/Linux.
43528 Update copyright notice.
67f28219 43529
5d1a9698 43530 * 5lintman.adb: Change Linux to GNU/Linux.
67f28219 43531
5d1a9698 43532 * 5lml-tgt.adb: Change Linux to GNU/Linux.
67f28219 43533
5d1a9698 43534 * 5losinte.ads: Change Linux to GNU/Linux.
67f28219 43535
5d1a9698 43536 * 5lsystem.ads: Change Linux to GNU/Linux.
67f28219 43537
5d1a9698 43538 * 5qosinte.adb: Change Linux to GNU/Linux.
67f28219 43539
5d1a9698 43540 * 5qosinte.ads: Change Linux to GNU/Linux.
67f28219 43541
5d1a9698 43542 * 5qparame.ads: Change Linux to GNU/Linux.
67f28219 43543
5d1a9698 43544 * 5qtaprop.adb: Change Linux to GNU/Linux.
67f28219 43545
5d1a9698
GB
43546 * 5qtaspri.ads: Change Linux to GNU/Linux.
43547 Add 2001 to copyright notice.
67f28219 43548
5d1a9698
GB
43549 * 5vintman.ads: Change Linux to GNU/Linux.
43550 Fix header format. Add 2001 to copyright notice.
67f28219 43551
5d1a9698 43552 * g-soccon.ads: Change Linux to GNU/Linux.
67f28219 43553
5d1a9698
GB
43554 * g-trasym.ads: Change Linux to GNU/Linux.
43555 Add 2001 to copyright notice.
67f28219 43556
5d1a9698 43557 * memtrack.adb: Change Linux to GNU/Linux.
67f28219 43558
5d1a9698
GB
43559 * s-intman.ads: Change Linux to GNU/Linux.
43560 Add 2001 to copyright notice. Fix header format.
67f28219 43561
5d1a9698 43562 * s-stache.adb: Change Linux to GNU/Linux.
67f28219 43563
5d1a9698 43564 * adaint.c: Change Linux to GNU/Linux.
67f28219 43565
5d1a9698 43566 * cio.c: Change Linux to GNU/Linux.
67f28219 43567
5d1a9698 43568 * cstreams.c: Change Linux to GNU/Linux.
67f28219 43569
5d1a9698 43570 * init.c: Change Linux to GNU/Linux.
67f28219 43571
5d1a9698 43572 * gmem.c: Change Linux to GNU/Linux.
67f28219 43573
5d1a9698
GB
43574 * tracebak.c: Change Linux to GNU/Linux.
43575
43576
c25ca2d7
GB
435772001-10-02 Geert Bosch <bosch@gnat.com>
43578
43579 * misc.c (insert_default_attributes): Add dummy version.
This page took 5.91583 seconds and 5 git commands to generate.