1 2009-03-01 Eric Botcazou <ebotcazou@adacore.com>
4 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
5 call make_packable_type on fat pointer types.
6 <E_Array_Subtype>: Likewise.
7 <E_Record_Subtype>: Call make_packable_type on all record types
8 except for fat pointer types.
9 (make_packable_type): Likewise.
10 (gnat_to_gnu_field): Likewise.
12 2009-02-28 Eric Botcazou <ebotcazou@adacore.com>
14 * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
15 EH_MECHANISM change made on 2007-12-06.
17 2009-02-26 Andreas Schwab <schwab@suse.de>
20 * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
21 * gcc-interface/Makefile.in: Change all uses of $(srcdir),
22 $(fsrcdir) and $(fsrcpfx) to add ada subdir.
24 (target_cpu_default): Substitute.
26 2009-02-25 Laurent GUERBY <laurent@guerby.net>
28 * a-teioed.adb (Expand): Fix Result overflow.
30 2009-02-25 Laurent GUERBY <laurent@guerby.net>
32 * gcc-interface/Makefile.in: Fix multilib handling for
35 2009-02-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37 * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
39 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
41 * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
43 2009-02-16 Eric Botcazou <ebotcazou@adacore.com>
45 * gcc-interface/deftarg.c: Remove.
47 2009-02-10 Olivier Hainque <hainque@adacore.com>
48 Eric Botcazou <ebotcazou@adacore.com>
50 * gcc-interface/decl.c (enum alias_set_op): New enumeration.
51 (copy_alias_set): Rename into...
52 (relate_alias_sets): ...this. Add third parameter OP. Retrieve the
53 underlying array of unconstrained arrays for the new type as well.
54 If the old and new alias sets don't conflict, make one a subset of
55 the other as per the OP parameter.
56 (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
57 <E_Record_Type>: Do not copy the alias set for derived types.
58 For all types, make the alias set of derived types a superset of
59 that of their parent type.
60 (make_aligning_type): Adjust calls to copy_alias_set.
61 (make_packable_type): Likewise.
62 * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
63 Check for alias set conflict instead of strict equality to issue the
66 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
68 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
69 Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
70 (copy_alias_set): Assert that arrays have the same aliasing settings.
71 (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
73 2009-02-08 Eric Botcazou <ebotcazou@adacore.com>
75 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
76 Set TYPE_NONALIASED_COMPONENT on the array type.
78 2009-01-31 Laurent GUERBY <laurent@guerby.net>
80 * gcc-interface/Makefile.in: Fix mipsel linux handling.
82 2009-01-16 Jakub Jelinek <jakub@redhat.com>
84 * gcc-interface/Makefile.in: Fix multilib handling for
87 2009-01-12 Eric Botcazou <ebotcazou@adacore.com>
89 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
90 only useless conversions around renamed objects.
92 2009-01-11 Eric Botcazou <ebotcazou@adacore.com>
94 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
95 the _Tag field before any discriminants in the field list.
96 (components_to_record): Remove obsolete comment.
98 2008-12-09 Jakub Jelinek <jakub@redhat.com>
101 * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
102 * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
105 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
108 * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
110 2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
113 * g-comver.adb (Ver_Len_Max): Fix inconsistency.
115 2008-11-27 Eric Botcazou <ebotcazou@adacore.com>
117 * gcc-interface/decl.c: Fix various nits.
119 2008-11-20 Eric Botcazou <ebotcazou@adacore.com>
121 * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
123 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
126 * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
127 special-case boolean types. Propagate the name.
128 * gcc-interface/targtyps.c: Tweak comment.
130 2008-11-15 Geert Bosch <bosch@adacore.com>
132 * gcc-interface/trans.c (emit_check): Put back a final save_expr
133 to prevent exponential expansion during gimplification.
135 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
137 * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
139 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
141 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
142 initialized to a static constant to be statically allocated even if
143 they are of a padding type, provided the original type also has
146 2008-11-15 Laurent Guerby <laurent@guerby.net>
149 * gcc-interface/Makefile.in: Add multilib handling for x86_64
151 * system-darwin-x86_64.ads: New file.
153 2008-11-13 Olivier Hainque <hainque@adacore.com>
155 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
156 Turn Ada Pure on subprograms back into GCC CONST when eh constructs
157 are explicit to the middle-end. Tidy.
159 2008-11-09 Eric Botcazou <ebotcazou@adacore.com>
161 * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
162 (MINUS_NOMOD_EXPR): Likewise.
163 * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
165 <PLUS_NOMOD_EXPR>: New case.
166 <MINUS_NOMOD_EXPR>: Likewise.
167 * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
168 assignment statement instead of using an increment operator.
170 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
172 * system-irix-n64.ads: New file.
173 * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
176 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
179 * system-solaris-x86_64.ads: New file.
180 * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
182 2008-11-07 Bechir Zalila <bechir.zalila@gmail.com>
183 Eric Botcazou <ebotcazou@adacore.com>
186 * lib.ads: (Enable_Switch_Storing): Declare.
187 * lib.adb: (Enable_Switch_Storing): New procedure.
188 * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
189 * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
190 (Display): Never display -gnatea
191 * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
193 2008-11-07 Thomas Quinot <quinot@adacore.com>
195 * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
196 for empty range in original base type, not converted result type.
198 2008-11-07 Geert Bosch <bosch@adacore.com>
200 * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
201 and result for call to __gnat_mulv64.
203 2008-11-07 Eric Botcazou <ebotcazou@adacore.com>
205 * gcc-interface/trans.c: Fix formatting nits.
207 2008-11-07 Geert Bosch <bosch@adacore.com>
209 * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
210 overflow check for constant result.
212 2008-11-07 Geert Bosch <bosch@adacore.com>
214 * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
215 overflow check for addition/subtraction if neither operand is constant.
217 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
219 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
220 files for the target-dependent part of the runtime.
221 (SPARC/Linux): Likewise.
223 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
225 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
226 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
229 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
231 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
234 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
237 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
238 Generate a call to memmove for an assignment between overlapping
241 2008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
244 * gcc-interface/Makefile.in: Add multilib handling for
245 s390-linux and s390x-linux.
247 2008-10-24 Jakub Jelinek <jakub@redhat.com>
249 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
250 check-acats-subtargets and check-gnat-subtargets.
251 (check_acats_targets): New variable.
252 (check-acats-subtargets, check-acats%): New targets.
253 (check-acats): If -j is used and CHAPTERS is empty, run the testing
254 in multiple make goals, possibly parallel, and afterwards run
255 dg-extract-results.sh to merge the sum and log files.
257 2008-10-17 Geert Bosch <bosch@adacore.com>
259 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
260 to use only a single check instead of three, and avoid unnecessary
262 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
263 creating more opportunities for optimizations.
265 2008-10-13 Jakub Jelinek <jakub@redhat.com>
268 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
271 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
273 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
274 dealing with volatileness to after code dealing with renaming.
276 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
278 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
279 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
281 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
283 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
284 (unchecked_convert): Use it to disable problematic folding with
285 VIEW_CONVERT_EXPR in the general case. Always disable it for the
286 special VIEW_CONVERT_EXPR built for integral types and cope with
287 its addressability issues by preserving the first conversion.
289 2008-10-01 Andreas Schwab <schwab@suse.de>
291 * system-linux-ppc64.ads: New file.
292 * gcc-interface/Makefile.in: Add multilib handling for
295 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
297 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
298 to that of ptr_mode instead of word_mode.
300 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
303 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
305 2008-09-25 Samuel Tardieu <sam@rfc1149.net>
308 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
309 instead of deprecated FILE_WRITE_PROPERTIES.
311 2008-09-22 Olivier Hainque <hainque@adacore.com>
313 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
314 are never assigned, volatile entities are not constant for code
317 2008-09-21 Laurent Guerby <laurent@guerby.net>
320 * gcc-interface/Makefile.in: Add multilib handling for x86_64
322 * system-linux-sparcv9.ads: New file.
324 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
326 * exp_dbug.ads: Document new convention for the XVZ variable.
327 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
328 debug info if necessary for the type padding the component type.
329 <E_Array_Subtype>: Likewise.
330 (maybe_pad_type): Emit the XVZ variable in units.
331 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
332 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
333 on statements generated to initialize the parameter attributes cache.
334 Set the source line of the end label of the body on the special return
335 statement built for a procedure with copy-in copy-out parameters.
337 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
340 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
341 inlined external functions if they contain a nested function not
344 2008-09-18 Jan Hubicka <jh@suse.cz>
346 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
347 (end_subprog_body): Do not set DECL_INLINE.
349 2008-09-17 Pascal Rigaux <pixel@mandriva.com>
352 * gnat_ugn.texi: Use proper format in direntry.
354 2008-09-15 Eric Botcazou <ebotcazou@adacore.com>
356 * gcc-interface/trans.c (gigi): Declare the name of the compilation
357 unit as the first global name.
359 2008-09-14 Jan Hubicka <jh@suse.cz>
361 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
363 2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
365 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
366 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
367 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
368 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
369 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
370 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
371 gcc-interface/gigi.h, gcc-interface/trans.c,
372 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
373 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
374 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
375 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
376 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
377 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
378 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
379 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
381 * gnathtml.pl: Fix typos.
383 2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
385 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
386 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
387 layer. RTEMS binds to OS provided adapter routines so there are
388 no modifications to s-osinte-rtems.adb.
390 2008-09-09 Arnaud Charlet <charlet@adacore.com>
391 Joel Sherrill <joel.sherrill@oarcorp.com>
393 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
395 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
397 * s-interr-hwint.adb: New file.
399 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
400 needed by s-interr-hwint.adb.
402 * s-osinte-vxworks-kernel.adb: New file.
404 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
406 * s-stchop-rtems.adb: Add file missed in early commit. Already
407 referenced in gcc-interface/Makefile.in.
409 2008-08-30 Thomas Quinot <quinot@adacore.com>
411 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
412 be built even without a separate libada directory.
414 2008-08-22 Arnaud Charlet <charlet@adacore.com>
416 * lib-xref.ads: Fix typo in subprogram reference definition.
418 2008-08-22 Robert Dewar <dewar@adacore.com>
420 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
423 * g-trasym.adb: Ditto
425 * s-utf_32.adb (Get_Category): Fix obvious typo
427 * s-wwdcha.adb: Minor code reorganization
430 2008-08-22 Robert Dewar <dewar@adacore.com>
432 * checks.adb (Determine_Range): Deal with values that might be invalid
434 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
435 configuration switches.
437 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
439 * sem_prag.adb: Implement pragma Assume_No_Default_Values
441 * snames.adb, snames.ads, snames.h:
442 Add entries for pragma Assume_No_Invalid_Values
444 * switch-c.adb: Add processing for -gnatB switch
446 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
448 2008-08-22 Javier Miranda <miranda@adacore.com>
450 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
451 init procedure all the expanded code associated with the spec of
452 task types and protected types.
454 2008-08-22 Gary Dismukes <dismukes@adacore.com>
456 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
457 component expression copies rather than directly setting Etype and
458 Is_Static_Expression.
460 2008-08-22 Gary Dismukes <dismukes@adacore.com>
462 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
463 private types to allow for types derived from a private type with
464 preelaborable initialization, but return False for a private extension
465 (unless it has the pragma).
467 2008-08-22 Robert Dewar <dewar@adacore.com>
469 * opt.ads: Minor code reorganization (put entries in alpha order)
471 2008-08-22 Pascal Obry <obry@adacore.com>
473 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
476 2008-08-22 Geert Bosch <bosch@adacore.com>
478 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
479 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
481 2008-08-22 Doug Rupp <rupp@adacore.com>
483 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
487 (__gnat_set_features): New function.
488 (__gnat_features_set): New tracking variable.
489 (__gl_no_malloc_64): New feature global variable
491 2008-08-22 Ed Schonberg <schonberg@adacore.com>
493 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
494 use_type_clause in an instance.
496 2008-08-22 Bob Duff <duff@adacore.com>
498 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
500 2008-08-22 Robert Dewar <dewar@adacore.com>
502 * exp_ch6.adb: Minor reformatting
504 * exp_ch7.adb: Minor reformatting
506 * exp_ch7.ads: Put routines in proper alpha order
508 * exp_dist.adb: Minor reformatting
510 2008-08-22 Vincent Celier <celier@adacore.com>
512 * prj.ads: Minor comment update
514 2008-08-22 Robert Dewar <dewar@adacore.com>
516 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
518 2008-08-22 Ed Schonberg <schonberg@adacore.com>
521 (Base_Init_Proc): For a protected subtype, use the base type of the
522 corresponding record to locate the propoer initialization procedure.
524 2008-08-22 Robert Dewar <dewar@adacore.com>
527 (In_Subrange_Of): New calling sequence
528 (Determine_Range): Prepare for new processing using base type
531 (Compile_Time_Compare): Use new calling sequence
534 (Compile_Time_Compare): Use new calling sequence
537 (Compile_Time_Compare): New calling sequence allows dealing with
539 (In_Subrange_Of): Ditto
542 (Compile_Time_Compare): New calling sequence allows dealing with
544 (In_Subrange_Of): Ditto
546 2008-08-22 Pascal Obry <obry@adacore.com>
548 * adaint.c: Fix possible race condition on win32_wait().
550 2008-08-22 Bob Duff <duff@adacore.com>
552 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
553 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
554 exp_intr.adb, exp_ch3.adb: Rename:
555 Exp_Ch7.Controlled_Type => Needs_Finalization
556 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
557 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
559 (Has_Some_Controlled_Component): Fix bug in array case.
561 2008-08-22 Robert Dewar <dewar@adacore.com>
563 * sem_ch8.adb: Minor reformatting
565 2008-08-22 Kevin Pouget <pouget@adacore.com>
567 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
568 Shared_Var_Close procedure specifications from package spec to package body.
570 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
571 RE_Shared_Var_WOpen entries.
573 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
574 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
576 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
578 * init.c: adjust EH support code on Alpha/Tru64 as well.
580 * raise-gcc.c: Add back a couple of comments.
582 2008-08-22 Ed Schonberg <schonberg@adacore.com>
584 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
585 involved and the return type is class-wide, use the type of the expression
586 for the generated access type. Suppress useless discriminant checks on the
589 2008-08-22 Bob Duff <duff@adacore.com>
591 * exp_ch7.adb: Minor comment fix
593 * exp_ch6.ads: Minor comment fix
595 2008-08-22 Thomas Quinot <quinot@adacore.com>
597 * sem_ch8.adb: Minor reformatting
598 Minor code reorganization (introduce subprogram to factor duplicated
601 2008-08-22 Sergey Rybin <rybin@adacore.com>
603 * gnat_ugn.texi: Change the description of gnatcheck default rule
606 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
608 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
609 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
610 do not adjust the PC anymore.
611 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
612 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
614 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
615 instead of _Unwind_GetIP.
617 2008-08-22 Gary Dismukes <dismukes@adacore.com>
619 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
620 with a range is transformed into a positional aggregate, any copied
621 component literals should be marked Is_Static_Expression.
623 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
624 not being known at at compile time when Configurable_Run_Time_Mode is
627 2008-08-22 Robert Dewar <dewar@adacore.com>
630 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
631 Read or Input attribute.
633 2008-08-22 Ed Schonberg <schonberg@adacore.com>
635 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
636 clauses in related units is redundant, if one of the units is a package
637 instantiation, use its instance_spec to determine which unit is the
638 ancestor of the other.
640 2008-08-22 Javier Miranda <miranda@adacore.com>
642 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
643 attributes add missing support to handle designated types that come
644 from the limited view.
646 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
648 2008-08-22 Sergey Rybin <rybin@adacore.com>
650 * vms_data.ads: Add entry for new gnatcheck -mNNN option
652 * gnat_ugn.texi: Add description for gnatcheck option '-m'
654 2008-08-22 Sergey Rybin <rybin@adacore.com>
656 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
657 acoording to the latest changes in the metric rule interface
659 2008-08-22 Vincent Celier <celier@adacore.com>
661 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
662 (Check): Check if the file names registered in the ALI file for the
663 spec, the body and each of the subunits are the ones expected.
665 2008-08-22 Robert Dewar <dewar@adacore.com>
667 * g-catiio.adb: Code cleanup.
669 2008-08-20 Vincent Celier <celier@adacore.com>
671 * make.adb (Gnatmake): Remove extra space in version line
674 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
675 as the name may already have been entered in the table by the Project
678 2008-08-20 Jose Ruiz <ruiz@adacore.com>
680 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
681 weak symbols so we use the version provided by MaRTE when available.
683 2008-08-20 Emmanuel Briot <briot@adacore.com>
685 * g-catiio.ads, g-catiio.adb:
686 (Value): Avoid an unnecessary system call to Clock in most cases.
687 This call is only needed when only the time is provided in the string,
688 and ignored in all other cases. This is more efficient.
690 2008-08-20 Eric Botcazou <ebotcazou@adacore.com>
692 * raise-gcc.c: Fix formatting nits.
694 2008-08-20 Robert Dewar <dewar@adacore.com>
697 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
698 non-existing component clause.
700 * exp_ch5.adb: Minor reformatting
702 * g-comlin.adb: Minor reformatting
704 * make.adb: Minor reformatting
706 * prj-proc.adb: Minor reformatting
708 * stylesw.ads: Minor reformatting
710 2008-08-20 Vincent Celier <celier@adacore.com>
712 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
713 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
714 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
715 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
716 and a switch is not recognized by gnatmake.
717 (Gnatmake): Implement new scheme for gnatmake switches and global
718 compilation switches.
719 (Switches_Of): Try successively Switches (<file name>),
720 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
722 2008-08-20 Ed Schonberg <schonberg@adacore.com>
724 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
725 implement style check that overriding operations are explicitly marked
728 * style.ads (Missing_Overriding): new procedure that provides interface
731 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
732 that the declaration or body of overriding operations carries an
733 explicit overriding indicator.
736 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
737 explicit indicator should be present.
739 * sem_ch6.adb (Verify_Overriding_Indicator,
740 Check_Overriding_Indicator): If operation is overriding, check whether
741 declaration and/or body of subprogram should be present
743 2008-08-20 Vincent Celier <celier@adacore.com>
745 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
746 gprbuild when casing is MixedCase, whatever the casing of the letters
749 2008-08-20 Gary Dismukes <dismukes@adacore.com>
751 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
752 creating dummy init proc.
753 (Requires_Init_Proc): Return False in the case No_Default_Initialization
754 is in force and the type does not have associated default
755 initialization. Move test of Is_Public (with tests of restrictions
756 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
757 for default initialization.
759 2008-08-20 Jerome Lambourg <lambourg@adacore.com>
761 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
762 of any alias or prefix but having attached parameters (as \"-O2\").
764 2008-08-20 Robert Dewar <dewar@adacore.com>
766 * s-fileio.adb: Minor reformatting
768 2008-08-20 Thomas Quinot <quinot@adacore.com>
770 * exp_strm.adb (Build_Elementary_Input_Call,
771 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
772 selects the stream attribute routines for long float types.
774 2008-08-20 Vincent Celier <celier@adacore.com>
776 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
778 * prj.ads (Array_Data): Add a component Location
780 2008-08-20 Ed Schonberg <schonberg@adacore.com>
783 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
784 argument for ASIS and navigation use.
786 2008-08-20 Ed Schonberg <schonberg@adacore.com>
788 * einfo.ads: Add comment.
790 2008-08-20 Bob Duff <duff@adacore.com>
792 * sem_eval.ads: Minor comment fix.
794 2008-08-20 Bob Duff <duff@adacore.com>
796 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
797 folding. We were folding things like "False and then ...", but not
798 "X and then ..." where X is a constant whose value is known at compile
801 2008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
803 * exp_ch5.adb (Controlled_Type): New routine.
804 (Expand_N_Extended_Return_Statement): When generating a move of the
805 final list in extended return statements, check the type of the
806 function and in the case of double expanded return statements, the type
807 of the returned object.
808 (Expand_Simple_Function_Return): Perform an interface conversion when
809 the type of the returned object is an interface and the context is an
810 extended return statement.
812 2008-08-20 Ed Schonberg <schonberg@adacore.com>
814 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
815 and the full view is visible, set flag on full view as well.
817 2008-08-20 Thomas Quinot <quinot@adacore.com>
819 * g-comlin.adb: Minor reformatting
820 Minor code reorganization.
822 * freeze.adb: Minor reformatting
824 2008-08-20 Vincent Celier <celier@adacore.com>
826 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
827 source of another project.
829 2008-08-20 Pascal Obry <obry@adacore.com>
831 * s-os_lib.ads: Minor reformatting.
833 2008-08-20 Arnaud Charlet <charlet@adacore.com>
835 * gnatvsn.ads: Minor reformatting.
837 2008-08-20 Arnaud Charlet <charlet@adacore.com>
839 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
840 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
841 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
842 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
843 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
844 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
845 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
846 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
847 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
848 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
849 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
850 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
851 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
852 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
853 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
854 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
855 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
856 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
857 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
858 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
859 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
860 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
861 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
862 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
863 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
864 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
865 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
866 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
867 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
868 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
869 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
870 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
871 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
872 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
873 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
874 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
875 s-poosiz.adb, link.c: Fix copyright notice.
877 2008-08-20 Arnaud Charlet <charlet@adacore.com>
879 * g-comlin.ads: Update comments.
881 2008-08-20 Ed Schonberg <schonberg@adacore.com>
883 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
885 2008-08-20 Gary Dismukes <dismukes@adacore.com>
888 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
889 Make_Implicit_Exception_Handler when rewriting an exception handler with
890 a choice parameter, and pass the handler's Sloc instead of that of the
891 handled sequence of statements. Make_Implicit_Exception_Handler sets the
892 Sloc to No_Location (unless debugging generated code), which we don't
893 want for the case of a user handler.
895 2008-08-20 Robert Dewar <dewar@adacore.com>
897 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
900 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
901 now labeled as info msgs, not warnings.
903 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
905 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
907 * a-textio.adb: Remove redundant test.
909 * a-witeio.adb: Minor code reorganization
910 Remove redundant test found working on another issue
912 * a-ztexio.adb: Minor code reorganization
913 Remove redundant test found working on another issue
915 2008-08-20 Thomas Quinot <quinot@adacore.com>
917 * s-fileio.adb (Open) Use C helper function to determine whether a
918 given errno value corresponds to a "file not found" error.
920 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
922 2008-08-20 Jose Ruiz <ruiz@adacore.com>
924 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
925 to get access to the per-task errno variable.
926 (__set_errno for MaRTE): Do not redefine this function here since it is
927 already defined in MaRTE.
929 2008-08-20 Tristan Gingold <gingold@adacore.com>
931 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
933 2008-08-20 Robert Dewar <dewar@adacore.com>
935 * freeze.adb: Minor reformatting
937 * g-comlin.adb: Minor reformatting
939 * g-socket.adb: Minor reformatting
941 * g-socthi-mingw.adb: Minor reformatting
943 * g-stheme.adb: Minor reformatting
945 2008-08-20 Ed Schonberg <schonberg@adacore.com>
947 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
948 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
949 confusion between partial and full views of an ancestor of the context
950 type when the parent is a private extension declared in a parent unit,
951 and full views are available for the context type.
953 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
954 Robert Dewar <dewar@adacore.com>
957 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
959 Move comment in the right place.
960 * g-comver.adb (Version): Look for a zero-termination in
961 addition to a closing parenthesis.
963 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
965 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
966 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
967 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
968 Is_Package_Or_Generic_Package instead of hand-crafted tests.
970 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
973 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
976 2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
978 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
980 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
982 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
983 for back-copy statements in lieu of that of the actual.
985 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
988 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
989 setjmp test consistently. Adjust for new behavior of flag_stack_check.
990 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
991 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
993 2008-08-13 Samuel Tardieu <sam@rfc1149.net>
996 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
997 * sem_attr.adb (Check_Type): The current instance of a protected
998 object is not a type name.
999 (Analyze_Access_Attribute): Accept instances of protected objects.
1000 (Analyze_Attribute, Attribute_Address clause): Ditto.
1001 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1002 the prefix as being the current instance if needed.
1004 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1006 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1007 Remove duplicate s-win32.o. Add s-winext.o.
1009 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1011 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1012 with SOSC.SOCK__STREAM.
1013 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1016 2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1018 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1019 * gsocket.h, socket.c: Update to support RTEMS.
1020 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1022 2008-08-10 Samuel Tardieu <sam@rfc1149.net>
1023 Robert Dewar <dewar@adacore.com>
1025 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1026 left argument even when right argument is 0.
1027 (Expand_N_Op_Mod): Ditto when right argument is 1.
1028 (Expand_N_Op_Multiply): Ditto when any argument is 0.
1029 (Expand_N_Op_Rem): Ditto when right argument is 1.
1031 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1033 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1036 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1038 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1039 from Freeze_Entity. Used to generate cross-reference information for
1040 types declared in generic packages.
1042 2008-08-08 Thomas Quinot <quinot@adacore.com>
1044 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1047 2008-08-08 Thomas Quinot <quinot@adacore.com>
1050 On Windows, include <errno.h> and redefine only selected errno values
1051 from their <winsock2.h> definitions.
1053 * s-osinte-freebsd.ads: Minor reformatting
1055 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1057 * g-soccon.ads: New file.
1059 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1060 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1061 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1062 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1063 unit, to allow building software that depends on this internal unit
1064 with both older and newer compilers.
1066 2008-08-08 Robert Dewar <dewar@adacore.com>
1068 * s-strxdr.adb: Minor reformatting
1070 2008-08-08 Bob Duff <duff@adacore.com>
1072 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1073 checking for integer operations (including division by zero)", which
1074 is wrong -- divide by zero is not part of overflow checking.
1075 Also added misc clarification about what check-suppression means.
1077 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1079 2008-08-08 Jerome Lambourg <lambourg@adacore.com>
1081 * g-comlin.adb (Add_Switch): Handle addition of switches at the
1082 begining of the command line.
1083 (Append, Add): Renaming of Append to Add as this now allows addition
1084 at the begining of the list.
1086 * g-comlin.ads (Add_Switch): Handle addition of switches at the
1087 begining of the command line.
1089 2008-08-08 Thomas Quinot <quinot@adacore.com>
1092 (Name): Document application scope (only legacy PC serial ports on
1095 2008-08-08 Thomas Quinot <quinot@adacore.com>
1097 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1098 previous change, not needed after all.
1100 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1102 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1103 exclusion indicator is present
1105 2008-08-08 Robert Dewar <dewar@adacore.com>
1107 * g-comlin.adb: Minor code reorganization
1110 * g-comlin.ads: Minor reformatting
1112 * s-fileio.adb: Minor reformatting
1114 * sem_attr.adb: Minor code reorganization (use Nkind_In)
1117 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
1119 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1120 with s-oscons-tmplt.i.
1122 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
1124 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1126 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1128 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1131 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1132 of a formal parameter of an incomplete type. Improve error message for
1133 other improper uses of incomplete types.
1135 2008-08-06 Robert Dewar <dewar@adacore.com>
1137 * gnat_ugn.texi: Clarify -gnato documentation
1139 2008-08-06 Thomas Quinot <quinot@adacore.com>
1141 * gcc-interface/Makefile.in,
1142 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1143 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1144 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1145 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1146 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1147 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1148 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1149 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1150 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1151 Remove GNAT.Sockets.Constants. This internal package is replaced by
1152 System.OS_Constants.
1154 2008-08-06 Thomas Quinot <quinot@adacore.com>
1156 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1157 Remove obsolete targets referencing gen-soccon
1158 When generating s-oscons.ads, use a file name that includes the
1159 THREAD_KIND, to ensure that the (potentially different) version from a
1160 previous build with a different threads flavour does not get reused.
1162 2008-08-06 Thomas Quinot <quinot@adacore.com>
1164 * sem_res.adb: Minor reformatting
1166 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1167 only when the operating system reports a non-existing file or directory
1168 (ENOENT), otherwise raise Name_Error.
1170 * exp_ch11.adb: Minor reformatting
1172 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1174 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1175 incomplete, add the access_to_subprogram type to the list of private
1176 dependents only if the incomplete type will be completed in the current
1178 (Build_Discriminant_Constraints): If the type of the discriminant is
1179 access_to_variable, reject a constraint that is access_to_constant.
1181 2008-08-06 Thomas Quinot <quinot@adacore.com>
1183 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1184 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1185 g-sttsne-dummy.ads: New files.
1187 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1188 with pragma Unimplemented_Unit for sockets packages on Nucleus.
1190 2008-08-06 Pascal Obry <obry@adacore.com>
1192 * adaint.c: Another fix for ACL support on Windows.
1194 2008-08-06 Javier Miranda <miranda@adacore.com>
1196 * exp_disp (Expand_Interface_Actuals): Adds missing support for
1197 expansion of calls to subprograms using selected components.
1199 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1201 * sem_res.adb (Resolve_Call): Use base type to determine whether a
1202 dereference is needed because a subtype of an access_to_subprogram is
1203 simply an access-subtype
1205 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
1207 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1208 parameters, always specify the expected separator.
1210 2008-08-06 Thomas Quinot <quinot@adacore.com>
1212 * xnmake.adb: Use new XUtil package for platform independent text
1215 2008-08-06 Vincent Celier <celier@adacore.com>
1217 * gnat_ugn.texi: Document compiler switch -gnateG
1219 2008-08-06 Quentin Ochem <ochem@adacore.com>
1221 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1222 in the case of an empty pattern size.
1223 (Compute_Result): Do not do any computation in the case of an empty
1225 (Report_Result): Fixed computation of the overflow guard.
1227 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1229 * g-awk.adb (Finalize): Do not use directly objects of the type in the
1230 finalization routine to prevent elaboration order anomalies in new
1231 finalization scheme.
1233 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1235 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1236 declaration for the same type.
1238 2008-08-06 Thomas Quinot <quinot@adacore.com>
1240 * sem.adb: Minor rewording (comment)
1242 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
1244 * g-comlin.adb (Define_Switch, Get_Switches): New.
1245 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1246 ungrouping switches.
1247 (For_Each_Simple_Switch): Allow more control over parameters handling.
1248 This generic method now allows ungrouping of switches with parameters
1249 and switches with more than one letter after the prefix.
1250 (Set_Command_Line): Take care of switches that are prefixed with a
1251 switch handling parameters without delimiter (-gnatya and -gnaty3 for
1253 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1254 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1256 (Start, Alias_Switches, Group_Switches): Take care of parameters
1257 possibly present inside a group.
1259 * g-comlin.ads (Define_Switch): New method used to define a list of
1260 expected switches, that are necessary for correctly ungrouping switches
1261 with more that one character after the prefix.
1262 (Get_Switches): Method that builds a getopt string from the list of
1263 switches as set previously by Define_Switch.
1264 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1265 status of the operation. Also allow the removal of switches with
1267 (Command_Line_Configuration_Record): Maintain a list of expected
1270 2008-08-06 Doug Rupp <rupp@adacore.com>
1272 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1273 TARGET_MALLOC64 clear.
1275 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1276 if TARGET_MALLOC64 clear.
1278 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1279 (TARGET_MALLC64): New macro. Default to clear.
1281 2008-08-06 Doug Rupp <rupp@adacore.com>
1283 * gcc-interface/utils2.c (snames.h) Include
1284 (TARGET_ABI_OPEN_VMS): Initialize.
1285 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1288 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1290 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1291 null exclusion in a discriminant declaration
1293 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1294 indicators when type is not an access type.
1296 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1297 indicators when type is not an access type.
1299 2008-08-06 Javier Miranda <miranda@adacore.com>
1301 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1302 with the target interface before expanding the code of the interface
1305 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1308 (Freeze_Entity): A deferred constant does not violate the restriction
1309 No_Default_Initialization,
1311 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1312 can carry a null exclusion indicator, and on which an error may be
1313 posted if the indicator is redundant.
1315 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1316 does not apply to a subtype mark that already excludes null.
1318 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1319 exclusion does not apply to a subtype mark that already excludes null.
1321 2008-08-05 Thomas Quinot <quinot@adacore.com>
1323 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1325 2008-08-05 Doug Rupp <rupp@adacore.com>
1327 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1329 2008-08-05 Thomas Quinot <quinot@adacore.com>
1331 * gsocket.h: Make this file includable in a Nucleus environment, which
1332 does not support sockets.
1334 * socket.c: Remove Nucleus-specific hack.
1336 2008-08-05 Pascal Obry <obry@adacore.com>
1338 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1340 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1343 (Analyze_Attribute, case 'Result): handle properly the case where some
1344 operand of the expression in a post-condition generates a transient
1347 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1348 right-hand side when it is an anonymous access_to_subprogram, to force
1349 static accessibility check when needed.
1351 2008-08-05 Sergey Rybin <rybin@adacore.com>
1353 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1354 rule according to the change in the rule option.
1355 Add documentation for -gnatw.b/-gnatw.B
1357 2008-08-05 Robert Dewar <dewar@adacore.com>
1359 * ug_words: Add entries for -gnatw.b/-gnatw.B
1361 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1363 2008-08-05 Vincent Celier <celier@adacore.com>
1365 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1368 * a-ztdeio.adb: Ditto.
1370 2008-08-05 Pascal Obry <obry@adacore.com>
1372 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1375 2008-08-05 Vincent Celier <celier@adacore.com>
1378 (Wide_String_To_String): Returns a String with the same 'First as its
1380 (Wide_Wide_String_To_String): Ditto
1383 (Wide_String_To_String): Document that the lowest index of the returned
1384 String is equal to S'First.
1386 2008-08-05 Thomas Quinot <quinot@adacore.com>
1388 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1390 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1393 2008-08-05 Robert Dewar <dewar@adacore.com>
1395 * opt.ads (Warn_On_Biased_Representation): New flag
1398 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1399 representation is required.
1400 (Minimum_Size): Don't allow biasing if enum rep clause case
1403 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1404 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1406 * usage.adb: Add lines for -gnatw.b/B switches
1408 2008-08-05 Pascal Obry <obry@adacore.com>
1410 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1412 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1414 2008-08-05 Thomas Quinot <quinot@adacore.com>
1416 * socket.c: Minor reformatting.
1418 2008-08-05 Robert Dewar <dewar@adacore.com>
1420 * sem_ch3.adb: Minor reformatting
1422 * prj-nmsc.adb: Minor reformatting
1424 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1426 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1427 visibility check on the component type if the simple test fails.
1429 2008-08-05 Jose Ruiz <ruiz@adacore.com>
1431 * init.c (__gnat_install_handler for linux): If we are building the
1432 Xenomai run time then we need to do two additional things: avoid
1433 memory swapping and transform the Linux environment task into a native
1436 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1437 time): Use interface to Xenomai native skin and avoid linux-specific
1438 way of setting CPU affinity.
1439 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1441 2008-08-05 Bob Duff <duff@adacore.com>
1443 * checks.ads: Minor comment fix
1445 2008-08-05 Thomas Quinot <quinot@adacore.com>
1447 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1448 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1451 2008-08-05 Robert Dewar <dewar@adacore.com>
1453 * mlib.adb: Minor code reorganization
1456 * make.adb: Minor reformatting
1458 * prj-attr.ads: Minor reformatting
1460 * s-os_lib.adb: Minor reformatting
1462 * s-fileio.adb: Minor code reorganization
1465 * prj.ads: Minor reformatting
1467 2008-08-05 Bob Duff <duff@adacore.com>
1469 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1470 unresolved initial value of "null", because it causes implicitly
1471 generated "=" operators to be ambiguous, and because this type should
1472 not be passed to gigi.
1474 2008-08-05 Vincent Celier <celier@adacore.com>
1476 * mlib.adb: Update comments.
1478 * make.adb (Switches_Of): Check for Switches (others), before checking
1479 for Default_Switches ("Ada").
1480 (Gnatmake): Use Builder'Switches (others) in preference to
1481 Builder'Default_Switches ("Ada") if there are several mains.
1484 (Add_Attribute): Add component Others_Allowed in Attribute_Record
1488 Add markers to indicates that attributes Switches allow others as index
1489 (Others_Allowed_For): New Boolean function, returning True for
1490 attributes with the mark.
1491 (Initialize): Recognize optional letter 'O' as the marker for
1492 associative array attributes where others is allowed as the index.
1495 (Others_Allowed_For): New Boolean function
1496 (Attribute_Record): New Boolean component Others_Allowed
1499 (Parse_Attribute_Declaration): For associative array attribute where
1500 others is allowed as the index, allow others as an index.
1503 (Process_Binder): Skip associative array attributes with index others
1504 (Process_Compiler): Ditto
1507 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1508 index is All_Other_Names.
1511 (All_Other_Names): New constant
1514 (Process_Declarative_Items): Skip associative array attribute when index
1515 is reserved word "others".
1517 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
1519 * gen-oscons.c: Adapt for VMS where termios.h is not available.
1521 2008-08-05 Thomas Quinot <quinot@adacore.com>
1523 * a-rttiev.adb: Minor reformatting (comments)
1525 * gen-soccon.c: Rename to gen-oscons.c
1527 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1528 GNAT.Sockets.Constants.
1529 Add new constants for GNAT.Serial_Communications and System.File_IO.
1531 2008-08-05 Javier Miranda <miranda@adacore.com>
1533 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1534 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1535 implementation of this routine has been simplified.
1537 2008-08-05 Pascal Obry <obry@adacore.com>
1539 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1540 Set_Read_Only Win32 implementation.
1542 2008-08-05 Thomas Quinot <quinot@adacore.com>
1544 * exp_strm.adb: Minor reformatting (comments)
1546 * sem_ch12.adb: Minor reformatting.
1548 2008-08-05 Robert Dewar <dewar@adacore.com>
1550 * sem_ch3.adb: Minor reformatting
1552 * checks.adb: Minor reformatting
1554 2008-08-05 Thomas Quinot <quinot@adacore.com>
1556 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1557 restriction on Prefix.
1559 2008-08-05 Jerome Lambourg <lambourg@adacore.com>
1561 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1562 methods needed to handle switch sections when building a command line.
1563 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1564 Current_Section): New public methods or methods modified to handle
1565 building command lines with sections.
1566 (Set_Command_Line): Take into account sections when analysing a switch
1568 (Start): Sort the switches by sections before iterating the command line
1571 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1572 Is_New_Section, Current_Section): New methods or methods modified to
1573 handle building command lines with sections.
1575 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1577 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1578 discriminants, indicate that the corresponding object declaration has
1579 no initialization, to prevent spurious warnings when the access type is
1582 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1584 * sem_res.adb (Resolve_Call): If this is a call to the predefined
1585 Abort_Task, warn if the call appears within a protected operation.
1587 2008-08-04 Robert Dewar <dewar@adacore.com>
1589 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1591 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1594 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1595 anonymous access to protected subprogram that is the return type of the
1596 specification of a subprogram body.
1599 (Analyze_Subprogram_Body): if the return type is an anonymous access to
1600 subprogram, freeze it now to prevent access anomalies in the back-end.
1602 * exp_ch9.adb: Minor code cleanup.
1603 Make sure that new declarations are inserted into the tree before
1604 analysis (from code reading).
1606 2008-08-04 Robert Dewar <dewar@adacore.com>
1609 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1612 2008-08-04 Thomas Quinot <quinot@adacore.com>
1614 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1616 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1618 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1620 2008-08-04 Javier Miranda <miranda@adacore.com>
1622 * sem_prag.adb (Process_Convention): Add missing support for
1623 N_Private_Extension_Declaration nodes.
1625 2008-08-04 Robert Dewar <dewar@adacore.com>
1627 * exp_ch4.adb: Minor reformatting
1629 2008-08-04 Pascal Obry <obry@adacore.com>
1631 * adaint.h: Add missing prototype.
1633 * adaint.c: Refine support for Windows file attributes.
1635 2008-08-04 Robert Dewar <dewar@adacore.com>
1638 (Valid_Conversion): Catch case of designated types having different
1639 sizes, even though they statically match.
1641 2008-08-04 Javier Miranda <miranda@adacore.com>
1643 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1644 added in previous patch to handle access to subprograms.
1646 2008-08-04 Robert Dewar <dewar@adacore.com>
1649 (Freeze_Entity): Only check No_Default_Initialization restriction for
1650 constructs that come from source
1652 2008-08-04 Thomas Quinot <quinot@adacore.com>
1654 * exp_ch6.adb: Minor comment fix.
1656 * sem_ch4.adb: Minor reformatting.
1658 2008-08-04 Robert Dewar <dewar@adacore.com>
1660 * sem_res.adb: (Large_Storage_Type): Improve previous change.
1662 2008-08-04 Pascal Obry <obry@adacore.com>
1664 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1667 2008-08-04 Javier Miranda <miranda@adacore.com>
1669 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1670 for N_Formal_Object_Declaration nodes. Adding kludge required by
1671 First_Formal to provide its functionality with access to functions.
1672 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1673 for anonymous access types returned by functions.
1675 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1676 conversion of null-excluding access types (required only once to force
1677 the generation of the required runtime check).
1679 * sem_type.adb (Covers): minor reformating
1681 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1682 with internally generated nodes. Avoid generating the error inside init
1685 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1686 (Resolve_Null): Generate the null-excluding check in case of assignment
1687 to a null-excluding object.
1688 (Valid_Conversion): Add missing support for anonymous access to
1691 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1692 anonymous access types whose designated type is an itype. This case
1693 occurs with anonymous access to protected subprograms types.
1694 (Analyze_Return_Type): Add missing support for anonymous access to
1695 protected subprogram.
1697 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1698 subprograms addition of missing check on matching convention. Required
1699 to properly handle access to protected subprogram types.
1701 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1702 null excluding access types.
1704 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1706 * sem_ch12.adb: Add comments
1708 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1709 access type and the allocator is not initialized, warn rather than
1712 2008-08-04 Robert Dewar <dewar@adacore.com>
1714 * exp_ch4.adb: Minor reformatting
1716 * exp_dist.adb: Minor reformatting
1718 * g-comlin.adb: Minor reformatting
1720 2008-08-04 Gary Dismukes <dismukes@adacore.com>
1722 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1723 target to the type of the aggregate in the case where the target object
1726 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1727 result type is class-wide and inherently limited, and the expression
1728 has a specific type, create a return object of the specific type, for
1729 more efficient handling of returns of build-in-place aggregates (avoids
1730 conversions of the class-wide return object to the specific type on
1731 component assignments).
1733 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1734 about a type mismatch for a class-wide function with a return object
1735 having a specific type when the object declaration doesn't come from
1736 source. Such an object can result from the expansion of a simple return.
1738 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1740 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1742 * gcc-interface/Makefile.in: Use 64bit-specific system files when
1743 compiling for 64bit windows.
1745 2008-08-04 Jerome Lambourg <lambourg@adacore.com>
1747 * g-comlin.adb (Group_Switches): Preserve the switch order when
1748 grouping and allow switch grouping of switches with more than one
1749 character extension (e.g. gnatw.x).
1750 (Args_From_Expanded): Remove this now obsolete method.
1752 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1754 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1755 chain at once, to ensure that type is properly decorated for back-end,
1756 when allocator appears within a loop.
1758 2008-08-04 Kevin Pouget <pouget@adacore.com>
1760 * snames.h, snames.adb, snames.ads:
1761 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1763 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1764 Build_To_Any_Call and Build_TypeCode_Call procedures.
1766 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1768 * rtsfind.ads: Add corresponding names.
1770 * tbuild.adb: Update prefix restrictions to allow '_' character.
1772 2008-08-04 Doug Rupp <rupp@adacore.com>
1774 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1775 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1776 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1777 use it. Calculate pointer range overflow using 64bit types.
1779 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1781 * sem_ch3.adb (Access_Definition): A formal object declaration is a
1782 legal context for an anonymous access to subprogram.
1784 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
1785 indirect call, report success to the caller to include possible
1788 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
1790 of the extended return is an anonymous access_to_subprogram type.
1793 (Resolve_Call): Insert a dereference if the type of the subprogram is an
1794 access_to_subprogram and the context requires its return type, and a
1795 dereference has not been introduced previously.
1797 2008-08-04 Arnaud Charlet <charlet@adacore.com>
1799 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
1800 gnatcheck support in GPS.
1802 2008-08-04 Vincent Celier <celier@adacore.com>
1804 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
1807 2008-08-04 Vincent Celier <celier@adacore.com>
1809 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
1810 variable, but don't check the resulting value as it has no impact on
1814 (Generate_Processed_File): New Boolean flag, set to True in the compiler
1815 when switch -gnateG is used.
1818 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
1819 when the source is modified by the preprocessor and there is no
1820 preprocessing errors.
1822 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
1825 (Load_File): Output the result of preprocessing if the source text was
1828 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
1830 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
1832 * ug_words: Add VMS equivalent for -gnateG
1835 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
1837 2008-08-04 Doug Rupp <rupp@adacore.com>
1839 * gcc-interface/utils2.c:
1840 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
1841 in 32bit descriptor.
1843 2008-08-04 Robert Dewar <dewar@adacore.com>
1845 * par-ch10.adb: Minor reformatting
1847 * i-cobol.adb: Minor reformatting.
1849 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1851 * sem_ch3.adb (Access_Definition): Create an itype reference for an
1852 anonymous access return type of a regular function that is not a
1855 2008-08-04 Vincent Celier <celier@adacore.com>
1857 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
1859 * snames.adb: New standard name Global_Compilation_Switches
1861 * snames.ads: New standard name Global_Compilation_Switches
1863 * make.adb: Correct spelling error in comment
1865 2008-08-04 Arnaud Charlet <charlet@adacore.com>
1867 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
1870 2008-08-04 Thomas Quinot <quinot@adacore.com>
1872 * sem_ch10.adb: Minor comment fix.
1874 2008-08-04 Robert Dewar <dewar@adacore.com>
1876 * restrict.adb: Improved messages for restriction warnings
1878 * restrict.ads: Improved messages for restriction messages
1880 * s-rident.ads (Profile_Name): Add No_Profile
1882 2008-08-04 Robert Dewar <dewar@adacore.com>
1884 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
1886 2008-08-04 Robert Dewar <dewar@adacore.com>
1888 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
1890 2008-08-04 Vincent Celier <celier@adacore.com>
1893 (Copy_Package_Declarations): When inheriting package Naming from a
1894 project being extended, do not inherit source exception names.
1896 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1898 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
1899 list of declaration to find previous subprogram, do not go to the
1900 original node of a generic unit.
1902 2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
1904 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
1905 New case. Convert BOOLEAN_TYPE operation to the default integer type.
1907 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1909 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
1910 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
1911 and adjust for above renaming.
1912 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
1913 gnu_expr_alt_type parameter. Convert the expression to it instead
1914 of changing its type in place.
1915 (build_function_stub): Adjust call to above function.
1917 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
1919 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
1920 code. Do not get full definition of deferred constants with address
1921 clause for a use. Do not ignore deferred constant definitions with
1922 address clause. Ignore constant definitions already marked with the
1924 <object>: Remove obsolete comment. For a deferred constant with
1925 address clause, get the initializer from the full view.
1926 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
1927 Rework and remove obsolete comment.
1928 <N_Object_Declaration>: For a deferred constant with address clause,
1929 mark the full view with the error node.
1930 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
1933 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
1935 * rtsfind.ads: Add block IO versions of stream routines for Strings.
1937 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
1938 sem_prag.adb, snames.adb, snames.ads, snames.h,
1939 par-prag.adb: Undo previous stream related changes.
1941 * s-rident.ads: Add new restriction No_Stream_Optimizations.
1943 * s-ststop.ads, s-ststop.adb: Comment reformatting.
1944 Define enumeration type to designate different IO mechanisms.
1945 Enchance generic package Stream_Ops_Internal to include an
1946 implementation of Input and Output.
1948 * exp_attr.adb (Find_Stream_Subprogram): If restriction
1949 No_Stream_Optimization is active, choose the default byte IO
1950 implementations of stream attributes for Strings.
1951 Otherwise use the corresponding block IO version.
1953 2008-08-01 Olivier Hainque <hainque@adacore.com>
1955 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
1956 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
1958 2008-08-01 Robert Dewar <dewar@adacore.com>
1960 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
1961 convert plain identifier into defining identifier.
1963 2008-08-01 Robert Dewar <dewar@adacore.com>
1965 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
1968 * lib-xref.adb: Add error defense.
1970 2008-08-01 Bob Duff <duff@adacore.com>
1972 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
1974 2008-08-01 Gary Dismukes <dismukes@adacore.com>
1976 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
1977 correct accessibility levels. In the "when others" case, retrieve the
1978 access level of the Etype of Prev rather than Prev_Orig, because the
1979 original exression has not always been analyzed.
1981 2008-08-01 Robert Dewar <dewar@adacore.com>
1983 * prj-nmsc.adb: Minor reformatting
1985 * sem_ch4.adb: Minor reformatting
1986 Minor code reorganization
1988 * prj.ads: Minor reformatting
1990 * s-os_lib.adb: Minor reformatting
1992 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
1995 * scans.ads: Minor reformatting.
1997 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
1998 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2001 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2003 * sem_ch12.adb: Minor comment reformatting
2005 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2008 2008-08-01 Robert Dewar <dewar@adacore.com>
2010 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2013 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2015 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2016 converted is a real literal and the target type has static bounds,
2017 perform the conversion exactly to prevent floating-point anomalies on
2020 2008-08-01 Vincent Celier <celier@adacore.com>
2022 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2024 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2026 * prj.adb (Object_Exist_For): Use Object_Generated, not
2027 Objects_Generated that is removed and was never modified anyway.
2030 (Path_Syntax_Kind): New enumeration type
2031 (Language_Config): New component Path_Syntax, defaulted to Host.
2032 Components PIC_Option and Objects_Generated removed, as they are not
2035 * snames.adb: New standard name Path_Syntax
2037 * snames.ads: New standard name Path_Syntax
2039 2008-08-01 Vincent Celier <celier@adacore.com>
2042 (Adalib_Path): New variable to store the path of the adalib directory
2043 when procedure Specify_Adalib_Dir is called.
2044 (Lib_Directory): If Adalib_Path is not null, return its value
2045 (Specify_Adalib_Dir): New procedure
2047 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2049 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2052 (Check_Precondition_Postcondition): If not generating code, analyze the
2053 expression in a postcondition that appears in a subprogram body, so that
2054 it is properly decorated for ASIS use.
2056 2008-08-01 Gary Dismukes <dismukes@adacore.com>
2058 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2059 Orig_Prev to Prev in the case where the actual is N_Function_Call or
2060 N_Identifier. This was interfering with other cases that are rewritten
2061 as N_Identifier, such as allocators, resulting in passing of the wrong
2062 accessibility level, and based on testing this code is apparently no
2063 longer needed at all.
2065 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2067 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2068 procedure call whose prefix
2069 is a parameterless function call that returns an access_to_procedure.
2071 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2073 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2074 for RTX. Adding a suffix that is incremented at each iteration.
2076 2008-08-01 Robert Dewar <dewar@adacore.com>
2078 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2081 2008-08-01 Jerome Lambourg <lambourg@adacore.com>
2083 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2084 paths, which are authorized by Windows but can lead to errors when used
2087 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2089 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2090 a pending instantiation for the body of a subprogram that is to be
2094 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2096 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2097 create a pending instance for its body, so that calls to the subprogram
2098 can be inlined by the back-end.
2100 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2102 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2105 2008-08-01 Robert Dewar <dewar@adacore.com>
2107 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2109 2008-08-01 Doug Rupp <rupp@adacore.com>
2111 * gnat_rm.texi: Document new mechanism Short_Descriptor.
2113 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2116 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2117 mechanism and Short_Descriptor mechanism values.
2119 * snames.adb (preset_names): Add short_descriptor entry.
2121 * snames.ads: Add Name_Short_Descriptor.
2123 * types.h: Add new By_Short_Descriptor mechanism values.
2125 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2126 mechanism and Short_Descriptor mechanism values.
2128 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2130 (Descriptor_Codes): Modify range for new mechanism values.
2132 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2135 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2136 (gnat_to_gnu_param): Handle By_Short_Descriptor.
2138 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2139 (build_vms_descriptor32): New prototype.
2140 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2142 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2143 argument in call fill_vms_descriptor.
2145 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2146 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2147 (build_vms_descriptor): Renamed from build_vms_descriptor64.
2148 (convert_vms_descriptor32): New function.
2149 (convert_vms_descriptor64): New function.
2150 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2153 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2156 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2158 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2159 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2162 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2164 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2165 current directory so only fully qualified names are allowed.
2167 2008-08-01 Robert Dewar <dewar@adacore.com>
2170 Minor editing, remove uncomfortable use of semicolon
2172 * s-ststop.adb: Add some ??? comments
2174 * sem_ch10.adb: Minor reformatting
2177 Minor comment fixes, some pragmas were not properly
2178 categorized in the comments, documentation change only
2180 * xref_lib.adb: Minor reformatting
2182 * sinput.adb: Minor reformatting
2184 * gnatchop.adb: Minor reformatting
2186 * sem_util.ads: Minor reformatting.
2188 * opt.ads: Minor documentation fix
2190 * scng.adb: Minor reformatting
2192 * prj-part.adb: Update comments
2194 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2196 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2197 tagged synchronized type, use corresponding record type.
2199 2008-08-01 Doug Rupp <rupp@adacore.com>
2201 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2202 dummy transfer address for debugging.
2204 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2206 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2208 2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
2210 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2211 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2213 2008-07-31 Pascal Obry <obry@adacore.com>
2215 * prj-nmsc.adb: Keep Object and Exec directory casing.
2217 2008-07-31 Jose Ruiz <ruiz@adacore.com>
2219 * system-rtx-rtss.ads
2220 Change the default stack size. It is important to set the commit part.
2223 (Initialize): Get the clock resolution.
2224 (RT_Resolution): Return the clock resolution that is indicated by the
2227 * s-parame-vxworks.adb
2228 Document that this body is used for RTX in RTSS (kernel) mode.
2230 * gcc-interface/Makefile.in
2231 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2232 s-parame-vxworks.adb body in order to have reasonable stack sizes in
2233 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2234 cannot ask for too big values.
2236 2008-07-31 Robert Dewar <dewar@adacore.com>
2238 * exp_aggr.adb: Minor reformatting
2240 * makeutl.adb: Minor reformatting
2242 * prj-env.adb: Minor reformatting
2244 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2246 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2247 tagged type is completed by a concurrent type.
2249 2008-07-31 Gary Dismukes <dismukes@adacore.com>
2252 (Resolve_Record_Aggregate): Bypass error that a type without
2253 components must have a "null record" aggregate when compiling for Ada
2254 2005, since it's legal to give an aggregate of form (others => <>)
2257 2008-07-31 Javier Miranda <miranda@adacore.com>
2259 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2260 handle synchronized types. Required to handle well the object.operation
2261 notation applied to synchronized types.
2263 2008-07-31 Quentin Ochem <ochem@adacore.com>
2265 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2266 anymore - just used internally.
2267 Added handling of very small tasks - when the theoretical size is
2268 already full at the point of the call.
2269 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2270 not need to be added to the result.
2272 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2274 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2275 corresponding spec is a primitive wrapper. Update comment.
2277 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2279 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2280 (Gen_Adainit_Ada): Add the declaration, import and value set for
2281 configuration flag Canonical_Streams.
2282 (Gen_Adainit_C): Add the declaration and initial value of external
2283 symbol __gl_canonical_streams.
2285 * init.c: Update the list of global values computed by the binder.
2287 * opt.ads: Add flag Canonical_Streams.
2289 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2290 semantically handled pragmas.
2292 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2293 (Analyze_Pragma): Add case for pragma Canonical_Streams.
2295 * snames.adb: Add character value for name Canonical_Streams.
2298 Add Name_Canonical_Streams to the list of configuration pragmas.
2299 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2301 * snames.h: Add a definition for Pragma_Canonical_Streams.
2304 Add a flag and import to seize the value of external symbol
2305 __gl_canonical_streams. Update comment and initial value of constant
2308 * gnat_rm.texi: Add section of pragma Canonical_Streams.
2311 Add pragma Canonical_Streams to the list of configuration pragmas.
2313 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2315 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2316 has the form A.B.C and B is a unit renaming, analyze its compilation
2317 unit and add a with_clause on A.b to the context.
2319 2008-07-31 Vincent Celier <celier@adacore.com>
2321 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2322 return the empty string, instead of raising Constraint_Error.
2324 2008-07-31 Gary Dismukes <dismukes@adacore.com>
2326 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2328 * checks.adb (Apply_Accessibility_Check): Insert the check on
2332 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2333 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2334 Necessary to distinguish the insertion node because the dereferenced
2335 formal may come from a rename, but the check must be inserted in
2336 front of the attribute.
2339 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2340 call to Apply_Accessibility_Check.
2341 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2342 on call to Apply_Accessibility_Check.
2345 2008-07-31 Javier Miranda <miranda@adacore.com>
2347 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2348 types when the candidate type is a synchronized type.
2350 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2351 types, and complete management of synchronized types adding missing
2352 code to handle formal that is a synchronized type.
2354 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2355 are not available and cause the compiler to blowup. Found compiling
2356 test with switch -gnatc
2358 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2359 Has_Correct_Formal_Mode plus code cleanup.
2361 2008-07-31 Bob Duff <duff@adacore.com>
2363 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2364 recognized as two end-of-lines, but it should be just one.
2366 2008-07-31 Thomas Quinot <quinot@adacore.com>
2368 * exp_ch9.adb: Minor reformatting
2370 * tbuild.ads: Fix several occurrences of incorrectly referring to
2371 Name_Find as Find_Name.
2373 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2375 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2376 and the context is an object declaration with non-static bounds, treat
2377 the aggregate as non-static.
2379 2008-07-31 Vincent Celier <celier@adacore.com>
2381 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2382 Move back spec of Parse_Single_Project to body, as it is not called
2383 outside of package Prj.Part.
2384 (Project_Data): Remove components Linker_Name, Linker_Path and
2385 Minimum_Linker_Options as they are no longer set.
2386 Remove function There_Are_Ada_Sources from package Prj and move code
2387 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2389 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2391 * mlib-utl.ads: Fix typo.
2393 2008-07-31 Robert Dewar <dewar@adacore.com>
2395 * sem_ch12.adb: Minor reformatting
2397 2008-07-31 Sergey Rybin <rybin@adacore.com>
2399 * gnat_ugn.texi: Change the description of the
2400 Overly_Nested_Control_Structures: now the rule always requires a
2401 positive parameter for '+R' option
2403 2008-07-31 Thomas Quinot <quinot@adacore.com>
2405 * g-pehage.adb: Minor reformatting
2407 2008-07-31 Pascal Obry <obry@adacore.com>
2409 * s-finimp.ads: Minor reformatting.
2411 2008-07-31 Vincent Celier <celier@adacore.com>
2413 * s-regexp.ads: Minor comment fix
2415 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2417 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2418 so that we can compile this file successfully with -gnatc.
2420 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2422 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2423 of the type when looking for stream subprograms for type String,
2424 Wide_String and Wide_Wide_String.
2426 * s-ststop.adb: Change the initialization expression of constant
2429 2008-07-31 Geert Bosch <bosch@adacore.com>
2432 New file implementing __gnat_mulv64 signed integer multiplication with
2435 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2437 * gcc-interface/gigi.h:
2438 (standard_types): Add ADT_mulv64_decl
2439 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2441 * gcc-interface/utils.c:
2442 (init_gigi_decls): Add initialization of mulv64_decl
2444 * gcc-interface/trans.c:
2445 (build_unary_op_trapv): New function
2446 (build_binary_op_trapv): New function
2447 (gnat_to_gnu): Use the above functions instead of
2448 build_{unary,binary}_op
2450 * gcc-interface/Makefile.in
2451 (LIBGNAT_SRCS): Add arit64.c
2452 (LIBGNAT_OBJS): Add arit64.o
2454 2008-07-31 Vincent Celier <celier@adacore.com>
2456 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2457 Linker'Default_Switches are declared. Warn if they are declared.
2459 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2461 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2462 Insert_Actions to place the pointer declaration in the code, rather
2463 than Insert_Before_And_Analyze, so that insertions of temporaries are
2464 kept in the proper order when transient scopes are present.
2467 2008-07-31 Robert Dewar <dewar@adacore.com>
2469 * einfo.adb (Spec_PPC): Now defined for generic subprograms
2471 * einfo.ads (Spec_PPC): Now defined for generic subprograms
2473 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2476 2008-07-31 Vincent Celier <celier@adacore.com>
2478 * s-os_lib.adb: Minor comment fix
2480 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2482 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2483 transfer pre/postconditions from generic copy to original tree, so that
2484 they will appear in each instance.
2485 (Process_PPCs): Do not transform postconditions into a procedure in a
2486 generic context, to prevent double expansion of check pragmas.
2488 * sem_attr.adb: In an instance, the prefix of the 'result attribute
2489 can be the renaming of the
2490 current instance, so check validity of the name accordingly.
2492 2008-07-31 Robert Dewar <dewar@adacore.com>
2494 * mlib-utl.ads: Minor reformatting
2496 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2498 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2499 from context. This attribute must be usable in Ada95 mode.
2500 The attribute can appear in the body of a function marked
2501 Inline_Always, but in this case the postocondition is not enforced.
2503 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2504 of an inlined call pre- and postconditions are legal
2506 2008-07-31 Vincent Celier <celier@adacore.com>
2508 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2509 were for gprmake only
2511 2008-07-31 Robert Dewar <dewar@adacore.com>
2513 * gnat_ugn.texi: Update -gnatN documentation.
2515 * gnat_rm.texi: Add note about pre/postcondition
2516 pragmas not checked in conjunction with front-end inlining.
2518 2008-07-31 Robert Dewar <dewar@adacore.com>
2520 * g-pehage.adb, g-pehage.ads: Minor reformatting
2522 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2524 * mlib-utl.ads, prj-makr.ads: Add comments.
2526 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2528 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2529 [WINDOWS]: Add s-winext.o.
2531 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
2534 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2535 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2536 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2537 Set precision to 1 for subtype of BOOLEAN_TYPE.
2538 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2539 (make_type_from_size): Deal with BOOLEAN_TYPE.
2540 * gcc-interface/misc.c (gnat_print_type): Likewise.
2541 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2542 Set boolean_type_node as its translation in the table, as well
2543 as boolean_false_node for False and boolean_true_node for True.
2544 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2545 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2546 (create_param_decl): Deal with BOOLEAN_TYPE.
2547 (build_vms_descriptor): Likewise.
2548 (build_vms_descriptor64): Likewise.
2549 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2551 2008-07-30 Robert Dewar <dewar@adacore.com>
2553 * exp_ch9.adb: Minor reformatting
2555 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2556 if no primitive operation is found.
2558 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2560 * sem_ch8.adb: Minor reformatting
2562 2008-07-30 Laurent Pautet <pautet@adacore.com>
2565 Remove a limitation on the length of the words handled by the minimal
2566 perfect hash function generator.
2569 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2572 2008-07-30 Robert Dewar <dewar@adacore.com>
2574 * gnatlink.adb: Minor reformatting
2576 2008-07-30 Thomas Quinot <quinot@adacore.com>
2578 * rtsfind.adb (Check_RPC): Check version consistency even when not
2579 generating RCI stubs. Provide more detailed error message in case of
2582 2008-07-30 Ed Schonberg <schonberg@adacore.com>
2584 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2585 as a actual in an instance, check for a missing attribute to prevent
2586 program_error on an illegal program.
2588 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2589 error if primitive is not found, so that exception can be handled
2590 elsewhere on illegal programs.
2592 2008-07-30 Robert Dewar <dewar@adacore.com>
2594 * uintp.adb (UI_GCD): Fix potential overflow
2596 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2598 * einfo.adb: Flag245 is now used.
2599 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2600 check to include functions.
2601 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2602 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2604 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2605 to the list of displayed flags.
2607 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2608 Wrapped_Entity. These two flags are now present in functions.
2609 New flag Is_Private_Primitive.
2610 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2613 (Build_Wrapper_Bodies): New subprogram.
2614 (Build_Wrapper_Body): The spec and body have been moved to in
2615 Build_Wrapper_ Bodies. Code cleanup.
2616 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2617 Wrappers are now generated for primitives declared between the private
2618 and full view of a concurrent type that implements an interface.
2619 (Build_Wrapper_Specs): New subprogram.
2620 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2621 creation mechanism with a call to Build_Wrapper_Bodies.
2622 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2623 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2624 (Expand_N_Task_Body): Replace the wrapper body creation
2625 mechanism with a call to Build_Wrapper_Bodies.
2626 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2627 creation mechanism with a call to Build_Wrapper_Specs.
2628 (Is_Private_Primitive_Subprogram): New subprogram.
2629 (Overriding_Possible): Code cleanup.
2630 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2632 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2634 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2635 (Process_Full_View): Build wrapper specs for all primitives
2636 that belong to a private view completed by a concurrent type
2637 implementing an interface.
2639 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2641 concurrent type with a private view that implements an interface, try to
2642 find the proper spec.
2643 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2644 primitive if the type of its first parameter is a non-generic tagged
2646 (Analyze_Subprogram_Specification): Code reformatting.
2647 (Disambiguate_Spec): New routine.
2648 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2649 (Is_Private_Concurrent_Primitive): New routine.
2652 (Find_Corresponding_Spec): Add a formal to control the output of errors.
2654 2008-07-30 Doug Rupp <rupp@adacore.com>
2656 * gigi.h (build_vms_descriptor64): New function prototype.
2657 (fill_vms_descriptor): Modified function prototype.
2659 * utils.c (build_vms_descriptor64): New function.
2661 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2663 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2666 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2667 64bit and 32bit descriptor and save the 64bit version as an alternate
2668 TREE_TYPE in the parameter.
2669 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2672 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2674 2008-07-30 Robert Dewar <dewar@adacore.com>
2676 * make.adb: Minor reformatting
2678 * mlib-utl.adb: Minor reformatting
2680 * osint.ads: Minor reformatting
2682 2008-07-30 Jose Ruiz <ruiz@adacore.com>
2685 (__gnat_file_exists): Do not use __gnat_stat for RTX.
2686 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2687 avoid the use of this symbol from libgcc.a in RTX kernel mode.
2690 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2691 the function RtPrintf for console output.
2693 * argv.c Do not use the environ variable for RTX.
2695 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2696 been moved before the call to Osint.Add_Default_Search_Dirs in order
2697 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2698 from the appropriate run time.
2701 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2702 target is a RTSS module for RTX.
2704 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2705 RTX_RTSS_Kernel_Module
2706 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2708 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2709 exception handling mechanism for Windows and RTX in Win32 mode, but
2710 not for RTX in kernel mode (RTSS).
2711 (LIBGNAT_SRCS): Remove ada.h
2713 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
2715 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2716 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2717 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2718 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2719 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2720 ALL_ADA_CFLAGS): Remove.
2721 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2722 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2723 (GCC_CFLAGS): Remove X_CFLAGS.
2724 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2725 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2726 (ADA_CFLAGS): Substitute.
2728 2008-07-30 Laurent Guerby <laurent@guerby.net>
2731 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2732 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2733 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2734 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2735 by stamp-gnatlib2-rts.
2737 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2739 PR documentation/15479
2740 * gnat-style.texi: Remove AdaCore copyright statement and GPL
2741 statement for GNAT. Add @copying stanza, use it. Update to
2742 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
2743 title as Front-Cover Text.
2744 * gnat_rm.texi: Likewise.
2745 * gnat_ugn.texi: Likewise.
2747 2008-07-29 Jan Hubicka <jh@suse.cz>
2749 * trans.c (process_inlined_subprograms): Remove tree_really_inline
2752 2008-07-29 Arnaud Charlet <charlet@adacore.com>
2754 * gcc-interface: New directory.
2756 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2757 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2758 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2759 to gcc-interface subdirectory.
2761 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2763 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2765 2008-07-28 Jan Hubicka <jh@suse.cz>
2767 * misc.c (gnat_post_options): Do not set flag_no_inline.
2769 2008-07-28 Richard Guenther <rguenther@suse.de>
2771 Merge from gimple-tuples-branch.
2773 2008-07-22 Olivier Hainque <hainque@adacore.com>
2775 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2776 this is called for an elab proc to be discarded if empty.
2777 * utils.c (end_subprog_body): Honor ELAB_P.
2778 (build_function_stub): Adjust call to end_subprog_body.
2779 * trans.c (Subprogram_Body_to_gnu): Likewise.
2780 (gigi): Reorganize processing of elab procs to prevent
2781 gimplifying twice, using the new end_subprog_body argument.
2783 2008-07-19 Richard Guenther <rguenther@suse.de>
2785 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
2786 (utils.o): Likewise.
2787 * trans.c: Include tree-iterator.h.
2788 (gnat_gimplify_expr): Adjust prototype. Fix typo.
2789 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
2790 (set_expr_location_from_node): Likewise.
2792 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
2794 * utils.c: Include tree-iterator.h.
2795 * gigi.h (gnat_gimplify_expr): Adjust prototype.
2797 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
2799 * trans.c: Include gimple.h instead of tree-gimple.h.
2802 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
2804 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
2806 2008-07-25 Jan Hubicka <jh@suse.cz>
2808 * utils.c (end_subprog_body): Remove inline trees check.
2809 * misc.c (gnat_post_options): Do not set flag_inline_trees.
2811 2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2813 * raise-gcc.c: Move tsystem.h before tm.h.
2815 2008-07-20 Arnaud Charlet <charlet@adacore.com>
2817 * gnathtml.pl: New file.
2819 2008-07-19 Olivier Hainque <hainque@adacore.com>
2821 * targtyps.c (get_target_default_allocator_alignment): Use
2822 MALLOC_ABI_ALIGNMENT.
2824 2008-07-17 Olivier Hainque <hainque@adacore.com>
2826 * adaint.c (__MINGW32__ section): Include ctype.h and define
2827 a fallback ISALPHA if IN_RTS.
2828 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
2830 2008-07-17 Olivier Hainque <hainque@adacore.com>
2832 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
2833 argument, to apply to references in addition to definitions. Prevent
2834 setting TREE_STATIC on externals.
2835 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
2837 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2839 PR documentation/15479
2840 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
2841 Replace backets around optional parameters with @ovar
2842 where possible, use @r{[}, @r{]} otherwise.
2843 Replace some @r, @i, and @emph with @var where appropriate.
2845 2008-07-02 Eric Botcazou <ebotcazou@adacore.com>
2847 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
2849 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2851 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
2852 -Wc++-compat warnings.
2853 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
2854 __gnat_locate_exec_on_path): Likewise.
2855 * decl.c (annotate_value): Likewise.
2856 * misc.c (gnat_handle_option): Likewise.
2857 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
2858 post_error_ne_tree): Likewise.
2860 2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
2862 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
2863 version of its type, attempt to first convert its elements.
2865 2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
2867 * Makefile.in: Fix *86 kfreebsd target specific pairs.
2869 2008-06-25 Samuel Tardieu <sam@rfc1149.net>
2871 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
2873 2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
2875 * utils2.c (known_alignment): Derive the alignment from pointed-to
2876 types only if it is otherwise unknown.
2877 <INTEGER_CST>: Tidy.
2878 <MULT_EXPR>: Likewise.
2879 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
2882 2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2885 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
2887 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2889 * gnat_rm.texi (Implementation Defined Characteristics)
2890 (Standard Library Routines): Use @smallexample for indented
2891 text. Drop Indentation outside examples.
2892 * gnat_ugn.texi: Likewise.
2894 2008-06-13 Olivier Hainque <hainque@adacore.com>
2896 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
2898 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
2899 realignment with force_align_arg_pointer attribute on foreign
2900 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
2902 2008-06-13 Olivier Hainque <hainque@adacore.com>
2904 * utils.c (rest_of_record_type_compilation): When computing
2905 encodings for the components of a variable size type, early
2906 strip conversions on the current position expression to make
2907 sure it's shape is visible. Use remove_conversions for this
2910 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
2912 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
2913 constrained subtype of a discriminated type, discard the fields that
2914 are beyond its limits according to its size.
2916 2008-06-10 Olivier Hainque <hainque@adacore.com>
2918 * utils.c (create_subprog_decl): If this is for the 'main' entry
2919 point according to the asm name, redirect main_identifier_node.
2921 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
2923 * decl.c (components_to_record): Adjust the packedness for the
2924 qualified union as well.
2926 2008-06-09 Arnaud Charlet <charlet@adacore.com>
2928 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
2931 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
2933 * sem_res.adb (Large_Storage_Type): A type is large if it
2934 requires as many bits as Positive to store its values and its
2935 bounds are known at compile time.
2936 * sem_ch13.adb (Minimum_Size): Note that this function returns
2937 0 if the size is not known at compile time.
2939 2008-06-06 Nicolas Setton <setton@adacore.com>
2940 Olivier Hainque <hainque@adacore.com>
2942 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
2943 attribute, parallel descriptive type attached to another
2944 type for debug info generation purposes.
2945 * utils.c (add_parallel_type): New function, register
2946 parallel type to be attached to a type.
2947 (get_parallel_type): New function, fetch a registered
2948 parallel type, if any.
2949 (rest_of_record_type_compilation): Register the parallel
2950 type we make for variable size records.
2951 * gigi.h (add_parallel_type, get_parallel_type): Declare.
2952 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
2953 parallel debug types we make.
2954 * trans.c (extract_encoding, decode_name): New functions.
2955 (gigi): If the DWARF attribute extensions are available, setup
2957 * lang.opt: Register language specific processing request
2959 * misc.c (gnat_dwarf_extensions): New global variable. How much
2960 do we want of our DWARF extensions. 0 by default.
2961 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
2962 (gnat_post_options): Map gnat_dwarf_extensions to the
2963 commonuse_gnu_debug_info_extensions for later processing.
2965 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
2967 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
2969 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2971 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
2972 * gnat_ugn.texi (Style Checking)
2973 (Adding the Results of Compiler Checks to gnatcheck Output)
2974 (Example of Binder Output File): Fix typos.
2975 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
2976 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
2977 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
2978 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
2979 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
2980 sinfo.ads, utils.c: Fix typos in comments.
2981 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
2983 2008-05-29 Thomas Quinot <quinot@adacore.com>
2985 * sem_eval.adb: Minor reformatting
2987 2008-05-29 Ed Schonberg <schonberg@adacore.com>
2989 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
2990 is abstract, do not apply abstractness check on subprogram if this is
2991 a renaming declaration.
2993 2008-05-29 Arnaud Charlet <charlet@adacore.com>
2996 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
2997 allow recognition of program suffix in addition to prefix.
2999 * gnatchop.adb (Locate_Executable): Add support for prefix.
3001 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3002 mlib-utl.adb: Adjust calls to Program_Name.
3004 2008-05-29 Robert Dewar <dewar@adacore.com>
3006 * sem_ch3.adb: Minor reformatting
3007 * sem_prag.adb: Minor reformatting
3008 * sem_res.adb: Minor reformatting
3009 * sinput-p.ads: Minor reformatting
3011 2008-05-29 Javier Miranda <miranda@adacore.com>
3014 (Abstract_Interface_List): Add missing support for full type-declaration
3015 associated with synchronized types.
3017 2008-05-29 Robert Dewar <dewar@adacore.com>
3019 * sem_eval.adb (Is_Same_Value): Take care of several more cases
3021 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3023 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3024 access type, wrap the expression in a conversion to force an
3025 accessibility check.
3027 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3028 accessibility checks even when expansion is disabled in order to
3029 generate messages in the presence of previous errors or in
3030 semantics-only mode.
3032 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
3034 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3035 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3037 2008-05-28 Vincent Celier <celier@adacore.com>
3040 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3041 preprocessing expressions
3043 2008-05-28 Vincent Celier <celier@adacore.com>
3045 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3048 * sinput-p.ads: Minor comment update and reformatting
3050 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3052 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3053 type has a deeper level than any master only when it is the type of an
3056 2008-05-28 Javier Miranda <miranda@adacore.com>
3058 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3060 2008-05-28 Javier Miranda <miranda@adacore.com>
3062 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3063 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3064 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3065 Add code that was previously located in
3066 Find_Overridden_Synchronized_Primitive because it is only used here.
3068 2008-05-28 Sergey Rybin <rybin@adacore.com>
3070 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3071 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3073 2008-05-28 Robert Dewar <dewar@adacore.com>
3076 Add missing restrictions, and properly label all GNAT defined ones
3079 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3080 Add entry for Ada.Task_Termination.Set_Specific_Handler
3081 Add entry for Ada.Task_Termination.Specific_Handler
3084 Add missing restrictions and properly mark all gnat defined ones
3087 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3090 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3092 * gnat_rm.texi: Add missing restrictions, and properly label all
3095 2008-05-28 Robert Dewar <dewar@adacore.com>
3098 (Check_Restriction): violation of restriction No_Finalization is
3099 treated as a serious error to stop expansion
3101 2008-05-28 Robert Dewar <dewar@adacore.com>
3103 * exp_util.adb: Minor reformatting
3104 * exp_util.ads: Minor reformatting.
3106 2008-05-28 Arnaud Charlet <charlet@adacore.com>
3108 * Make-lang.in: Remove gprmake.
3110 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3112 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3114 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3115 improper progenitor names, and avoid cascaded errors.
3117 2008-05-28 Robert Dewar <dewar@adacore.com>
3119 * gnat_rm.texi: Add note on Old giving warning when applied to constant
3121 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3124 2008-05-28 Robert Dewar <dewar@adacore.com>
3126 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3129 2008-05-28 Robert Dewar <dewar@adacore.com>
3132 (Expand_Simple_Function_Return): Copy unaligned result into temporary
3134 2008-05-28 Javier Miranda <miranda@adacore.com>
3136 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3137 for user-defined predefined primitives.
3139 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3140 (Find_Overridden_Synchronized_Primitive): Ditto.
3142 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3144 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3146 * a-ststio.adb, s-direio.adb:
3147 Further code clean up of previous change.
3150 2008-05-27 Vincent Celier <celier@adacore.com>
3152 * prj-nmsc.adb: Minor reformatting
3154 2008-05-27 Bob Duff <duff@adacore.com>
3156 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3157 untagged private type with a tagged full type, where the full type has
3158 a self reference, create the corresponding class-wide type early, in
3159 case the self reference is "access T'Class".
3161 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3163 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3164 tasks and context is an object declaration. create master entity before
3167 2008-05-27 Robert Dewar <dewar@adacore.com>
3169 * mlib-prj.adb: Minor reformatting
3171 * prj-part.adb: Minor reformatting
3173 * prj.ads: Minor reformatting
3175 * exp_ch3.adb: Minor reformatting.
3177 * sem_ch3.ads: Minor reformatting
3179 * sem_eval.adb: Minor reformatting
3181 2008-05-27 Vincent Celier <celier@adacore.com>
3184 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3186 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3188 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3189 tasks, create an activation chain now, before the expansion into
3190 assignments and build-in-place calls that require the presence of an
3192 (Backend_Processing_Possible): If the component type is inherently
3193 limited, the aggregate must be expanded into individual built-in-place
3196 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3197 determine whether an allocation extra parameter must be built, to
3198 handle case of a private type whose full type is a discriminated type
3201 2008-05-27 Bob Duff <duff@adacore.com>
3204 Document the new behavior regarding trampolines.
3206 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3208 * a-direio.adb, a-sequio.adb: Replace address clause by
3209 unrestricted_access, simpler and compatible with .NET.
3211 2008-05-27 Vincent Celier <celier@adacore.com>
3214 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3215 a project file, so that symbolic links are not resolved.
3217 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3219 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3220 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3221 portable across GNAT targets, since this kind of address clause is not
3222 supported by VM back-ends (.NET/JGNAT).
3224 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3226 * bindgen.adb: Update comments.
3228 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3230 2008-05-27 Vincent Celier <celier@adacore.com>
3232 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3233 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3234 mlib-tgt.adb, prj-env.adb, prj-env.ads:
3235 (Path_Information): New record type
3236 Use component of type Path_Information when there are two paths, one in
3237 canonical format and one in display format.
3238 Update the project manager to these new components.
3240 2008-05-27 Robert Dewar <dewar@adacore.com>
3242 * makeutl.adb: Minor reformatting
3243 * prj-nmsc.adb: Minor reformatting
3244 * s-stausa.adb: Minor reformatting
3245 * s-stausa.ads: Minor reformatting
3246 * sem_ch6.adb: Minor reformatting
3248 2008-05-27 Thomas Quinot <quinot@adacore.com>
3250 * sem_res.adb: Minor comment fixes
3252 2008-05-27 Thomas Quinot <quinot@adacore.com>
3254 * makeutl.adb: Minor code reorganization
3256 * exp_aggr.adb: Add ??? comment
3259 * exp_ch6.adb: Minor reformatting
3261 2008-05-27 Quentin Ochem <ochem@adacore.com>
3263 * s-stausa.adb (Initialize): Updated result initialization, and
3264 initialization of environment stack.
3265 (Fill_Stack): Improved computation of the pattern zone, taking into
3266 account already filled at the calling point.
3267 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3268 Measure and Overflow_Guard.
3269 (Report_Result): Fixed computation of the result using new fields of
3272 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3273 params by more explicit Stack_Size / Max_Pattern_Size params.
3274 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3275 Added Stack_Used_When_Filling field.
3276 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3277 Min_Measure and Max_Measure fields.
3279 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3281 2008-05-27 Vincent Celier <celier@adacore.com>
3284 (Check_File): Make sure that a unit that replaces the same unit in a
3285 project being extended is properly processed.
3287 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3290 (Get_Discr_Value): Remove obsolete code that failed to find the value
3291 of a discriminant for an inherited task component appearing in a type
3294 2008-05-27 Thomas Quinot <quinot@adacore.com>
3296 (System.File_IO.{Close, Delete, Reset}):
3297 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3299 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3300 Pass File parameter by reference.
3302 2008-05-27 Vincent Celier <celier@adacore.com>
3305 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3306 sources of the same project that have the same object file name.
3307 (Find_Explicit_Sources): Always remove a source exception that was not
3310 2008-05-27 Thomas Quinot <quinot@adacore.com>
3312 * sem_ch3.adb: Minor reformatting
3314 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3317 (Is_Interface_Conformant): Handle properly a primitive operation that
3318 overrides an interface function with a controlling access result.
3319 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3320 inherited and overriding operations, omit as well the conformance check
3321 on result types, to prevent spurious errors.
3323 2008-05-27 Vincent Celier <celier@adacore.com>
3325 * makeutl.ads, makeutl.adb:
3326 (Set_Location): New procedure
3327 (Get_Location): New function
3328 (Update_Main): New procedure
3330 2008-05-27 Vincent Celier <celier@adacore.com>
3333 (Check_Library): Allow standard project to be extended as a static
3335 (Get_Mains): Do not inherit attribute Main in an extending library
3338 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3340 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3341 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3342 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3343 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3344 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3345 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3346 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3347 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3348 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3349 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3351 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3353 * sem_attr.adb: add guard to previous patch.
3355 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3357 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3358 a synchronized tagged type, do not attempt to build dispatch table for
3359 full view. The table is built for the corresponding record type, which
3360 has its own declaration.
3362 2008-05-27 Gary Dismukes <dismukes@adacore.com>
3364 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3365 to the known type entity E, rather than setting it to Any_Type. Fixes
3366 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3367 for objects whose type had an illegal constraint.
3369 2008-05-27 Vincent Celier <celier@adacore.com>
3372 Add succinct documentation for attribute Excluded_Source_List_File
3374 2008-05-27 Vincent Celier <celier@adacore.com>
3376 * prj-attr.adb: Add new project level attribute Map_File_Option
3378 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3380 * prj.ads: Minor reformatting and comment update
3381 (Project_Configuration): New component Map_File_Option
3383 * snames.adb: New standard name Map_File_Option
3385 * snames.ads: New standard name Map_File_Option
3387 2008-05-27 Vincent Celier <celier@adacore.com>
3389 * xsnames.adb: Remove unused variable Oname
3391 2008-05-27 Doug Rupp <rupp@adacore.com>
3394 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3397 (Expand_Vax_Foreign_Return): Fix comments.
3399 2008-05-27 Thomas Quinot <quinot@adacore.com>
3401 * exp_dist.adb: Minor reformating
3403 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3405 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3406 No_Default_Initialization, which is now delayed until the freeze point
3407 of the object. Add a comment about deferral of the check.
3409 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3410 on objects is moved here.
3412 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3414 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3415 (Compare_Array_S16): Adjust for above change.
3416 * s-casi32.adb (Uword): Likewise.
3417 (Compare_Array_S32): Likewise.
3418 * s-casi64.adb (Uword): Likewise.
3419 (Compare_Array_S64): Likewise.
3420 * s-caun16.adb (Uhalf): Likewise.
3421 (Compare_Array_U16): Likewise.
3422 * s-caun32.adb (Uword): Likewise.
3423 (Compare_Array_U32): Likewise.
3424 * s-caun64.adb (Uword): Likewise.
3425 (Compare_Array_U64): Likewise.
3427 2008-05-26 Robert Dewar <dewar@adacore.com>
3429 * exp_ch6.adb: Add ??? comment for previous change
3431 * exp_vfpt.adb: Minor reformatting
3433 * exp_vfpt.ads: Add ??? comment for last change
3435 * sem_attr.adb: Add some ??? comments for previous change
3437 * s-vaflop.ads: Add comments for previous change
3439 2008-05-26 Doug Rupp <rupp@adacore.com>
3441 * s-vaflop-vms-alpha.adb:
3442 Remove System.IO use clause, to prevent spurious ambiguities when
3443 package is access through rtsfind.
3445 2008-05-26 Sergey Rybin <rybin@adacore.com>
3447 * tree_io.ads (ASIS_Version_Number): Update because of the changes
3450 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3453 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
3454 converted to S (A)'address only if A .. B is known to be a non-null
3457 2008-05-26 Doug Rupp <rupp@adacore.com>
3460 (Return_D, Return_F, Return_G): New functions.
3463 (Return_D, Return_F, Return_G): New functions.
3466 (Expand_Vax_Foreign_Return): New procedure
3469 (Expand_Vax_Foreign_Return): New procedure
3472 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3473 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3477 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3479 * s-vaflop-vms-alpha.adb:
3480 (Return_D, Return_F, Return_G): New functions.
3482 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3484 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3485 init proc entity when there is actual default initialization associated
3486 with the component type, to avoid spurious errors on objects of scalar
3487 array types that are marked Is_Public when No_Default_Initialization
3490 2008-05-26 Thomas Quinot <quinot@adacore.com>
3492 * rtsfind.ads, rtsfind.adb:
3493 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3494 (Check_RPC): Support per-PCS-kind API versioning.
3496 exp_dist.ads, exp_dist.adb:
3497 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3498 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3499 library function Get_RACW.
3500 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3501 library function Get_Reference.
3502 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3503 through an intermediate Any.
3504 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3505 going through an intermediate Any.
3507 * sem_dist.adb: Minor reformatting.
3509 2008-05-26 Javier Miranda <miranda@adacore.com>
3511 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3512 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3513 (Is_Internal): Adding documentation on internal entities that have
3514 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3516 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3517 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3518 Added assertion to force entities with this attribute to have
3519 attribute Is_Internal set to True.
3520 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3522 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3523 renamed as Derive_Progenitor_Subprograms. In addition, its code is
3524 a new implementation.
3525 (Add_Interface_Tag_Components): Remove special management of
3526 synchronized interfaces.
3527 (Analyze_Interface_Declaration): Minor reformating
3528 (Build_Derived_Record_Type): Minor reformating
3529 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3530 predefined primitive inherited from interface type because the body of
3531 internally generated predefined primitives of tagged types are generated
3532 later by Freeze_Type
3533 (Derive_Subprogram): Avoid generating an internal name if the parent
3534 subprogram overrides an interface primitive.
3535 (Derive_Subprograms): New implementation that keeps separate the
3536 management of tagged types not implementing interfaces, from tagged
3537 types that implement interfaces.
3538 (Is_Progenitor): New implementation.
3539 (Process_Full_View): Add documentation
3540 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3541 by call to Derive_Progenitor_Subprograms.
3543 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3544 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3545 Skip_Controlling_Formals.
3547 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3548 (Check_Conventions): New implementation. Remove local subprogram
3549 Skip_Check. Remove formal Search_From of routine Check_Convention.
3550 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3551 Skip_Controlling_Formals.
3552 (New_Overloaded_Entity): Enable addition of predefined dispatching
3556 (Find_Primitive_Covering_Interface): New subprogram.
3558 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3559 the task body procedure as a primitive of the corresponding tagged
3561 (Check_Operation_From_Private_Type): Avoid adding twice an entity
3562 to the list of primitives.
3563 (Find_Primitive_Covering_Interface): New subprogram.
3564 (Override_Dispatching_Operation): Add documentation.
3566 * sem_type.adb (Covers): Minor reformatings
3568 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3571 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3572 (Implements_Interface): New subprogram.
3573 (Is_Parent): Removed.
3574 (Primitive_Names_Match): New subprogram.
3575 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3576 (Ultimate_Alias): New subprogram.
3578 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3580 Remove special management for synchronized types. Rename formal. Remove
3581 internal subprograms Interface_Present_In_Parent and Add_Interface.
3582 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3583 on non-record types by code to return false in such case.
3584 (Implements_Interface): New subprogram.
3585 (Is_Parent): Removed. No special management is now required for
3586 synchronized types covering interfaces.
3587 (Primitive_Names_Match): New subprogram.
3588 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3589 (Ultimate_Alias): New subprogram.
3591 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3592 Add internal entities associated with secondary dispatch tables to
3593 the list of tagged type primitives that are not interfaces.
3594 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3595 (Make_Predefined_Primitive_Specs): Code reorganization to improve
3596 the management of predefined equality operator. In addition, if
3597 the type has an equality function corresponding with a primitive
3598 defined in an interface type, the inherited equality is abstract
3599 as well, and no body can be created for it.
3601 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3602 exp_util to exp_disp.
3603 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3604 an entity corresponds with one of the predefined primitives required
3605 to implement interfaces.
3606 Update copyright notice.
3608 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3609 final check on abstract subprograms all the primitives associated with
3610 interface primitives because they must be visible in the public and
3612 (Write_DT): Use Find_Dispatching_Type to locate the name of the
3613 interface type. This allows the use of this routine, for debugging
3614 purposes, when the tagged type is not fully decorated.
3615 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3616 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3617 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3618 entity corresponds with one of the predefined primitives required to
3619 implement interfaces.
3621 * exp_util.adb (Find_Interface_ADT): New implementation
3622 (Find_Interface): Removed.
3624 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3625 list of interfaces associated with nodes
3626 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3628 2008-05-26 Thomas Quinot <quinot@adacore.com>
3630 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3631 condition for assignment to temporary.
3633 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3635 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3636 checks on the upper bound if the index type is a modular type, to
3637 prevent wrap-around computations when size is close to upper bound of
3640 2008-05-26 Robert Dewar <dewar@adacore.com>
3642 * sem_ch3.adb: Minor reformatting
3644 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3646 * sem_ch12.adb (Remove_Parent): Use specification of instance
3647 to retrieve generic parent,
3648 to handle properly the case where the instance is a child unit.
3649 Add guard to handle properly wrapper packages.
3652 2008-05-26 Thomas Quinot <quinot@adacore.com>
3654 * sinfo.ads: Minor reformatting
3656 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3658 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3659 Generate a tag check when the result subtype of a function, defined by
3660 an access definition, designates a specific tagged type.
3661 (Make_Tag_Check): New routine.
3663 2008-05-26 Arnaud Charlet <charlet@adacore.com>
3665 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3667 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3669 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3670 (builtin_decl_for): Likewise.
3671 * trans.c (gigi): Likewise.
3672 * utils.c (def_builtin_1): Fix formatting.
3674 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3676 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3677 Create the statements which map a string name to protected or task
3680 * exp_ch9.adb: Add with and use clause for Stringt.
3681 Minor code reformatting.
3682 (Build_Entry_Names): New routine.
3683 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3684 for flag Build_Entry_Names which controls the allocation of the data
3685 structure for the string names of entries.
3687 * exp_ch9.ads (Build_Entry_Names): New subprogram.
3689 * exp_util.adb (Entry_Names_OK): New function.
3691 * exp_util.ads (Entry_Names_OK): New function.
3693 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3694 enumerations RE_Id and RE_Unit_Table.
3696 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3697 (Free_Entry_Names_Array): New routine.
3699 * s-taskin.ads: Comment reformatting.
3700 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3701 Add component Entry_Names to record Ada_Task_Control_Block.
3702 (Free_Entry_Names_Array): New routine.
3704 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3705 dynamically allocate an array
3706 of string pointers. This structure holds string entry names.
3707 (Free_Entry_Names): New routine.
3708 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3709 (Set_Entry_Names): New routine.
3712 (Create_Task): Add formal Build_Entry_Names. The flag is used to
3713 control the allocation of the data structure which stores entry names.
3714 (Set_Entry_Name): New routine.
3717 Add with and use clause for Ada.Unchecked_Conversion.
3718 (Finalize): Deallocate the entry names array.
3719 (Free_Entry_Names): New routine.
3720 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3721 create an array of string pointers to hold the entry names.
3722 (Set_Entry_Name): New routine.
3725 Add field Entry_Names to record Protection_Entries.
3726 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3727 (Set_Entry_Name): New routine.
3729 2008-05-26 Vincent Celier <celier@adacore.com>
3732 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3735 (Project_Configuration): New component Shared_Lib_Driver
3737 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3740 (Cleanup_Scopes): For a protected operation, transfer finalization list
3741 to protected body subprogram, to force cleanup actions when needed.
3743 2008-05-26 Robert Dewar <dewar@adacore.com>
3745 * sem_cat.adb: Minor reformatting
3747 * gnatname.adb: Minor reformatting
3749 * osint.ads: Minor reformatting
3751 * s-carun8.ads: Minor reformatting
3753 * g-heasor.ads: Minor comment fix (unit is now pure)
3755 2008-05-26 Robert Dewar <dewar@adacore.com>
3758 (Expand_Current_Value): Properly type generated integer literal
3760 2008-05-26 Sergey Rybin <rybin@adacore.com>
3762 * gnat_ugn.texi: Add description for the new gnatcheck rule -
3763 Separate_Numeric_Error_Handlers.
3765 2008-05-26 Pascal Obry <obry@adacore.com>
3767 * sem_aggr.adb: Minor reformatting.
3769 2008-05-26 Jose Ruiz <ruiz@adacore.com>
3772 (To_Target_Priority): Setting the time slice value to 0 or greater sets
3773 the scheduling policy to FIFO within priorities or round-robin
3775 Hence, the priority must be set in this case to the one selected by the
3778 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3781 (Remove_Parent): If the enclosing scope is an instance whose generic
3782 parent is declared within some parent scope of the just completed
3783 instance, make full views of the entities in that parent visible, when
3786 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
3788 * mingw32.h (STD_MINGW): Set to true for target w64.
3790 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
3792 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
3793 instead of TREE_STATIC on the ADDR_EXPR.
3795 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
3797 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
3798 (Sloc_to_locus): Do not overwrite known GCC locations when translating
3799 GNAT standard locations.
3801 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3803 * gigi.h (mark_visited): Declare.
3804 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
3805 only the topmost node of expressions.
3806 (elaborate_expression_1): Look deeper for read-only variables.
3807 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
3808 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
3809 (mark_visited_r): New function.
3811 2008-05-23 Vincent Celier <celier@adacore.com>
3813 * snames.adb: New standard name Excluded_Source_List_File.
3815 * snames.ads: New standard name Excluded_Source_List_File.
3817 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
3819 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
3820 Get excluded sources from
3821 file indicated by attribute Excluded_Source_List_File, when present and
3822 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
3824 2008-05-23 Robert Dewar <dewar@adacore.com>
3826 * exp_dist.adb: Minor reformatting
3828 2008-05-23 Ed Schonberg <schonberg@adacore.com>
3830 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
3831 slice, convert it to an indexed component, which is equivalent, more
3832 efficient, and usable even if the slice itself is not addressable.
3834 2008-05-23 Olivier Hainque <hainque@adacore.com>
3836 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
3837 convention also allows access to named compiler built-in subprograms
3838 such as the GCC __builtin family.
3840 2008-05-23 Vincent Celier <celier@adacore.com>
3842 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
3843 sep. If there are several possibilities, choose the one with the
3846 2008-05-23 Vincent Celier <celier@adacore.com>
3848 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
3849 back end switches when executable specified with --GCC= is same as
3850 default, even if there are additional options.
3853 Document when the back end switches from the ALI file are taken into
3854 account when gnatlink is invoked with --GCC=
3856 2008-05-23 Thomas Quinot <quinot@adacore.com>
3859 (copy_File): Do not open destination file if source file is unreadable.
3861 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
3863 * utils.c (handle_type_generic_attribute): Adjust to accept
3864 fixed arguments before an elipsis.
3866 2008-05-21 Thomas Quinot <quinot@adacore.com>
3868 * g-sothco.ads, g-sothco.adb: New files.
3870 2008-05-20 Thomas Quinot <quinot@adacore.com>
3872 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
3874 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
3875 Add missing "with" of Ada.Unchecked_Conversion
3877 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
3878 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
3879 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3880 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3881 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
3882 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
3883 Move common code out of GNAT.Sockets.Thin implementations and into
3885 New constant SIZEOF_fd_set
3886 New flag Has_Sockaddr_Len
3887 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3889 * g-stsifd-sockets.adb
3890 (Create): Remove call to Set_Length; use Set_Family to set the family
3891 and (on appropriate platforms) length fields in struct sockaddr.
3893 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
3894 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
3895 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
3896 Move common code out of GNAT.Sockets.Thin implementations and into
3899 * g-socket.ads, g-socket.adb:
3900 Move common code out of GNAT.Sockets.Thin implementations and into
3902 (Connect_Socket, Accept_Socket): Provide new versions of these two
3903 routines that operate with a user specified timeout.
3904 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
3905 this is now handled automatically by Set_Family on platforms that
3909 Move common code out of GNAT.Sockets.Thin implementations and into
3911 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
3912 this constant to 0 (not -1) because we use it to initialize an
3913 unsigned_char value.
3914 Align values for numeric constants only.
3915 Handle the case of systems that do not support AF_INET6.
3916 New constant SIZEOF_fd_set
3917 New flag Has_Sockaddr_Len
3918 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3920 * gsocket.h: New flag Has_Sockaddr_Len
3921 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
3923 2008-05-20 Santiago Uruena <uruena@adacore.com>
3925 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
3927 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3929 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
3930 the underlying issue with malloc/free has been fixed. Remove associated
3933 Related to PR ada/24533
3935 2008-05-20 Robert Dewar <dewar@adacore.com>
3937 * ali.adb: Correct casing of ASCII.NUL
3939 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
3942 2008-05-20 Robert Dewar <dewar@adacore.com>
3943 Gary Dismukes <dismukes@adacore.com>
3945 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
3946 overflow if result converted to wider integer type.
3947 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
3948 discriminated types when discriminant checks are suppressed.
3950 2008-05-20 Vincent Celier <celier@adacore.com>
3952 * cstand.adb (Print_Standard): Issue the correct Size clause for type
3953 Wide_Wide_Character.
3955 2008-05-20 Tristan Gingold <gingold@adacore.com>
3957 * decl.c: Do not emit a variable for a object that has an address
3958 representation clause whose value is known at compile time.
3959 When a variable has an address clause whose value is known at compile
3960 time, refer to this variable by using directly the address instead of
3961 dereferencing a pointer.
3963 2008-05-20 Robert Dewar <dewar@adacore.com>
3966 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
3967 subtypes, always False for non-modular types.
3968 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
3969 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
3970 for Shared_Storage package.
3971 (Is_RACW_Stub_Type): New entity flag.
3974 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
3975 case where we have a modular type with a non-binary modules.
3976 Comments reformattings.
3978 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
3981 2008-05-20 Javier Miranda <miranda@adacore.com>
3984 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
3985 tests did not covered the case in which the type of the aggregate has
3986 no progenitors but some its parents has progenitors.
3988 2008-05-20 Gary Dismukes <dismukes@adacore.com>
3989 Hristian Kirtchev <kirtchev@adacore.com>
3992 (Expand_N_Object_Declaration): Correct the condition which triggers the
3993 generation of a call to Displace when initializing a class-wide object.
3994 (Build_Dcheck_Functions): Build discriminant-checking for null variants
3995 when Frontend_Layout_On_Target is true to ensure that they're available
3996 for calling when a record variant size function is built in Layout.
3998 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4000 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4001 procedure for a derived type retrieve the discriminant values from the
4002 parent using the corresponding discriminant.
4003 (Expand_N_Assignment_Statement): Skip generation of implicit
4004 if-statement associated with controlled types if we are
4005 compiling with restriction No_Finalization.
4007 2008-05-20 Vincent Celier <celier@adacore.com>
4009 * prj.adb (Hash (Project_Id)): New function
4010 (Project_Empty): Add new component Interfaces_Defined
4012 * prj.ads (Source_Data): New component Object_Linked
4013 (Language_Config): New components Object_Generated and Objects_Linked
4014 (Hash (Project_Id)): New function
4015 (Source_Data): New Boolean components In_Interfaces and
4016 Declared_In_Interfaces.
4017 (Project_Data): New Boolean component Interfaces_Defined
4020 New project level attribute Object_Generated and Objects_Linked
4021 Add new project level attribute Interfaces
4023 * prj-dect.adb: Use functions Present and No throughout
4024 (Parse_Variable_Declaration): If a string type is specified as a simple
4025 name and is not found in the current project, look for it also in the
4026 ancestors of the project.
4029 Replace procedure Make with procedures Initialize, Process and Finalize
4030 to implement H414-023: process different directories with different
4032 Use functions Present and No throughout
4035 Replace procedure Make with procedures Initialize, Process and Finalize
4038 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4039 the language configuration.
4040 (Process_Project_Level_Array_Attributes): Process new attributes
4041 Object_Generated and Object_Linked.
4042 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4043 False, to indicate that the erreor/warning is a continuation.
4044 (Check): Call Report_No_Sources with Contnuation = True after the first
4046 (Error_Msg): Process successively contnuation character and warning
4048 (Find_Explicit_Sources): Check that all declared sources have been found
4049 (Check_File): Indicate in hash table Source_Names when a declared source
4051 (Check_File): Set Other_Part when found
4052 (Find_Explicit_Sources): In multi language mode, check if all exceptions
4053 to the naming scheme have been found. For Ada, report an error if an
4054 exception has not been found. Otherwise, disregard the exception.
4055 (Check_Interfaces): New procedure
4056 (Add_Source): When Other_Part is defined, set mutual pointers in spec
4058 (Check): In multi-language mode, call Check_Interfaces
4059 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4060 for an excluded source.
4061 (Remove_Source): A source replacing a source in the interfaces is also
4064 * prj-pars.adb: Use function Present
4066 * prj-part.adb: Use functions Present and No throughout
4067 (Parse_Single_Project): Set the parent project for child projects
4068 (Create_Virtual_Extending_Project): Register project with no qualifier
4069 (Parse_Single_Project): Allow an abstract project to be extend several
4070 times. Do not allow an abstract project to extend a non abstract
4073 * prj-pp.adb: Use functions Present and No throughout
4074 (Print): Take into account the full associative array attribute
4077 * prj-proc.adb: Use functions Present and No throughout
4078 (Expression): Call itself with the same From_Project_Node for the
4079 default value of an external reference.
4081 * prj-strt.adb: Use functions Present and No throughout
4082 (Parse_Variable_Reference): If a variable is specified as a simple name
4083 and is not found in the current project, look for it also in the
4084 ancestors of the project.
4086 * prj-tree.ads, prj-tree.adb (Present): New function
4088 Use functions Present and No throughout
4089 (Parent_Project_Of): New function
4090 (Set_Parent_Project_Of): New procedure
4092 * snames.ads, snames.adb:
4093 Add new standard names Object_Generated and Objects_Linked
4095 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4097 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4098 and the derived type are of the same kind.
4099 (Expand_Call): Generate type conversions for actuals of
4100 record or array types when the parent and the derived types differ in
4101 size and/or packed status.
4103 2008-05-20 Javier Miranda <miranda@adacore.com>
4104 Ed Schonberg <schonberg@adacore.com>
4106 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4107 generating dispatch tables of locally defined tagged types statically.
4108 Remove implicit if-statement that is no longer required.
4109 (Expand_Dispatching_Call): If this is a call to an instance of the
4110 generic dispatching constructor, the type of the first argument may be
4111 a subtype of Tag, so always use the base type to recognize this case.
4113 2008-05-20 Thomas Quinot <quinot@adacore.com>
4116 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4117 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4118 assigning NULL into the result, to avoid a spurious warning.
4119 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4121 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4123 (Build_From_Any_Function, Build_To_Any_Function,
4124 Build_TypeCode_Function): For a type that has user-specified stream
4125 attributes, use an opaque sequence of octets as the representation.
4127 2008-05-20 Kevin Pouget <pouget@adacore.com>
4129 * exp_smem.ads, exp_smem.adb: Construction of access and assign
4130 routines has been replaced by an instantiation of
4131 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4132 shared variable declaration.
4133 Calls to access and assign routines have been replaced by calls to
4134 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4135 instantiated package.
4137 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4138 It identifies the new generic package added in s-shasto.
4140 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4141 is instantiated for each shared passive variable. It provides
4142 supporting procedures called upon each read or write access by the
4146 For this runtime unit (always compiled in GNAT mode), we allow
4147 stream attributes references for limited types for the case where
4148 shared passive objects are implemented using stream attributes,
4149 which is the default in GNAT's persistent storage implementation.
4151 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4154 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4155 convention from its base type, do not set the type to that of integer,
4156 because it may inherit a size clause.
4157 Warn on a size clause with a size different
4158 from that of Integer, if the type has convention C.
4160 2008-05-20 Vincent Celier <celier@adacore.com>
4163 (Scan_Args): Rewrite to take into account new switch --and to separate
4164 arguments into sections.
4165 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4166 section, then Finalize.
4168 2008-05-20 Tristan Gingold <gingold@adacore.com>
4170 * init.c: Enable stack probing on ppc-linux.
4172 * tracebak.c: Add symbolic traceback for ppc-linux.
4174 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4176 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4179 (common-tools): New rule, to avoid parallel build failure on gnat tools.
4180 Reenable parallel builds on this Makefile.
4182 * Make-lang.in: Update dependencies.
4184 2008-05-20 Robert Dewar <dewar@adacore.com>
4186 * opt.ads (Treat_Restrictions_As_Warnings): New switch
4188 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4189 Treat_Restrictions_As_Warnings.
4191 * switch-c.adb: Recognize new switch -gnatr
4193 * usage.adb: Add line for -gnatr
4195 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4198 (P_Access_Definition): Change the error message when parsing "access
4199 all" in Ada 95 mode. The message no longer forces the user to recompile
4200 in 05 mode only to discover that anonymous access types are not allowed
4203 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4206 (P_Protected): Update the error message on missing "-gnat05" switch when
4207 using interfaces in conjunction with protected types. Remove the
4208 incorrect error message associated with the presence of "private" after
4211 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4213 * sem_aggr.adb: Update comments.
4214 Improve previous change for PR ada/17985
4216 2008-05-20 Thomas Quinot <quinot@adacore.com>
4219 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4220 the visible part of the spec of a remote types unit.
4221 (Validate_Remote_Access_Object_Type_Declaration):
4222 New local subprogram Is_Valid_Remote_Object_Type, replaces
4223 Is_Recursively_Limited_Private.
4224 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4225 non-controlling formals (and the return type, even though this is not
4226 explicit in the standard) must support external streaming.
4227 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4228 as above for of RAS types and RCI subprograms. (The return type is not
4230 Update comments related to RACWs designating limited interfaces per
4231 ARG ruling on AI05-060.
4233 * sem_util.ads, sem_util.adb
4234 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4235 Is_Remote_Call_Interface to identify RACW types in a stable and
4236 consistent way. We used to rely in this predicate on the privateness of
4237 the designated type and its ancestors, but depending on the currently
4238 visible private parts, this caused false negatives. We now uniformly
4239 rely on checks made at the point where the RACW type is declared.
4240 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4242 2008-05-20 Javier Miranda <miranda@adacore.com>
4243 Ed Schonberg <schonberg@adacore.com>
4244 Hristian Kirtchev <kirtchev@adacore.com>
4247 (Analyze_Object_Declaration): Fix over-conservative condition
4248 restricting use of predefined assignment with tagged types that have
4250 (Analyze_Object_Declaration): Relax the check regarding deferred
4251 constants declared in scopes other than packages since they can be
4252 completed with pragma Import.
4253 Add missing escaping of all-caps word 'CPP' in error messages.
4254 (Build_Discriminated_Subtype): Do not inherit representation clauses
4255 from parent type if subtype already carries them, because they are
4256 inherited earlier during derivation and already include those that may
4257 come from a partial view.
4259 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4260 Check the declarations of a subprogram body for proper deferred
4261 constant completion.
4263 * sem_ch7.ads, sem_ch7.adb
4264 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4266 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4267 Thomas Quinot <quinot@adacore.com>
4270 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4271 F is a parameterless function that returns an array, and S is a subtype
4273 (Analyze_Call): Insert dereference when the prefix is a parameterless
4274 function that returns an access to subprogram and the call has
4276 Reject a non-overloaded call whose name resolves to denote
4277 a primitive operation of the stub type generated to support a remote
4278 access-to-class-wide type.
4280 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4283 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4284 when there is a use clause for the same entity in the context.
4285 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4286 created for a stream attribute of an abstract type or interface type.
4288 2008-05-20 Thomas Quinot <quinot@adacore.com>
4290 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4294 (Add_One_Interp): Ignore any interpretation that is a primitive
4295 operation of an RACW stub type (these primitives are only executed
4296 through dispatching, never through static calls).
4297 (Collect_Interps): When only one interpretation has been found, set N's
4298 Entity and Etype to that interpretation, otherwise Entity and Etype may
4299 still refer to an interpretation that was ignored by Add_One_Interp,
4300 in which case would end up with being marked as not overloaded but with
4301 an Entity attribute not pointing to its (unique) correct interpretation.
4303 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4306 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4307 denotes the whole array of its prefix.
4309 2008-05-20 Robert Dewar <dewar@adacore.com>
4311 * sem_res.adb (Resolve_Op_Not): Warn on double negation
4313 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4316 (Print_Itype): Do not modify the sloc of the component type of a
4317 (packed) array itype, because it is an unrelated type whose source
4318 location is independent of the point of creation of the itype itself.
4320 2008-05-20 Thomas Quinot <quinot@adacore.com>
4322 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4325 2008-05-20 Robert Dewar <dewar@adacore.com>
4326 Vincent Celier <celier@adacore.com>
4328 * vms_data.ads: Add entry for -gnatr
4329 Put GNAT SYNC section in proper alpha order
4330 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4332 * gnat_ugn.texi: Add documentation for new gnatname switch --and
4333 Update the style checks section
4334 Add documentation of -gnatr
4335 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4336 subsection the explanation how compiler checks should be disabled for
4338 Update the list of Ada 95 reserved words used by in the project language
4339 Add documentation for project qualifiers.
4340 Document that abstract projects may be extended by different projects in
4341 the same project tree.
4342 Add documentation for gnatmake switch -d
4344 * ug_words: Add -gnatyy VMS equivalence string.
4345 Add entry for -gnatr
4347 2008-05-20 Bob Duff <duff@adacore.com>
4350 (Set_Handler): Remove code from both of these that implements
4351 RM-D.15(15/2), because it causes a race condition and potential
4353 (Process_Queued_Events): Add comment explaining "exception when others
4354 => null". Add clarifying ".all", even though implicit .all is legal
4357 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4359 * s-winext.ads: Replace representation clause by pragma Pack. Gives
4360 equivalent representation, but has the advantage of allowing
4361 compilation of this file under 64 bits platforms.
4363 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4365 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4368 Don't define dummy implementation of convert_addresses on ppc-linux.
4370 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4373 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4374 if expression is aggregate component.
4376 2008-05-20 Robert Dewar <dewar@adacore.com>
4378 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4379 sem_ch12.adb: Update comments. Minor reformatting.
4383 * s-unstyp.ads: Fixed some typos in comments.
4385 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4387 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4390 * g-socthi-vxworks.ads: Update to latest socket changes.
4392 * a-caldel-vms.adb: Resync with a-caldel spec.
4394 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4397 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
4399 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4400 for dummy types pointed to by the converted pointer types.
4402 2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
4404 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4405 of records and unions.
4406 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4408 2008-05-14 Samuel Tardieu <sam@rfc1149.net>
4409 Robert Dewar <dewar@adacore.com>
4411 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4412 restrictions to the prefix of 'Old.
4413 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4414 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4417 2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
4421 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4422 expression to an integral type with lower precision, use NOP_EXPR
4423 directly in a couple of special cases.
4425 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
4426 Ed Schonberg <schonberg@adacore.com>
4428 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4429 constraint expressions.
4431 2008-05-12 Tomas Bily <tbily@suse.cz>
4433 * utils2.c (known_alignment, contains_save_expr_p)
4434 (gnat_mark_addressable): Use CASE_CONVERT.
4435 * decl.c (annotate_value): Likewise.
4436 * trans.c (maybe_stabilize_reference): Likewise.
4437 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4438 * utils.c (rest_of_record_type_compilation): Likewise.
4439 * trans.c (protect_multiple_eval, Attribute_to_gnu)
4440 (protect_multiple_eval): Likewise.
4442 2008-05-08 Andreas Schwab <schwab@suse.de>
4444 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4445 DECL_IS_PURE to DECL_PURE_P.
4447 2008-05-05 Eric Botcazou <ebotcazou@adacore.com>
4449 * decl.c (maybe_pad_type): Add ??? comment.
4451 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4453 * decl.c (components_to_record): Zero the alignment of the qualified
4454 union built for the variant part upon creating it.
4456 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4458 * decl.c (maybe_pad_type): Try to get a form of the type with integral
4459 mode even if the alignment is not a factor of the original size. But
4460 make sure to create the inner field with the original size. Reorder.
4461 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4462 record as always addressable.
4463 * utils.c (convert): Deal specially with conversions between original
4464 and packable versions of a record type.
4465 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4466 recognizing an assignment between padded objects.
4468 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4470 * decl.c (make_packable_type): Resize the last component to its RM size
4471 only if it is of an aggregate type.
4472 * trans.c (call_to_gnu): Fix nit in comment.
4473 (gnat_to_gnu): Likewise.
4475 2008-04-30 Samuel Tardieu <sam@rfc1149.net>
4477 * Makefile.in: Adapt sh4-linux target.
4479 2008-04-29 Ed Schonberg <schonberg@adacore.com>
4482 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4483 tagged type by an untagged protected or task type.
4485 2008-04-28 Eric Botcazou <ebotcazou@adacore.com>
4486 Tristan Gingold <gingold@adacore.com>
4489 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4490 of aliased objects with an unconstrained nominal subtype.
4491 Cap the promotion to the effective alignment of the word mode.
4493 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4495 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4496 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4497 Use '&&' instead of ';'.
4499 2008-04-24 Olivier Hainque <hainque@adacore.com>
4501 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4502 doesn't require signed arithmetic anymore.
4504 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
4506 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4507 (call_to_gnu): Don't set TREE_INVARIANT.
4508 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4510 2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
4512 * s-osinte-rtems.adb: Add sigalstack function.
4513 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4514 function. Add Alternate_Stack and Alternate_Stack_Size.
4515 Add missing process_shared field to pthread_condattr_t
4516 and change ss_low_priority to int from timespec.
4518 2008-04-22 Samuel Tardieu <sam@rfc1149.net>
4520 * i-forbla.adb: Link against -llapack and -lblas by default
4521 instead of the private -lgnalasup.
4523 2008-04-21 Olivier Hainque <hainque@adacore.com>
4525 Access to most C builtins from Ada
4526 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4527 (handle_pure_attribute, handle_novops_attribute,
4528 handle_nonnull_attribute, handle_sentinel_attribute,
4529 handle_noreturn_attribute, handle_malloc_attribute,
4530 handle_type_generic_attribute): New attribute handlers, from C fe.
4531 (gnat_internal_attribute_table): Map the new handlers.
4532 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4533 (init_gigi_decls): ... here.
4534 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4535 Move to a section dedicated to builtins processing.
4536 (build_void_list_node, builtin_type_for_size): New functions.
4537 (def_fn_type, get_nonnull_operand): Likewise.
4538 (install_builtin_elementary_type, install_builtin_function_types,
4539 install_builtin_attributes): Likewise.
4540 (fake_attribute_handler): Fake handler for attributes we don't
4542 (def_builtin_1): New function, worker for DEF_BUILTIN.
4543 (install_builtin_functions): New function.
4544 (gnat_install_builtins): Move to the builtins processing section.
4545 Now calling the newly introduced installers.
4547 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4549 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4550 constant objects, but not exceptions.
4551 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4553 * utils.c (create_var_decl_1): Likewise.
4554 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4555 the type when copying to padded object and the source is a constructor.
4557 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4559 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4560 alignment, reset it to zero if it would end up not being greater
4561 than that of the type.
4563 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4565 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4566 the padded type has a variable size.
4568 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4570 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4571 target pointer mechanism as soon as the size is not constant.
4573 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4575 * gigi.h (create_var_decl_1): Declare.
4576 (create_var_decl): Turn into a macro invoking create_var_decl_1.
4577 (create_true_var_decl): Likewise.
4578 * utils.c (create_var_decl_1): Make global and reorder parameters.
4579 (create_var_decl): Delete.
4580 (create_true_var_decl): Likewise.
4582 2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
4584 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4586 * fe.h (Debug_Flag_Dot_A): Delete.
4587 * debug.adb (-gnatd.a): Update documentation.
4589 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
4591 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4592 "not null" parameter.
4594 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
4596 * g-socket.adb: Add a message "IPv6 not supported" to the
4597 Socket_Error exception.
4599 2008-04-16 Samuel Tardieu <sam@rfc1149.net>
4602 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4603 the type is known instead of the underlying type.
4605 2008-04-15 Ed Schonberg <schonberg@adacore.com>
4608 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4609 procedure for a derived type retrieve the discriminant values from
4610 the parent using the corresponding discriminant.
4612 2008-04-15 Samuel Tardieu <sam@rfc1149.net>
4613 Gary Dismukes <dismukes@adacore.com>
4616 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4617 which is not an entity (and hence not a package).
4618 (End_Use_Package): Ditto.
4620 2008-04-15 Ed Schonberg <schonberg@adacore.com>
4623 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4624 protected operation that matches the signature, not only an entry, a
4625 regular subprogram or a literal.
4627 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4629 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4630 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4631 if a size or alignment is specified. Do not take into account
4632 alignment promotions for the computation of the object's size.
4633 <type>: Call maybe_pad_type only if a size or alignment is specified.
4634 (maybe_pad_type): Really reuse the RM_Size of the original type if
4636 * trans.c (Attribute_to_gnu): Fix a couple of nits.
4637 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4638 statements. Use the padded view of the type when copying between
4639 padded objects of the same underlying type.
4641 2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4643 * vms_data.ads: Fix typo in constant.
4644 * gen-soccon.c: Fix typo in error string.
4645 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4647 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4648 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4649 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4650 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4651 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4652 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4653 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4654 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4655 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4656 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4657 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4658 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4659 sinfo.ads: Fix typos in comments.
4661 2008-04-14 Robert Dewar <dewar@adacore.com>
4663 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4664 to every non-object and change error message.
4666 2008-04-14 Robert Dewar <dewar@adacore.com>
4668 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4669 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4672 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4675 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4676 apply pragma Linker_Section on type.
4678 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4681 * sem_prag.adb (Error_Pragma_Ref): New.
4682 (Process_Convention): Specialized message for non-local
4683 subprogram renaming. Detect the problem in homonyms as well.
4685 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4688 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4689 * sem_ch12.adb (Instantiate_Object): Use it.
4690 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4691 storage pool denotes a variable as per RM 13.11(15).
4693 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4695 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4696 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4698 2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
4701 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4702 line endings even on non-Unix platforms.
4704 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4707 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4708 renaming information.
4710 2008-04-13 Samuel Tardieu <sam@rfc1149.net>
4713 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4716 2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4718 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4719 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4720 snames.ads, sprint.adb, stand.ads, stringt.ads,
4721 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4722 switch.ads, sysdep.c, table.adb, table.ads,
4723 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4724 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4725 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4726 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4727 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4728 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4731 * sem_ch10.adb, sem_ch10.ads,
4732 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4733 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4734 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4735 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4736 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4737 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4738 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4739 sem_warn.ads: Fix comment typos.
4741 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4742 s-soflin.ads, s-stalib.ads, s-stausa.adb,
4743 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4744 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4745 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4746 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4747 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4748 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4749 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4750 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4751 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4752 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4753 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4754 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4755 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4756 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4757 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4758 sem_cat.adb, sem_cat.ads: Fix comment typos.
4760 2008-04-12 Joel Sherrill <joel@oarcorp.com>
4763 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4765 2008-04-12 Arnaud Charlet <charlet@adacore.com>
4767 * s-linux-hppa.ads: Fix syntax errors.
4769 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4771 * gnat_ugn.texi: Fix typos.
4772 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4773 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4774 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4775 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4776 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4777 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4778 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4779 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4780 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4781 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
4782 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
4783 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
4784 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
4785 s-osinte-darwin.ads, s-osinte-freebsd.ads,
4786 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
4787 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
4788 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
4789 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
4790 s-parame-hpux.ads, s-parame-vms-alpha.ads,
4791 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
4792 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
4793 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
4794 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
4795 s-rident.ads: Fix comment typos.
4797 2008-04-09 Samuel Tardieu <sam@rfc1149.net>
4800 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
4801 environment if generic instance is a top-level one.
4803 2008-04-09 Doug Rupp <rupp@adacore.com>
4805 * decl.c (validate_size): Set minimum size for fat pointers same as
4806 access types. Code clean ups.
4808 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
4809 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
4811 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
4813 * s-crtl.ads (malloc32) New function, alias for malloc
4814 (realloc32) New function, alias for realloc
4816 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
4818 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
4819 allocator size is 32 and default pointer size is 64.
4820 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
4821 lhs type if smaller, whatever the modes.
4823 * gigi.h (malloc32_decl): New macro definition
4825 * utils.c (init_gigi_decls): New malloc32_decl
4826 Various code clean ups.
4828 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4829 Task_Address vice System.Address.
4831 * s-taspri-vms.ads: Import System.Aux_DEC
4832 (Task_Address): New subtype of System.Aux_DEC.Short_Address
4833 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
4835 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
4836 Task_Address vice System.Address.
4838 * s-inmaop-vms.adb: Import System.Task_Primitives
4839 (To_Address): Unchecked convert to Task_Address vice System.Address
4841 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
4843 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
4844 (To_Address) Unchecked convert to Task_Address vice System.Address
4846 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
4848 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
4850 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4852 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4853 (fdesc_type_node): Define.
4854 (null_fdesc_node): Likewise.
4855 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
4856 uses descriptors for vtables and the type comes from a dispatch table,
4857 return the descriptor type.
4858 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
4859 uses descriptors for vtables and the type comes from a dispatch table,
4860 build a descriptor in the static case and copy the existing one in the
4862 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
4863 the type is a pointer-to-subprogram coming from a dispatch table,
4864 return the null descriptor.
4865 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
4866 vtables, the source type is the descriptor type and the target type
4867 is a pointer type, first build the pointer.
4868 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
4869 build the descriptor type and the null descriptor.
4871 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4873 * decl.c (prepend_attributes): Fix typo.
4874 * trans.c (Pragma_to_gnu): Likewise.
4875 * utils.c (gnat_genericize): Likewise.
4877 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4878 Richard Kenner <kenner@adacore.com>
4880 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
4881 * decl.c (gnat_to_gnu_entity): Adjust for above change.
4882 <E_Record_Type>: Try to get a better form of the component for
4883 packing, even if it has an integral mode.
4884 <E_Record_Subtype>: Likewise.
4885 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
4886 exception suppressing the final conversion between record types.
4888 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4890 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
4891 alignment for space, promote the alignment of non-scalar variables with
4892 no size and alignment.
4893 * gigi.h (gnat_types_compatible_p): Declare.
4894 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
4895 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
4896 * utils.c (gnat_types_compatible_p) : New predicate.
4897 (convert): Use it throughout to test for cases where a mere view
4898 conversion is sufficient.
4899 * utils2.c (build_binary_op): Minor tweaks.
4900 (build_unary_op): Likewise.
4902 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4904 * decl.c (adjust_packed): Expand comment.
4906 2008-04-08 Arnaud Charlet <charlet@adacore.com>
4908 * s-tasuti.ads: Use Task_Address instead of System.Address.
4910 * makeutl.adb (Path_Or_File_Name): New function
4912 * nlists.ads, itypes.ads: Update comments.
4914 * s-crtl.ads (malloc32, realloc32): New functions.
4916 * s-auxdec.ads (Short_Address_Size): New constant.
4918 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
4920 * s-ststop.ads, s-ststop.adb: New file.
4922 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
4925 2008-04-08 Pascal Obry <obry@adacore.com>
4927 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
4928 (Stop_Bits_Number): New type.
4929 (Parity_Check): Likewise.
4930 (Set): Add parameter to set the number of stop bits and
4931 the parity. Parameter timeout is now a duration instead
4934 * g-sercom-linux.adb:
4935 Implement the stop bits and parity support for GNU/Linux.
4936 Fix handling of timeout, it must be given in tenth of seconds.
4938 * g-sercom-mingw.adb:
4939 Implement the stop bits and parity support for Windows.
4940 Use new s-win32.ads unit instead of declaring Win32 services
4941 directly into this body.
4942 Update handling of timeout as now a duration.
4944 * s-win32.ads, s-winext.ads: New files.
4946 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
4947 Arnaud Charlet <charlet@adacore.com>
4949 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
4951 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
4952 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
4954 * s-osinte-lynxos-3.ads,
4955 (Alternate_Stack): Remove when not needed. Simplify declaration
4957 (Alternate_Stack_Size): New constant.
4959 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
4960 'Unrestricted_Access.
4962 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
4963 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
4964 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
4965 s-osinte-solaris.ads, s-osinte-vms.ads
4966 (SA_ONSTACK): New constant.
4967 (stack_t): New record type.
4968 (sigaltstack): New imported function.
4969 (Alternate_Stack): New imported variable.
4970 (Alternate_Stack_Size): New constant.
4972 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
4974 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
4975 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
4976 s-taspri-vms.ads (Task_Address): New subtype of System.Address
4977 (Task_Address_Size): New constant size of System.Address
4978 (Alternate_Stack_Size): New constant.
4980 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
4981 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
4982 Establish the alternate stack if the platform makes use of n alternate
4983 signal stack for stack overflows.
4984 (Create_Task): Take into account the alternate stack in the stack size.
4985 (Initialize): Save the address of the alternate stack into the ATCB for
4986 the environment task.
4987 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
4989 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
4991 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
4993 * s-intman-posix.adb:
4994 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
4995 alternate signal stack for stack overflows.
4997 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
4998 x86-64, adjust the saved value of the stack pointer if the signal was
4999 raised by a stack checking probe.
5000 (HP-UX section): Use global __gnat_alternate_stack as signal handler
5001 stack and only for SIGSEGV.
5002 (Linux section): Likewise on x86 and x86-64.
5004 (__gnat_map_signal): Now static.
5005 (__gnat_error_handler): Not static any more.
5006 (__gnat_adjust_context_for_raise): New function. Signal context
5007 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5008 propagation circuitry.
5009 (__gnat_error_handler): Second argument of a sigaction handler is a
5010 pointer, not an int, and is unused.
5011 Adjust signal context before mapping to exception.
5012 Install signal handlers for LynxOS case.
5014 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5015 (Task_Id): Set size to Task_Address_Size
5016 (To_Task_id): Unchecked convert from Task_Address vice System.Address
5017 (To_Address): Unchecked convert to Task_Address vice System.Address
5019 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5020 address into the ATCB if the platform makes use of an alternate signal
5021 stack for stack overflows.
5022 (Free_Task): Add call to Finalize_Attributes_Link.
5023 Add argument Relative_Deadline to pass the value specified for
5024 the task. This is not yet used for any target.
5026 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5027 the value specified for the task.
5029 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5031 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5032 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5033 s-vxwext-rtp.adb): New files.
5035 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5036 Minor updates to accomodate changes above.
5038 2008-04-08 Pascal Obry <obry@adacore.com>
5040 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5041 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5042 Use new s-win32.ads unit instead of declaration
5043 from s-osinte-mingw.ads.
5045 * s-osinte-mingw.ads:
5046 Move all non tasking based interface to s-win32.ads.
5048 * s-osprim-mingw.adb:
5049 Remove duplicated declarations and use s-win32.ads
5052 2008-04-08 Vincent Celier <celier@adacore.com>
5053 Arnaud Charlet <charlet@adacore.com>
5055 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5056 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5057 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5058 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5059 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5061 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5062 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5063 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5064 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5065 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5066 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5067 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5068 mlib-tgt-specific-mingw.adb: New names.
5071 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5073 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5074 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5075 Minor updates for VMS
5077 * gnatbl.c: Removed.
5079 2008-04-08 Thomas Quinot <quinot@adacore.com>
5081 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5082 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5083 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5084 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5085 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5086 ASCII.NUL throughout.
5088 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5089 Matthew Heaney <heaney@adacore.com>
5091 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5094 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5095 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5096 to convention for non-RM specs.
5097 Add descriptive header, and documented each operation
5098 document each operation
5100 2008-04-08 Robert Dewar <dewar@adacore.com>
5101 Bob Duff <duff@adacore.com>
5102 Gary Dismukes <dismukes@adacore.com>
5103 Ed Schonberg <schonberg@adacore.com>
5105 * alloc.ads: Add entries for Obsolescent_Warnings table
5107 * einfo.ads, einfo.adb: Minor reformatting.
5108 (Is_Discriminal): New subprogram.
5109 (Is_Prival): New subprogram.
5110 (Is_Protected_Component): New subprogram.
5111 (Is_Protected_Private): Removed.
5112 (Object_Ref, Set_Object_Ref): Removed.
5113 (Prival, Set_Prival): Change assertion.
5114 (Privals_Chain, Set_Privals_Chain): Removed.
5115 (Prival_Link, Set_Prival_Link): New subprogram.
5116 (Protected_Operation, Set_Protected_Operation): Removed.
5117 (Protection_Object, Set_Protection_Object): New subprogram.
5118 (Write_Field17_Name): Remove case for Object_Ref.
5119 (Write_Field20_Name): Add case for Prival_Link.
5120 (Write_Field22_Name): Remove case for Protected_Operation,
5122 Add case for Protection_Object.
5123 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5125 (Overlays_Constant): New flag
5126 (Is_Constant_Object): New predicate
5127 (Is_Standard_Character_Type): New predicate
5128 (Optimize_Alignment_Space): New flag
5129 (Optimize_Alignment_Time): New flag
5130 (Has_Postconditions): New flag
5131 (Obsolescent_Warrning): Field removed
5132 (Spec_PPC_List): New field
5133 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5134 subprograms to get and set the relative deadline associated to a task.
5136 * exp_attr.adb (May_Be_External_Call): Account for the case where the
5137 Access attribute is part of a named parameter association.
5138 (Expand_Access_To_Protected_Op): Test for the attribute occurring
5139 within an init proc and use that directly as the scope rather than
5140 traversing up to the protected operation's enclosing scope. Only apply
5141 assertion on Is_Open_Scopes in the case the scope traversal is done.
5142 For the init proc case use the address of the first formal (_init) as
5143 the protected object reference.
5144 Implement Invalid_Value attribute
5145 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5146 contents of the dispatch table there is no need to duplicate the
5147 itypes associated with record types (i.e. the implicit full view
5149 Implement Enum_Val attribute
5150 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5151 within _Postconditions procedure
5152 (Expand_N_Attribute_Reference, case Result): Implement new attribute
5154 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5155 a return statement calls a function that is not available in
5156 configurable runtime.
5157 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5158 (Expand_Non_Function_Return): Generate call to _Postconditions proc
5159 (Expand_Simple_Function_Return): Ditto
5161 * frontend.adb: Add call to Sem_Aux.Initialize
5163 * sem_aux.ads, sem_aux.adb: New file.
5165 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5166 Add new Pragma_Relative_Deadline.
5167 Add support for pragmas Check and Check_Policy
5169 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5170 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5171 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5172 missing check because they are not allowed in CPP tagged types.
5173 Add Sure parameter to Note_Possible_Modification calls
5174 Add implementation of Invalid_Value attribute
5175 Implement new attribute Has_Tagged_Values
5176 Implement Enum_Val attribute
5177 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5178 generated attributes.
5179 (Analyze_Attribute, case Result): If prefix of the attribute is
5180 overloaded, it always resolves to the enclosing function.
5181 (Analyze_Attribute, case Result): Properly deal with analysis when
5182 Postconditions are not active.
5183 (Resolve_Attribute, case Result): Properly deal with appearence during
5184 preanalysis in spec.
5185 Add processing for attribute Result
5187 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5189 (Analyze_Subprogram_Body): Install private_with_clauses when the body
5191 (Check_Inline_Pragma): recognize an inline pragma that appears within
5192 the subprogram body to which it applies.
5193 (Analyze_Function_Return): Check that type of the expression of a return
5194 statement in a function with a class-wide result is not declared at a
5195 deeper level than the function.
5196 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5197 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5198 user- defined operators.
5199 (Install_Formals): Moved to spec to allow use from Sem_Prag for
5200 analysis of precondition/postcondition pragmas.
5201 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5202 Last_Formal, along with lots of comments on what this is about
5203 (Analyze_Subprogram_Body): Fix case where we move entities from the
5204 spec to the body when there are no body entities (now possible with
5205 precondition and postcondition pragmas).
5206 (Process_PPCs): New procedure
5207 (Analyze_Subprogram_Body): Add call to Process_PPCs
5209 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5211 (Pop_Scope): Restore Check_Policy_List on scope exit
5212 (Push_Scope): Save Check_Policy_List on scope entry
5213 Change name In_Default_Expression => In_Spec_Expression
5214 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5215 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5216 (Analyze_Object_Renaming): Allow 'Reference as object
5217 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5218 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5219 of restriction identifier.
5220 Add Sure parameter to Note_Possible_Modication calls
5222 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5223 Don't check for primitive operations when calling Rep_Item_Too_Late.
5224 (Process_Import_Or_Interface): Do not place flag on formal
5226 (Analyze_Pragma, case Export): If the entity is a deferred constant,
5227 propagate information to full view, which is the one elaborated by the
5229 (Make_Inline): the pragma is effective if it applies to an internally
5230 generated subprogram declaration for a body that carries the pragma.
5231 (Analyze_Pragma, case Optimize_Alignment): Set new flag
5232 Optimize_Alignment_Local.
5233 (Analyze_PPC_In_Decl_Part): New procedure
5234 (Get_Pragma_Arg): Moved to outer level
5235 (Check_Precondition_Postcondition): Change to allow new visibility
5236 rules for package spec
5237 (Analyze_Pragma, case Check_Policy): Change placement rules to be
5238 same as pragma Suppress/Unsuppress.
5239 Change name In_Default_Expression => In_Spec_Expression
5240 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5241 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5242 (Check_Precondition_Postcondition): Do proper visibility preanalysis
5243 for the case of these pragmas appearing in the spec.
5244 (Check_Enabled): New function
5245 (Initialize): New procedure
5246 (Tree_Read): New procedure
5247 (Tree_Write): New procedure
5248 (Check_Precondition_Postcondition): New procedure
5249 Implement pragmas Check and Check_Policy
5250 Merge Assert processing with Check
5252 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5253 New warning flag -gnatw.e
5255 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5256 returning whether a task (or main procedure) has a pragma
5258 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5259 (or main procedure) has a pragma Relative_Deadline.
5260 Add Next_Pragma field to N_Pragma node
5261 (PPC_Enabled): New flag
5262 (Next_Pragma): Now used for Pre/Postcondition processing
5264 * snames.h, snames.ads, snames.adb: New standard name
5266 Add entry for 'Invalid_Value attribute
5267 Add entry for new attribute Has_Tagged_Values
5268 Add entry for Enum_Val attribute
5269 Add new standard names Aggregate, Configuration and Library.
5272 Add Pragma_Precondition
5273 Add Pragma_Postcondition
5274 Add Attribute_Result
5275 New standard name Archive_Builder_Append_Option
5276 (Preset_Names): Add _relative_deadline and relative_deadline definitions
5277 There was also a missing non_preemptive_within_priorities.
5278 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5280 Add support for pragmas Check and Check_Policy
5282 * tree_gen.adb: Call Sem_Aux.Tree_Write
5284 * tree_in.adb: Call Sem_Aux.Tree_Read
5286 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5289 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5292 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5293 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5295 (Expand_Pragma_Check): New procedure
5297 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5300 * sinfo.adb (PPC_Enabled): New flag
5302 2008-04-08 Robert Dewar <dewar@adacore.com>
5303 Gary Dismukes <dismukes@adacore.com>
5304 Javier Miranda <miranda@adacore.com>
5305 Ed Schonberg <schonberg@adacore.com>
5307 * fe.h: Remove global Optimize_Alignment flag, no longer used
5309 * layout.adb: Test Optimize_Alignment flags rather than global switch
5311 * lib.ads, lib.adb: New OA_Setting field in library record
5313 * lib-load.adb: New OA_Setting field in library record
5315 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5316 units mentioned in limited_with_ clauses in the ali file, with an
5318 New Ox fields in U line
5320 * opt.adb: New flag Optimize_Alignment_Local
5321 (Check_Policy_List[_Config]): New flags
5323 * opt.ads (Invalid_Value_Used): New flag
5324 New switch Optimize_Alignment_Local
5325 (Warn_On_Parameter_Order): New flag
5326 (Check_Policy_List[_Config]): New flags
5328 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5329 limited_with clauses.
5330 New data structures for Optimize_Alignment
5332 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5334 (Check_Consistent_Optimize_Alignment): Rework for new structure
5335 (Check_Consistent_Restrictions): Fix incorrect error message
5337 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5338 created class-wide type (to the Parent field of the specific type).
5339 (Install_Siblings): Handle properly private_with_clauses on subprogram
5340 bodies and on generic units.
5341 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5342 illegal limited_with_clause that names a non-existent package.
5343 (Check_Body_Required): Determine whether a unit named a limited_with
5344 clause needs a body.
5345 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5346 Capture Optimize_Alignment settings to set new OA_Setting field in
5348 (Build_Limited_Views): Include task and protected type declarations.
5350 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5351 case of a possible constant redeclaration where the current object is
5352 an entry index constant.
5353 (Analyze_Object_Declaration): Generate an error in case of CPP
5354 class-wide object initialization.
5355 (Analyze_Object_Declaration): Add extra information on warnings for
5356 declaration of unconstrained objects.
5357 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5358 conflicts with the setting of Stored_Constraint in the case where the
5359 access type entity has already been created as an E_Incomplete_Type due
5360 to a limited with clause.
5361 Use new Is_Standard_Character_Type predicate
5362 (Analyze_Object_Declaration): Apply access_constant check only after
5363 expression has been resolved, given that it may be overloaded with
5364 several access types.
5365 (Constant_Redeclaration): Additional legality checks for deferred
5366 constant declarations tha involve anonymous access types and/or null
5367 exclusion indicators.
5368 (Analyze_Type_Declaration): Set Optimize_Alignment flags
5369 (Analyze_Subtype_Declaration): Ditto
5370 (Analyze_Object_Declaration): Ditto
5371 (Analyze_Object_Declaration): Don't count tasks in generics
5372 Change name In_Default_Expression => In_Spec_Expression
5373 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5374 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5375 (Process_Discriminants): Additional check for illegal use of default
5376 expressions in access discriminant specifications in a type that is not
5378 (Check_Abstract_Overriding): If an inherited function dispaches on an
5379 access result, it must be overridden, even if the type is a null
5381 (Derive_Subprogram): The formals of the derived subprogram have the
5382 names and defaults of the parent subprogram, even if the type is
5383 obtained from the actual subprogram.
5384 (Derive_Subprogram): In the presence of interfaces, a formal of an
5385 inherited operation has the derived type not only if it descends from
5386 the type of the formal of the parent operation, but also if it
5387 implements it. This is relevant for the renamings created for the
5388 primitive operations of the actual for a formal derived type.
5389 (Is_Progenitor): New predicate, to determine whether the type of a
5390 formal in the parent operation must be replaced by the derived type.
5392 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5393 predicate recursive to handle components that have a user-defined
5394 Initialize procedure. Handle controlled derived types whose ancestor
5395 has a user-defined Initialize procedured.
5396 (Note_Possible_Modification): Add Sure parameter, generate warning if
5397 sure modification of constant
5398 Use new Is_Standard_Character_Type predicate
5399 (Find_Parameter_Type): when determining whether a protected operation
5400 implements an interface operation, retrieve the type of the formal from
5401 the entity when the formal is an access parameter or an
5402 anonymous-access-to-subprogram.
5403 Move Copy_Parameter_List to sem_util, for use when building stubbed
5405 (Has_Access_Values): Tagged types now return False
5406 (Within_HSS_Or_If): New procedure
5407 (Set_Optimize_Alignment_Flags): New procedure
5408 Change name In_Default_Expression => In_Spec_Expression
5409 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5410 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5412 2008-04-08 Tristan Gingold <gingold@adacore.com>
5414 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5416 2008-04-08 Tristan Gingold <gingold@adacore.com>
5420 * cuintp.c: Fix 16 bits issue for AVR.
5421 On AVR, integer is 16 bits, so it can't be used to do math with
5423 So use long_integer instead.
5425 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5427 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5428 System.OS_Primitives.
5429 Change type of various constants, parameters and local variables from
5430 Time to representation type OS_Time.
5431 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5432 Remove the declaration of constant Mili_F from several routines. New
5433 body for internal package Conversions_Operations.
5434 (Time_Of): Add default parameters for several formals.
5436 * a-caldel.adb: Minor reformatting
5438 * a-calend.ads, a-calend.adb: New body for internal package
5439 Conversions_Operations.
5440 (Time_Of): Add default parameters for several formals.
5442 * Makefile.rtl: Add a-ststop
5443 Add Ada.Calendar.Conversions to the list of runtime files.
5446 * a-calcon.adb, a-calcon.ads: New files.
5448 2008-04-08 Jose Ruiz <ruiz@adacore.com>
5449 Tristan Gingold <gingold@adacore.com>
5451 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5452 (Install_Restricted_Handlers): New procedure
5453 which is a simplified version of Install_Handlers that does not store
5454 previously installed.
5456 * s-interr-vxworks.adb: Fix ACATS cxc3001
5457 On VxWorks interrupts can't be detached.
5458 (Install_Restricted_Handlers): New procedure.
5460 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5463 2008-04-08 Olivier Hainque <hainque@adacore.com>
5465 * s-intman-vxworks.ads, s-intman-vxworks.adb
5466 (Map_And_Raise_Exception): Remove. Was an import of only part of the
5467 required services already implemented elsewhere.
5468 (Notify_Exception): Delete body, import __gnat_error_handler instead.
5469 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5470 argument passed to the handler, which we need for ZCX propagation
5473 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5475 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5477 * g-timsta.adb, g-timsta.ads: New files.
5479 2008-04-08 Robert Dewar <dewar@adacore.com>
5481 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5482 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5483 (Raise_Exception_Always): Fix documentation accordingly
5485 2008-04-08 Robert Dewar <dewar@adacore.com>
5487 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5490 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5493 2008-04-08 Javier Miranda <miranda@adacore.com>
5494 Robert Dewar <dewar@adacore.com>
5495 Ed Schonberg <schonberg@adacore.com>
5497 * a-tags.adb (Register_Interface_Offset): New subprogram.
5498 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5499 (To_Predef_Prims_Table_Ptr): Removed.
5500 (Acc_Size): Removed.
5501 (To_Acc_Size): Removed.
5502 (Parent_Size): Modified to the call the subprogram returning the size of
5503 the parent by means of the new TSD component Size_Func.
5505 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5506 (DT_Offset_To_Top_Offset): New constant value that is used to generate
5507 code referencing the Offset_To_Top component of the dispatch table's
5509 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5510 use of 'address to initialize dispatch table slots.
5511 (Size_Func): New component of the TSD. Used by the run-time to call the
5512 size primitive of the tagged type.
5514 * checks.adb (Apply_Access_Check): Avoid check when accessing the
5515 Offset_To_Top component of a dispatch table.
5516 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5517 deferred constant declaration. do not add a null expression, to prevent
5518 spurious errors when full declaration is analyzed.
5519 (Apply_Discriminant_Check): If both discriminant constraints share a
5520 node which is not static but has no side effects, do not generate a
5521 check for that discriminant.
5522 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5523 subexpr, since the prefix of an attribute is a name.
5525 * checks.ads: Fix nit in comment.
5527 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5528 and body of predefined primitives in case of CPP tagged type
5530 (Freeze_Type): Deal properly with no storage pool case
5531 (Make_Predefined_Primitive_Specs): Generate specification of abstract
5532 primitive Deep_Adjust if a nonlimited interface is derived from a
5534 (Build_Dcheck_Functions): Create discriminant-checking functions only
5535 for variants that have some component(s).
5536 (Build_Slice_Assignment): In expanded code for slice assignment, handle
5537 properly the case where the slice bounds extend to the last value of the
5538 underlying representation.
5539 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5540 (Is_Variable_Size_Record): An array component has a static size if
5541 index bounds are enumeration literals.
5543 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5544 an external tag has been specified for the type.
5545 (Building_Static_DT): Add missing support for private types.
5546 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5547 to the entity associated with the parent of Typ. This is done to
5548 avoid wrong access when the parent is a private type.
5549 (Expand_Interface_Conversion): Improve error message when the
5550 configurable runtime has no support for dynamic interface conversion.
5551 (Expand_Interface_Thunk): Add missing support to interface types in
5552 configurable runtime.
5553 (Expand_Dispatching_Call): remove obsolete code.
5554 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5555 ensure that all subtypes and aggregates associated with dispatch
5556 tables have the attribute Is_Dispatch_Table_Entity set to true.
5557 (Register_Primitive): Rename one variable to improve code reading.
5558 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5559 of the pointer to the 'size primitive in the TSD.
5561 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5562 (RE_Offset_To_Top_Ptr): New entity.
5563 (RE_Register_Interface_Offset): New entity.
5564 (RE_Set_Dynamic_Offset_To_Top): New entity.
5565 (RE_Set_Offset_To_Top): Removed entity.
5566 (RE_Prim_Ptr): New entity
5567 (RE_Size_Func): New entity
5568 (RE_Size_Ptr): New entity
5569 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5570 (Ada_Dispatching_Child): Define this new subrange.
5571 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5572 RE_Time_Span, and RE_Time_Span_Zero).
5573 (RE_Unit_Table): Add new required run-time calls
5575 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5578 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5579 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5580 initializes the Offset_To_Top component of a dispatch table.
5581 (Build_Predef_Prims): Removed.
5582 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5584 (Build_Set_Size_Function): New subprogram.
5586 * exp_ch13.adb: Do not generate storage variable for storage_size zero
5587 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5589 2008-04-08 Robert Dewar <dewar@adacore.com>
5591 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5592 computing Fore when Exp > 0
5594 2008-04-08 Robert Dewar <dewar@adacore.com>
5596 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5598 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5599 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5601 * fmap.adb: Remove Big_String declarations (now in Types)
5602 (No_Mapping_File): New Boolean global variable
5603 (Initialize): When mapping file cannot be read, set No_Mapping_File to
5605 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5606 tables were empty before adding entries, open the mapping file
5607 with Truncate = True, instead of delete/re-create.
5609 * fname-sf.adb: Remove Big_String declarations (now in Types)
5611 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5612 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5615 * table.ads: Add for Table_Ptr'Storage_Size use 0
5617 * types.ads: Add Big_String declarations
5618 Add Size_Clause of zero for big pointer types
5620 2008-04-08 Vincent Celier <celier@adacore.com>
5622 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5623 (Usage): Add line for switch --subdirs=
5624 Add new switch -eL, to follow symbolic links when processing project
5627 * gnatcmd.adb: Process switches -eL and --subdirs=
5628 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5629 Program_Name to get proper tool names when AAMP_On_Target is set.
5630 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5631 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5632 Osint.Program_Name).
5634 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5635 (Usage): Add lines for switches -eL and --subdirs=
5637 * makeusg.adb: Add line for switch --subdirs=
5640 (Source_Data): New Boolean component Compiled, defaulted to True
5641 (Empty_File_Name: New global variable in private part, initialized in
5642 procedure Initialize.
5643 (Subdirs_Option): New constant string
5644 (Subdirs): New String_Ptr global variable
5645 (Language_Config): New component Include_Compatible_Languages
5646 (Project_Qualifier): New type for project qualifiers
5647 (Project_Data): New component Qualifier
5648 (Project_Configuration): New component Archive_Builder_Append_Option
5650 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5651 another imported project indicate the name of this imported project.
5652 (Check_File): When a unit is in two project files, indicate the project
5653 names and the paths of the source files for each project.
5654 (Add_Source): Set Compiled to False if compiler driver is empty. Only
5655 set object, dependency and switches file names if Compiled is True.
5656 (Process_Compiler): Allow the empty string for value of attribute Driver
5657 (Get_Directories): When Subdirs is not null and Object_Dir is not
5658 specified, locate and create if necessary the actual object dir.
5659 (Locate_Directory): When Subdirs is not empty and Create is not the
5660 empty string, locate and create if necessary the actual directory
5661 as a subdirectory of directory Name.
5662 (Check_Library_Attributes.Check_Library): Allow a project where the only
5663 "sources" are header files of file based languages to be imported by
5664 library projects, in multi-language mode (gprbuild).
5665 (Check_Library_Attributes.Check_Library): In multi-language mode
5666 (gprbuild), allow a library project to import a project with no
5667 sources, even when this is not declared explicitly.
5668 (Check_If_Externally_Built): A virtual project extending an externally
5669 built project is also externally built.
5670 (Check_Library_Attributes): For a virtual project extending a library
5671 project, inherit the library directory.
5672 (Process_Project_Level_Array_Attributes): Process new attribute
5673 Inherit_Source_Path.
5674 For projects with specified qualifiers "standard", "library" or
5675 "abstract", check that the project conforms to the qualifier.
5676 (Process_Project_Level_Simple_Attributes): Process new attribute
5677 Archive_Builder_Append_Option.
5679 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5680 (Normalize_Compiler_Switches): Only keep compiler switches that are
5681 passed to gnat1 by the gcc driver and that are stored in the ALI file
5683 Do not take into account switc -save-temps
5685 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5686 gprmake is called with -eL.
5687 (Scan_Arg): Recognize switch -eL
5688 (Usage): Add line for switch -eL
5690 * prj.adb (Initialize): Initialize Empty_File_Name
5691 (Project_Empty): New component Qualifier
5693 * prj-attr.ads, prj-attr.adb: New project level attribute
5694 Inherit_Source_Path.
5695 New project level attribute Archive_Builder_Append_Option
5697 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5699 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5700 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5701 upward compatibility.
5703 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5704 each Trying ..." on different lines.
5705 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5706 is "configuration" when not in configuration. Fail when in configuration
5707 when a specified qualifier is other than "configuration".
5709 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5710 full associative array together.
5711 (Recursive_Process): Put the project qualifier in the project data
5713 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5714 (Set_Project_Qualifier_Of): New procedure
5716 2008-04-08 Robert Dewar <dewar@adacore.com>
5718 * errout.ads: Update comments for new handling of info: messages
5720 * erroutc.adb (Matches): New procedure
5721 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5722 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5723 info messages as well as style messages.
5725 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5727 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5729 (Check_A_Call): Special "info: " warnings now have ? in the text
5730 (Elab_Warning): Use info message in static case
5732 2008-04-08 Ed Schonberg <schonberg@adacore.com>
5734 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5735 whether an array aggregate with static bounds and scalar components
5736 should be expanded into a static constant.
5738 2008-04-08 Gary Dismukes <dismukes@adacore.com>
5739 Ed Schonberg <schonberg@adacore.com>
5740 Robert Dewar <dewar@adacore.com>
5742 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5743 Has_Stream_Attribute_ Definition when checking for available stream
5744 attributes on parameters of a limited type in Ada 2005. Necessary for
5745 proper recognition of visible stream attribute clauses.
5746 (Has_Stream_Attribute_Definition): If the type is derived from a
5747 private type, then use the derived type's underlying type for checking
5748 whether it has stream attributes.
5749 (Validate_Object_Declaration): The check for a user-defined Initialize
5750 procedure applies also to types with controlled components or a
5751 controlled ancestor.
5752 Reject an object declaration in a preelaborated unit if the type is a
5753 controlled type with an overriding Initialize procedure.
5754 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5755 checking when the parent of a dereference is a selected component and
5756 the name has not been analyzed.
5758 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5759 prefixes that are invalid explicit dereferences of remote
5760 access-to-class-wide values, first checking whether the selected
5761 component is a prefixed form of call to a tagged operation.
5762 (Analyze_Call): Remove code that issues an error for limited function
5763 calls in illegal contexts, as we now support all of the contexts that
5764 were forbidden here.
5765 Allow a function call that returns a task.and appears as the
5766 prefix of a selected component.
5767 (Analyze_Reference): Give error message if we try to make a 'Reference
5768 for an object that is atomic/aliased without its type having the
5769 corresponding attribute.
5770 (Analyze_Call): Remove condition checking for attributes to allow
5771 calls to functions with inherently limited results as prefixes of
5772 attributes. Remove related comment about Class attributes.
5773 (Analyze_Selected_Component): If the prefix is a remote type, check
5774 whether this is a prefixed call before reporting an error.
5775 (Complete_Object_Operation): If the controlling formal is an access to
5776 variable reject an actual that is a constant or an access to one.
5777 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5778 primitive operations from base type.
5780 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
5782 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5783 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
5784 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
5785 (Expand_N_Slice): Test for prefix that is a build-in-place function call
5786 and call Make_Build_In_Place_Call_In_Anonymous_Context.
5787 (Analyze_Call): Remove code that issues an error for limited function
5788 calls in illegal contexts, as we now support all of the contexts that
5789 were forbidden here.
5790 New calling sequence for Get_Simple_Init_Val
5791 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
5792 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
5794 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5795 Ed Schonberg <schonberg@adacore.com>
5796 Robert Dewar <dewar@adacore.com>
5798 * exp_ch2.adb: Minor reformatting.
5799 (Expand_Entry_Index_Parameter): Set the type of the identifier.
5800 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
5801 (Expand_Protected_Component): New routine.
5802 (Expand_Protected_Private): Removed.
5803 Add Sure parameter to Note_Possible_Modification calls
5805 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
5806 generated subprogram declaration must inherit the overriding indicator
5807 from the instantiation node.
5808 (Validate_Access_Type_Instance): If the designated type of the actual is
5809 a limited view, use the available view in all cases, not only if the
5810 type is an incomplete type.
5811 (Instantiate_Object): Actual is illegal if the formal is null-excluding
5812 and the actual subtype does not exclude null.
5813 (Process_Default): Handle properly abstract formal subprograms.
5814 (Check_Formal_Package_Instance): Handle properly defaulted formal
5815 subprograms in a partially parameterized formal package.
5816 Add Sure parameter to Note_Possible_Modification calls
5817 (Validate_Derived_Type_Instance): if the formal is non-limited, the
5818 actual cannot be limited.
5819 (Collect_Previous_Instances): Generate instance bodies for subprograms
5822 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
5824 Add Sure parameter to Note_Possible_Modification calls
5825 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
5826 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
5827 constant overlaid by variable and issue warning.
5828 Use new Is_Standard_Character_Type predicate
5829 (Analyze_Record_Representation_Clause): Check that the specified
5830 Last_Bit is not less than First_Bit - 1.
5831 (Analyze_Attribute_Definition_Clause, case Address): Check for
5832 self-referential address clause
5834 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
5835 detection mechanism when the lhs is a prival.
5836 (Analyze_Assignment): Call Check_Unprotected_Access to detect
5837 assignment of a pointer to protected data, to an object declared
5838 outside of the protected object.
5839 (Analyze_Loop_Statement): Check for unreachable code after loop
5840 Add Sure parameter to Note_Possible_Modication calls
5841 Protect analysis from previous syntax error such as a scope mismatch
5843 (Analyze_Assignment_Statement): The assignment is illegal if the
5844 left-hand is an interface.
5846 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
5847 violation of restriction No_Implicit_Conditionals
5848 Add Sure parameter to Note_Possible_Modication calls
5849 Use new Is_Standard_Character_Type predicate
5850 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
5851 call as operator. Fixes problems (e.g. validity checking) which
5852 come from the result looking as though it does not come from source).
5853 (Resolve_Call): Check case of name in named parameter if style checks
5855 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
5856 from the checking that such calls should not occur from an entry body.
5857 (Resolve_Call): If the return type of an Inline_Always function
5858 requires the secondary stack, create a transient scope for the call
5859 if the body of the function is not available for inlining.
5860 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
5861 that are actuals for in-out formals.
5862 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5863 primitive operations from base type.
5864 (Analyze_Selected_Component): If the context is a call to a protected
5865 operation the parent may be an indexed component prior to expansion.
5866 (Resolve_Actuals): If an actual is of a protected subtype, use its
5867 base type to determine whether a conversion to the corresponding record
5869 (Resolve_Short_Circuit): Handle pragma Check
5871 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
5872 Use new Is_Standard_Character_Type predicate
5873 (Eval_Relational_Op): Catch more cases of string comparison
5875 2008-04-08 Robert Dewar <dewar@adacore.com>
5876 Gary Dismukes <dismukes@adacore.com>
5878 * s-rident.ads: Add No_Default_Initialization restriction
5881 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
5882 (Set_TSS): Handle No_Default_Initialization case
5884 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
5885 No_Default_Initialization
5886 (Expand_N_Subprogram_Body): Remove redundant initialization of out
5887 parameters when Normalize_Scalars is active.
5888 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
5889 Fix casing error in formal parameter name in call
5890 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
5891 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
5892 dispatching call on VM targets.
5894 2008-04-08 Gary Dismukes <dismukes@adacore.com>
5895 Thomas Quinot <quinot@adacore.com>
5897 * exp_ch7.adb (Find_Final_List): Change the test for generating a
5898 selected component from an access type's Associated_Final_Chain to
5899 check for the presence of that field, rather than assuming it exists
5900 for all named access types.
5901 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
5902 procedure to call at the end of the generated cleanup procedure.
5903 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
5904 and an At_End_Proc already exists in the handled sequence of statements
5905 for which cleanup actions are being expanded, the original cleanup
5906 action must be preserved.
5908 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5909 Ed Schonberg <schonberg@adacore.com>
5910 Robert Dewar <dewar@adacore.com>
5911 Gary Dismukes <dismukes@adacore.com>
5913 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
5914 Build_Unprotected_Subprogram_Body): Generate debug info for
5915 declarations related to the handling of private data in task and
5917 (Debug_Private_Data_Declarations): New subprogram.
5918 (Install_Private_Data_Declarations): Remove all debug info flagging.
5919 This is now done by Debug_Private_Data_Declarations at the correct
5921 (Build_Simple_Entry_Call): If the task name is a function call, expand
5922 the prefix into an object declaration, and make the surrounding block a
5924 (Build_Master_Entity): An internal block is a master if it wraps a call.
5925 Code reformatting, update comments. Code clean up.
5926 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
5927 (Replicate_Entry_Formals): If the formal is an access parameter or
5928 anonymous access to subprogram, copy the original tree to create new
5929 entities for the formals of the subprogram.
5930 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
5931 for tasks to store the value passed using pragma Relative_Deadline.
5932 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
5933 run-time call to create a task.
5934 (Build_Wrapper_Spec): If the controlling argument of the interface
5935 operation is an access parameter with a non-null indicator, use the
5936 non-null indicator on the wrapper.
5938 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
5939 present, which it may not be in the case where the type entity is an
5940 incomplete view brought in by a limited with.
5941 (Analyze_Task_Type): Only retrieve the full view when present, which it
5942 may not be in the case where the type entity is an incomplete view brought
5943 in by a limited with.
5944 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
5945 private components of a protected type, to prevent the generation of freeze
5946 nodes for which there is no proper scope of elaboration.
5948 * exp_util.ads, exp_util.adb
5949 (Remove_Side_Effects): If the expression is a function call that returns a
5950 task, expand into a declaration to invoke the build_in_place machinery.
5951 (Find_Protection_Object): New routine.
5952 (Remove_Side_Effects): Also make a copy of the value
5953 for attributes whose result is of an elementary type.
5954 (Silly_Boolean_Array_Not_Test): New procedure
5955 (Silly_Boolean_Array_Xor_Test): New procedure
5956 (Is_Volatile_Reference): New function
5957 (Remove_Side_Effects): Use Is_Volatile_Reference
5958 (Possible_Bit_Aligned_Component): Handle slice case properly
5960 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
5961 case test to Exp_Util
5962 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
5964 2008-04-08 Thomas Quinot <quinot@adacore.com>
5966 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
5968 (Add_RACW_Features): When processing an RACW in another unit than the
5969 main unit, set Body_Decls to No_List to indicate that the bodies of
5970 the type's TSS must not be generated.
5971 (GARLIC_Support.Add_RACW_Read_Attribute,
5972 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
5973 Body_Decls is No_List.
5974 (PolyORB_Support.Add_RACW_Read_Attribute,
5975 PolyORB_Support.Add_RACW_Write_Attribute,
5976 PolyORB_Support.Add_RACW_From_Any,
5977 PolyORB_Support.Add_RACW_To_Any,
5978 PolyORB_Support.Add_RACW_TypeCode): Same.
5979 (Transmit_As_Unconstrained): New function.
5980 (Build_Ordered_Parameters_List): Use the above to order parameters.
5981 (GARLIC_Support.Build_General_Calling_Stubs):
5982 Use the above to determine which parameters to unmarshall using 'Input
5983 at the point where their temporary is declared (as opposed to later on
5985 (PolyORB_Support.Build_General_Calling_Stubs):
5986 Use the above to determine which parameters to unmarshall using From_Any
5987 at the point where their temporary is declared (as opposed to later on
5988 with an assignment).
5990 2008-04-08 Ed Schonberg <schonberg@adacore.com>
5992 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
5993 an Input function for an access type, do not perform default
5994 initialization on the local variable that receives the value, to
5995 prevent spurious warnings when the type is null-excluding.
5997 2008-04-08 Robert Dewar <dewar@adacore.com>
5998 Ed Schonberg <schonberg@adacore.com>
6000 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6002 (Size_Known): Generic formal scalar types have known at compile
6003 time size, so remove check.
6004 Fix casing error in formal parameter name in call
6005 (Freeze_Subprogram): If the subprogram is a user-defined operator,
6006 recheck its overriding indication.
6008 2008-04-08 Vincent Celier <celier@adacore.com>
6010 * gnat1drv.adb: Send all messages indicating an error to standard error
6012 2008-04-08 Robert Dewar <dewar@adacore.com>
6014 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6015 (List_Applicable_Restrictions): Do not list existing restrictions
6017 2008-04-08 Thomas Quinot <quinot@adacore.com>
6019 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6020 add a pointer to generic sockets literature
6021 do not mention that the given example is "typical" usage.
6022 Remove obsolete comment about multicast not being supported on Windows.
6023 (Connect_Socket): Make Server mode IN rather than IN OUT
6024 since this formal is never modified.
6026 2008-04-08 Robert Dewar <dewar@adacore.com>
6028 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6029 the declaration for some different entity.
6030 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6031 list is precent (following the parent subtype indication), display
6032 appropriate "and" keyword.
6034 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6035 Remove unnecessary calls to Init_Size_Align and Init_Esize.
6036 Add notes on use of Parent field of an Itype
6038 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6039 Robert Dewar <dewar@adacore.com>
6040 Gary Dismukes <dismukes@adacore.com>
6042 * lib-xref.adb (Is_On_LHS): Remove dead code
6043 (Output_Overriden_Op): If the overridden operation is itself inherited,
6044 list the ancestor operation, which is the one whose body or absstract
6045 specification is actually being overridden. For source navigation
6048 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6049 operation is primitive for the type.
6050 (Declare_Inherited_Private_Subprograms): If the new operation overrides
6051 an inherited private subprogram, set properly the Overridden_Operation
6052 attribute, for better cross-reference information.
6053 (Analyze_Package_Specification): Do late analysis of spec PPCs
6054 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6055 properly the full view and underlying full views of a private type in a
6056 child unit, whose full view is derived from a private type in a parent
6057 unit, and whose own full view becomes visible in the child body.
6059 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6060 primitive operation after the type has been frozen, add an explicit
6061 reference to the type and the operation, because other primitive
6062 references have been emitted already.
6063 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6064 dispatching call on VM targets.
6066 2008-04-08 Vincent Celier <celier@adacore.com>
6067 Thomas Quinot <quinot@adacore.com>
6069 * make.adb: (Gnatmake_Called): Remove, no longer necessary
6070 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6071 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6072 (Insert_Project_Sources): Take into account index in multi-unit source
6074 After building a library project, delete all temporary files.
6075 (Initialize): Reset current output after parsing project file.
6076 (Collect_Arguments_And_Compile): Never insert in the queue the sources
6077 of library projects that are externally built.
6078 Put file name in error and inform messages if -df is used
6079 (Display): If invoked with -d7, do not display path names, but only
6082 * makeutl.ads (Path_Or_File_Name): New function
6083 (Path_Or_File_Name): New function
6085 2008-04-08 Arnaud Charlet <charlet@adacore.com>
6087 * Make-lang.in: Disable warnings during first stage of bootstrap
6089 Update dependencies.
6091 2008-04-08 Vincent Celier <celier@adacore.com>
6093 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6094 case to decide if ALI object file is included in library.
6095 (Build_Library): Never attempt to build a library if the project is
6098 2008-04-08 Thomas Quinot <quinot@adacore.com>
6100 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6101 (No_List) is defined to return Empty.
6103 2008-04-08 Jose Ruiz <ruiz@adacore.com>
6105 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6108 (Read_Default_Search_Dirs): Do not consider spaces as path separators
6109 because spaces may be part of legal paths.
6111 2008-04-08 Robert Dewar <dewar@adacore.com>
6113 * par-ch11.adb (P_Exception_Handler): Check indentation level for
6116 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6118 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6119 in a type declaration, if this is not an interface declaration or
6120 private type extension.
6122 2008-04-08 Vincent Celier <celier@adacore.com>
6124 * prj-util.adb (Executable_Of): New String parameter Language. When
6125 Ada_Main is False and Language is not empty, attempt to remove the body
6126 suffix or the spec suffix of the language to get the base of the
6127 executable file name.
6128 (Put): New Boolean parameter Lower_Case, defauilted to False. When
6129 Lower_Case is True, put the value in lower case in the name list.
6130 (Executable_Of): If there is no executable suffix in the configuration,
6131 then do not modify Executable_Extension_On_Target.
6133 * prj-util.ads (Executable_Of): New String parameter Language,
6134 defaulted to the empty string.
6135 (Put): New Boolean parameter Lower_Case, defauilted to False
6137 2008-04-08 Robert Dewar <dewar@adacore.com>
6139 * scng.adb (Scan_Identifier): Handle case of identifier starting with
6140 wide character using UTF-8 encoding.
6142 2008-04-08 Javier Miranda <miranda@adacore.com>
6144 * sem.adb (Analyze): Consider case in which we analyze an empty node
6145 that was generated by a call to a runtime function that is not
6146 available under the configurable runtime.
6148 * sem.ads (Inside_Freezing_Actions): New flag.
6149 (Save_Check_Policy_List): New field in scope stack entry
6151 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6152 Robert Dewar <dewar@adacore.com>
6154 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6155 the ancestor part of an extension aggregate for a limited type.
6156 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6157 enumeration index bounds.
6158 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6159 when array is too short.
6160 (Check_Expr_OK_In_Limited_Aggregate): Move function
6161 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6163 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6164 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6165 component associations.
6166 (Check_Non_Limited_Type): Moved to outer level and renamed.
6167 (Resolve_Record_Aggregate): In an extension aggregate, an association
6168 with a box initialization can only designate a component of the
6169 extension, not a component inherited from the given ancestor
6171 * sem_case.adb: Use new Is_Standard_Character_Type predicate
6173 2008-04-08 Robert Dewar <dewar@adacore.com>
6175 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6177 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6178 Properly handle case where Aft > Scale and input number is less than
6181 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6183 * s-stoele.ads, s-soflin.ads: Move the location of
6184 Dummy_Communication_Block from System.Storage_Elements to
6187 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6188 emulate Communication_Block in certain scenarios.
6190 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6192 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6194 Add new subtype S_WWC, unchecked conversion routines From_WWC and
6196 (I_WWC, O_WWC): New routines for input and output of
6197 Wide_Wide_Character.
6199 2008-04-08 Robert Dewar <dewar@adacore.com>
6201 * stringt.adb (Write_String_Table_Entry): Handle wide characters
6204 2008-04-08 Robert Dewar <dewar@adacore.com>
6206 * styleg.adb (Check_Comment): Allow special char after -- in
6207 non-end-of-line case
6209 2008-04-08 Robert Dewar <dewar@adacore.com>
6211 * stylesw.adb: Implement -gnaty + - y options
6212 (Set_GNAT_Style_Check_Options): Includ I in style check string
6214 * stylesw.ads: Add comments for new style switch options
6216 2008-04-08 Sergey Rybin <rybin@adacore.com>
6218 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6219 to the set of the GNAT components needed by ASIS.
6221 2008-04-08 Bob Duff <duff@adacore.com>
6223 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6225 2008-04-08 Tristan Gingold <gingold@adacore.com>
6227 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6228 Improve error message generation.
6230 2008-04-08 Vincent Celier <celier@adacore.com>
6232 * a-direct.adb (Start_Search): Check for Name_Error before checking for
6233 Use_Error, as specified in the RM. Check if directory is open and raise
6234 Use_Error if it is not.
6236 2008-04-08 Vincent Celier <celier@adacore.com>
6237 Robert Dewar <dewar@adacore.com>
6239 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6240 AAMP_On_Target is set.
6242 * vms_data.ads: Add NOxxx to style check switch list
6243 Add entry COMPONENTS for -gnatVe
6244 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6246 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6247 Add qualifiers for gnatmetric coupling options
6248 Add note that -gnata enables all checks
6249 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6250 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6251 New warning flag -gnatw.e
6253 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6254 Add entry for -gnatyN (forgotten before)
6255 Line for new warning switch -gnatw.p
6256 New warning flag -gnatw.e
6258 * gnat_ugn.texi: Add documentation fpr project file switch -aP
6259 Document -gnaty - + y
6260 Replace occurences of "package specification" with "package spec"
6261 Define preprocessing symbols in documentation of gnatprep
6262 Clarify reason for distinguishing overflow checking
6263 Add documentation for project-aware tool switches -eL and --subdirs=
6264 Complete list of configuration pragmas
6265 Specify that, even when gnatmake switch -x is used, mains on the command
6266 line need to be sources of project files.
6267 Editing of gnatcheck/gnatmetric doc.
6268 Add documentation for -gnatw.p/-gnatw.P
6269 Add missing documentation for -fno-inline-functions.
6270 Add documentation for -gnatw.e
6272 * gnat_rm.texi: Add documentation for No_Default_Initialization
6273 Replace occurences of "package specification" with "package spec"
6274 Document use of * in Warnings Off string
6275 Update documentation of alignment/component clauses.
6276 Add documentation for Invalid_Value
6277 Document new consistency rule for Optimize_Alignment
6278 Add documentation for Precondition and Postcondition pragmas
6279 Add documentation for Check and Check_Policy pragmas
6280 Document new Enum_Val attribute
6281 Remove requirement for static string in pragma Assert
6282 Add documentation on GNAT.Time_Stamp
6284 * ug_words: add entry for -gnatVe
6285 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6286 Add entry for -gnatw.e
6288 * debug.adb: Add missing documentation for d.a flag
6289 Document new -gnatd.a switch.
6290 Add documentation for new gnatmake debug switch -df
6292 2008-04-08 Thomas Quinot <quinot@adacore.com>
6294 * gen-soccon.c: Bump year in copyright notices.
6296 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6298 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
6300 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6303 2008-04-08 Robert Dewar <dewar@adacore.com>
6304 Bob Duff <duff@adacore.com>
6306 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6307 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6309 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6311 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6313 * g-trasym.ads: Minor comment improvements
6315 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6317 * a-sequio.ads, a-direio.ads: improve message for tagged type
6319 * a-strunb.ads: Minor reformatting
6321 * a-tifiio.adb: Minor reformatting
6323 * atree.adb (Fix_Parents): Use clearer names for formals
6324 Cleanup and simplify code
6325 Use named notation in calls
6327 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6330 * uintp.adb: Used named notation for some confusing calls
6332 * bindusg.adb: Minor change in one line of output
6334 * cstand.adb: Minor reformatting of src representation of Standard
6336 * a-assert.ads: Add comment.
6338 * g-decstr.adb: Fix bad indentation
6340 * expander.ads, expander.adb: Code clean up.
6342 * sem_dist.ads: Minor comment improvement
6344 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6345 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6347 * i-cstrin.adb: Fix casing error in formal parameter name in call
6349 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6351 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6352 mentioned in limited_with_clauses to do create semantic dependencies
6353 even though they appear in the ali file.
6355 2008-04-08 Emmanuel Briot <briot@adacore.com>
6357 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6359 (Get_Configuration): New subprogram.
6361 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6362 These optional parameters help preserve the casing of the project's name
6363 when pretty-printing.
6365 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
6366 Arnaud Charlet <charlet@adacore.com>
6368 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6369 then use __gnat_set_exit_status to report the returned status code.
6371 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6372 messages on .NET, since some constructs of the language are not
6375 * gnatlink.adb (Gnatlink): In case the command line is too long for the
6376 .NET linker, gnatlink now concatenate all .il files and pass this to
6379 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6380 Xavier Grave <grave@ipno.in2p3.fr>
6382 * Makefile.in: Add make ifeq define for mips/mipsel support.
6383 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6384 system-linux-mips.ads: New files.
6386 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6388 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6389 detect systems using GNU libc.
6395 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6397 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6398 constant constant for sysconf call.
6399 (bit_field): New packed boolean type used by cpu_set_t.
6400 (cpu_set_t): New type corresponding to the C type with
6401 the same name. Note that on the Ada side we use a bit
6402 field array for the affinity mask. There is not need
6403 for the C macro for setting individual bit.
6404 (pthread_setaffinity_np): New imported routine.
6405 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6408 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6410 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6412 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6414 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6415 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6416 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6417 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6418 Return by Depressed Stack Pointer.
6420 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6422 * decl.c (is_variable_size): Do not unconditionally return false
6423 on non-strict alignment platforms.
6425 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6427 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6428 used to process all the variants of the specified type.
6429 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6430 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
6431 (rest_of_type_decl_compilation): Likewise.
6432 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6434 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
6436 * gigi.h (insert_block): Kill.
6437 * utils.c (insert_block): Kill.
6439 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
6441 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6442 type has self-referential size, get the size from the initializing
6443 expression directly if it is also a constant whose nominal type
6444 has self-referential size.
6446 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6449 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6452 * env.c: Always include crt_externs.h if __APPLE__ is defined.
6453 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6455 2008-04-01 Andreas Jaeger <aj@suse.de>
6457 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6460 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6462 * g-table.adb, g-tasloc.adb, g-traceb.ads,
6463 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6464 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6465 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6466 gnatlink.adb, gnatmem.adb, gprep.adb,
6467 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6468 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6469 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6470 lib-xref.ads, lib.adb, link.c, live.ads,
6471 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6472 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6473 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6474 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6475 namet.adb, namet.h, nlists.adb, nlists.ads,
6476 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6477 osint-c.ads, osint.adb, osint.ads, output.ads,
6478 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6479 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6480 par-endh.adb, par-labl.adb, par-prag.adb,
6481 par-sync.adb, par-tchk.adb, par-util.adb,
6482 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6483 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6484 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6485 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6487 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
6489 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6490 size if it has overflowed.
6492 2008-03-31 Olivier Hainque <hainque@adacore.com>
6493 Eric Botcazou <ebotcazou@adacore.com>
6495 * utils2.c (find_common_type): Document assumption on t1/t2 vs
6496 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6498 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6500 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6501 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6502 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6503 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6504 exp_tss.ads, exp_util.adb, exp_util.ads,
6505 exp_vfpt.adb, freeze.adb, freeze.ads,
6506 frontend.adb, g-alleve.adb, g-altcon.adb,
6507 g-altive.ads, g-alveop.ads, g-alvevi.ads,
6508 g-arrspl.adb, g-busorg.ads, g-calend.adb,
6509 g-calend.ads, g-casuti.ads, g-cgideb.adb,
6510 g-comlin.adb, g-comlin.ads, g-curexc.ads,
6511 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6512 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6513 g-dyntab.adb, g-encstr.ads, g-excact.ads,
6514 g-except.ads, g-expect.ads, g-heasor.adb,
6515 g-hesora.adb, g-hesorg.adb, g-htable.ads,
6516 g-locfil.ads, g-md5.adb, g-md5.ads,
6517 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6518 g-pehage.adb, g-pehage.ads, g-regexp.adb,
6519 g-regexp.ads, g-regpat.adb, g-regpat.ads,
6520 g-soccon-aix.ads, g-soccon-darwin.ads,
6521 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6522 g-soccon-hpux.ads, g-soccon-irix.ads,
6523 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6524 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6525 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6526 g-soccon-solaris.ads, g-soccon-tru64.ads,
6527 g-soccon-vms.ads, g-soccon-vxworks.ads,
6528 g-soccon.ads, g-socket.adb, g-socket.ads,
6529 g-socthi-mingw.adb, g-socthi-vms.adb,
6530 g-socthi-vxworks.adb, g-soliop-mingw.ads,
6531 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6532 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6535 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
6537 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6538 if the procedure is imported.
6540 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6542 * adaint.c: Fix warnings.
6544 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6546 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6548 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6550 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6551 Fix problem of status check for null file
6553 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6555 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6556 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6557 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6558 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6559 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6562 2008-03-26 Thomas Quinot <quinot@adacore.com>
6565 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6566 Get_Socket_Option): Add support for Receive_Packet_Info.
6568 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6569 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6570 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6571 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6572 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6573 new constants SO_REUSEPORT and IP_PKTINFO
6575 2008-03-26 Robert Dewar <dewar@adacore.com>
6577 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6578 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6579 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6580 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6581 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6582 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6583 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6584 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6585 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6586 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6587 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6588 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6589 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6590 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6591 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6592 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6593 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6594 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6595 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6596 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6597 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6598 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6599 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6600 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6601 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6602 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6603 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6604 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6605 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6606 s-tasloc.adb: Minor reformatting.
6608 Remove "used for" sections from comments.
6610 2008-03-26 Robert Dewar <dewar@adacore.com>
6612 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6613 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6614 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6615 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6616 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6617 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6618 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6619 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6620 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6621 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6622 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6623 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6624 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6625 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6626 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6627 double spaced if it fits on one line and otherwise single spaced.
6629 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6631 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6632 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6633 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6634 or task info if the thread could not be created.
6636 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6638 * gnatvsn.ads (Library_Version): Bump to 4.4.
6639 (Current_Year): Bump to 2008.
6641 2008-03-26 Robert Dewar <dewar@adacore.com>
6643 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6645 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6647 * debug.adb: Add debug flags d.r and d.v
6648 Add debug flag .T (Optimize_Alignment (Time))
6649 Add debug flag .S (Optimize_Alignment (Space))
6651 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6652 depending on setting of relevant debug flags.
6653 Replace use of Warnings_Off by Has_Warnings_Off
6654 (Freeze_Entity): In circuit for warning on suspicious convention
6655 actuals, do not give warning if subprogram has same entity as formal
6656 type, or if subprogram does not come from source.
6657 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6658 if Optimize_Alignment set to Space.
6660 * frontend.adb: Add call to Sem_Warn.Initialize
6661 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6662 Reset Optimize_Alignment mode from debug switches .S and .T
6664 * layout.adb (Layout_Composite_Object): Rewritten for
6665 Optimize_Aligment pragma.
6667 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6670 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6672 * par-prag.adb (N_Pragma): Chars field removed, use Chars
6673 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6674 this change. Add entry for pragma Optimize_Alignment
6676 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6677 (Pragma_Identifier (..
6678 instead, adjustments throughout to accomodate this change.
6679 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6680 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6681 Add implementation of pragma Optimize_Alignment
6683 2008-03-26 Vincent Celier <celier@adacore.com>
6685 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6686 Improve memory usage to avoid use of stack.
6688 2008-03-26 Robert Dewar <dewar@adacore.com>
6690 * a-teioed.ads: Correct value of Default_Fill
6692 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6694 2008-03-26 Robert Dewar <dewar@adacore.com>
6696 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6697 with Current_Output (introduce Self).
6699 2008-03-26 Robert Dewar <dewar@adacore.com>
6701 * checks.adb (Ensure_Valid): Capture valid status if possible
6704 2008-03-26 Robert Dewar <dewar@adacore.com>
6706 * stand.ads: Deal with reordering of package standard declarations
6708 * cstand.adb: Put package Standard declarations in proper order
6710 2008-03-26 Robert Dewar <dewar@adacore.com>
6712 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6713 (Pragma_Identifier (.. instead.
6714 (OK_To_Reorder_Components): New flag
6715 (Has_Entries): Code cleanup.
6716 (Warnings_Off_Used): New flag
6717 (Warnings_Off_Used_Unmodified): New flag
6718 (Warnings_Off_Used_Unreferenced): New flag
6719 (Has_Warnings_Off): New function
6720 (Has_Unmodified): New function
6721 (Has_Unreferenced): New function
6722 (Is_Trivial_Subprogram): New flag
6723 (Is_Static_Dispatch_Table_Entity): New attribute.
6724 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6725 (more consistent with other similar names)
6726 (Access_Subprogram_Type): New classification function
6728 2008-03-26 Robert Dewar <dewar@adacore.com>
6730 * errout.ads: Document new !! insertion sequence
6732 * errout.adb (N_Pragma): Chars field removed, use Chars
6733 (Pragma_Identifier (.. instead.
6734 Replace use of Warnings_Off by Has_Warnings_Off
6735 (Error_Msg_Internal): Don't delete warning ending in !!
6737 2008-03-26 Robert Dewar <dewar@adacore.com>
6739 * par.adb (Check_No_Right_Paren): Removed no longer used
6741 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6742 (Pragma_Identifier (.. instead.
6744 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6746 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6747 par-ch4.adb: Minor improvements in error recovery and messages.
6749 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6752 * par-ch9.adb: Minor improvements in error recovery and messages
6753 (P_Protected): Better error recovery for "protected type x;"
6755 * par-util.adb: Minor improvements in error recovery and messages
6756 (Check_No_Right_Paren): Removed no longer used
6758 2008-03-26 Ed Schonberg <schonberg@adacore.com>
6760 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6761 that the prefix of an attribute is the type of the aggregate being
6764 2008-03-26 Javier Miranda <miranda@adacore.com>
6765 Robert Dewar <dewar@adacore.com>
6767 * exp_attr.adb (N_Pragma): Chars field removed.
6768 (Expand_N_Attribute_Reference): If the designated type associated with
6769 attribute 'Unrestricted_Access is a subprogram entity then replace it
6770 by an E_Subprogram_Type itype.
6771 Implement attribute Old
6773 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6775 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6777 New_Internal_Entity by call to Create_Itype to centralize calls
6778 building itypes, ad propagate the convention of the designated
6779 subprogram. In addition, disable the machinery cleaning constant
6780 indications from all entities in current scope when 'Unrestricted_Access
6781 corresponds with a node initializing a dispatch table slot.
6782 (Analyze_Attribute): Parameterless attributes returning a string or a
6783 type will not be called with improper arguments, so we can remove junk
6784 code that was dealing with this case.
6785 Implement attribute Old
6787 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
6788 Add entry for pragma Optimize_Alignment
6789 New standard names Sync and Synchronize
6791 2008-03-26 Robert Dewar <dewar@adacore.com>
6792 Arnaud Charlet <charlet@adacore.com>
6794 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
6796 (No_Exception_Propagation_Active): New function.
6797 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6798 Update comments, and review all uses of No_Exception_Propagation, which
6799 are now correct and in sync with what gigi expects.
6801 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
6803 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
6804 Update comments, and review all uses of No_Exception_Propagation, which
6805 are now correct and in sync with what gigi expects.
6807 2008-03-26 Ed Schonberg <schonberg@adacore.com>
6809 * sem_ch3.adb (Access_Definition): If the access type is the return
6810 result of a protected function, create an itype reference for it
6811 because usage will be in an inner scope from the point of declaration.
6812 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
6813 OK_To_Reorder_Components.
6814 (Make_Index): If an overloaded range includes a universal integer
6815 interpretation, resolve to Standard.Integer.
6816 (Analyze_Subtype_Indication): Copy Convention to subtype
6817 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
6818 limited an synchronized progenitors in type declaration and private
6819 extension declarations.
6821 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
6822 protected subprogram body, determine proper scope from subprogram
6825 2008-03-26 Robert Dewar <dewar@adacore.com>
6827 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
6830 2008-03-26 Gary Dismukes <dismukes@adacore.com>
6832 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
6833 of a heap allocator for a limited unconstrained function return when
6834 resstriction No_Allocators is active.
6835 (Analyze_Allocator): The restriction No_Allocators is now only checked
6836 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6838 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
6839 of a heap allocator for a limited unconstrained function return when
6840 resstriction No_Allocators is active.
6841 (Analyze_Allocator): The restriction No_Allocators is now only checked
6842 on allocators that have Comes_From_Source set, as per RM-H.4(7).
6843 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
6844 operands are fixed-point types, the universal_fixed predefined operation
6845 is used, regardless of whether the operand type (s) have a primitive
6846 operation of the same name.
6848 2008-03-26 Javier Miranda <miranda@adacore.com>
6850 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
6851 Is_Static_Dispatch_Table
6852 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
6853 to Exchange_Declarations to exchange the private and full-view. Bug
6854 found working in this issue.
6855 (Expand_Dispatching_Call): Propagate the convention of the subprogram
6856 to the subprogram pointer type.
6857 (Make_Secondary_DT): Replace generation of Prim'Address by
6858 Address (Prim'Unrestricted_Access)
6859 (Make_DT): Replace generation of Prim'Address by
6860 Address (Prim'Unrestricted_Access)
6861 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
6862 simple call form for single entry.
6863 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
6864 tables of predefined primitives).
6865 (Make_Secondary_DT): Add support to handle access to dispatch tables of
6866 predefined primitives.
6867 (Make_Tags): Add entities to Access_Dispatch_Table associated with
6868 access to dispatch tables containing predefined primitives.
6870 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
6871 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6873 (Register_Predefined_DT_Entry): Updated to handle the new contents
6874 of attribute Access_Disp_Table (pointers to dispatch tables containing
6875 predefined primitives).
6877 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
6879 (Find_Interface_ADT): Updated to skip the new contents of attribute
6880 Access_Dispatch_Table (pointers to dispatch tables containing predefined
6883 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
6885 (Set_Convention): Use new function Is_Access_Subprogram_Type
6886 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
6887 Access_Dispatch_Table (pointers to dispatch tables containing predefined
6890 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
6891 expanded code avoiding calls to Build_Predef_Prims.
6892 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
6893 call to Build_Get_Predefined_Prim_Op_Address.
6895 2008-03-26 Javier Miranda <miranda@adacore.com>
6897 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
6898 subprogram Corresponding_Runtime_Package to know the runtime package
6899 that will provide support to a given protected type.
6901 * exp_ch9.adb (Add_Private_Declarations,
6902 Build_Protected_Subprogram_Call,
6903 Build_Protected_Entry, Build_Simple_Entry_Call,
6904 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
6905 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
6906 cleanup using the new centralized subprogram Corresponding_Runtime
6907 Package to know the runtime package that provides support to
6908 a given protected type.
6910 2008-03-26 Ed Schonberg <schonberg@adacore.com>
6912 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
6913 assignment is within the initialization procedure for a packed array,
6914 and Initialize_Scalars is enabled, compile right-hand side with checks
6915 off, because the value is purposely out of range.
6917 2008-03-26 Vincent Celier <celier@adacore.com>
6919 * gnatcmd.adb: Add processing for GNAT SYNC
6921 * vms_conv.ads: (Command_Type): Add command Sync
6923 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
6925 * vms_data.ads: Add entries for -gnatw.w
6926 Add qualifier for gnatstub --header-file option
6927 Add switches for GNAT SYNC
6929 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
6930 (Add_Package_Name): New procedure
6931 (Package_Name_List): New function
6932 (Initialize): Add known package names to the list
6933 (Register_New_Package): Add the new package name to the list
6935 2008-03-26 Robert Dewar <dewar@adacore.com>
6937 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
6938 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
6939 Raise_Exception by "raise with" construct.
6941 2008-03-26 Pascal Obry <obry@adacore.com>
6943 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
6944 supported platforms.
6946 * Makefile.rtl: Add g-sercom.o.
6948 * impunit.adb: Add g-sercom.adb.
6950 * s-crtl.ads (open): New routine.
6954 * s-osinte-mingw.ads (BYTE): New type.
6956 (OVERLAPPED): Likewise.
6957 (GENERIC_READ): New constant.
6958 (GENERIC_WRITE): Likewise.
6959 (OPEN_EXISTING): Likewise.
6960 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
6962 (CreateFile): New routine.
6963 (WriteFile): Likewise.
6964 (ReadFile): Likewise.
6965 (CloseHandle): Move next to the other file oriented routines.
6967 * g-sercom.ads: New unit.
6969 * g-sercom.adb: Default implementation, calls to this unit will raise
6970 a program error exception.
6972 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
6973 GNU/Linux implementations.
6975 2008-03-26 Robert Dewar <dewar@adacore.com>
6977 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
6979 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
6980 unchecked conversion for different conventions only for subprogram
6983 2008-03-26 Vincent Celier <celier@adacore.com>
6985 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
6986 to check if the specified object file is correct.
6988 2008-03-26 Thomas Quinot <quinot@adacore.com>
6990 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
6991 Comes_From_Source to exclude primitives from being checked. We want to
6992 exclude predefined primitives only, so use the appropriate specific
6993 predicate. Also, flag a formal parameter of an anonymous
6994 access-to-subprogram type as illegal for a primitive operation of a
6995 remote access to class-wide type.
6997 2008-03-26 Vincent Celier <celier@adacore.com>
6999 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7000 known, check if it may be a missspelling of a known package name. In
7001 not verbose, not mode, issue warnings only if the package name is a
7002 possible misspelling.
7003 In verbose mode, always issue a warning for a not known package name,
7004 plus a warning if the name is a misspelling of a known package name.
7006 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7007 limited withs or limited withs are parse during one call.
7008 (Parse_Single_Project): Post parse context clause in two passes: non
7009 limited withs before current project and limited withs after current
7012 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7013 project with the name With_Name, even if it is only extended indirectly.
7014 (Recursive_Process): Process projects in order: first single withs, then
7015 current project, then limited withs.
7017 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7018 project with the name With_Name, even if it is only extended indirectly.
7020 2008-03-26 Robert Dewar <dewar@adacore.com>
7022 * scn.adb (Initialize_Scanner): Format messages belong on standard error
7024 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7026 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7027 a generic subprogram that is imported, do not attempt to compile
7030 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7031 imported, do not generate a raise_program_error for the non-existent
7033 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7034 perform minimal name resolution on the generic to avoid spurious
7036 (Find_Actual_Type): the designated type of the actual in a child unit
7037 may be declared in a parent unit without being an actual.
7039 2008-03-26 Robert Dewar <dewar@adacore.com>
7041 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7042 * sinfo.ads, sinfo.adb (From_At_End): New flag
7044 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7046 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7047 operations that have an interface parameter.
7048 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7049 Don't treat No_Return call as raise.
7051 * sem_disp.adb (Check_Dispatching_Operations): apply check for
7052 non-primitive interface primitives to access parameters, not to all
7053 parameters of an access type.
7055 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7057 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7058 declarations of a parent unit are made visible when compiling a child
7059 instance, the parent is not a hidden open scope, even though it may
7060 contain other pending instance.
7062 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7063 hidden open scope for some child instance, it does affect the
7064 visibility status of other stach entries.
7065 (Analyze_Object_Renaming): Check that a class-wide object cannot be
7066 renamed as an object of a specific type.
7068 2008-03-26 Robert Dewar <dewar@adacore.com>
7070 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7071 recursion and raise SE directly.
7072 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7073 set for formal type for IN mode parameter.
7075 2008-03-26 Robert Dewar <dewar@adacore.com>
7077 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7078 (Initialize): New procedure
7079 (Output_Warnings_Off_Warnings): New procedure
7080 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7081 (Output_Non_Modifed_In_Out_Warnings): Ditto
7082 (Warn_On_Unreferenced_Entity): Ditto
7084 2008-03-26 Vincent Celier <celier@adacore.com>
7086 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7089 2008-03-26 Matthew Heaney <heaney@adacore.com>
7091 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7092 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7093 Marked with clauses as private, and controlled operations as overriding
7095 2008-03-26 Robert Dewar <dewar@adacore.com>
7097 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7099 2008-03-26 Robert Dewar <dewar@adacore.com>
7101 * back_end.adb, back_end.ads: Minor reformatting
7103 * bindgen.adb: Minor clarification of comments
7105 * fname.ads: Minor comment fixes
7107 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7108 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7110 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7111 xsnames.adb: Remove warnings off pragma no longer needed
7113 * a-catizo.ads, a-calari.ads, a-calfor.adb,
7114 a-calfor.ads: Fix header.
7116 2008-03-26 Tristan Gingold <gingold@adacore.com>
7118 * init.c: Do not adjust pc for HPARITH on alpha/vms.
7120 2008-03-26 Robert Dewar <dewar@adacore.com>
7122 * lib-xref.adb: (OK_To_Set_Reference): New function
7123 (Generate_Reference): Don't set referenced from occurrence in Warnings,
7124 Unmodified, or Unreferenced pragma
7126 2008-03-26 Robert Dewar <dewar@adacore.com>
7128 * alloc.ads: Add entries for Warnings_Off_Pragmas table
7130 2008-03-26 GNAT Script <nobody@adacore.com>
7132 * Make-lang.in: Makefile automatically updated
7134 2008-03-26 Robert Dewar <dewar@adacore.com>
7136 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7137 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7138 removed, use Chars (Pragma_Identifier (.. instead, adjustments
7139 throughout to accomodate this change.
7141 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7143 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7144 Einfo.Set_Needs_Debug_Info)
7146 2008-03-26 Robert Dewar <dewar@adacore.com>
7148 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7149 Add description for the new gnatstub option '--header-file'
7150 clarification of -gnatwz/-gnatwZ
7151 Add a "Irix-Specific Considerations" section to document the need to
7152 set LD_LIBRARY_PATH when using the default shared runtime library.
7153 Added documentation for both gcov and gprof.
7155 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7156 messages that are not suppressed when clients are compiled.
7157 Add documentation of s-pooglo s-pooloc
7158 Document the new GNAT.Serial_Communications API.
7159 Add documentation for 'Old attribute
7160 Add description of pragma Optimize_Alignment
7162 * ug_words: Add entries for -gnatw.w -gnatw.W
7164 * usage.adb: Add line for -gnatw.w (warn on warnings off)
7166 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
7169 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7171 * decl.c (maybe_pad_type): Avoid padding an integral type when
7172 bumping its alignment is sufficient.
7174 2008-03-25 Arnaud Charlet <charlet@adacore.com>
7176 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7177 Fix wrong formatting (lines too long)
7179 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7181 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7182 a-calend-vms.adb, a-calend.adb, a-calend.ads,
7183 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7184 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7185 a-cohama.ads, a-comlin.ads, a-coorse.adb,
7186 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7187 a-except-2005.ads, a-except.adb, a-except.ads,
7188 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7189 a-exextr.adb, a-filico.ads, a-finali.ads,
7190 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7191 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7192 a-sequio.ads, a-strbou.ads, a-strfix.adb,
7193 checks.adb, exp_ch3.adb, exp_ch4.adb,
7194 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7195 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7196 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7197 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7198 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7200 2008-03-24 Robert Dewar <dewar@adacore.com>
7202 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7203 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7204 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7205 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7206 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7207 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7208 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7209 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7210 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7211 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7212 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7213 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7214 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7215 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7216 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7217 double spaced if it fits on one line and otherwise single spaced.
7219 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7221 PR documentation/15479
7222 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7223 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7224 (doc/gnat_ugn.info): Renamed from ...
7225 (doc/gnat_ugn_unw.info): ... this.
7226 (doc/gnat_ugn.dvi): Renamed from ...
7227 (doc/gnat_ugn_unw.dvi): ... this.
7228 (doc/gnat_ugn.pdf): Renamed from ...
7229 (doc/gnat_ugn_unw.pdf): ... this.
7230 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7232 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7233 unconditionally to gnat_ugn.info. Fix cross references to the
7234 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
7235 and GNU make manuals to be proper texinfo links.
7236 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7238 2008-03-21 Olivier Hainque <hainque@adacore.com>
7240 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7241 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7243 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
7245 * trans.c (addressable_p): Add notes on addressability issues.
7247 2008-03-21 Olivier Hainque <hainque@adacore.com>
7248 Ed Schonberg <schonberg@adacore.com>
7250 * trans.c (addressable_p): Accept COND_EXPR when both arms
7252 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7253 (call_to_gnu): Do not use name reference in the error message
7254 for a misaligned by_reference_parameter. The actual may be a
7257 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
7259 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7261 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7263 * gnat_rm.texi (Implementation Defined Characteristics)
7264 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7266 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7267 (Switches for gnatchop, Installing a library): Likewise.
7269 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
7271 * trans.c (emit_range_check): Do not emit the check if the base type
7272 of the expression is the type against which its range must be checked.
7274 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7276 * decl.c (maybe_pad_type): Use value_factor_p.
7278 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7280 * lang.opt (nostdlib): Move around.
7281 * misc.c (gnat_handle_option): Fix formatting.
7282 (gnat_dwarf_name): Move around.
7283 * trans.c (Case_Statement_to_gnu): Fix formatting.
7284 (gnat_to_gnu): Likewise.
7285 * utils.c (aggregate_type_contains_array_p): Likewise.
7286 (create_subprog_decl): Likewise.
7288 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7290 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7291 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7293 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7295 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7296 BIGGEST_ALIGNMENT when capping the alignment of records with
7297 strict alignment and size clause.
7299 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7301 * lang-specs.h: Pass -gnatwa if -Wall is passed.
7302 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7303 and -Wuninitialized.
7304 (gnat_post_options): Clear warn_unused_parameter.
7306 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7308 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7309 aligned bit-fields, bumping the alignment of the record type if deemed
7311 (value_factor_p): Return false instead of 0.
7313 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7315 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7316 for scalar types with small alignment.
7318 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7320 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7321 from that of the front-end's end label.
7322 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7323 from that of the loop label.
7325 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7327 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7328 comment for the packed array type case.
7329 * utils.c (build_template): Use a loop to strip padding or
7330 containing records for justified modular types.
7332 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7334 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7335 large alignments specified for types.
7336 (validate_alignment): Minor cleanup.
7338 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7340 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7341 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7342 the component for packing, if possible, as well as if a component
7343 size clause is specified.
7344 <E_Record_Subtype>: For an array type used to implement a packed
7345 array, get the component type from the original array type.
7346 Try to get a smaller form of the component for packing, if possible,
7347 as well as if a component size clause is specified.
7348 (round_up_to_align): New function.
7349 (make_packable_type): Add in_record parameter.
7350 For a padding record, preserve the size. If not in_record and the
7351 size is too large for an integral mode, attempt to shrink the size
7352 by lowering the alignment.
7353 Ditch the padding bits of the last component.
7354 Compute sizes and mode manually, and propagate the RM size.
7355 Return a BLKmode record type if its size has shrunk.
7356 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7357 Use Original_Array_Type to retrieve the type in case of an error.
7358 Adjust call to make_packable_type.
7359 (gnat_to_gnu_field): Likewise.
7360 (concat_id_with_name): Minor tweak.
7361 * trans.c (larger_record_type_p): New predicate.
7362 (call_to_gnu): Compute the nominal type of the object only if the
7363 parameter is by-reference. Do the conversion actual type -> nominal
7364 type if the nominal type is a larger record.
7365 (gnat_to_gnu): Do not require integral modes on the source type to
7366 avoid the conversion for types with identical names.
7367 (addressable_p): Add gnu_type parameter. If it is specified, do not
7368 return true if the expression is not addressable in gnu_type.
7369 Adjust recursive calls.
7370 * utils.c (finish_record_type): Remove dead code.
7372 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7375 * decl.c (maybe_pad_type): Avoid padding an integral type when
7376 bumping its alignment is sufficient.
7378 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7380 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7381 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7383 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7384 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7385 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7386 code output strings.
7387 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7388 system-vms_64.ads: Fix typos in ada source code comments.
7389 * sinfo-cn.adb: Remove incomplete sentence.
7391 PR documentation/15479
7392 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7394 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
7397 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7399 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
7402 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7403 that underlying type is present.
7405 2008-02-26 Tom Tromey <tromey@redhat.com>
7407 * misc.c (internal_error_function): Remove test of
7408 USE_MAPPED_LOCATION.
7409 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7410 (Sloc_to_locus): Remove old location code.
7412 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7414 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7415 `i.e.' by adding comma or `@:' as appropriate.
7416 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7417 plain characters `C', use `@samp{C}'.
7418 * gnat_ugn.texi (File Naming Rules, About gnatkr)
7419 (Krunching Method): Likewise.
7421 * gnat_ugn.texi (Conventions): List environment variables and
7422 metasyntactic variables.
7423 (Compiling Programs): Fix notation of metasyntactic variables.
7424 Add @file where appropriate. Use @file for file extensions,
7426 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7427 instead of @file, @env instead of @code.
7429 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7431 PR documentation/15479
7432 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7433 and `...' with `@dots{}' or `@enddots{}'.
7435 PR documentation/15479
7436 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7437 use @command instead of @code, @option instead of @samp or @code,
7438 @code instead of @var, @samp instead of @file.
7440 PR documentation/15479
7441 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7442 in Makefile rules, by using `&&' rather than `;'.
7444 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7446 PR documentation/15479
7447 * gnat_ugn.texi: In non-code, avoid space before colon.
7448 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7449 (Examples of gnatxref Usage): Use @command{vi} instead of
7451 (Character Set Control): Do not use @code for UTF-8.
7452 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
7454 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7456 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
7458 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
7461 * env.c: Add __rtems__ to if defined.
7462 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
7463 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7464 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
7465 pragma Convention as required.
7466 * gsocket.h: Make compile in and out of RTS.
7467 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
7468 Use g-soccon-rtems.ads.
7469 * g-soccon-rtems.ads, system-rtems.ads: New files.
7471 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7474 * Make-lang.in (gnat1): Add $(GMPLIBS).
7476 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
7478 * decl.c (components_to_record): Improve comment.
7480 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
7482 * decl.c (components_to_record): Do not reuse the empty union type
7483 if there is a representation clause on the record.
7484 * trans.c (addressable_p): Return true for INTEGER_CST.
7486 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
7488 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7489 in pointer arithmetics.
7490 * utils2.c (build_allocator): Likewise.
7492 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
7494 * utils.c (build_function_stub): Properly build the call expression.
7496 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
7498 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7499 before converting the expression to the type of the object.
7500 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7501 Stabilize constructors for special wrapping types.
7503 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
7505 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7506 when necessary. Merge some conditional statements. Update comments.
7507 Rename unchecked_convert_p local variable to suppress_type_conversion.
7508 Do not suppress conversions in the In case.
7509 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7510 into account on non strict-alignment platforms.
7512 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7514 * utils.c (aggregate_type_contains_array_p): New predicate.
7515 (create_field_decl): In a packed record, force byte alignment
7516 for fields without specified position that contain an array.
7518 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7520 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7522 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
7525 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7527 (bit_field): New packed boolean type used by cpu_set_t.
7528 (cpu_set_t): New type corresponding to the C type with
7529 the same name. Note that on the Ada side we use a bit
7530 field array for the affinity mask. There is not need
7531 for the C macro for setting individual bit.
7532 (pthread_setaffinity_np): New imported routine.
7534 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
7537 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7538 on OpenBSD as is done on other BSD systems.
7541 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7542 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7546 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7550 * init.c (__gnat_error_handler, __gnat_install_handler,
7551 __gnat_init_float): Define for OpenBSD.
7553 * initialize.c (__gnat_initialize): Define for OpenBSD.
7555 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
7558 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7559 instead of mktemp() or tmpnam() on NetBSD.
7561 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
7563 * trans.c (call_to_gnu): Make the temporary for non-addressable
7564 In parameters passed by reference.
7565 (addressable_p): Return true for STRING_CST and CALL_EXPR.
7567 2007-12-19 Robert Dewar <dewar@adacore.com>
7569 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7570 Add pragma Warnings (Off) for unassigned IN OUT arguments
7572 * sem_warn.adb (Output_Reference): Suppress messages for internal names
7573 (Check_References): Extensive changes to tune up warnings
7574 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7575 (Has_Pragma_Unmodifed_Check_Spec): New function
7576 (Check_References): Implement pragma Unmodified
7577 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7579 * par-prag.adb: Dummy entry for pragma Unmodified
7581 * sem_prag.adb: Implement pragma Unmodified
7583 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7584 (Proc_Next_Component_Or_Discriminant): Fix typo.
7587 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7589 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7590 because the former already takes care of discarding the result.
7591 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7594 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7596 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
7598 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7599 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7600 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7601 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7602 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7603 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7604 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7605 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7606 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7607 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7608 (Dynamic_Trampolines_Used): Delete.
7610 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7611 Turn on stack probing mechanism on LynxOS.
7613 2007-12-19 Bob Duff <duff@adacore.com>
7615 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7616 the resulting tail recursion by hand. This prevents running out of
7617 memory on deeply nested concatenations, since Field2 is where the left
7618 operand of concatenations is stored.
7619 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7620 clarify that it can only return OK or Abandon.
7622 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7623 operand by iteration, in order to avoid running out of memory on
7624 deeply-nested concatenations. Use the Parent pointer to get back up the
7626 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7627 Resolve_Op_Concat_Rest): New procedures split out of
7628 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7631 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7632 Traverse_Func, because the former already takes care of discarding the
7635 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7636 because the former already takes care of discarding the result.
7637 (Remove_Warning_Messages): Use appropriate subtype for Status and
7640 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7642 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7643 discriminants forces expansion of the aggregate into assignments.
7644 (Init_Record_Controller): If the type of the aggregate is untagged and
7645 is not inherently limited, the record controller is not limited either.
7647 2007-12-19 Robert Dewar <dewar@adacore.com>
7649 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7650 handling compile time known size of record or array (case of front end
7651 layout active, e.g. in GNAAMP).
7653 2007-12-19 Javier Miranda <miranda@adacore.com>
7655 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7656 that forces the construction of static dispatch tables in case of
7659 2007-12-19 Robert Dewar <dewar@adacore.com>
7661 * exp_ch9.adb (Null_Statements): Moved to library level
7662 (Trivial_Accept_OK): New function
7663 (Expand_Accept_Declaration): Use Trivial_Accept_OK
7664 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7666 2007-12-19 Robert Dewar <dewar@adacore.com>
7668 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7669 in complex case where array is Volatile.
7671 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7673 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7674 properly the Ada2005 rules concerning when the current instance of a
7675 record type is aliased.
7677 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7679 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7681 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7683 (P_Variant_Part): Cleaner patch for parenthesized discriminant
7685 2007-12-19 Vincent Celier <celier@adacore.com>
7687 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7688 package is not known
7690 * prj-attr.ads (Unknown_Package): New constant
7691 Do not crash when an unknown package is in several projects
7693 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7696 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7697 existing package Language_Processing.
7699 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7700 Gary Dismukes <dismukes@adacore.com>
7701 Samuel Tardieu <sam@rfc1149.net>
7703 PR ada/15803, ada/15805
7704 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7705 illegal access subtypes when there is a constrained partial view.
7706 (Check_For_Premature_Usage): New procedure inside
7707 Access_Subprogram_Declaration for checking that an access-to-subprogram
7708 type doesn't reference its own name within any formal parameters or
7709 result type (including within nested anonymous access types).
7710 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7711 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7712 context is an access_to_variable, the expression cannot be an
7715 2007-12-19 Bob Duff <duff@adacore.com>
7717 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7718 (Analyze_Concatenation): Use iteration instead of recursion in order
7719 to avoid running out of stack space for deeply nested concatenations.
7721 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7722 Gary Dismukes <dismukes@adacore.com>
7724 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7725 whose renamed entity is a subprogram that requires overriding.
7726 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7727 issuing an error for premature usage and issue a message that says
7728 'type' rather than 'object'.
7730 2007-12-19 Gary Dismukes <dismukes@adacore.com>
7733 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7734 presence of a statically tagged operand (Present (Static_Tag)) with
7735 test for Indeterm_Ancestor_Call when determining whether to propagate
7736 the static tag to tag-indeterminate operands (which forces dispatching
7738 (Check_Controlling_Formals): Ada2005, access parameters can have
7740 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7741 not insert subprogram in list of primitive operations if already there.
7743 2007-12-19 Tristan Gingold <gingold@adacore.com>
7745 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7748 2007-12-19 Thomas Quinot <quinot@adacore.com>
7750 Part of PR ada/33688
7751 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7752 datagram info on Linux.
7754 2007-12-19 Vincent Celier <celier@adacore.com>
7756 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7757 that the source path name is always found in the dependencies.
7759 2007-12-19 Robert Dewar <dewar@adacore.com>
7761 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7762 Fix name of Wide_Wide_Latin_1/9 file names
7763 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7764 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7765 Add missing documentation for Ada.Command_Line.Response_File
7766 Update list of warning letters for Warnings pragma
7767 Add documentation for pragma Unmodified
7769 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
7771 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7773 2007-12-17 Arnaud Charlet <charlet@adacore.com>
7775 * s-vxwork-alpha.ads: Removed, no longer used.
7777 2007-12-15 Jakub Jelinek <jakub@redhat.com>
7779 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7781 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
7784 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
7785 mlib-tgt-specific.adb.
7787 2007-12-13 Bob Duff <duff@adacore.com>
7789 * trans.c (Attribute_to_gnu): Check for violations of the
7790 No_Implicit_Dynamic_Code restriction. This checking used to be done in
7791 the front end, but is moved here so we can make it more accurate.
7793 2007-12-13 Pascal Obry <obry@adacore.com>
7795 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
7796 version is provided for older GNU/Linux distribution not
7797 supporting thread affinity sets.
7799 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
7801 (bit_field): New packed boolean type used by cpu_set_t.
7802 (cpu_set_t): New type corresponding to the C type with
7803 the same name. Note that on the Ada side we use a bit
7804 field array for the affinity mask. There is not need
7805 for the C macro for setting individual bit.
7806 (pthread_setaffinity_np): New imported routine.
7808 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
7810 (Create_Task): Set the processor affinity mask if information
7813 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
7815 2007-12-13 Robert Dewar <dewar@adacore.com>
7817 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7818 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
7819 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
7820 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
7821 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
7822 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
7823 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
7824 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
7825 for subprogram pointers.
7827 * g-ctrl_c.adb: New file.
7829 * g-ctrl_c.ads (Install_Handler): New body.
7831 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
7832 instead of obsolete function Is_Always_Inlined.
7833 (Freeze_Entity): check for tagged type in imported C subprogram
7834 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
7835 (Freeze_Entity): check for convention Ada subprogram pointer in
7836 imported C subprogram.
7837 (Freeze_Fixed_Point_Type): In the case of a base type where the low
7838 bound would be chopped off and go from negative to zero, force
7839 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
7840 bound) so that the size computation for the base type will take
7841 negative values into account.
7843 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
7844 Bob Duff <duff@adacore.com>
7845 Tristan Gingold <gingold@adacore.com>
7847 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7848 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7849 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7850 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7851 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7852 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7853 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7854 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
7855 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7856 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
7857 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
7858 (Always_Compatible_Rep): New flag to control trampolines globally.
7859 (Dynamic_Trampolines_Used): New flag for implementing the
7860 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
7861 and not yet set correctly for some targets).
7863 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
7864 Simply indirectly call s-stchop when a task is created.
7867 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
7868 appears as an argument (entries A) in an ALI file.
7870 * fe.h (Stack_Check_Limits): Declare new target parameter.
7871 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
7873 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
7874 This variable is declared in C to be sure not subject to elaboration
7876 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
7879 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
7880 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
7882 * s-stchop.ads: Add comments.
7884 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
7885 limit method of stack checking.
7887 * s-stchop-limit.ads: New file.
7889 2007-12-13 Robert Dewar <dewar@adacore.com>
7891 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
7892 a-cihama.adb, g-awk.adb,
7893 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
7896 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
7898 * sem.adb: Update handling of assigned value/unreferenced warnings
7900 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
7902 * lib-xref.ads: Improve documentation for k xref type
7905 Update handling of assigned value/unreferenced warnings
7906 (Generate_Reference): Warning for reference to entity for which a
7907 pragma Unreferenced has been given should be unconditional.
7908 If the entity is a discriminal, mark the original
7909 discriminant as referenced.
7911 * sem_warn.ads, sem_warn.adb
7912 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
7913 no entities referenced in package
7914 (Check_One_Unit): Don't give message about no entities referenced in
7915 a package if a pragma Unreferenced has appeared.
7916 Handle new warning flag -gnatw.a/-gnatw.A
7917 Update handling of assigned value/unreferenced warnings
7919 * atree.h: Add flags up to Flag247
7920 (Flag231): New macro.
7922 2007-12-13 Jose Ruiz <ruiz@adacore.com>
7924 * adaint.h: (__gnat_plist_init): Not defined for RTX.
7926 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
7929 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
7930 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
7931 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
7932 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
7935 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
7937 * sysdep.c (winflush_function for RTX): Procedure that does nothing
7938 since we only have problems with Windows 95/98, which are not
7940 (__gnat_ttyname): Return the empty string on Nucleus, just as
7943 2007-12-13 Robert Dewar <dewar@adacore.com>
7945 * a-textio.adb, a-textio.ads:
7946 Extensive changes to private part for wide character encoding
7948 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
7949 (Look_Ahead): Fix mishandling of encoded sequences
7950 Move declaration of Wch_Con to private part (should not be visible)
7952 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
7953 UTF-8. Probably this is never used, but if it is, brackets is
7956 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
7957 setting wide character encoding for no main program case and when
7958 encoding is specified using -W?
7959 Initialize stack limit of environment task if stack limit method of
7960 stack checking is enabled.
7961 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
7962 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
7963 (Get_Main_Unit_Name): New function.
7964 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
7965 (Gen_Output_File): Set Bind_Main_Program to True for .NET
7967 * bindusg.adb: Add line for -Wx switch
7969 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
7971 Add new useful constant WC_Longest_Sequences
7973 * switch-b.adb: Clean up handling of -Wx switch
7974 For -gnatWx, set Wide_Character_Encoding_Method_Specified
7976 * switch-c.adb: -gnatg activates warning on assertion errors
7977 For -gnatWx, set Wide_Character_Encoding_Method_Specified
7979 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
7981 2007-12-13 Robert Dewar <dewar@adacore.com>
7982 Ed Schonberg <schonberg@adacore.com>
7984 * a-ngcoty.adb: New pragma Fast_Math
7986 * opt.adb: New pragma Fast_Math
7989 Add Implemented_By_Entry to the list of pragmas which do not require any
7991 (Favor_Top_Level): New pragma.
7992 New pragma Fast_Math
7994 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
7995 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
7996 Expand_Allocator_Expression): Take into account VM_Target
7997 (Expand_Attribute, case 'Identity): Handle properly the case where
7998 the prefix is a task interface.
7999 New pragma Fast_Math
8001 * par.adb (Next_Token_Is): New function
8002 (P_Pragma): Add Skipping parameter
8003 (U_Left_Paren): New procedure
8004 (U_Right_Paren): New procedure
8005 New pragma Fast_Math
8007 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8009 New pragma Fast_Math
8011 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8012 Implemented_By_Entry.
8013 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8014 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8015 items, since it can apply to more than one overloadable entity. Set
8016 new flag Has_Pragma_Inline_Always for Inline_Always case.
8017 (Analyze_Pragma, case Complex_Representation): Improve error message.
8018 (Analyze_Pragma, case Assert): When assertions are disabled build the
8019 rewritten code with Sloc of expression rather than pragma, so new
8020 warning about failing is not deleted.
8021 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8022 protected types and update error message to reflect that. Test whether
8023 the protected type is allowed for the pragma (an error is issued if the
8024 type has any entries, or components that do not have preelaborable
8026 New pragma Fast_Math
8027 (Analyze_Pragma, case No_Return): Handle generic instance
8029 * snames.h, snames.ads, snames.adb:
8030 Add new predefined name for interface primitive _Disp_Requeue.
8031 New pragma Fast_Math
8033 * a-tags.ads, a-tags.adb: New calling sequence for
8034 String_To_Wide_[Wide_]String
8035 (Secondary_Tag): New subprogram.
8037 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8039 New calling sequence for String_To_Wide_[Wide_]String
8040 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8041 the use of the secondary stack for image routines.
8043 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8044 calling sequence for String_To_Wide_[Wide_]String
8046 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8048 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8049 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8051 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8052 (P_Formal_Part): Use Skipping parameter in P_Pragma call
8053 to improve error recovery
8055 * par-util.adb (Next_Token_Is): New function
8056 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8058 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8059 semicolon if missing
8060 (P_Pragma): Implement new Skipping parameter
8061 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8062 Fix location of flag for unrecognized pragma message
8064 * par-tchk.adb (U_Left_Paren): New procedure
8065 (U_Right_Paren): New procedure
8067 2007-12-13 Geert Bosch <bosch@adacore.com>
8070 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8071 the second or later Scaled_Divide would omit leading zeroes,
8072 resulting in too few digits produced and a Layout_Error as result.
8073 (Put): Initialize Pos.
8075 2007-12-13 Robert Dewar <dewar@adacore.com>
8077 atree.ads, atree.adb (Flag231..Flag247): New functions
8078 (Set_Flag231..Set_Flag247): New procedures
8079 (Basic_Set_Convention): Rename Set_Convention to be
8080 Basic_Set_Convention
8081 (Nkind_In): New functions
8082 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8084 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8086 of obsolete function Is_Always_Inlined
8087 (Register_Predefined_DT_Entry): Initialize slots of the second
8088 secondary dispatch table.
8089 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8090 (Expand_N_Function_Call): Remove special provision for stack checking.
8092 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8093 Include _Disp_Requeue in the list of predefined operations.
8094 (Find_Interface_ADT): Modified to fulfill the new specification.
8095 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8097 * par-ch4.adb, nlists.ads, nlists.adb:
8098 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8100 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8101 Fix location of flag for unrecognized pragma message
8103 * sem_ch7.adb: Use Nkind_In
8105 2007-12-13 Vincent Celier <celier@adacore.com>
8108 Indicate what flags are used by the Project Manager, gprbuild and
8110 (Opt.Follow_Links_For_Dirs): New flag
8111 (Warn_On_Assertion_Failure): New flag
8112 (Wide_Character_Encoding_Method_Specified): New flag
8113 (Suppress_All_Inlining): New switch set by -fno-inline
8114 (Real_VMS_Target): New flag
8115 New pragma Fast_Math
8117 2007-12-13 Robert Dewar <dewar@adacore.com>
8119 * back_end.adb: Recognize -fno-inline
8121 2007-12-13 Robert Dewar <dewar@adacore.com>
8123 * checks.adb: Fix optimization problem with short-circuited form
8125 2007-12-13 Bob Duff <duff@adacore.com>
8127 * clean.adb (Usage): Add line for -aP
8128 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8129 with a parameter "procedure Usage", instead of passing a pointer to a
8130 procedure. This is to eliminate trampolines (since the Usage procedure
8131 is often nested in a main procedure, and it would be inconvenient to
8134 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8135 to be generic, with a parameter "procedure Callback (...)", instead of
8136 passing a pointer to a procedure. This is to eliminate trampolines
8137 (since the Callback procedure is usually nested).
8139 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8140 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8141 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8143 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8144 Use the generic Heap_Sort_G instead of Heap_Sort_A.
8146 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8148 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8149 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8150 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8151 (Renamed_In_Spec): New flag
8152 (Has_Pragma_Inline_Always): New flag
8153 Add missing doc for pragma Obsolescent_Warning
8154 Add missing doc for 17 additional unused flags (230-247)
8155 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8156 Alphabetize with clauses.
8157 Separate Is_Thunk and Has_Thunks flags
8158 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8159 (Related_Interface): Renamed to Related_Type.
8160 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8161 (Set_Is_Flag): Restrict the assertion.
8163 2007-12-13 Vincent Celier <celier@adacore.com>
8165 * errout.adb (Output_Source_Line): Do not keep a trailing space after
8166 the source line number if the source line is empty.
8168 2007-12-13 Geert Bosch <bosch@adacore.com>
8170 * eval_fat.adb (Decompose_Int): Handle argument of zero.
8171 (Compose): Remove special casing of zero.
8172 (Exponent): Likewise.
8173 (Fraction): Likewise.
8174 (Machine): Likewise.
8175 (Decompose): Update comment.
8177 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8179 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8180 limited ancestor part, initialize controllers of enclosing record
8181 before expanding ancestor aggregate.
8182 (Gen_Assign): If a component of the aggregate is box-initialized, add
8183 code to call Initialize if the component is controlled, and explicit
8184 assignment of null if the component is an access type.
8186 Handle properly aggregates for limited types that appear in object
8187 declarations when the aggregate contains controlled values such as
8189 When expanding limited aggregates into individual components, do not
8190 call Adjust on controlled components that are limited.
8192 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8194 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8196 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8198 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8199 predefined primitive _Disp_Requeue.
8200 (Make_Predefined_Primitive_Specs): Create the spec for predefined
8201 primitive _Disp_Requeue.
8202 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8203 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8204 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8205 an interface type. In case of limited interfaces we now declare all the
8206 predefined primitives associated with synchronized interfaces as
8208 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8210 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8211 tagged type is an interface type and there is no user-defined equality
8213 Add also bodies of predefined primitives associated with synchronized
8215 (Freeze_Record_Type): Do not build bodies of predefined primitives of
8216 interface types because they are now defined abstract.
8217 Add missing documentation.
8218 (Expand_Record_Controller): Update occurrence of Related_Interface
8220 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8221 (Expand_N_Object_Declaration): Take into account VM_Target when handling
8222 class wide interface object declaration.
8223 (Expand_Previous_Access_Type): Do not create a duplicate master entity
8224 if the access type already has one.
8225 (Expand_N_Object_Declaration): Defend against attempt to validity check
8226 generic types. Noticed for -gnatVcf specified with previous errors.
8228 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8230 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8231 Expand_Allocator_Expression): Take into account VM_Target
8233 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8234 secondary stack when VM_Target /= No_VM
8236 2007-12-13 Javier Miranda <miranda@adacore.com>
8237 Ed Schonberg <schonberg@adacore.com>
8239 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8240 Is_Complation_Unit by Is_Library_Level_Entity in the code
8241 that decides if the static dispatch tables need to be built.
8242 (Wrap_Transient_Declaration): Do not generate a finalization call if
8243 this is a renaming declaration and the renamed object is a component
8244 of a controlled type.
8246 2007-12-13 Gary Dismukes <dismukes@adacore.com>
8248 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8249 In the case where the renamed subprogram is a dereference, call
8250 Force_Evaluation on the prefix.
8252 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8253 Ed Schonberg <schonberg@adacore.com>
8255 * exp_ch9.adb (Expand_N_Asynchronous_Select,
8256 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8257 comment reformatting.
8258 (Set_Privals): Inherit aliased flag from formal. From code reading.
8259 (Build_Simple_Entry_Call): Out parameters of an access type are passed
8260 by copy and initialized from the actual. This includes entry parameters.
8261 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8262 and Ada 2005 models of requeue.
8263 (Null_Statements): Still connsider do-end block null if it contains
8264 Unreferenced and Warnings pragmas.
8265 (Expand_N_Accept_Statement): Do not optimize away null do end if
8266 dispatching policy is other than defaulted.
8267 (Expand_N_Timed_Entry_Call): When the triggering statement is a
8268 dispatching call, manually analyze the delay statement.
8269 (Find_Parameter_Type): Move subprogram to Sem_Util.
8271 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8272 Javier Miranda <miranda@adacore.com>
8274 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8275 _Disp_Requeue occupies dispatch table slot number 15. Move
8276 _Disp_Timed_Select to slot 16.
8277 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8278 generate the spec and body of _Disp_Reqeueue.
8279 (Make_DT): Build and initialize the second dispatch table.
8280 Handle initialization of RC_Offset when the parent
8281 is a private type with variable size components.
8282 (Make_Secondary_DT): Complete documentation. Add support to
8283 initialize the second dispatch table.
8284 (Make_Tags): Generate the tag of the second dispatch table.
8285 (Register_Primitive): Add support to register primitives in the
8286 second dispatch table.
8288 2007-12-13 Pascal Obry <obry@adacore.com>
8290 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8291 Windows. This signal is used by gnatmake to kill child processes for
8294 2007-12-13 Javier Miranda <miranda@adacore.com>
8296 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8297 support for generic dispatching constructor calls in which we need to
8298 locate the tag of a secondary dispatch table associated with an
8299 interface type to properly dispatch the call.
8300 (Expand_N_Attribute_Reference [case Address],
8301 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8302 handling of VM targets.
8304 2007-12-13 Robert Dewar <dewar@adacore.com>
8305 Ed Schonberg <schonberg@adacore.com>
8307 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8310 * ug_words: Add entries for -gnatw.a -gnatw.A
8312 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8313 literal is a subtype with non-static constraints, use the base type of
8314 the context as the base of the string subtype, to prevent type
8316 (Resolve_Actuals): If the actual is an entity name, generate a
8317 reference before the actual is resolved and expanded, to prevent
8318 spurious warnings on formals of enclosing protected operations.
8319 (Analyze_Overloaded_Selected_Component): If type of prefix if
8320 class-wide, use visible components of base type.
8321 (Resolve_Selected_Component): Ditto.
8322 (Resolve_Short_Circuit): Detect case of pragma Assert argument
8323 evaluating to False, and issue warning message.
8325 * usage.adb: Add lines for -gnatw.a and -gnatw.A
8327 2007-12-13 Emmanuel Briot <briot@adacore.com>
8329 * g-calend.ads (No_Time): New constant, to represent an uninitialized
8332 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8334 (Month_Name_To_Number): New subprogram
8336 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8337 letter to upper-case.
8339 2007-12-13 Robert Dewar <dewar@adacore.com>
8340 Ed Schonberg <schonberg@adacore.com>
8342 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8344 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8345 context is a limited view, use non-limited view when available. If the
8346 non-limited view is an unconstrained array, this enforces consistency
8347 requirements in 3.10.2 (27).
8348 (Layout_Type): For an access type whose designated type is a limited
8349 view, examine its declaration to determine if it is an unconstrained
8350 array, and size the access type accordingly.
8351 (Layout_Type): Do not force 32-bits for convention c subprogram
8352 pointers in -gnatdm mode, only if real vms target.
8354 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8355 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8356 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8357 violations of the No_Implicit_Dynamic_Code restriction.
8358 (Resolve_Attribute, case 'Access): If designated type of context is a
8359 limited view, use non-limited view when available. If the non-limited
8360 view is an unconstrained array, this enforces consistency requirements
8362 (Layout_Type): For an access type whose designated type is a limited
8363 view, examine its declaration to determine if it is an unconstrained
8364 array, and size the access type accordingly.
8366 2007-12-13 Vincent Celier <celier@adacore.com>
8368 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8369 object directory of main project does not exist.
8370 On VMS, correctly set then environment variable for the source
8373 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8375 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8376 set to True this procedure will create the value of type REG_EXPAND_SZ.
8377 It was only possible to create REG_SZ values before.
8379 2007-12-13 Robert Dewar <dewar@adacore.com>
8381 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8382 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8383 namet-sp.adb, namet-sp.ads: New files.
8385 * g-speche.adb: Use generic routine in g-spchge
8387 * s-wchcnv.ads, s-wchcnv.adb:
8388 Minor code cleanup (make formal type consistent with spec)
8390 * namet.adb: Update comments.
8392 * par-endh.adb (Evaluate_End_Entry): Use new
8393 Namet.Sp.Is_Bad_Spelling_Of function
8395 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8397 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8398 ancestor is an access type initialized with a box, set its type
8399 explicitly, for use in subsequent expansion.
8400 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8403 2007-12-13 Robert Dewar <dewar@adacore.com>
8405 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8408 2007-12-13 Robert Dewar <dewar@adacore.com>
8410 * inline.adb (Back_End_Cannot_Inline): Use new flag
8411 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8413 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8414 Has_Pragma_Inline_Always instead.
8415 of obsolete function Is_Always_Inlined
8416 (Build_Body_To_Inline): Same change
8417 (Cannot_Inline): Same change
8418 Do not give warning on exception raise in No_Return function
8420 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8421 component has two inconsistent component clauses in the same record
8422 representation clause, favor the message that complains about
8423 duplication rather than inconsistency.
8425 (Record_Representation_Clause): Do not warn on missing component
8426 clauses for inherited components of a type extension.
8427 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8428 an overloadable item if it is a pragma that can apply to multiple
8429 overloadable entities (e.g. Inline) because a pragma cannot be on
8430 more than one chain at a time.
8431 (Validate_Unchecked_Conversion): Add code to warn on unchecked
8432 conversion where one of the operands is Ada.Calendar.Time.
8433 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8434 For now, ignore Component_Size clause on VM targets, as done for
8437 2007-12-13 Emmanuel Briot <briot@adacore.com>
8438 Vincent Celier <celier@adacore.com>
8440 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8442 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8444 (Hash): Move instantiation of System.HTable.Hash from spec to body
8445 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8446 systems, since we do not need to recompute the Name_Id for the canonical
8448 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8449 as a parameter. This parameter is in fact always "ada" in all calls, and
8450 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8451 while loading a project with 40000 files
8453 * prj-attr.adb: Fix name of attribute Dependency_Driver
8454 Change the kind of indexing for attribute Root
8456 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8457 variables already declared, in case constructions.
8459 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8460 Current_Object_Path_File to No_Path.
8462 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8463 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8465 * prj-makr.adb: new parameter Current_Dir
8467 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8468 Ada sources when language is not Ada.
8469 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8470 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8471 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8472 (Locate_Directory): Always resolve links when computing Canonical_Path
8473 (Look_For_Sources): Make sure that Name_Buffer contains the file name
8474 in Source_Files before checking for the presence of a directory
8476 Optimize calls to Name_Find when on case sensitive systems.
8477 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8479 (Prj.Nmsc.Check): new parameter Current_Dir
8480 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8481 cannot be empty and the spec suffix cannot be the same as the body or
8483 (Get_Unit): When a file name can be of several unit kinds (spec, body or
8484 subunit), always consider the longest suffix.
8485 (Check_Configuration): Do not issue an error if there is no compiler
8486 for a language. Just issue a warning and ignore the sources for the
8488 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8490 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8491 (Unit_Exceptions): New hash table
8492 (Check_Naming_Schemes): Check if a file that could be a unit because of
8493 the naming scheme is not in fact a source because there is an exception
8495 (Look_For_Sources): Put the unit exceptions in hash table
8497 (Get_Unit_Exceptions): Give initial value No_Source to local variable
8498 Other_Part to avoid exception when code is compiled with validity
8500 (Get_Sources_From_File): Check that there is no directory information
8502 (Look_For_Sources): Check that there is no directory information in the
8503 list of file names in Source_Files.
8504 (Look_For_Sources): In multi-language mode, do not allow exception file
8505 names that are excluded.
8506 (Excluded_Sources_Htable): New hash table
8507 (Search_Directories.Check_File): New procedure to simplify
8509 (Search_Directories): Do not consider excluded sources
8510 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8512 (Get_Exceptions): Set component Lang_Kind of Source_Data
8513 (Get_Unit_Exceptions): Ditto
8514 (Search_Directories): Ditto
8516 * prj-pars.adb: new parameter Current_Dir
8518 * prj-part.ads, prj-part.adb:
8519 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8520 (Opt.Follow_Links_For_Dirs): New flag
8521 (Project_Path_Name_Of): Cache information returned by this routine as
8522 Locate_Regular_File is a costly routine. The code to output a log
8523 information and the effective call to Locate_Regular_File is now
8524 factorized into a routine (code clean-up).
8525 (Parse, Parse_Single_Project): new parameter Current_Dir
8526 When main project file cannot be found, indicate in the error
8527 message the project path that was used to do the search.
8529 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8530 (Prj.Proc.Process*): new parameter Current_Dir
8532 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8534 2007-12-13 Bob Duff <duff@adacore.com>
8536 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8537 procedure to be called from the back end to check the
8538 No_Implicit_Dynamic_Code restriction.
8540 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8542 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8543 Fixes another case where RTE_Available_Call was ignored instead of being
8547 * rtsfind.ads: Add new entries.
8549 2007-12-13 Robert Dewar <dewar@adacore.com>
8551 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8552 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8554 * scn.adb: Implement BOM recognition
8556 2007-12-13 Thomas Quinot <quinot@adacore.com>
8557 Ed Schonberg <schonberg@adacore.com>
8559 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8560 subprogram body that acts as its own spec may not have a non-private
8561 WITH clause on a private sibling.
8562 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8563 child unit is a renaming, create an implicit with_clause on that
8564 parent, and not on the unit it renames, to prevent visibility errors
8565 in the current unit.
8567 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8569 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8570 renaming declaration, use the Slocs of the formal parameters from the
8571 declaration of the formal subprogram when creating the formal parameter
8572 entities in the renaming declaration.
8573 (Analyze_Formal_Type_Declaration): Change the placement of the error
8574 message concerning illegal known discriminants. It is now posted on the
8575 type rather than on the first discriminant. This change ensures early
8577 (Freeze_Subprogram_Body): If the generic subprogram is nested within
8578 the package body that contains the instance, do not generate an
8579 out-of-place freeze node for the enclosing package.
8580 (Collect_Previous_Instantiations): Ignore internal instantiations
8581 generated for formal packages.
8582 (Validate_Derived_Type_Instance): Add a check that when a formal
8583 derived type is Known_To_Have_Preelab_Init then the actual type must
8584 have preelaborable initialization, and issue an error when this
8585 condition is violated.
8587 2007-12-13 Robert Dewar <dewar@adacore.com>
8589 * s-imenne.adb, s-imenne.ads: New files.
8591 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8592 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8593 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8594 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
8595 s-imgwch.ads: New calling sequence for Image routines to avoid sec
8598 2007-12-13 Javier Miranda <miranda@adacore.com>
8599 Ed Schonberg <schonberg@adacore.com>
8601 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8602 generation of spurious error if parent is an interface type; caused
8603 because predefined primitive bodies will be generated later by
8605 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8607 (Derive_Subprograms): Handle derivations of predefined primitives
8608 after all the user-defined primitives to ensure that they are
8609 found in proper order in instantiations.
8610 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8611 of Related_Interface to Related_Type.
8612 (Record_Type_Declaration): Minor reordering of calls to decorate the
8613 Tag component because the entity must have set its Ekind attribute
8614 before setting its Is_Tag attribute.
8615 (Analyze_Subtype_Declaration): In the case of subtypes with
8616 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8618 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8619 Ed Schonberg <schonberg@adacore.com>
8621 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8622 statement to the list of contexts where a selected component with a
8623 concurrent tagged type prefix should yield a primitive operation.
8624 (Find_Primitive_Operation): Handle case of class-wide types.
8625 (Analyze_Overloaded_Selected_Component): If type of prefix is
8626 class-wide, use visible components of base type.
8627 (Resolve_Selected_Component): Ditto.
8628 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8629 formal of a generic subprogram. find candidate interpretations by
8630 scanning the list of generic formal declarations.:
8631 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8632 type from a limited_with_clause, and the full view is available, use it
8633 for subsequent semantic checks.
8634 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8635 (Find_Primitive_Operation): New function.
8636 (Analyze_Overloaded_Selected_Component): insert explicit dereference
8637 only once if several interpretations of the prefix yield an access type.
8638 (Try_Object_Operation): Code and comment cleanup.
8639 (Analyze_Selected_Component): Reorder local variables. Minot comment and
8640 code reformatting. When the type of the prefix is tagged concurrent, a
8641 correct interpretation might be available in the primitive and
8642 class-wide operations of the type.
8644 2007-12-13 Robert Dewar <dewar@adacore.com>
8645 Ed Schonberg <schonberg@adacore.com>
8647 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8648 renaming entry as subprogram using rename-as-body if subprogram spec
8650 (Use_One_Type): The clause is legal on an access type whose designated
8651 type has a limited view.
8652 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8653 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8654 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8655 operation denoted by a selected component.
8656 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8657 it can be an expression, possibly overloaded, that returns a task or
8660 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8661 Gary Dismukes <dismukes@adacore.com>
8663 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8664 requeue statement is dispatching. Do not emit an error when the name is
8665 not an entry and the context is a dispatching select. Add code to
8666 perform subtype conformance between the formals of the current entry
8667 and those of the target interface primitive.
8668 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8669 Timed_Entry_Call): Analyze the triggering statement as the first step of
8670 the processing. If this is a dispatching select, postpone the analysis
8671 of all select statements until the Expander transforms the select. This
8672 approach avoids generating duplicate identifiers after the Expander has
8673 replicated some of the select statements. In case the Expander is
8674 disabled, perform regular analysis.
8675 (Check_Triggering_Statement): New routine.
8676 (Analyze_Requeue): Exclude any interpretations that are not entries when
8677 checking overloaded names in a requeue. Also test type conformance for
8678 matching interpretations rather than requiring subtype conformance at
8679 that point to conform with the RM's resolution rule for requeues.
8681 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8683 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8684 inherited operation is a defaulted tag-indeterminate call, and there is
8685 a statically tagged actual, use the static tag as a controlling actual
8686 for the defaulted actual.
8688 2007-12-13 Geert Bosch <bosch@adacore.com>
8690 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8691 context, so do not call Check_Non_Static_Context.
8693 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8695 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8696 whether formal E is an entity which may have parameters.
8698 2007-12-13 Bob Duff <duff@adacore.com>
8699 Javier Miranda <miranda@adacore.com>
8700 Robert Dewar <dewar@adacore.com>
8702 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8703 (Set_Convention): New procedure to set the Convention flag, and in
8704 addition make sure the Favor_Top_Level flag is kept in sync (all
8705 foreign-language conventions require Favor_Top_Level = True).
8706 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8708 (Collect_Interfaces_Info): Minor update to handle the two secondary
8709 dispatch tables. Update occurrence of Related_Interface to Related_Type.
8710 (Generate_Parent_Ref): Add parameter to specify entity to check
8711 (Is_Preelaborable_Expression): Allow the name of a discriminant to
8712 initialize a component of a type with preelaborable initialization.
8713 This includes the case of a discriminal used in such a context.
8714 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8715 latest Ada 2005 rules about renaming and 'Access of
8716 discriminant-dependent components.
8717 (Check_Nested_Access): Add handling when there are no enclosing
8718 subprograms (e.g. case of a package body).
8719 (Find_Parameter_Type): Factor routine from several other compiler files.
8720 Remove routine from Find_Overridden_Synchronized_Primitive.
8722 2007-12-13 Thomas Quinot <quinot@adacore.com>
8724 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8725 an invalid access to an uninitialized slot in the
8726 Source_File_Index_Table.
8728 2007-12-13 Thomas Quinot <quinot@adacore.com>
8730 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8732 2007-12-13 Bob Duff <duff@adacore.com>
8734 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8735 access-to-subprogram types in this package.
8737 2007-12-13 Olivier Hainque <hainque@adacore.com>
8739 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8740 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8741 Stack_Overlay_Address and document that we are using an internal
8743 (Byte_Size, Unsigned_32_Size): Remove, now useless.
8744 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8745 consistently throughout the various implementation pieces.
8747 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8748 overlay we are using to fill the stack area with patterns.
8749 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8750 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8751 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8753 2007-12-13 Robert Dewar <dewar@adacore.com>
8755 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8757 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8760 (Create_Task): Take into account tasks created by foreign threads.
8761 Code clean up: use constants instead of hard coded values.
8763 2007-12-13 Robert Dewar <dewar@adacore.com>
8765 * styleg.adb (Check_Comment): More liberal rules for comment placement
8767 2007-12-13 Olivier Hainque <hainque@adacore.com>
8769 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8770 of Procedure Value instead of Frame Pointer as the invocation
8771 identifier associated with the instruction pointer in each traceback
8774 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8775 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8776 Pointer as the invocation identifier passed to tbk$symbolize.
8778 * s-traent-vms.ads, s-traent-vms.adb
8779 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8780 Procedure Value instead of Frame Pointer as the invocation identifier
8781 passed to tbk$symbolize.
8783 2007-12-13 Robert Dewar <dewar@adacore.com>
8785 * tbuild.ads, tbuild.adb:
8786 Fix location of flag for unrecognized pragma message
8788 2007-12-13 Robert Dewar <dewar@adacore.com>
8790 * treepr.ads, treepr.adb: (pl): implement use of positive value
8793 2007-12-13 Robert Dewar <dewar@adacore.com>
8795 * xeinfo.adb: Remove warnings
8796 * xnmake.adb: Remove warnings
8797 * xsinfo.adb: Remove warnings
8798 * xtreeprs.adb: Remove warnings
8799 * xsnames.adb: Remove warnings
8801 * a-ngcoar.adb: Fix typo.
8802 * s-interr.adb: Minor reformatting
8803 * env.c: Minor reformatting.
8804 * g-bytswa.adb: Minor reformatting.
8805 * g-rannum.ads: Minor documentation improvements
8806 * s-tasinf-mingw.adb: Minor header fix
8807 * a-clrefi.adb: Minor reformatting
8808 * g-sttsne.ads: Minor documentation improvement
8809 * g-sttsne-locking.ads: Minor documentation improvement
8810 * g-soliop-solaris.ads: Minor documentation improvement
8811 * g-soliop-mingw.ads: Minor documentation improvement
8812 * g-soliop.ads: Minor documentation improvement
8813 * exp_aggr.ads: Minor reformatting
8814 * debug.adb: Add documentation for the gprbuild debug flags
8815 * exp_ch2.adb: Use Nkind_In to simplify code throughout
8816 * exp_pakd.adb: Minor reformatting
8818 * g-altive.ads, g-alleve.adb: Remove assertions.
8819 Add comment about minor differences between targets regarding
8820 floating-point operations.
8822 * g-thread.adb: Remove pragma unreferenced.
8823 * lib.ads: Minor reformatting
8824 * par-ch9.adb: Minor reformatting of error messages
8825 * sem_case.adb: Minor reformatting
8826 * s-fileio.adb: Minor reformattinng
8827 * s-vmexta.ads: Minor typo
8829 Take into account 'Success' value as per new GNAT warning.
8831 2007-12-13 Vincent Celier <celier@adacore.com>
8833 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
8836 2007-12-13 Robert Dewar <dewar@adacore.com>
8837 Bob Duff <duff@adacore.com>
8839 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
8840 Document that suffixes may be terminations of each others
8841 Add doc for -gnatw.a and -gnatw.A
8842 Document gnatbind -Wx switch
8843 Document BOM recognition
8844 Document pragma Implemented_By_Entry.
8847 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
8848 Add doc for pragma Unreferenced suppressing no entities referenced msg
8849 Add documentation of GNAT.Directory_Operations.Iteration
8850 Add documentation of GNAT.Random_Numbers
8851 Add documentation for pragma Shared.
8852 Correct documentation for Bit_Order
8853 Add documentation for the Pool_Address attribute.
8854 Fix and improve documentation of pragma machine_attribute.
8855 New pragma Fast_Math
8856 Document BOM recognition
8858 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
8859 Add /Wide_Character_Encoding for binder
8860 Add qualifier for the new gnatpp option --no-separate-loop-then
8862 2007-12-13 Matthew Heaney <heaney@adacore.com>
8864 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
8865 which generic formal operations are called for each operation.
8867 2007-12-13 Olivier Hainque <hainque@adacore.com>
8869 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
8870 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
8872 2007-12-13 Emmanuel Briot <briot@adacore.com>
8874 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
8875 Reference_Dir unless we actually need it.
8877 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8878 Tristan Gingold <gingold@adacore.com>
8880 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
8883 a-calend-vms.adb: Remove pragma warning off and add pragma
8886 2007-12-13 Robert Dewar <dewar@adacore.com>
8888 * impunit.adb: Add entries for missing units
8890 * Makefile.rtl: Add new run-time units.
8892 * Make-lang.in: Update dependencies.
8894 2007-12-13 Bob Duff <duff@adacore.com>
8896 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
8897 types, set Can_Use_Internal_Rep appropriately, based on
8898 Always_Compatible_Rep_On_Target.
8900 2007-12-13 Gary Dismukes <dismukes@adacore.com>
8901 Arnaud Charlet <charlet@adacore.com>
8903 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
8904 it to the front end and setting the aamp_target environment variable
8905 to the switch's argument to ensure that gnaampbind and gnaamplink will
8906 take the specified library into account.
8907 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
8908 target, since the CIL compiler supports an "object" file (.il files).
8910 2007-12-13 Vincent Celier <celier@adacore.com>
8912 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
8913 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
8915 2007-12-13 Geert Bosch <bosch@adacore.com>
8917 * s-parame-vxworks.adb:
8918 Update comments to reflect usage of this package by Nucleus.
8920 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8922 * i-vxwork.ads: Kill new warning on Convention C, since changing the
8923 spec would break code.
8925 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
8927 * system-vxworks-alpha.ads: Removed.
8929 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
8931 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
8933 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
8936 * sem_ch3.adb (Designates_T): New function.
8937 (Mentions_T): Factor reusable part of the logic into Designates_T.
8938 Consider non-access parameters and access and non-access result.
8939 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
8940 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
8942 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
8944 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
8947 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
8948 the new implementation of target-specific calls.
8950 2007-12-07 Olivier Hainque <hainque@adacore.com>
8952 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
8953 the designated full view, only follow a second level Full_View link
8954 for Non_Limited_Views of from_limited_with references.
8956 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
8959 * sem_ch6.adb (Process_Formals): Prevent an access type formal
8960 to be initialized with an access to constant object.
8962 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
8963 when an access to constant is used to initialize an access
8967 * a-direct.adb (Compose): Containing_Directory can be an empty string.
8969 2007-12-07 Olivier Hainque <hainque@adacore.com>
8972 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
8973 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
8974 this is from an alignment clause on the GNAT entity.
8975 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
8976 to distinguish the case where we set it from the type's alignment.
8977 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
8978 whether this alignment was set from an explicit alignment clause.
8980 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
8982 * decl.c (make_packable_type): Revert last change.
8983 (gnat_to_gnu_field): Avoid setting size and position multiple times.
8984 * utils.c (finish_record_type): Retrieve the real name of the type.
8986 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
8988 * trans.c (lvalue_required_p): Take base node directly instead
8989 of its parent. Rename second parameter to 'gnu_type'.
8990 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
8991 <N_Slice>: Likewise.
8992 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
8993 Adjust calls to lvalue_required_p.
8995 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
8998 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
8999 parameters of an entry call.
9001 2007-12-03 Robert Dewar <dewar@adacore.com>
9002 Samuel Tardieu <sam@rfc1149.net>
9005 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9006 of variables declared in a library-level package.
9008 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
9010 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9011 of Empty_String'Unchecked_Access.
9013 * Makefile.in: Add support for sh4-linux.
9015 * system-linux-sh4.ads: New file.
9017 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
9020 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9021 and its argument must not be free()ed.
9023 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
9025 * decl.c (make_packable_type): Retrieve the real name of the type.
9026 (maybe_pad_type): Simplify similar code.
9028 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
9031 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9032 than an identifier is used after "case" in a variant_part.
9035 * par-ch4.adb (Is_Parameterless_Attribute): New map.
9036 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9037 attribute name or not depending on the new map.
9039 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9040 returning a string or a type will not be called with improper
9043 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9045 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9048 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9049 Signal an error when attribute argument is a fixed-point value of
9053 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9054 a derived ordinary fixed point type.
9056 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9057 RM_Size when a Small clause is found.
9059 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
9062 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9063 Pass 'false' for the new allocate_struct_function parameter.
9064 * utils.c (build_function_stub): Likewise.
9066 2007-11-25 Richard Guenther <rguenther@suse.de>
9068 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9069 (gnat_poplevel): Likewise.
9071 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
9073 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9074 strict alignment, no alignment clause and a known static size, cap
9075 the type alignment to the greatest power of 2 factor of the size.
9076 (gnat_to_gnu_field): If the field has a component clause, is aliased
9077 or of a type with strict alignment, require that its size be equal to
9079 (validate_size): Use the type size as the minimum size for a type with
9082 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
9084 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9085 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9086 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9087 Use 'Access instead of 'Unchecked_Access in second and third
9088 arguments of pthread_sigmask.
9090 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
9092 * decl.c (ceil_alignment): New function.
9093 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9094 (make_packable_type): Likewise.
9096 2007-11-22 Olivier Hainque <hainque@adacore.com>
9098 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9099 to fit in 80 columns.
9101 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
9103 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9104 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9106 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
9109 * misc.c (gnat_adjust_rli): Delete.
9110 (gnat_init): Do not initialize the translation code here.
9111 Do not call set_lang_adjust_rli.
9112 * trans.c (init_code_table): Make static.
9113 (gnat_init_stmt_group): Delete.
9114 (gigi): Initialize the translation code entirely here.
9115 Emit debug info for the common types here instead of...
9116 * utils.c (gnat_init_decl_processing): ...here.
9117 * gigi.h (init_code_table): Delete.
9118 (gnat_init_stmt_group): Likewise.
9120 2007-11-16 Olivier Hainque <hainque@adacore.com>
9122 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9123 retrieving an allocator return value from a super-aligned address from
9125 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9126 expect a super-aligned address for a fat or thin pointer.
9128 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
9130 * trans.c (call_to_gnu): Always set the source location on the call
9131 expression. If the function returns-by-target, also set it on the
9134 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
9136 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9137 sections of non-supported Interix target.
9139 * s-osinte-interix.ads: Removed.
9141 * i-cstrin.ads (chars_ptr): Make it a C convention type.
9143 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
9145 * a-tasatt.adb: Add a comment at the beginning of the package
9146 explaining why in general 'Unchecked_Access must be used instead
9149 * sem_prag.adb (Process_Convention): Move the test for the
9150 entity on which the Convention pragma applies down to also
9151 forbid pragma Convention on enumeration literals reached
9154 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
9156 * a-tasatt.adb: Revert previous change for this file as it will
9157 generate an error when this package is instantiated from a
9160 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
9162 * a-tasatt.adb: Type Wrapper should be declared in comment instead
9163 of already declared type Node_Access.
9164 Use 'Access instead of 'Unchecked_Access when applicable. Local
9165 lifetime is the one of the package.
9166 (Set_Value): W is allocated on the heap.
9168 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9170 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9172 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9175 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9177 (elaboration code): Timer_Queue lifetime is the one of the
9180 * tracebak.c (i386 alternative): Remove useless comparaison
9181 which is always false; LOWEST_ADDRESS is 0 and is never greater
9182 than an unsigned integer.
9184 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9185 embedded check for "Ada_Version >= Ada_05".
9187 2007-11-07 Olivier Hainque <hainque@adacore.com>
9189 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9190 craft and expand comment.
9192 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
9194 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9196 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
9198 * misc.c (gnat_handle_option): Replace call to abort with
9199 call to gcc_unreachable.
9200 (gnat_init): Likewise.
9201 (gnat_expand_expr): Likewise.
9202 (fp_prec_to_size): Likewise.
9203 (fp_size_to_prec): Likewise.
9205 2007-10-23 Richard Guenther <rguenther@suse.de>
9208 * tracebak.c: #undef abort after including system.h.
9210 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
9212 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9213 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9215 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9217 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
9219 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9220 Set the protection status of the guard page based on the value of On.
9222 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9224 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9225 (Exit_Task): Pass False to Hide_Yellow_Zone.
9227 2007-10-15 Robert Dewar <dewar@adacore.com>
9229 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9230 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9231 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9232 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9233 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9234 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9235 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9236 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9237 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9238 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9239 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9240 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9241 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9242 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9243 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9244 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9246 Add Unreferenced and Warnings (Off) pragmas for cases of
9247 variables modified calls where they are IN OUT or OUT parameters and
9248 the resulting values are not subsequently referenced. In a few cases,
9249 we also remove redundant code found by the new warnings.
9251 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9252 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9253 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9254 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9255 warning controlled by -gnatw.o that warns on cases of out parameter
9256 values being ignored.
9258 2007-10-15 Geert Bosch <bosch@adacore.com>
9260 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9262 * expect.c: Initial port to arm-mentor-nucleus.
9263 Use kill for __gnat_kill() on VMS.
9265 2007-10-15 Emmanuel Briot <briot@adacore.com>
9267 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9269 (Xref_Record): Change type for Line, since in the case of a reference to
9270 a predefined entity (as happens for array index types), the line is set
9272 Add support for parsing multiple array index types info, or
9273 multiple inherited interfaces info. This information cannot be stored
9274 in Xref_Entity_Record, which only supports a single instance of Tref_*,
9275 and is therefore stored in the list of references instead. It has a
9276 special treatement later on in tools that use this information.
9278 2007-10-15 Tristan Gingold <gingold@adacore.com>
9280 * debug.adb: Document use of -gnatd.a and -gnatd.I
9282 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9284 2007-10-15 Javier Miranda <miranda@adacore.com>
9286 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9287 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9288 care of access to class-wide interface types plus removal of bizarre
9289 conversion of tagged object to access type (reported by Gary
9290 Dismukes). After this patch there is no need to perform any
9291 additional management on these nodes in Expand_Interface_Actuals.
9293 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9294 that handles use of 'Access and 'Unchecked_Access applied to
9295 actuals covering interface types. Such code is now
9296 centralized in Expand_N_Attribute_Reference.
9298 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9300 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9301 of tagged types whose ultimate ancestor is a CPP type.
9302 (Freeze_Array_Type): For a packed array type, generate an initialization
9303 procedure if the type is public, to handle properly a client that
9304 specifies Normalize_Scalars.
9306 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9308 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9309 inside a generic body, retrieve the full view of the entry family
9310 discrete subtype if available.
9312 2007-10-15 Thomas Quinot <quinot@adacore.com>
9314 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9315 attempt to generate stubs for hidden primitive operations.
9317 2007-10-15 Vincent Celier <celier@adacore.com>
9319 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9320 returning None, used when there is no platform specific body for
9323 2007-10-15 Bob Duff <duff@adacore.com>
9325 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9326 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9327 the generic Heap_Sort_G, in order to avoid trampolines.
9329 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
9330 Jose Ruiz <ruiz@adacore.com>
9332 * vx_stack_info.c: New file.
9334 * i-forbla-unimplemented.ads: New file.
9336 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9337 for unsupported configurations; use it on VMS targets instead of the
9339 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9340 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9341 used by VxWorks targets to have access to task-specific data and be
9342 able to extract the stack boundaries for stack checking.
9343 Use system-vms-ia64.ads on ivms.
9345 * Make-lang.in: Update dependencies.
9347 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9350 2007-10-15 Vincent Celier <celier@adacore.com>
9352 * snames.adb, snames.ads: Add new standard name runtime_library_dir
9354 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9356 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9358 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9359 the source is unknown.
9361 * prj-ext.adb: Spelling error fix
9363 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9364 95 reserved word in its name.
9365 (Process_Project_Level_Array_Attributes): Process new attribute
9366 Runtime_Library_Dir.
9368 * prj-part.adb (Parse_Single_Project): Do not check the name of the
9369 config project against the user project names.
9371 * prj-proc.adb (Expression): In multi-language mode, indexes that do
9372 not include a dot are always case insensitive.
9373 (Process_Declarative_Items): Ditto
9374 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9377 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9378 True, compare both indexes in lower case.
9380 2007-10-15 Robert Dewar <dewar@adacore.com>
9382 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9384 2007-10-15 Gary Dismukes <dismukes@adacore.com>
9386 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9387 association for an access component, add an association with null as
9388 the expression. Remove testing for array subtypes and the setting in
9389 that case of Ctyp to the array component type, which prevented proper
9390 inclusion of an association for null-initialized arrays. Collapse
9391 condition that tests for array subtypes into just a test of
9392 Is_Partially_Initialized_Type (which already covers arrays anyway).
9394 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9396 * sem_ch12.adb: Minor code reformatting.
9397 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9398 find the parent package which may have been hidden by local
9401 2007-10-15 Gary Dismukes <dismukes@adacore.com>
9403 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9404 flag of derived concurrent types, taking into account the flag setting
9405 on the parent subtype and any new set of discriminants.
9407 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9409 * sem_ch4.adb: Minor code and comment reformatting.
9410 (Analyze_Allocator): When the designated type of an unconstrained
9411 allocator is a record with unknown discriminants or an array with
9412 unknown range bounds, emit a detailed error message depending on the
9413 compilation mode and whether the designated type is limited.
9415 2007-10-15 Tristan Gingold <gingold@adacore.com>
9417 * system-vms-ia64.ads: New file.
9419 * system-vms_64.ads: Minor comment fix.
9421 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9423 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9424 body generated for a function with a controlling result that is a null
9425 extension, discard the generated body in favor of the current explicit
9428 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9430 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9431 examining its original form, to handle properly operator calls that
9432 have been rewritten.
9434 2007-10-15 Olivier Hainque <hainque@adacore.com>
9436 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9437 instead of a procedure value in each traceback entry.
9439 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9440 instead of procedure value to TBK$SYMBOLIZE.
9442 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9444 (TB_Entry_For): Account for the PV/FP renaming.
9446 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9448 (Null_TB_Entry): Account for change of component name.
9449 (PV_For): Rename as FP_For.
9451 2007-10-15 Tristan Gingold <gingold@adacore.com>
9453 * trans.c (gnat_to_gnu): Remove the padding structure more often.
9454 This optimize assignment to over-aligned record.
9456 2007-10-15 Emmanuel Briot <briot@adacore.com>
9458 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9461 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9462 type, for dispatching calls.
9464 2007-10-15 Vincent Celier <celier@adacore.com>
9465 Robert Dewar <dewar@adacore.com>
9467 * gnat_ugn.texi: Add documentation for switches --version and --help
9468 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9469 gnatxref, gnatfind, gnatls, and gnatclean.
9471 Mention attribute Excluded_Source_Dirs
9472 Replace obsolescent attribute Locally_Removed_Files with attribute
9473 Excluded_Source_Files.
9474 Improve documentation of -u (gnatbind)
9475 Document how to do reliable stack checking for the environmental task
9478 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9479 Document attribute Excluded_Source_Files and indicate that attribute
9480 Locally_Removed_Files is obsolescent.
9482 2007-10-15 Thomas Quinot <quinot@adacore.com>
9484 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9487 Update documentation to note that OpenVMS 8.3 or later must be used
9488 to generate g-soccon-vms.ads.
9490 * atree.adb: Add ??? comment
9492 * exp_util.adb: Minor reformatting.
9493 Add ??? comment in Kill_Dead_Code.
9495 2007-10-15 Robert Dewar <dewar@adacore.com>
9497 * errout.ads: Comment clarification
9499 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9500 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9502 * lib.ads: Comment update
9504 * init.c: Minor reformatting.
9506 * sem_attr.adb: Minor formatting
9508 * osint-b.ads: Minor reformatting
9510 * sem_ch9.adb: Implement -gnatd.I switch
9512 * g-comlin.adb: (Start): Fix handling of empty command line.
9514 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9515 even when -rules follows the -cargs section.
9517 2007-10-08 Ollie Wild <aaw@google.com>
9519 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9521 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9523 (gnat_eh_runtime_type): Removed.
9524 (gnat_return_tree): New function.
9526 2007-10-08 Ben Elliston <bje@au.ibm.com>
9530 2007-08-31 Ben Elliston <bje@au.ibm.com>
9532 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9533 when compiling for powerpc64-*-linux.
9534 * system-linux-ppc64.ads: New file.
9536 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
9538 Mapped location support
9539 * back_end.adb (Call_Back_End): Pass information about source
9540 files instead of units to gigi.
9541 * gigi.h (struct File_Info_Type): New.
9542 (gigi): Rename and change type of number_units parameter, change
9543 type of file_info_ptr parameter.
9544 * trans.c (number_files): New global variable.
9545 (gigi): Rename and change type of number_units parameter, change
9546 type of file_info_ptr parameter.
9547 If mapped location support is enabled, create the isomorphic mapping
9548 between source files and line maps.
9549 (Sloc_to_locus): If mapped location support is enabled, translate
9550 source location into mapped location.
9551 (annotate_with_node): Rename into set_expr_location_from_node.
9552 Call set_expr_location instead of annotate_with_locus.
9553 (Pragma_to_gnu): Adjust for above change.
9554 (Loop_Statement_to_gnu): Likewise.
9555 (call_to_gnu): Likewise.
9556 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9557 (gnat_to_gnu): Likewise.
9558 (add_stmt_with_node): Likewise.
9559 (add_cleanup): Likewise.
9560 * utils.c (gnat_init_decl_processing): Do not set input_line.
9562 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9564 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9565 (Applicable_Use): Emit a warning when a package tries to use itself.
9566 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9567 is already in use or the package where it is declared is in use or is
9568 declared in the current package.
9569 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9571 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9572 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9573 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9575 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9577 * a-calend-vms.adb, a-calend.adb:
9578 Add a section on leap seconds control along with two entities used to
9579 enable and disable leap seconds support. The array Leap_Second_Times is
9580 now constant and contains hard time values pre-generated. Remove
9581 all elaboration code used to populate the table of leap seconds.
9584 Add entity Leap_Seconds_Support to the list of global run-time variables
9585 along with a comment on its usage and values.
9586 (Gen_Adainit_Ada): Add code to generate the declaration and import of
9587 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9588 or one (enabled) depending on the presence of binder switch "-y".
9589 (Gen_Adainit_C): Add code to generate the declaration of external int
9590 __gl_leap_seconds_support. Set is value to zero (disabled) or one
9591 (enabled) depending on the presence of binder switch "-y".
9593 * init.c: Add __gl_leap_seconds_support to the list of global values
9594 computed by the binder.
9596 2007-09-26 Jerome Guitton <guitton@adacore.com>
9598 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9599 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9600 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9601 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9603 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9605 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9606 function which can be called by the debugger to interrupt the tasks of
9607 an Ada application asynchronously, as needed on VxWorks.
9608 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9610 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9611 renamed from Stop_All_Tasks. Update comments.
9612 (Stop_All_tasks): New function declaration.
9614 2007-09-26 Olivier Hainque <hainque@adacore.com>
9616 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9617 #include <utime.h> and #define GCC_RESOURCE_H before
9618 #include <sys/wait.h>.
9619 Add more protections in __gnat_translate_vms.
9621 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9622 #include <sys/wait.h>.
9624 2007-09-26 Thomas Quinot <quinot@adacore.com>
9625 Sergey Rybin <rybin@adacore.com>
9627 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9629 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9632 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9634 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9637 * sem_dist.ads: Minor comment fix
9639 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9641 2007-09-26 Javier Miranda <miranda@adacore.com>
9642 Eric Botcazou <ebotcazou@adacore.com>
9645 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9646 indirection added to the HT_Link component of the TSD. This is required
9647 to statically allocate the TSD.
9650 Minor reordering of the declarations in the private part. Required to
9651 add a level of indirection to the contents of the TSD component HT_Link.
9652 This is required to statically allocate the TSD.
9654 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9655 Is_Statically_Allocated set from constant objects.
9656 Do not make exported constants created by the compiler volatile.
9657 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9660 * trans.c (Identifier_to_gnu): For constants, unshare initializers
9661 before returning them.
9663 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9664 public part of the package.
9665 (Make_DT): Move HT_Link component out of the TSD record. For this
9666 purpose Make_DT now declares a separate object that stores the
9667 HT_Link value, and initializes the TSD component with the address
9668 of this new object. The addition of this level of indirection is
9669 required to statically allocate the TSD because the TSD cannot
9670 have variable components.
9671 (Expand_Interface_Conversion): Improve the expanded code.
9672 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9674 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9675 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9676 if we are building static dispatch tables then we must not generate
9677 extra code to register the primitive because the dispatch table will
9678 be built at the end of the library package; otherwise we notify that
9679 we cannot build the static dispatch table.
9681 2007-09-26 Robert Dewar <dewar@adacore.com>
9683 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9686 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9687 (Analyze_Record_Representation_Clause): Suppress junk warning for
9688 missing component clause.
9689 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9690 tests for controlled type overlay to composites with controlled
9692 (Analyze_Record_Representation_Clause): Add reference for component name
9694 2007-09-26 Javier Miranda <miranda@adacore.com>
9695 Gary Dismukes <dismukes@adacore.com>
9697 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9698 for thunks associated with interface types.
9700 * einfo.ads: Improve documentatation of Is_Internal
9701 (Is_Thunk): New attribute applicable to subprograms. True for thunks
9702 associated with interface types.
9703 Extensive comment fixes regarding flags that appear in all entities. The
9704 documentation is now consistent for all such flags (there were a number
9705 of errors in the documentation in this regard).
9707 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9709 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9710 of these procedures are passed a function call that already has
9711 build-in-place actuals (testing new flag
9712 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9713 the case where processing continues.
9714 (Expand_Call): If the call is generated from a thunk body then we
9715 propagate the extra actuals associated with the accessibility
9716 level of the access type actuals.
9718 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9719 of each extra formal of a protected operation to reference the
9720 corresponding extra formal of the subprogram denoted by the
9721 operation's Protected_Body_Subprogram.
9723 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9724 N_Function_Call nodes.
9726 2007-09-26 Robert Dewar <dewar@adacore.com>
9728 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9730 * debug.adb: Add d.s flag.
9732 2007-09-26 Gary Dismukes <dismukes@adacore.com>
9734 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9735 debug variable so that it won't be initialized when pragma
9736 Initialize_Scalars is in effect.
9738 2007-09-26 Gary Dismukes <dismukes@adacore.com>
9740 * freeze.adb (Freeze_Entity): Remove check for preelaborable
9741 initialization of a full view. This is moved to
9742 Analyze_Package_Specification.
9744 * sem_ch7.adb (Analyze_Package_Specification): Add check for
9745 preelaborable initialization of a full view in entity loop.
9746 (Uninstall_Declarations): If entity is a use-visible compilation unit,
9747 its child units are use-visible only if they are visible child units.
9749 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9750 whether an expression can be used within a type declaration that
9751 requires preelaborable init.
9752 (Check_Components): Replace inline code that does partial checking for
9753 preelaborable default expressions with call to
9754 Is_Preelaborable_Expression.
9755 (Has_Preelaborable_Initialization): In the case of a generic actual
9756 subtype, (that is, Is_Generic_Actual is True), return the result of
9757 applying Has_Preelaborable_Initialization to the generic actual's base
9760 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9762 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9763 call to Jan_1_Day _Of_Week to optimize its performance.
9764 (Is_Leap): Move the routine to the scope of Week_In_Year.
9765 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9766 weekday on which January 1 falls of Year - 1 and Year + 1. This function
9767 avoids calling Time_Of and Split, thus making it more efficent.
9768 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9770 * g-calend.ads (Week_In_Year): Change comment to reflect new
9773 2007-09-26 Emmanuel Briot <briot@adacore.com>
9775 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9776 Command_Line): New types
9777 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9778 support for defining how switches can be grouped on a command line (as
9779 is the case for -gnatw... for GNAT), and how simple switches can be
9780 used as aliases for more complex switches (-gnatwa is same as
9782 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
9783 (Start, Current_*): New subprograms
9784 Added support for parsing an array of strings in addition to the real
9786 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
9787 be moved from the body to the private part of the spec.
9788 (*): All subprograms now have an extra parameter with default value to
9789 specify which parser should be used. For backward compatibility, it
9790 defaults to parsing the command line of the application. They were also
9791 modified to properly handle cases where each of the argument does not
9792 start at index 1 (which is always true for Ada.Command_Line, but not
9793 when processing any Argument_List).
9794 (Free): New subprogram
9795 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
9796 Argument): New subprograms
9797 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
9798 special characters like ':', '=',... are now handled in a single place,
9799 which makes the code more extensible eventually.
9800 (Getopt, Full_Switch): When the switch was returned as part of the
9801 special character '*', make sure it is prepended by the switch character
9802 ('-' in general), so that the application knows whether "foo" or "-foo"
9803 was specified on the command line.
9805 2007-09-26 Florian Villoing <villoing@adacore.com>
9807 * g-dirope.adb (Remove_Dir): In case we are removing directories
9808 recursively, make sure that if an exception is raised during the
9809 processing, the current working directory is reset to its initial
9810 value before propagating the exception.
9812 2007-09-26 Vincent Celier <celier@adacore.com>
9814 * gnatbind.adb: If there are several ALI files specified and there is
9815 a main program to bind, the first ALI is expected to contain the main
9816 subprogram and the names of the binder generated files will be derived
9817 from the first ALI file name.
9818 (Gnatbind): Fix insertion character in invocation of Error_Msg
9820 2007-09-26 Vincent Celier <celier@adacore.com>
9822 * gnatcmd.adb (Check_Files): Do not include sources that have been
9823 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
9825 2007-09-26 Ed Schonberg <schonberg@adacore.com>
9827 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
9828 information about each of its index types, following the type
9829 reference for its component type.
9831 2007-09-26 Vincent Celier <celier@adacore.com>
9833 * make.adb: (Kill): New procedure (__gnat_kill imported)
9834 (Running_Compile, Outstanding_Compiles): Global variables that
9835 were previously local to procedure Compile_Sources.
9836 (Sigint_Intercepted): Send signal SIGINT to all outstanding
9837 compilation processes.
9839 (Gnatmake): If project files are used, create the mapping of all the
9840 sources, so that the correct paths will be found.
9842 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
9844 2007-09-26 Vincent Celier <celier@adacore.com>
9846 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
9848 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
9849 Replace components Compiler_Min_Options and Binder_Min_Options with
9850 Compiler_Required_Switches and Binder_Required_Switches in record
9852 Remove components Default_Language and Config in Project_Tree_Data,
9855 * prj-attr.adb: New attributes Required_Switches (<language>) in
9856 packages Compiler and Binder.
9858 * prj-nmsc.adb: Major rewrite of the processing of configuration
9859 attributes for gprbuild. No impact on GNAT tools.
9861 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
9862 process configuration attributes: this is done in Prj.Nmsc.Check.
9863 (Recursive_Process): Make a full copy of packages inherited from project
9864 being extended, instead of a shallow copy.
9865 (Process_Project_Tree_Phase_1): New procedure
9866 (Process_Project_Tree_Phase_1): New procedure
9867 (Process): Implementation now uses the two new procedures
9869 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
9870 from the project config, not the tree config that no longer exists.
9872 2007-09-26 Vincent Celier <celier@adacore.com>
9874 * Make-lang.in: Update dependencies..
9876 2007-09-26 Vincent Celier <celier@adacore.com>
9878 * osint.adb, osint.ads: Minor reformatting
9880 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
9882 2007-09-26 Gary Dismukes <dismukes@adacore.com>
9884 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
9885 message to cite use of <> in aggregate component associations rather
9886 than wrongly indicating use of limited aggregates.
9888 2007-09-26 Robert Dewar <dewar@adacore.com>
9890 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
9893 2007-09-26 Ed Schonberg <schonberg@adacore.com>
9895 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
9896 ancestor of the derived type, the operations are inherited from the
9897 primary dispatch table of the parent.
9898 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
9899 when the context is an explicit type conversion.
9901 2007-09-26 Ed Schonberg <schonberg@adacore.com>
9903 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
9904 rule for qualified expressions properly, to detect improper conversions
9905 and resolve some cases of overloading.
9907 2007-09-26 Ed Schonberg <schonberg@adacore.com>
9909 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
9910 proper kind of reference to the primitive operation, for better source
9912 (Valid_Conversion): A tagged conversion is legal if both operands are
9915 2007-09-26 Robert Dewar <dewar@adacore.com>
9917 * sem_warn.adb (Check_References): Catch more cases of unreferenced
9920 2007-09-26 Vincent Celier <celier@adacore.com>
9922 * snames.adb, snames.ads: Change Include_Option to Include_Switches
9924 2007-09-26 Robert Dewar <dewar@adacore.com>
9926 * s-wchstw.adb: provide messages for run time unit exceptions
9928 * a-witeio.adb: Minor reformatting
9930 * exp_ch13.adb: Minor reformatting
9932 2007-09-26 Sergey Rybin <rybin@adacore.com>
9934 * vms_data.ads: Revise gnatmetric qualifiers.
9935 Add qualified for the new gnatbind option '-y'
9937 * gnat_ugn.texi: Revise the gnatmetric section.
9938 Add entry for new gnatbind option '-y'.
9940 * gnat_rm.texi: Minor spelling correction.
9941 Document restriction on overlaying controlled types
9943 2007-09-26 Vincent Celier <celier@adacore.com>
9945 * makegpr.adb (Link_Executables): Do not fail when the root project has
9946 no sources, but is an extending project.
9948 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
9950 * trans.c: Fix misplaced #define.
9952 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
9954 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
9955 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
9957 2007-09-21 Olivier Hainque <hainque@adacore.com>
9959 * utils.c (type_for_nonaliased_component_p): Return false for
9960 all AGGREGATE_TYPEs.
9962 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
9964 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
9965 object covered by 13.3(19) volatile.
9967 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
9971 * utils.c (unchecked_convert): Use a subtype as the intermediate type
9972 in the special VIEW_CONVERT_EXPR case.
9974 2007-09-12 Robert Dewar <dewar@adacore.com>
9976 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
9978 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
9979 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
9980 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
9981 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
9982 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
9983 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
9984 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
9985 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
9986 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
9987 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
9988 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
9989 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
9990 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
9991 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
9992 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
9993 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
9994 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
9995 pragma Compiler_Unit and adds it to relevant library units.
9997 2007-09-12 Ed Schonberg <schonberg@adacore.com>
9999 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10000 a box need not correspond to any component.
10002 2007-09-12 Robert Dewar <dewar@adacore.com>
10004 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10005 the tasking version of the Ada run time when foreign threads are
10006 present and there are no explicit Ada tasks or tasking constructs.
10008 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10010 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
10012 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10013 the usage of switch -y.
10015 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10016 when switch -y is present.
10018 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10019 leap seconds in Ada.Calendar and its children.
10021 2007-09-12 Jose Ruiz <ruiz@adacore.com>
10023 * a-extiti.ads (Timer): The discriminant is a "not null access
10024 constant" in the Reference Manual.
10025 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10027 2007-09-12 Robert Dewar <dewar@adacore.com>
10029 * a-swuwha.adb: Remove junk RM header
10031 2007-09-12 Vincent Celier <celier@adacore.com>
10033 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10036 * g-bytswa.ads: Minor reformatting
10038 2007-09-12 Thomas Quinot <quinot@adacore.com>
10040 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10041 Add new constant Thread_Blocking_IO, always True by default, set False
10042 on a per-runtime basis.
10043 (Need_Netdb_Buffer): New constant.
10045 2007-09-12 Arnaud Charlet <charlet@adacore.com>
10047 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10048 Added renames for corresponding functions in System.Partition_Interface.
10050 2007-09-12 Doug Rupp <rupp@adacore.com>
10052 * Makefile.in: Remove VMS specific System.CRTL packages which are no
10055 * s-crtl-vms64.ads: Removed.
10057 2007-09-12 Olivier Hainque <hainque@adacore.com>
10059 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10060 with discriminant constraints, generalize the code for BIT_FIELDs
10061 to PACKED fields of constant size and propagate DECL_PACKED.
10063 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
10065 * decl.c (array_type_has_nonaliased_component): New predicate.
10066 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10067 set the TYPE_NONALIASED_COMPONENT flag on the type.
10068 <E_Array_Subtype>: Likewise.
10069 * gigi.h (type_for_nonaliased_component_p): Declare.
10070 * utils.c (type_for_nonaliased_component_p): New predicate.
10071 (create_field_decl): Invoke the above predicate to set the
10072 DECL_NONADDRESSABLE_P flag on the field.
10074 2007-09-11 Javier Miranda <miranda@adacore.com>
10076 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10077 in library level record type entities if we are generating statically
10078 allocated dispatch tables.
10080 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10081 importing/exporting the _tag declaration by new code
10082 importing/exporting the dispatch table wrapper. This change allows us
10083 to statically allocate of the TSD.
10084 (Make_DT.Export_DT): New procedure.
10085 (Build_Static_DT): New function.
10086 (Has_DT): New function.
10088 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10089 True_Constant and Current_Value. Required to statically
10090 allocate the dispatch tables.
10091 (Check_Allocator): Make function iterative instead of recursive.
10092 Also return inner allocator node, when present, so that we do not have
10093 to look for that node again in the caller.
10095 2007-09-11 Jan Hubicka <jh@suse.cz>
10097 * misc.c (gnat_expand_body): Kill.
10098 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10100 2007-09-10 Robert Dewar <dewar@adacore.com>
10102 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10103 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10104 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10105 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10106 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10107 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10108 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10109 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10110 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10111 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10112 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10113 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10114 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10115 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10116 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10117 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10118 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10119 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10120 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10121 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10122 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10123 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10124 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10125 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10126 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10127 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10128 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10129 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10130 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10131 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10132 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10133 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10134 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10135 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10136 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10137 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10138 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10139 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10140 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10141 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10142 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10143 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10144 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10145 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10146 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10147 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10148 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10149 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10150 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10151 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10152 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10153 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10154 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10155 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10156 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10157 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10158 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10159 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10160 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10161 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10162 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10163 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10164 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10165 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10166 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10167 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10168 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10169 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10170 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10171 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10172 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10173 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10174 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10175 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10176 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10177 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10178 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10179 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10180 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10181 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10182 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10183 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10184 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10186 2007-09-10 Emmanuel Briot <briot@adacore.com>
10188 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10191 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
10193 * adaint.c (__gnat_translate_vms): new function.
10195 2007-09-10 Gary Dismukes <dismukes@adacore.com>
10196 Thomas Quinot <quinot@adacore.com>
10198 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10199 create an abstract subprogram in the case of 'Input. For 'Output we now
10200 create a real spec/body when the type is abstract, since it can
10201 potentially be called.
10202 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10203 body for 'Output when the type is abstract (only the creation of the
10204 body for 'Input is excluded when the type is abstract).
10205 (Stream_Operation_OK): Add an additional condition in the return
10206 statement, so that False will be returned for TTS_Stream_Input if the
10207 associated tagged type is an abstract extension. Add comments for
10209 (Expand_N_Object_Declaration): For the case of a shared passive
10210 variable, insert init proc call only after the shared variable
10211 procedures have been processed, because the IP call needs to undergo
10212 shared passive variable reference expansion, which requires these
10213 procedures to be available (and elaborated).
10215 2007-09-10 Vincent Celier <celier@adacore.com>
10217 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10218 parameter Runtime_Project.
10220 2007-09-10 Ed Schonberg <schonberg@adacore.com>
10222 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10223 given a box association, the type of the component is discriminated,
10224 and the value of the discriminant is the discriminant of the enclosing
10225 type, retrieve its value from the aggregate itself, where it must have
10228 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10229 to remove other spurious ambiguities on arithmetic operations involving
10230 literals and addresses, on systems where Address is a visible integer
10231 type, when the operator is called in functional notation.
10232 (Try_Primitive_Operation): Within an instance, a call in prefixed form
10233 is legal when the types match, even if the operation is currently
10236 2007-09-10 Ed Schonberg <schonberg@adacore.com>
10238 * sem_ch12.adb (Build_Local_Package): A formal package with no
10239 associations is legal if all formals have defaults. It is not
10240 equivalent to a formal declared with a box.
10242 2007-09-10 Sergey Rybin <rybin@adacore.com>
10244 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10246 2007-09-10 Sergey Rybin <rybin@adacore.com>
10248 * gnat_ugn.texi: Add description of the new '-lratio' option
10249 Update 7.3.1 section about availability of the feature.
10251 2007-09-10 Thomas Quinot <quinot@adacore.com>
10253 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10256 2007-09-10 Olivier Hainque <hainque@adacore.com>
10258 * Makefile.in: (mips-irix section): Activate build of libgmem.
10260 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10262 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10265 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10267 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10268 a debug renaming declaration specially.
10270 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10272 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10273 which a constant renaming is treated as a normal object declaration.
10274 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10275 the N_Indexed_Component case.
10276 <N_Indexed_Component>: Fall through to above case.
10277 <N_Object_Renaming_Declaration>: Return true for all composite types.
10279 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10281 * decl.c (make_packable_type): If the new type has been given BLKmode,
10282 try again to get an integral mode for it.
10284 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
10286 Re-apply accidentally reverted change:
10288 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
10290 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10291 get_action_description_for): Replace _Unwind_Word with _uleb128_t
10292 and _Unwind_SWord with _sleb128_t.
10294 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
10296 * trans.c (convert_with_check): Update call to real_2expN.
10298 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
10300 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10301 * utils.c (end_subprog_body): Likewise.
10303 2007-09-03 Nick Clifton <nickc@redhat.com>
10305 * Make-lang.in: Change copyright header to refer to version 3 of
10306 the GNU General Public License and to point readers at the
10307 COPYING3 file and the FSF's license web page.
10308 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10309 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10310 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10311 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10314 2007-08-31 Vincent Celier <celier@adacore.com>
10318 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10319 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10320 (Check_Version_And_Help): New procedure in package Switch to process
10321 switches --version and --help.
10322 Use Check_Version_And_Help in GNAT tools
10325 (Compile_Sources): Make sure that sources that are "excluded" are not
10327 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10328 project file is used.
10329 (Version_Switch): Remove, moved to Switch
10330 (Help_Switch): Remove, moved to Switch
10331 (Display_Version): Remove, moved to Switch
10333 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10334 package Switch to process switches --version and --help.
10335 (Display_Version): New procedure
10337 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10339 2007-08-31 Javier Miranda <miranda@adacore.com>
10341 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10344 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10346 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10347 (Mark_Non_Null): If the node for which we just generated an access check
10348 is a reference to an *in* parameter and the reference appears in the
10349 declarative part of a subprogram body, mark the node as known non null.
10351 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10353 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10354 structure of E_Exception to reflect the new flag.
10355 (Is_Raised, Set_Is_Raised): New inlined routines.
10356 Update the usage of available flag to reflect the addition of Is_Raised.
10357 (Is_Raised, Set_Is_Raised): Bodies of new routines.
10358 (Write_Entity_Flags): Write the status of flag Is_Raised.
10359 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10360 spurious ambiguities when integer literals appear in the context of an
10361 address type that is a visible integer type.
10363 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10364 exceptions never being raised.
10365 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10368 2007-08-31 Javier Miranda <miranda@adacore.com>
10370 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10371 statement when compiling under restriction No_Exceptions_Proparation.
10373 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10375 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10376 initialization aggregate for the type, generate itype references for
10377 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10379 2007-08-31 Gary Dismukes <dismukes@adacore.com>
10381 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10382 library-level package renaming, pass the declaration associated with
10383 the renaming's special debug variable to Qualify_Entity_Names to ensure
10384 that its encoded name is properly qualified.
10386 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10387 occurring in the list of entities to qualify, and do not attempt to
10388 traverse an entity list in that case. Variables associated with
10389 ` library-level package renamings can now occur in the table.
10391 * exp_dbug.ads: Revise documentation of the encoding for renaming
10394 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10396 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10397 access type points to an unconstrained array.
10399 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10401 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10404 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10405 simple redundant qualifications. The check is performed whenever the
10406 expression is a non-overloaded identifier.
10407 (Resolve_Type_Conversion): Enchance the redundant type conversion check
10408 to include loop parameters.
10409 (Valid_Conversion): Avoid generation of spurious error message.
10411 2007-08-31 Bob Duff <duff@adacore.com>
10413 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10414 concatenations of string literals into a single literal, in order to
10415 avoid very deep recursion in the front end, which was causing stack
10418 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10419 string, and the right operand is a string literal (the case of "" &
10420 "..."), optimize by avoiding copying the right operand -- just use the
10421 value of the right operand directly.
10423 * stringt.adb (Store_String_Chars): Optimize by growing the
10424 String_Chars table all at once, rather than appending characters one by
10426 (Write_String_Table_Entry): If the string to be printed is very long,
10427 just print the first few characters, followed by the length. Otherwise,
10428 doing "pn(n)" in the debugger can take an extremely long time.
10430 * sem_prag.adb (Process_Interface_Name): Replace loop doing
10431 Store_String_Char with Store_String_Chars.
10433 2007-08-31 Vincent Celier <celier@adacore.com>
10435 * prj-attr.adb: Add new attribute Excluded_Source_Files
10437 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10438 Locally_Removed_Files.
10440 * snames.ads, snames.adb: New standard name Excluded_Source_Files
10442 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10444 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10445 clauses of subunits, ignore limited_with_clauses that are illegal and
10446 have not been fully analyzed.
10448 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10450 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10451 flag, for effiency. It is called when analyzing arithmetic operators
10452 and also for actuals in calls that are universal_integers. The flag is
10453 set for the predefined type address, and for any type or subtype
10456 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10457 Universal_Integer, when the formal is a descendent of address and the
10458 call appears in user code.
10459 (Analyze_Selected_Component): if the prefix is a private extension, the
10460 tag component is visible.
10462 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10465 2007-08-31 Robert Dewar <dewar@adacore.com>
10467 * s-fileio.adb (Open): Normalize file name to lower case in non-case
10468 sensitive file name systems to avoid unexpected mismatch in Vista.
10470 2007-08-31 Vincent Celier <celier@adacore.com>
10472 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10474 2007-08-31 Vincent Celier <celier@adacore.com>
10476 * symbols-vms.adb (Initialize): Read symbol files with continuation
10478 (Finalize): If symbol is long, split the line
10480 2007-08-31 Vincent Celier <celier@adacore.com>
10482 * fmap.ads: Minor comment updates
10484 2007-08-31 GNAT Script <nobody@adacore.com>
10486 * Make-lang.in: Makefile automatically updated
10488 2007-08-31 Bob Duff <duff@adacore.com>
10490 * sinfo.ads: Minor comment fix.
10492 2007-08-31 Thomas Quinot <quinot@adacore.com>
10494 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10495 with implementation.
10496 Documentation cleanup only.
10498 2007-08-31 Sergey Rybin <rybin@adacore.com>
10500 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10501 gnatpp '--separate-stmt-name' option.
10502 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10505 * gnat_ugn.texi: Add description for the new gnatpp
10506 '--separate-stmt-name' and '--use-on-new-line' options.
10508 2007-08-31 Ben Elliston <bje@au.ibm.com>
10510 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10511 when compiling for powerpc64-*-linux.
10512 * system-linux-ppc64.ads: New file.
10514 2007-08-22 Krister Walfridsson <cato@df.lth.se>
10516 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10519 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10521 * misc.c (gnat_type_max_size): Constify.
10523 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10525 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10526 associated with Standard_Debug_Renaming_Type, to be used as the type of
10527 the special variables whose names provide debugger encodings for
10528 renaming declarations.
10530 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10531 (Set_Debug_Renaming_Link): Change to set Node25.
10532 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10533 (Write_Field25_Name): Add case for E_Variable to output
10534 "Debug_Renaming_Link".
10535 (Write_Field23_Name): Correct the output string for "Limited_View".
10537 * exp_dbug.adb: Add with and use of Tbuild.
10538 (Debug_Renaming_Declaration): Replace creation of an enumeration type
10539 and literal with creation of a variable of type
10540 Standard_Debug_Renaming_Type whose name encodes both the renamed object
10541 and the entity of the renaming declaration.
10542 (Qualify_Entity_Name): Add the delayed qualification of the entity name
10543 part of the name of a variable that has a Debug_Renaming_Link.
10545 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10546 special type to be associated with variables that provide debugger
10547 encodings for renaming declarations.
10549 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10550 Ed Schonberg <schonberg@adacore.com>
10551 Javier Miranda <miranda@adacore.com>
10553 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10554 ancestor part given by an aggregate to test for an unchecked conversion,
10555 since this can occur in some cases when the ancestor part is a function
10556 call, and we don't want to fall into the recursive call to this
10557 procedure in that case.
10559 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10560 stream attributes on limited types to account for user-specified
10561 attributes as well as whether Input (resp. Output) becomes available
10562 due to Read (resp. Write) being available for the type. Change Boolean
10563 variable to the more accurate name
10564 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10565 double-"not" predicate at beginning of return statement to more
10566 understandable form.
10568 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10569 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10570 in a block statement and use that as the first statement of the
10571 expanded return rather than incorrectly using the handled sequence as
10572 the first statement.
10574 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10575 operation, generate an explicit freeze node for it rather than
10576 generating extra formals, to ensure that gigi has the proper order of
10577 elaboration for anonymous subtypes in the signature of the subprograms.
10578 (Build_In_Place_Formal): Move assertion to beginning of loop.
10579 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10580 applied to a function call (occurs for some cases of 'Input).
10581 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10582 applied to a function call (occurs for some cases of 'Input).
10584 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10585 2005, generate an extended return statement enclosing the result object
10588 * freeze.adb (Freeze_Record_Type): Extend the current management of
10589 components that are access type with an allocator as default value: add
10590 missing support to the use of qualified expressions of the
10591 allocator (which also cause freezing of the designated type!)
10592 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10593 dispatching operation, since extra formals may be needed by calls to
10594 build-in-place functions (such as stream 'Input).
10596 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10597 formals for 'Constrained and accessibility level in the case of a
10598 predefined dispatching operation.
10600 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10601 point, no need to find the parent node.
10603 2007-08-16 Javier Miranda <miranda@adacore.com>
10605 * exp_attr.adb (Attribute_Priority): Add missing support for entries
10606 and entry barriers.
10608 2007-08-16 Javier Miranda <miranda@adacore.com>
10610 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10611 is not really required and can introduce regression with the debugger.
10612 The original problem is fixed with the patch written for checks.adb.
10614 2007-08-16 Thomas Quinot <quinot@adacore.com>
10616 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10617 Range_Check on Allocated_Table.
10619 2007-08-16 Vincent Celier <celier@adacore.com>
10621 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10622 Including_Non_Switch set to False.
10623 (Gnatmake): For the compiler, call Test_If_Relative_Path with
10624 Including_Non_Switch set to False.
10626 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10627 parameter Including_Non_Switch, defaulted to True. When
10628 Including_Non_Switch is False, options that are not switches and
10629 appear as relative path are not converted to absolute paths.
10631 2007-08-16 Nicolas Roche <roche@adacore.com>
10633 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10636 * Make-lang.in: Update dependencies
10638 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10640 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10641 currently inspected is a selected component, retrieve the entity of
10643 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10644 from the immediate ancestor of Main_Unit_Entity.
10645 (Install_Limited_Withed_Unit): Do not install the limited view of
10646 package P if P is reachable through an ancestor chain from package C
10647 and C also has a with clause for P in its body.
10648 (Has_Limited_With_Clause): New routine.
10649 (Has_With_Clause): New routine.
10651 2007-08-16 Ed Schonberg <schonberg@adacore.com>
10653 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10654 generic for an enclosing instance is a global reference, even though
10655 its scope is the enclosing instance.
10657 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10658 Javier Miranda <miranda@adacore.com>
10660 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10661 initialize a limited object.
10662 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10664 Make sure Has_Complex_Representation is inherited by derived type.
10666 2007-08-16 Robert Dewar <dewar@adacore.com>
10668 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10671 2007-08-16 Ed Schonberg <schonberg@adacore.com>
10673 * sem_disp.adb (Check_Dispatching_Operation): If the operation
10674 implements an operation inherited from a progenitor interface, verify
10675 that they are subtype-conformant.
10677 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10678 Bob Duff <duff@adacore.com>
10679 Nicolas Setton <setton@adacore.com>
10681 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10682 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10683 the statement which is being resolved comes from a predefined library
10684 unit, all non-predefined library interpretations are skipped.
10685 (Resolve_Op_Concat): If string concatenation was folded in the parser,
10686 but the "&" is user defined, give an error, because the folding would
10689 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10690 the parser has folded a long sequence of concatenations of string
10693 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10694 and "JMP_BUF" variables as artificial.
10695 (N_String_Literal): Do not use alloca for very long string literals. Use
10696 xmalloc/free instead. Otherwise the stack might overflow.
10698 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10701 2007-08-16 Vincent Celier <celier@adacore.com>
10703 * vms_conv.adb (Process_Argument): Ensure that project related options
10704 are not put in the -cargs section when using GNAT COMPILE.
10706 2007-08-16 Robert Dewar <dewar@adacore.com>
10708 * gnat_ugn.texi: Add note on preprocessing (output file not written)
10710 2007-08-16 Thomas Quinot <quinot@adacore.com>
10712 * a-tags.adb: Minor reformatting.
10714 2007-08-16 Bob Duff <duff@adacore.com>
10716 * sem_type.ads, sem_ch4.adb: Minor reformatting.
10718 2007-08-14 Thomas Quinot <quinot@adacore.com>
10720 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
10721 s-osinte-interix.ads, system-interix.ads: Removed.
10723 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
10725 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10726 calls to Check_Within_Time_Bounds.
10727 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10728 (Difference): Account for possible rounding of the resulting difference
10730 2007-08-14 Robert Dewar <dewar@adacore.com>
10732 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10733 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10734 s-osinte-solaris.adb, s-osinte-solaris.ads,
10735 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10737 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10738 switch -gnatyS. Enable -gnatyS in GNAT style check mode
10740 2007-08-14 Robert Dewar <dewar@adacore.com>
10741 Ed Schonberg <schonberg@adacore.com>
10743 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
10744 Suppress unmodified in-out parameter warning in some cases
10745 This patch is a also fairly significant change to the way suppressible
10746 checks are handled.
10748 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10749 needed for access to concurrent record types generated by the expander.
10750 (Generate_Range_Check): When generating a temporary to capture the
10751 value of a conversion that requires a range check, set the type of the
10752 temporary before rewriting the node, so that the type is always
10753 properly placed for back-end use.
10754 (Apply_Float_Conversion_Check): Handle case where the conversion is
10756 (Get_Discriminal): Code reformatting. Climb the scope stack looking
10757 for a protected type in order to examine its discriminants.
10759 2007-08-14 Robert Dewar <dewar@adacore.com>
10760 Gary Dismukes <dismukes@adacore.com>
10761 Ed Schonberg <schonberg@adacore.com>
10762 Thomas Quinot <quinot@adacore.com>
10764 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
10765 a-stwisu.adb, a-strsup.adb: Fix warnings for range
10766 tests optimized out.
10768 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10769 (Get_Allocator_Final_List): For the case of an anonymous access type
10770 that has a specified Associated_Final_Chain, do not go up to the
10772 (Expand_N_Type_Conversion): Test for the case of renamings of access
10773 parameters when deciding whether to apply a run-time accessibility
10775 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10776 aggregate code before allocator, and ahead of declaration for
10777 temporary, to prevent access before elaboration when the allocator is
10778 an actual for an access parameter.
10779 (Expand_N_Type_Conversion): On an access type conversion involving an
10780 access parameter, do not apply an accessibility check when the
10781 operand's original node was an attribute other than 'Access. We now
10782 create access conversions for the expansion of 'Unchecked_Access and
10783 'Unrestricted_Access in certain cases and clearly accessibility should
10784 not be checked for those.
10786 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
10787 includes a type conversion of a packed component that has been expanded,
10788 recover the original expression for the object, and use this expression
10789 in the post-call assignment statement, so that the assignment is made
10790 to the object and not to a back-end temporary.
10791 (Freeze_Subprogram): In case of primitives of tagged types not defined
10792 at the library level force generation of code to register the primitive
10793 in the dispatch table. In addition some code reorganization has been
10794 done to leave the implementation clear.
10795 (Expand_Call): When expanding an inherited implicit conversion,
10796 preserve the type of the inherited function after the intrinsic
10797 operation has been expanded.
10799 * exp_ch2.ads, exp_ch2.adb
10800 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
10801 of an entry formal appearing in an assignment statement does not assign
10803 (Expand_Current_Value): Instead of calling a routine to determine
10804 whether the prefix of an attribute reference should be optimized or
10805 not, prevent the optimization of such prefixes all together.
10807 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
10808 component whose prefix is known to be of an access type is an implicit
10809 dereference and does not assign to the prefix.
10811 2007-08-14 Ed Schonberg <schonberg@adacore.com>
10812 Robert Dewar <dewar@adacore.com>
10814 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
10815 itype is visited, make an entry into table to link associated node and
10817 Add comments and correct harmless error in Build_NCT_Hash_Tables
10818 (Array_Aggr_Subtype): Associate each itype created for an index type to
10819 the corresponding range construct, and not to the aggregate itself. to
10820 maintain a one-to-one correspondence between itype and its associated
10821 node, to prevent errors when complex expression is copied.
10822 Fix mishandling of multiple levels of parens
10824 * sem_aggr.adb: Create a limited view of an incomplete type, to make
10825 treatment of limited views uniform for all visible declarations in a
10826 limited_withed package.
10827 (New_Copy_Tree): If hash table is being used and itype is visited,
10828 make an entry into table to link associated node and new itype.
10829 (Resolve_Record_Aggregate): Do not add an others box association for a
10830 discriminated record component that has only discriminants, when there
10831 is a box association for the component itself.
10833 * par-ch4.adb: Fix mishandling of multiple levels of parens
10835 2007-08-14 Robert Dewar <dewar@adacore.com>
10837 * comperr.adb: Fix problem with suppressing warning messages from gigi
10839 * erroutc.ads, erroutc.adb, errout.ads,
10840 errout.adb (Write_Eol): Remove trailing spaces before writing the line
10841 (Write_Eol_Keep_Blanks): New procedure to write a line, including
10842 possible trailing spaces.
10843 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
10844 Fix problem with suppressing warning messages from back end
10845 Improve handling of deleted warnings
10848 Fix problem with suppressing warning messages from back end
10849 Handle setting of Static_Dispatch_Tables flag.
10852 Fix problem with suppressing warning messages from back end
10854 * exp_intr.adb: Improve handling of deleted warnings
10856 2007-08-14 Robert Dewar <dewar@adacore.com>
10858 * debug.adb: Improve -gnatdI to cover all cases of serialization
10859 Add documentation of dZ, d.t
10861 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
10863 (Sprint_Node_Actual): Generate new output associated with implicit
10864 importation and implicit exportation of object declarations.
10866 2007-08-14 Ed Schonberg <schonberg@adacore.com>
10867 Robert Dewar <dewar@adacore.com>
10868 Javier Miranda <miranda@adacore.com>
10869 Gary Dismukes <dismukes@adacore.com>
10871 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
10872 to make treatment of limited views uniform for all visible declarations
10873 in a limited_withed package.
10874 Improve warnings for in out parameters
10875 (Set_Related_Interaface/Related_Interface): Allow the use of this
10876 attribute with constants.
10877 (Write_Field26_Name): Handle attribute Related_Interface in constants.
10878 Warn on duplicate pragma Preelaborable_Initialialization
10880 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
10881 generation of a freezing node to ensure proper management of null
10882 excluding access types in the backend.
10883 (Create_Extra_Formals): Test base type of the formal when checking for
10884 the need to add an extra accessibility-level formal. Pass the entity E
10885 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
10886 originally being done in a couple of cases), to ensure that the
10887 Extra_Formals list gets set on the entity E when the first entity is
10889 (Conforming_Types): Add missing calls to Base_Type to the code that
10890 handles anonymous access types. This is required to handle the
10891 general case because Process_Formals builds internal subtype entities
10892 to handle null-excluding access types.
10893 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10894 functions that need it, even when not marked Requires_Overriding.
10895 Improve warnings for in out parameters
10896 (Analyze_Function_Return): Warn for disallowed null return
10897 Warn on return from procedure with unset out parameter
10898 Ensure consistent use of # in error messages
10899 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
10900 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
10901 the implicit conversion of the expression done for anonymous access
10902 types. This is required to generate the code of the null excluding
10903 check (if required).
10905 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
10906 A formal parameter is never publicly referenceable outside of its body.
10907 (Check_References): For an unreferenced formal parameter in an accept
10908 statement, use the same warning circuitry as for subprogram formal
10910 (Warn_On_Unreferenced_Entity): New subprogram, taken from
10911 Output_Unreferenced_Messages, containing the part of that routine that
10912 is now reused for entry formals as described above.
10913 (Goto_Spec_Entity): New function
10914 (Check_References): Do not give IN OUT warning for dispatching operation
10915 Improve warnings for in out parameters
10916 (Test_Ref): Check that the entity is not undefinite before calling
10917 Scope_Within, in order to avoid infinite loops.
10918 Warn on return from procedure with unset out parameter
10919 Improved warnings for unused variables
10921 2007-08-14 Robert Dewar <dewar@adacore.com>
10922 Javier Miranda <miranda@adacore.com>
10923 Gary Dismukes <dismukes@adacore.com>
10925 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
10926 (Expand_N_Attribute_Reference): Further unify the handling of the
10927 three forms of access attributes, using common code now for all three
10928 cases. Add a test for the case of applying an access attribute to
10929 an explicit dereference when the context is an access-to-interface
10930 type. In that case we need to apply the conversion to the prefix
10931 of the explicit dereference rather than the prefix of the attribute.
10932 (Attribute_Version, UET_Address): Set entity as internal to ensure
10933 proper dg output of implicit importation.
10934 (Expand_Access_To_Type): Removed.
10935 (Expand_N_Attribute_Reference): Merge the code from the three cases
10936 of access attributes, since the processing is largely identical for
10937 these cases. The substantive fix here is to process the case of a
10938 type name prefix (current instance case) before handling the case
10939 of interface prefixes.
10941 2007-08-14 Thomas Quinot <quinot@adacore.com>
10942 Ed Schonberg <schonberg@adacore.com>
10943 Javier Miranda <miranda@adacore.com>
10944 Robert Dewar <dewar@adacore.com>
10946 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
10947 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
10948 type that is an anonymous access to controlled object, establish
10949 an associated finalization chain to avoid corrupting the global
10950 finalization list when a dynamically allocated object designated
10951 by such a component is deallocated.
10952 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
10953 functions that need it, even when not marked Requires_Overriding.
10954 (Initialize_Tag): Replace call to has_discriminants by call to
10955 Is_Variable_Size_Record in the circuitry that handles the
10956 initialization of secondary tags.
10957 (Is_Variable_Size_Record): New implementation.
10958 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
10959 Suppress_Initialization pragma for a derived type.
10960 (Is_Variable_Size_Record): New subprogram.
10961 (Build_Offset_To_Top_Functions): New implementation that simplifies the
10962 initial version of this routine and also fixes problems causing
10963 incomplete initialization of the table of interfaces.
10964 (Build_Init_Procedure): Improve the generation of code to initialize the
10965 the tag components of secondary dispatch tables.
10966 (Init_Secondary_Tags): New implementation that simplifies the previous
10967 version of this routine.
10968 (Make_DT): Add parameter to indicate when type has been frozen by an
10969 object declaration, for diagnostic purposes.
10970 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
10971 diagnose attemps to freeze a subprogram when some untagged type of its
10972 profile is a private type whose full view has not been analyzed yet.
10973 (Freeze_Array_Type): Generate init proc for packed array if either
10974 Initialize or Normalize_Scalars is set.
10975 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
10976 constructing the new profile, copy the null_exclusion indicator for each
10977 parameter, to ensure full conformance of the new body with the spec.
10979 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
10980 Create wrappers for constructor functions that need it, even when not
10981 marked Requires_Overriding.
10982 (Covers): Handle properly designated types of anonymous access types,
10983 whose non-limited views are themselves incomplete types.
10984 (Add_Entry): Use an entity to store the abstract operation which hides
10986 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
10987 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
10988 initialization aggregate.
10989 (Function_Interp_May_Be_Hidden): Rename to
10990 Function_Interp_Has_Abstract_Op.
10991 (Has_Compatible_Type): Remove machinery that skips interpretations if
10992 they are labeled as potentially hidden by an abstract operator.
10993 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
10994 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
10995 (Write_Overloads): Output the abstract operator if present.
10996 (Add_Entry): Before inserting a new entry into the interpretation table
10997 for a node, determine whether the entry will be disabled by an abstract
10999 (Binary_Op_Interp_May_Be_Hidden): New routine.
11000 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11002 (Function_Interp_May_Be_Hidden): New routine.
11003 (Has_Compatible_Type): Do not consider interpretations hidden by
11004 abstract operators when trying to determine whether two types are
11006 (Has_Hidden_Interp): New routine.
11007 (Set_May_Be_Hidden_Interp): New routine.
11008 (Write_Overloads): Write the status of flag May_Be_Hidden.
11010 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11011 Javier Miranda <miranda@adacore.com>
11013 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11014 types declared in the declarative part of a nested package body or in
11015 the proper body of a stub.
11016 (Set_All_DT_Position): Add missing check to avoid wrong assignation
11017 of the same dispatch table slot to renamed primitives.
11018 (Make_Select_Specific_Data_Table): Handle private types.
11019 (Tagged_Kind): Handle private types.
11020 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11021 output of implicit importation and exportation.
11022 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11023 first formal of the thunk is always associated with the controlling
11024 type. In addition perform the following code cleanup: remove formal
11025 Thunk_Alias which is no longer required, cleanup evaluation of the
11026 the controlling type, and update the documentation.
11027 Replace occurrence of Default_Prim_Op_Count by
11028 Max_Predef_Prims. Addition of compile-time check to verify
11029 that the value of Max_Predef_Prims is correct.
11030 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11031 (Make_DT): Add parameter to indicate when type has been frozen by an
11032 object declaration, for diagnostic purposes.
11033 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11034 construction of statically allocated dispatch tables.
11035 (Make_DT): In case of library-level tagged types export the declaration
11036 of the primary tag. Remove generation of tags (now done by Make_Tags).
11037 Additional modifications to handle non-static generation of dispatch
11038 tables. Take care of building tables for asynchronous interface types
11039 (Make_Tags): New subprogram that generates the entities associated with
11040 the primary and secondary tags of Typ and fills the contents of Access_
11041 Disp_Table. In case of library-level tagged types imports the forward
11042 declaration of the primary tag that will be declared later by Make_DT.
11043 (Expand_Interface_Conversion): In case of access types to interfaces
11044 replace an itype declaration by an explicit type declaration to avoid
11045 problems associated with the scope of such itype in transient blocks.
11047 2007-08-14 Robert Dewar <dewar@adacore.com>
11048 Ed Schonberg <schonberg@adacore.com>
11049 Javier Miranda <miranda@adacore.com>
11051 * exp_util.ads, exp_util.adb:
11052 This patch replaces a number of occurrences of explicit tests for N_Null
11053 with calls to Known_Null. This improves tracking of null values, since
11054 Known_Null also catches null constants, and variables currently known to
11055 be null, so we get better tracking.
11056 (Ensure_Defined): create an itype reference only in the scope of the
11058 (Side_Effect_Free): A selected component of an access type that
11059 denotes a component with a rep clause must be treated as not
11060 side-effect free, because if it is part of a linked structure its
11061 value may be affected by a renaming.
11062 (Expand_Subtype_From_Expr): For limited objects initialized with build
11063 in place function calls, do nothing; otherwise we prematurely introduce
11064 an N_Reference node in the expression initializing the object, which
11065 breaks the circuitry that detects and adds the additional arguments to
11066 the called function. Bug found working in the new patch for statically
11067 allocated dispatch tables.
11068 (Is_Library_Level_Tagged_Type): New subprogram.
11069 (Remove_Side_Effects): If the expression of an elementary type is an
11070 operator treat as a function call.
11071 (Make_Literal_Range): If the index type of the array is not integer, use
11072 attributes properly to compute the constraint on the resulting aggregate
11075 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11076 class-wide type whose base type is an incomplete private type, leave
11077 class-wide type unfrozen so that freeze nodes can be generated
11078 properly at a later point.
11079 (Freeze_Entity, array case): Handle case of pragma Pack and component
11080 size attributre clause for same array.
11082 2007-08-14 Vincent Celier <celier@adacore.com>
11084 * prj.ads, prj.adb: Update Project Manager to new attribute names for
11086 Allow all valid declarations in configuration project files
11087 (Reset): Initialize all tables and hash tables in the project tree data
11088 Major update of the Project Manager and of the project aware tools,
11089 including gprmake, so that the same sources in the GNAT repository
11090 can be used by gprbuild.
11091 (Slash_Id): Change type to be Path_Name_Type
11092 (Slash): Return a Path_Name_Type instead of a File_Name_Type
11094 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11096 Update Project Manager to new attribute names for ghprbuild
11097 Allow all valid declarations in configuration project files
11098 Major update of the Project Manager and of the project aware tools,
11099 including gprmake, so that the same sources in the GNAT repository
11100 can be used by gprbuild.
11103 Major update of the Project Manager and of the project aware tools,
11104 including gprmake, so that the same sources in the GNAT repository
11105 can be used by gprbuild.
11107 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11108 insensitive flag for attributes with optional index.
11109 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11110 array attribute, put the index in lower case.
11111 Update Project Manager to new attribute names for ghprbuild
11112 Allow all valid declarations in configuration project files
11113 Major update of the Project Manager and of the project aware tools,
11114 including gprmake, so that the same sources in the GNAT repository
11115 can be used by gprbuild.
11117 * prj-env.ads, prj-env.adb:
11118 Major update of the Project Manager and of the project aware tools,
11119 including gprmake, so that the same sources in the GNAT repository
11120 can be used by gprbuild.
11121 (Get_Reference): Change type of parameter Path to Path_Name_Type
11123 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11124 removing '-' from the path to start with the first character of the
11126 Major update of the Project Manager and of the project aware tools,
11127 including gprmake, so that the same sources in the GNAT repository
11128 can be used by gprbuild.
11129 Major update of the Project Manager and of the project aware tools,
11130 including gprmake, so that the same sources in the GNAT repository
11131 can be used by gprbuild.
11133 * prj-nmsc.ads, prj-nmsc.adb:
11134 Update Project Manager to new attribute names for ghprbuild
11135 Allow all valid declarations in configuration project files
11136 (Search_Directories): Detect subunits that are specified with an
11137 attribute Body in package Naming. Do not replace a source/unit in the
11138 same project when the order of the source dirs are known. Detect
11139 duplicate sources/units in the same project when the order of the
11140 source dirs are not known.
11141 (Check_Ada_Name): Allow all identifiers that are not reserved words
11143 Major update of the Project Manager and of the project aware tools,
11144 including gprmake, so that the same sources in the GNAT repository
11145 can be used by gprbuild.
11146 (Look_For_Sources): If the list of sources is empty, set the object
11147 directory of non extending project to nil.
11148 Change type of path name variables to be Path_Name_Type
11149 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11150 otherwise creating missing directories will fail.
11152 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11153 prj-part.ads, prj-part.adb:
11154 Major update of the Project Manager and of the project aware tools,
11155 including gprmake, so that the same sources in the GNAT repository
11156 can be used by gprbuild.
11158 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11159 insensitive flag for attributes with optional index.
11160 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11161 array attribute, put the index in lower case.
11162 (Parse_Variable_Reference): Allow the current project name to be used in
11163 the prefix of an attribute reference.
11165 * prj-util.ads, prj-util.adb
11166 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11167 defaulted to False. When True, always check against indexes in lower
11170 * snames.ads, snames.h, snames.adb:
11171 Update Project Manager to new attribute names for gprbuild
11172 Allow all valid declarations in configuration project files
11174 2007-08-14 Robert Dewar <dewar@adacore.com>
11175 Ed Schonberg <schonberg@adacore.com>
11177 * opt.ads: Warning for non-local exception propagation now off by
11179 New switch -gnatI to disable representation clauses
11180 Implement new pragma Implicit_Packing
11183 Warning for non-local exception propagation now off by default
11184 Add warning for unchecked conversion of pointers wi different
11186 New switch -gnatI to disable representation clauses
11188 * usage.adb: new switch -gnatyS
11190 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11191 note that aggregates of anonymous array types are not flagged.
11192 -gnatwc now includes membership tests optimized away
11193 -gnatw.x warnings are now off by default
11194 Added conditional compilation Appendix
11195 Add documentation of -gnatI
11196 Add documentation for new -gnatyS style check
11197 Update documentation about SAL and auto-init on Windows.
11200 Add documentation for pragma Check_Name and 'Enabled attribute
11201 Document that Eliminate on dispatching operation is ignored
11202 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11203 Document pragma Main
11204 Document pragma Implicit_Packing
11206 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11207 different conventions
11208 New switch -gnatI to disable representation clauses
11210 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11211 recognized, report the invalid characters including "-gnat" instead of
11212 just the first character in the switch.
11213 New switch -gnatI to disable representation clauses
11214 Set Warn_On_Object_Renames_Function true for -gnatg
11216 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11217 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11218 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11219 to switch -aP (add directory to project search dir).
11221 * par-prag.adb: Implement new pragma Implicit_Packing
11223 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11224 type as having a non-standard representation, to force expansion on
11225 conversion to related types.
11226 (Analyze_Pragma): Warn on misspelled pragma
11227 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11228 Ensure consistent use of # in error messages
11229 Implement pragma Implicit_Packing
11231 2007-08-14 Olivier Hainque <hainque@adacore.com>
11232 Eric Botcazou <ebotcazou@adacore.com>
11234 * targtyps.c (get_target_maximum_default_alignment): New function.
11236 that the compiler might choose by default for a type or object.
11237 (get_target_default_allocator_alignment): New function. Alignment known
11238 to be honored by the target default allocator.
11239 (get_target_maximum_allowed_alignment): New function. Maximum alignment
11240 we might accept for any type or object on the target.
11241 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11243 * gigi.h (get_target_maximum_default_alignment): Declare new function.
11244 (get_target_default_allocator_alignment): Likewise.
11245 (get_target_maximum_allowed_alignment): Likewise.
11248 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11249 result of a function call, first try to use a stabilized reference for
11250 a constant renaming too.
11251 (validate_alignment): Use target_maximum_allowed_alignment instead of
11252 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11253 (gnat_to_gnu_entity): Use common nodes directly.
11254 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11255 alignment and size for the object.
11256 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11257 and N_Procedure_Call_Statement.
11258 (takes_address): Rename to lvalue_required_p, add third parameter
11259 'aliased' and adjust recursive calls.
11260 <N_Indexed_Component>: Update 'aliased' from the array type.
11261 <N_Selected_Component>: New case.
11262 <N_Object_Renaming_Declaration>: New Likewise.
11263 (Identifier_to_gnu): Adjust for above changes.
11264 (maybe_stabilize_reference) <CONST_DECL>: New case.
11266 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11267 between type variants.
11268 (build_simple_component_ref): Likewise.
11269 (build_call_alloc_dealloc): Use target_default_allocator_alignment
11270 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11271 aligning type circuitry for allocations from the default storage pool.
11272 (build_allocator): Likewise.
11273 (build_simple_component_ref): Manually fold the reference for a
11274 constructor if the record type contains a template.
11276 * utils.c (value_zerop): Delete.
11277 (gnat_init_decl_processing): Emit debug info for common types.
11278 (rest_of_record_type_compilation): If a union contains a field
11279 with a non-constant qualifier, treat it as variable-sized.
11280 (finish_record_type): Give the stub TYPE_DECL a name.
11281 (rest_of_record_type_compilation): Likewise.
11282 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
11283 types are equivalent array types.
11284 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11285 even if the type is not passed by reference.
11286 (static_ctors, static_dtors): Delete.
11287 (end_subprog_body): Do not record constructors and destructors.
11288 (build_global_cdtor): Delete.
11289 (gnat_write_global_declarations): Do not call build_global_cdtor.
11291 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11292 -fRTS=rtp is specified.
11293 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11296 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11297 of the personality function with SJLJ exceptions.
11299 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11300 the name of the personality function with SJLJ exceptions.
11302 2007-08-14 Robert Dewar <dewar@adacore.com>
11303 Ed Schonberg <schonberg@adacore.com>
11305 * par.ads, par.adb: Improve handling of extra right parens.
11306 (Par): Remove flag From_Limited_With_Clause.
11308 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11309 Improve handling of extra right parens.
11311 2007-08-14 Robert Dewar <dewar@adacore.com>
11313 * par-tchk.adb (TF_Semicolon): Improve error recovery
11315 2007-08-14 Robert Dewar <dewar@adacore.com>
11316 Ed Schonberg <schonberg@adacore.com>
11318 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11319 enumeration type, mark all literals as referenced.
11320 (Eval_Attribute, case 'Image): If the argument is an enumeration
11321 literal and names are available, constant-fold but mark nevertheless as
11323 Clean up function names.
11324 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11326 (Requires_Simple_Name_Prefix): Removed.
11328 2007-08-14 Robert Dewar <dewar@adacore.com>
11329 Ed Schonberg <schonberg@adacore.com>
11331 * sem_ch11.adb: Improved warnings for unused variables
11333 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11334 is a synchronized interface, the derived type is limited.
11335 (Analyze_Object_Declaration): Mark the potential coextensions in the
11336 definition and expression of an object declaration node.
11337 (Build_Derived_Type): For the completion of a private type declaration
11338 with a derived type declaration, chain the parent type's representation
11339 items to the last representation item of the derived type (not the
11340 first one) if they are not present already.
11341 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11342 object declaration of forward references to tags.
11343 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11344 subprogram types can appear as access discriminants of synchronized
11346 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11347 given in prefixed form as a selected component.
11348 (Process_Discriminants): If not all discriminants have defaults, place
11349 error message on a default that is present.
11350 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11351 extend a synchronized tagged type.
11352 Improved warnings for unused variables
11353 (Is_Visible_Component): Fix a visibility hole on a component inherited
11354 by a private extension when parent is itself declared as a private
11355 extension, and the derivation is in a child unit.
11356 (Find_Hidden_Interface): Move spec from the package body.
11358 2007-08-14 Robert Dewar <dewar@adacore.com>
11359 Ed Schonberg <schonberg@adacore.com>
11361 * sem_ch5.adb: Improve warnings on redundant assignments
11363 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11365 (Is_Synchronized_Tagged_Type): New subprogram that returns true
11366 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11367 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11368 is set to False. Improves handling of Known_[Not_]Null.
11369 (Wrong_Type): Special case address arithmetic attempt
11370 (Collect_Abstract_Interfaces): Add new formal to allow collecting
11371 abstract interfaces just using the partial view of private types.
11372 (Has_Abstract_Interfaces): Add new formal to allow checking types
11373 covering interfaces using the partial view of private types.
11374 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11375 component still needs to be defined in this case, but is never
11376 initialized as VMs are using other dispatching mechanisms.
11377 (Abstract_Interface_List): For a protected type, use base type to get
11378 proper declaration.
11379 Improve warnings on redundant assignments
11380 (Is_Variable): Handle properly an implicit dereference of a prefixed
11382 (Build_Actual_Subtype): If this is an actual subtype for an
11383 unconstrained formal parameter, use the sloc of the body for the new
11384 declaration, to prevent anomalises in the debugger.
11386 2007-08-14 Robert Dewar <dewar@adacore.com>
11388 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11389 dispatching operation
11391 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11392 Gary Dismukes <dismukes@adacore.com>
11395 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11396 expanded aggregate code before allocator, and ahead of declaration for
11397 temporary, to prevent access before elaboration when the allocator is
11398 an actual for an access parameter.
11399 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11400 the TSD and the table of interfaces.
11401 (Convert_To_Assignments): Augment the test for delaying aggregate
11402 expansion for limited return statements to include the case of extended
11403 returns, to prevent creation of an unwanted transient scope.
11404 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11405 (Expand_Array_Aggregate): Handle aggregates associated with
11406 statically allocated dispatch tables.
11407 (Expand_Record_Aggregate): Handle aggregates associated with
11408 statically allocated dispatch tables.
11409 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11410 of anonymous access type.
11412 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11414 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11415 is a variable that renames a slice, use the variable itself in the
11416 expannsion when the renamed expression itself may be modified between
11417 the declaration of the renaming and the array assignment.
11419 2007-08-14 Jerome Guitton <guitton@adacore.com>
11421 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11422 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
11423 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11424 New functions; dummy implementations.
11426 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11427 functions, used to implement the multi-tasks mode routines on VxWorks.
11429 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11430 New functions, thin
11431 binding to the VxWorks routines which have changed between VxWorks 5
11433 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11434 which are not callable from a RTP.
11436 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11437 implemented for the multi-tasks mode on VxWorks 5 and 6.
11439 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11441 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11444 2007-08-14 Vincent Celier <celier@adacore.com>
11446 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
11447 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
11448 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11449 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11450 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11451 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11452 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11454 (Major_Id_Name): New function.
11455 mlib-tgt.ads/mlib.tgt.adb:
11456 (Library_Major_Minor_Id_Supported): New function, default returns True
11457 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11458 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11459 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11460 Implementation of Library_Major_Minor_Id_Supported returns False
11462 (Clean_Library_Directory): If major/minor ids are supported, clean all
11464 Major update of the Project Manager and of the project aware tools,
11465 including gprmake, so that the same sources in the GNAT repository
11466 can be used by gprbuild.
11468 2007-08-14 Olivier Hainque <hainque@adacore.com>
11470 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11471 (GCC_ZCX_Support): Switch to True.
11473 * s-intman-solaris.adb (Notify_Exception): Call
11474 Adjust_Context_For_Raise before raising, as expected for signal
11475 handlers in general.
11477 * s-intman-posix.adb (Notify_Exception): Remove declaration of
11478 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11479 to other implementation bodies.
11481 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11482 be visible by multiple implementation bodies.
11484 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11485 only for conditions coming from hardware.
11486 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11487 adjustments to signal context prior to exception raise from signal
11489 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11491 Solaris section: (__gnat_adjust_context_for_raise): New function.
11492 Implementation of the machine context adjustments to perform prior to
11493 raise from a signal handler. Version for both sparc and x86.
11494 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11495 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11496 prior to raising as expected for any handler, before possible nested
11497 faults to make sure all the contexts in a chain have been adjusted by
11498 the time we propagate.
11500 2007-08-14 Pascal Obry <obry@adacore.com>
11502 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11503 (SYSTEM_INFO): New record.
11504 (SetThreadIdealProcessor): New imported routine needed for supporting
11505 task_info pragma on Windows.
11507 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11508 info can be applied to the current host.
11509 (Create_Task): Set the ideal processor if information is present.
11511 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11512 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11514 2007-08-14 Olivier Hainque <hainque@adacore.com>
11516 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11517 stack size and initial stack pointer value for a given task.
11518 (Enter_Task): Get the stack attributes of the task we are entering and
11519 let the stack checking engine know about them.
11521 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11522 Let the stack-checking engine know about the initial sp value and stack
11523 size associated with the current task.
11524 (Set_Stack_Info): If a stack base has been notified for the current
11525 task, honor it. Fallback to the previous less accurate method otherwise.
11527 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11529 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11531 * sem_ch10.adb: Create a limited view of an incomplete type, to make
11532 treatment of limited views uniform for all visible declarations in a
11533 limited_withed package.
11534 Set flag indicating that a subprogram body for a child unit has a
11536 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11537 separate declaration, remove the unit name from visibility after
11538 compilation, so that environment is clean for subsequent compilations.
11539 (Install_Limited_Context_Clauses): Do not install a
11540 limited_private_with_clause unless the current unit is a body or a
11541 private child unit.
11542 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11543 in the same fashion.
11544 (Install_Limited_Withed_Unit): Do not install a limited with clause if
11545 it applies to the declaration of the current package body.
11546 (Remove_Private_With_Clauses): If there is a regular with_clause for
11547 the unit, delete Private_With_Clause from context, to prevent improper
11548 hiding when processing subsequent nested packages and instantiations.
11550 2007-08-14 Jose Ruiz <ruiz@adacore.com>
11552 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11553 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11554 representing absolute path names.
11555 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11557 * cstreams.c (__gnat_full_name for VxWorks): Use
11558 __gnat_is_absolute_path to detect whether we need to add the current
11559 directory to normalize the path.
11561 2007-08-14 Javier Miranda <miranda@adacore.com>
11564 a-tags.adb (Displace): Associate a message with the raised CE
11566 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11567 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11568 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11570 (Default_Prim_Op_Count): Removed.
11571 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11572 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11573 Remove pragma Inline_Always.
11575 * rtsfind.ads (Default_Prim_Op_Count): Removed
11576 (Max_Predef_Prims): New entity
11577 (RE_Expanded_Name): Removed
11578 (RE_HT_Link): Removed
11579 (RE_Iface_Tag): Remmoved
11580 (RE_Ifaces_Table): Removed
11581 (RE_Interfaces_Array): Removed
11582 (RE_Interface_Data_Element): Removed
11583 (RE_Nb_Ifaces): Removed
11584 (RE_RC_Offset): Removed
11585 (RE_Static_Offset_To_Top): Removed
11587 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11589 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11590 Prim_Op_Count by Max_Predef_Prims.
11592 2007-08-14 Thomas Quinot <quinot@adacore.com>
11593 Vincent Celier <celier@adacore.com>
11595 * binde.adb (Elab_All_Links): Remove unnecessary call to
11596 Generic_Separately_Compiled (if a unit satisfies this predicate, there
11597 won't be an associated Afile).
11598 (Elab_All_Links): Fail if a referenced unit cannot be found
11601 Fix comments in bindgen regarding consistency checks done in Bcheck:
11602 the checks are made across units within a partition, not across several
11604 Fix generation of C binder file for VxWorks.
11606 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11607 Generic_May_Lack_ALI, more descriptive of the current use of the
11608 predicate, and update documentation.
11610 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11611 reorganization and documentation update for the case of predefined
11612 library generics (for which we do not reference an Afile).
11614 2007-08-14 Robert Dewar <dewar@adacore.com>
11616 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11617 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11618 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11619 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11620 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11621 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11622 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11623 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11624 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11625 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11626 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11627 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11628 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11629 g-altcon.adb: Minor reformatting
11631 ada-tree.h: Delete empty line.
11633 ali.ads: Minor reformatting
11634 Clarification of comments.
11635 Minor spelling correction
11637 * exp_dbug.adb: Add Warnings Off to suppress new warning
11639 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11642 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11645 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11647 * a-textio.ads: Reorder the standard input/output/error declarations
11650 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11652 * par-ch2.adb: Recognize RM specially in errout
11653 Change 'R'M to RM in all error messages
11655 * scng.adb: Recognize RM specially in errout
11657 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11658 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11660 * s-direio.adb: Add missing routine header box.
11662 * sem_attr.ads: Add ??? comments
11664 * sem_eval.adb: Recognize RM specially in errout
11665 Change 'R'M to RM in all error messages
11667 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11669 * s-tasinf.ads: Fix minor comment typo.
11671 * a-cihama.adb: Minor comment addition
11673 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11676 * s-tasinf-tru64.ads: Fix minor comment typo.
11678 * itypes.ads: Comment update.
11680 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11683 * argv.c: Added protection against null gnat_argv and gnat_envp.
11685 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11686 warning message when Tolerate_Consistency_Errors is True.
11688 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11689 Any_Id, as this subprogram is only applicable to *type* entities (it
11690 sets RM_Size). Instead initialize just Esize and Alignment.
11692 2007-08-14 Bob Duff <duff@adacore.com>
11694 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11695 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11696 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
11697 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11698 a-coorse.ads (Next): Applied pragma Inline.
11699 Make all Containers packages Remote_Types (unless they are already
11701 (Previous): applied pragma Inline
11702 (Elements_Type): is now a record instead of an array
11704 2007-08-14 Thomas Quinot <quinot@adacore.com>
11706 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11708 (Set_Item): When the new item is an element of the currently allocated
11709 table passed by reference, save a copy on the stack if we're going
11710 to reallocate. Also, in Table.Set_Item, make sure we test the proper
11711 variable to determine whether to call Set_Last.
11713 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11714 symbols-vms.adb, symbols-processing-vms-alpha.adb,
11715 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11716 some occurrences of the pattern
11718 T.Table (T.Last) := Value;
11719 with a cleaner call to
11722 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11723 Gary Dismukes <dismukes@adacore.com>
11724 Thomas Quinot <quinot@adacore.com>
11726 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11727 derived type with interface progenitors use the analyzed formal as the
11728 parent of the actual, to create renamings for all the inherited
11729 operations in Derive_Subprograms.
11730 (Collect_Previous_Instances): new procedure within of
11731 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11732 unit being loaded, to ensure that the generation of global symbols is
11733 consistent in different compilation modes.
11734 (Is_Tagged_Ancestor): New function testing the ancestor relation that
11735 takes progenitor types into account.
11736 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11737 traversing over the primitives of the formal and actual types to locate
11738 any abstract subprograms of the actual type that correspond to a
11739 nonabstract subprogram of the formal type's ancestor type(s), and issue
11740 an error if such is found.
11741 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11742 Instantiate_Package_Body, Instantiate_Subprogram_Body):
11743 Remove bogus guard around calls to Inherit_Context.
11744 (Reset_Entity): If the entity is the selector of a selected component
11745 that denotes a named number, propagate constant-folding to the generic
11746 template only if the named number is global to the generic unit.
11747 (Set_Instance_Env): Only reset the compilation switches when compiling
11748 a predefined or internal unit.
11750 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11752 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11753 parameter to determine whether operation applies to the prefix.
11754 (Complete_Object_Operation): If actual has an access type and
11755 controlling formal is not an in_parameter, reject the actual if it is
11756 an access_to_constant type.
11757 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11758 type, the candidate operations are found in the scope of declaration of
11759 the type, because the type has no primitive subprograms.
11760 (Analyze_Selected_Component): If prefix is class-wide, and root type is
11761 a private extension, only examine visible components before trying to
11762 analyze as a prefixed call.
11763 Change Entity_List to Type_To_Use, for better readability.
11764 (Has_Fixed_Op): Use base type when checking whether the type of an
11765 operator has a user-defined multiplication/division
11766 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11767 user-defined operators are available for fixed-point types.
11769 2007-08-14 Thomas Quinot <quinot@adacore.com>
11770 Ed Schonberg <schonberg@adacore.com>
11772 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11773 formal At_Any_Place indicating, when True, that we want to test for
11774 availability of the stream attribute at any place (as opposed to the
11775 current visibility context only).
11776 (Missing_Read_Write_Attributes): A stream attribute is missing for the
11777 purpose of enforcing E.2.2(8) only if it is not available at any place.
11778 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11779 when checking the legality of an extension aggregate in a preelaborable
11780 package. Treat the literal null as a valid default expression in a
11781 component declaration for a type with preelaborable initialization.
11782 A limited interface is a legal progenitor for the designated type of a
11783 remote access to class-wide type.
11785 2007-08-14 Thomas Quinot <quinot@adacore.com>
11786 Ed Schonberg <schonberg@adacore.com>
11788 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
11789 reference): Use correct entity as denoted entity for the selector of
11790 the rewritten node.
11791 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
11792 setting the Referenced_As_LHS flag for entities that are implicitly
11794 (Find_Type): If the type is an internally generated incomplete type,
11795 mark the full view as referenced, to prevent spurious warnings.
11796 (Find_Selected_Component, Has_Components): Handle properly non-limited
11797 views that are themselves incomplete types.
11798 Handle interfaces visible through limited-with clauses.
11799 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
11800 subprogram generic actual for which we have generated a renaming.
11801 Warn when the renaming introduces a homonym of
11802 the renamed entity, and the renamed entity is directly visible.
11804 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11805 Hristian Kirtchev <kirtchev@adacore.com>
11807 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
11808 appear in the subtree to the current allocator if it is not a static
11810 (Resolve_Allocator): Perform cleanup if resolution has determined that
11811 the allocator is not a coextension.
11812 (Resolve): Skip an interpretation hidden by an abstract operator only
11813 when the type of the interpretation matches that of the context.
11814 (Resolve): When looping through all possible interpretations of a node,
11815 do not consider those that are hidden by abstract operators.
11816 (Resolve_Actuals): When verifying that an access to class-wide object
11817 is an actual for a controlling formal, ignore anonymous access to
11818 subprograms whose return type is an access to class_wide type.
11819 (Resolve_Slice): If the prefix of the slice is a selected component
11820 whose type depends on discriminants, build its actual subtype before
11821 applying range checks on the bounds of the slice.
11822 (Valid_Conversion): In an instance or inlined body, compare root types,
11823 to prevent anomalies between private and public views.
11824 (Resolve): Improve error message for ambiguous fixed multiplication
11825 expressions that involve universal_fixed multiplying operations.
11827 2007-08-14 Javier Miranda <miranda@adacore.com>
11828 Hristian Kirtchev <kirtchev@adacore.com>
11830 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
11831 location to allow the correct generation of errors in case of
11832 restrictions applied to the expanded code.
11833 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
11834 function if the condition does not reference them.
11835 (Expand_Entry_Body_Declarations): Mark the index constant as having a
11838 2007-08-14 Thomas Quinot <quinot@adacore.com>
11839 Pablo Oliveira <oliveira@adacore.com>
11841 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
11842 typecode parameters for a union (in a variant record), remove
11843 extraneous layer of Any wrapping for member label.
11844 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
11845 elabration statements, register the package with the name server
11846 at the beginning, not at the end, of the elaboration statements so
11847 that they can create remote access to subprogram values that designate
11848 remote subprograms from the package.
11850 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11852 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
11853 values to compute the number of seconds since the Unix Epoc in order to
11854 account for Daylight Savings Time. Perform special processing for dates
11855 that are earlier than the Unix Epoc to obtain a negative number.
11857 2007-08-14 Emmanuel Briot <briot@adacore.com>
11859 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
11862 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
11864 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
11865 binder-generated file is not in Ada.
11866 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
11867 recorded in the ALI file.
11868 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
11870 2007-08-14 Vincent Celier <celier@adacore.com>
11872 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
11873 (Output_Source): Do nothing if parameter is No_Sdep_Id
11875 * make.adb (Gnatmake): Do not rebuild an archive simply because a
11876 shared library it imports has a later time stamp.
11877 (Check): Resolve the symbolic links in the path name of the object
11879 Check that the ALI file is in the correct object directory
11880 Check if a file name does not correspond to the mapping of units
11882 (Display_Version): New procedure
11883 (Initialize): Process switches --version and --help
11884 Use type Path_Name_Type for path name
11886 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
11888 * impunit.adb: Re-organize System.Random_Numbers and
11889 GNAT.Random_Numbers and add to builds.
11891 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
11893 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
11895 * a-assert.ads, a-assert.adb: New files.
11897 2007-08-14 Gary Dismukes <dismukes@adacore.com>
11899 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
11900 if AAMP_On_Target is True, then the size of the type encompasses two
11901 addresses (a static link and a subprogram address), except in the case
11902 of library-level access types.
11904 2007-08-14 Vincent Celier <celier@adacore.com>
11906 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
11908 (Write_Eol_Keep_Blanks): New procedure to write a line, including
11909 possible trailing spaces.
11910 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11912 2007-08-14 Javier Miranda <miranda@adacore.com>
11914 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
11915 null-excluding access types.
11917 2007-08-14 Javier Miranda <miranda@adacore.com>
11919 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
11920 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
11921 of private types add missing check on matching interfaces in the
11922 partial and full declarations.
11923 (Analyze_Protected_Type): Code cleanup.
11924 (Analyze_Task_Type): Code cleanup.
11926 2007-08-14 Javier Miranda <miranda@adacore.com>
11928 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
11929 generated interface thunk.
11931 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11933 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
11934 obsolescent warning on application of 'Class to an incomplete type.
11936 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
11937 prevent obsolescent warning on application of 'Class to an incomplete
11940 2007-08-14 Pascal Obry <obry@adacore.com>
11942 * s-fileio.adb (Is_Open): Add check for usability of the underlying
11945 2007-08-14 Cyrille Comar <comar@adacore.com>
11947 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
11948 since it is potentially used in cases implying double finalization of
11951 2007-08-14 Jose Ruiz <ruiz@adacore.com>
11953 * s-tasini.adb (Get_Stack_Info): Move this function to
11954 System.Soft_Links.Tasking because it is common to the full and the
11955 restricted run times.
11956 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
11957 in SSL.Tasking.Init_Tasking_Soft_Links.
11959 * s-solita.adb (Get_Stack_Info): Function moved from
11960 System.Tasking.Initialization because it is common to the full and the
11961 restricted run times.
11962 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
11964 2007-08-14 Arnaud Charlet <charlet@adacore.com>
11966 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
11967 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
11968 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
11971 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
11974 2007-08-14 Gary Dismukes <dismukes@adacore.com>
11976 * s-veboop.adb (SU): New named number initialized to
11977 System.Storage_Unit.
11978 (True_Val): The initialization expression is revised to use SU (=
11979 Storage_Unit) rather than assuming 8 for the component size of an
11980 unpacked Boolean array.
11982 2007-08-14 Tristan Gingold <gingold@adacore.com>
11984 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
11986 * tb-ivms.c: New file.
11988 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
11990 2007-08-14 Geert Bosch <bosch@adacore.com>
11992 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
11993 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
11994 Add required linker pragmas for automatically linking with the gnalasup
11995 linear algebra support library, and the systems math library.
11996 Rename cdot to cdotu and zdot to zdotu.
11997 Update header comment to describe purpose of package.
11999 2007-08-14 Thomas Quinot <quinot@adacore.com>
12001 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12002 an explicitly specified Associated_Final_Chain, use that list.
12003 (Expand_N_Package_Body): Build dispatch tables of library level tagged
12005 (Expand_N_Package_Declaration): Build dispatch tables of library level
12006 tagged types. Minor code cleanup.
12008 2007-08-14 Vincent Celier <celier@adacore.com>
12010 * gnatchop.adb (Terminate_Program): Remove exception and use
12011 Types.Terminate_Program instead.
12013 * osint.ads, osint.adb (Current_Exit_Status): New global variable
12014 (Find_Program_Name): Added protection against empty name.
12015 (OS_Exit_Through_Exception): New procedure
12017 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12018 (OS_Exit_Default): New procedure that contains the previous
12019 implementation of procedure OS_Exit.
12020 (Final_Value): Remove obsolete Interix stuff.
12022 2007-08-14 Thomas Quinot <quinot@adacore.com>
12024 * g-socket.ads: Reorganize example code so that it also works on
12027 2007-08-14 Tristan Gingold <gingold@adacore.com>
12029 * g-trasym.ads: AIX now supports symbolic backtraces.
12031 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12033 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12034 units being loaded to detect circularities. A circularity may be
12035 present even if the current chain of pending units to load starts from
12036 a limited_with_clause.
12038 * lib-load.ads: Change profile of Load_Unit to use a with_clause
12039 rather than a boolean flag, in order to detect circularities in
12042 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12043 than propagating the From_Limited_With flag, in order to handle
12044 properly circularities involving with_clauses.
12046 2007-08-14 Nicolas Setton <setton@adacore.com>
12048 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12051 2007-08-14 Arnaud Charlet <charlet@adacore.com>
12053 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12054 to build for libgnala.
12055 libgnat: Add rules to build libgnala.a
12056 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12057 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12058 Add s-osinte-vxworks-kernel.adb to the target pairs of the
12059 kernel run-time lib for VxWorks 6, which would provide a different
12060 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12061 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12062 running ZCX by default.
12063 Add g-sttsne-locking to LynxOS version.
12064 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12065 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12067 * system-darwin-x86.ads: New file.
12069 * Make-lang.in: Delete files before copying onto them, so if they are
12070 read-only, the copy won't fail.
12071 Update dependencies
12073 2007-08-14 Pascal Obry <obry@adacore.com>
12075 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12078 2007-08-14 Vincent Celier <celier@adacore.com>
12080 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12081 (Gcc): Initialize Gcc_Name at the first call
12083 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12085 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12086 with_clauses of the enclosing unit when analyzing the package
12087 specification of a nested instance.
12089 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12091 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12092 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12093 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12094 layout of N_Allocator.
12096 2007-08-14 Thomas Quinot <quinot@adacore.com>
12098 * rtsfind.adb (Check_RPC): Add PCS version check.
12100 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12101 (Gnat_Free_Software): New function.
12103 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12104 the PCS_Version value from s-parint, used to check that it is consistent
12105 with what exp_dist expects.
12107 * s-parint.ads (PCS_Version): New entity for checking consistency
12108 between exp_dist and PCS.
12110 * gen-soccon.c: (SO_REUSEPORT): New constant.
12112 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12114 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12115 variable Sub_Second to Duration in order to accomodate a larger range
12116 of arithmetic operations.
12118 2007-08-14 Bob Duff <duff@adacore.com>
12120 * g-sttsne-locking.ads: Move comments from spec to body.
12121 * g-sttsne-locking.adb: Move comments from spec to body.
12122 * g-sttsne-vxworks.ads: Removed.
12123 * g-sttsne-vxworks.adb: Removed.
12125 2007-08-11 Ian Lance Taylor <iant@google.com>
12127 * misc.c (gnat_get_alias_set): Change return type to
12130 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12132 * decl.c, utils2.c: Fix whitespace in last change.
12134 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12136 * decl.c (compare_field_bitpos): Constify.
12137 * utils2.c (compare_elmt_bitpos): Likewise.
12139 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
12141 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12142 anonymous access type.
12143 (pthread_sigmask): Now take an access sigset_t.
12145 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
12147 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12149 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
12151 PR tree-optimization/25737
12152 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12154 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
12156 * trans.c (Attribute_to_gnu): When subtracting an
12157 offset from a pointer, use POINTER_PLUS_EXPR with
12158 NEGATE_EXPR instead of MINUS_EXPR.
12159 (gnat_to_gnu): Likewise.
12160 * utils.c (convert): When converting between
12161 thin pointers, use POINTER_PLUS_EXPR and sizetype
12163 * utils2.c (known_alignment): POINTER_PLUS_EXPR
12164 have the same semantics as PLUS_EXPR for alignment.
12165 (build_binary_op): Add support for the semantics of
12166 POINTER_PLUS_EXPR's operands.
12167 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12169 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
12171 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12172 of get_signed_or_unsigned_type.
12173 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12175 2007-06-11 Bob Duff <duff@adacore.com>
12176 Thomas Quinot <quinot@adacore.com>
12178 * g-stsifd-sockets.adb (Create): Work around strange behavior of
12179 'bind' on windows that causes 'connect' to fail intermittently, by
12180 retrying the 'bind'.
12181 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12183 2007-06-10 Duncan Sands <baldrick@free.fr>
12185 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12186 than to void, for the fields when making a new fat pointer type.
12187 (gnat_substitute_in_type): Now substitute_in_type.
12188 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
12189 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12190 * utils.c (update_pointer_to): Update fat pointers by updating the
12191 dummy node pointers used for the fields.
12193 2007-06-06 Thomas Quinot <quinot@adacore.com>
12194 Bob Duff <duff@adacore.com>
12196 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12197 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12198 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
12199 constant Thread_Blocking_IO, always True by default, set False
12200 on a per-runtime basis.
12201 (Need_Netdb_Buffer): New constant.
12203 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12204 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12207 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12208 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12209 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12210 child package Task_Safe_NetDB
12211 (Host_Error_Messages): Add stub body.
12212 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12214 * g-soccon-mingw.ads: Add Windows-specific constants.
12215 (Need_Netdb_Buffer): New constant.
12216 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12217 wrapper and import inet_addr(3) from the standard sockets library
12219 (In_Addr): Add alignment clause.
12220 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12222 2007-06-06 Robert Dewar <dewar@adacore.com>
12224 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12225 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12226 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12227 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12228 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12229 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12230 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12231 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12232 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12233 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12234 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12235 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12236 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12237 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12238 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12239 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12240 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12241 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12242 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12243 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12244 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12245 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12246 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12247 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12248 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12249 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12250 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12251 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12252 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12253 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12254 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12255 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12256 Unchecked_* by Ada.Unchecked_*
12258 2007-06-06 Robert Dewar <dewar@adacore.com>
12260 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12261 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12262 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12263 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12264 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12265 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12267 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12268 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12269 s-tasloc.adb, s-tasloc.ads: New files.
12271 2007-06-06 Bob Duff <duff@adacore.com>
12273 * g-expect-vms.adb:
12274 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12275 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12276 (Send_Signal, Close): Raise Invalid_Process if the process id is
12278 (Pattern_Matcher_Access): Is now a general access type to be able to
12279 use aliased string.
12281 2007-06-06 Thomas Quinot <quinot@adacore.com>
12282 Arnaud Charlet <charlet@adacore.com>
12284 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12285 (SIGEMT is now used instead of SIGTERM on AIX).
12287 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12288 (Time_Slice_Supported): Set to True.
12289 Use SIGEMT instead of SIGTERM as SIGADAABORT.
12291 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12293 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12294 (Time, Time)): Use To_Relative_Time rather than manual calculation to
12295 express the bounds of Duration as Time. Raise Time_Error when the
12296 result is greater or equal to the higher bound of Duration (on the
12298 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12299 Ada_High_And_Leaps.
12300 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12301 Ada_High_And_Leaps.
12302 ("-" (Time, Time)): Reorder code.
12303 (All_Leap_Seconds): Removed.
12304 (Arithmetic_Operations.Add): Remove sign related kludge.
12305 (Arithmetic_Operations.Difference): Control the leaps seconds processing
12306 with flag Leap_Support.
12307 (Arithmetic_Operations.Subtract): Remove sign related kludge.
12308 (Check_Within_Time_Bounds): New procedure.
12309 (Clock): Control the leap seconds processing with flag Leap_Support.
12310 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12311 (Formatting_Operations.Split): Control the leap seconds processing with
12313 (Formatting_Operations.Time_Of): Control the leaps seconds processing
12314 with flag Leap_Support. Adjust the year, month and day (if applicable)
12315 when the value of day seconds designates a new day.
12316 (Split): Use parameter associations for better readability. Integrate
12318 (Time_Of): Use parameter associations for better readability. Integrate
12321 * a-calfor.adb (Split): Use parameter associations for better
12322 readability. Integrate flag Is_Ada_05.
12323 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12324 better readability. Integrate flag Is_Ada_05.
12326 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12328 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12329 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12330 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12331 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12332 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12333 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12334 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12335 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12336 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12337 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12338 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12339 time when entering this routine to detect a backward clock setting
12340 (manual setting or DST adjustment), to avoid waiting for a longer delay
12342 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12343 Remove handling of deferred priority change, and replace by setting the
12344 task priority directly, as required by AI-188.
12346 (Max_Task_Image_Length): New constant.
12347 Replace Warnings (Off) by Unreferenced pragma, cleaner.
12348 (Dynamic_Priority_Support): Removed, no longer needed.
12349 (Poll_Base_Priority_Change): Ditto.
12350 (Set_Ceiling): Add this procedure to change the ceiling priority
12351 associated to a lock. This is a dummy implementation because dynamic
12352 priority ceilings are not supported by the underlying system.
12354 * a-dynpri.adb (Set_Priority): Take into account case where Target is
12355 accepting a RV with its priority boosted.
12356 Remove handling of deferred priority change, and replace by setting the
12357 task priority directly, as required by AI-188.
12359 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12361 Remove handling of deferred priority change, and replace by setting the
12362 task priority directly, as required by AI-188.
12363 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12364 of Self_Id earlier.
12366 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12367 (Poll_Base_Priority_Change): Removed.
12368 Code clean up: use SSL.Current_Target_Exception.
12370 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12371 to run as this is a potentially dispatching point.
12372 (Call_Synchronous): Use Local_Defer_Abort.
12373 (Callable): Relax assertion.
12374 (Selective_Wait): Relax assertion in case abort is not allowed.
12375 Remove handling of deferred priority change, and replace by setting the
12376 task priority directly, as required by AI-188.
12378 * s-tasuti.adb (Make_Passive): Adjust assertions.
12379 Remove handling of deferred priority change, and replace by setting the
12380 task priority directly, as required by AI-188.
12382 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12384 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12385 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12386 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12387 system-vxworks-mips.ads, system-vxworks-alpha.ads,
12388 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12389 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12390 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12391 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12392 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12393 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12394 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12395 This patch changes the largest non-binary modulus from 2**31-1 to
12397 (Compiler_System_Version): Removed, no longer used.
12398 Clean up system files by removing flags only used on a single target.
12399 Also remove obsolete flags, only used during bootstrap from system.ads
12400 (Address): Add a pragma Preelaborable_Initialization.
12402 * system-aix.ads: Ditto.
12403 (GCC_ZCX_Support): Set to true.
12404 Update priority range on AIX and map Ada priorities to target
12405 priorities appropriately for different scheduling policies.
12407 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12409 2007-06-06 Vincent Celier <celier@adacore.com>
12411 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12412 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12414 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12415 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12416 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12417 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12418 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
12419 MLib.Tgt, containing the default versions of the exported subprograms.
12420 For each platform, create a specific version of the body of new child
12421 package MLib.Tgt.Specific that contains only the body of subprograms
12422 that are different from the default.
12423 (Archive_Builder_Append_Options): New function.
12425 2007-06-06 Matthew Gingell <gingell@adacore.com>
12427 * s-osinte-aix.adb: Map Ada priorities to target priorities
12428 appropriately for different scheduling policies.
12430 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12432 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12434 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
12435 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
12437 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
12439 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12440 Noop on VMS, added for interface commonality.
12442 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
12443 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12444 Olivier Hainque <hainque@adacore.com>
12446 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12447 renamed expression of a full renaming at toplevel.
12448 (gnat_to_gnu_entity, case object): If not defining, do not look inside
12449 the values the constant is initialized to if it is an N_Allocator.
12450 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12451 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12452 (make_aligning_type): Accept an extra ROOM argument for storage to be
12453 made available before the aligned field, and an extra BASE_ALIGN
12454 argument for callers to pass the alignment guaranteed to be honored for
12455 the whole aligning object. Avoid call to finish_record_type, which only
12456 interferes with the sizes we want to set.
12457 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12458 make_aligning_type for super-aligned objects on stack.
12459 (components_to_record): Pass the adjusted size of the type when creating
12460 fields in the qualified union for the variant part.
12461 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12462 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12464 (maybe_pad_type): Set TYPE_USER_ALIGN.
12465 (make_aligning_type): Likewise.
12466 ALIGN argument is unsigned int.
12467 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12468 (gnat_to_gnu_param): Likewise, for parameters.
12469 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12470 if it is constant and stems from a function call.
12471 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12472 of the record is specified. Adjust accordingly.
12473 (adjust_packed): New static function.
12474 (gnat_to_gnu_field): Use it to adjust the packedness setting.
12475 (components_to_record): Likewise.
12476 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12477 side-effects if the object is deemed constant.
12478 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12479 type instead of merely finalizing it. Tidy.
12480 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12481 <E_Access_Type>: Likewise.
12482 (defer_debug_incomplete_list): Rename to defer_finalize_list.
12483 (defer_debug_level): Delete.
12484 (gnat_to_gnu_entity) <debug_deferred>: Likewise
12485 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12487 <E_Record_Type>: Do not explicitly defer finalizing the type.
12488 Adjust for write_record_type_debug_info renaming.
12489 <E_Subprogram_Type>: Likewise.
12490 Finalize deferred types right after deferred incomplete types are
12492 (rest_of_type_decl_compilation): New global function.
12493 (components_to_record): Rename defer_debug parameter to do_not_finalize.
12494 (components_to_record): Propagate the packedness to the fields of the
12495 qualified union type if there is a variant part.
12496 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12497 instead of inline code to adjust the XUT field offsets.
12498 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12499 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12500 and write the debug info if the type derives from a discriminated one.
12501 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12502 <E_Array_Subtype>: Likewise.
12503 <E_String_Literal_Subtype>: Likewise.
12504 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12505 an alignment clause.
12506 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12507 before giving warning.
12508 (prepend_one_attribute_to): New function, helper to prepend an attribute
12509 to an attribute list.
12510 (gnat_to_gnu_entity) <E_Procedure>: Use it.
12511 (prepend_attributes): Likewise.
12512 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12513 <E_Array_Type>: Declare the padding type for the element type, if any.
12514 <E_Array_Subtype>: Likewise.
12515 (defer_limited_with): New variable.
12516 (Gigi_Equivalent_Type): New function.
12517 (gnat_to_gnu_entity): Use it at start and use result throughout.
12518 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12519 Gigi_Equivalent_Type, support Limited_With, allow two levels of
12520 indirection, precompute if unconstrained array to simplify logic, and
12521 use defer_limited_with to defer elaboration of some types from limited
12523 (finalize_from_with_types): New function.
12525 2007-06-06 Gary Dismukes <dismukes@adacore.com>
12526 Eric Botcazou <ebotcazou@adacore.com>
12527 Tristan Gingold <gingold@adacore.com>
12528 Olivier Hainque <hainque@adacore.com>
12530 * trans.c (Identifier_to_gnu): Change test for deferred constant by
12531 adding guard that the entity is an E_Constant before testing presence
12532 of Full_view (and remove unnecessary test that entity is not a type).
12533 For a CONST_DECL used by reference, manually retrieve
12534 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
12535 (struct language_function): Move from utils.c to here.
12536 (struct parm_attr): New structure.
12537 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12538 (f_parm_attr_cache): New macro.
12539 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12540 expressions for the 'First, 'Last and 'Length attributes of the
12541 unconstrained array IN parameters.
12542 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12543 Allocate the information structure for the function earlier, as well
12544 as the language-specific part.
12545 If the parameter attributes cache has been populated, evaluate the
12546 cached expressions on entry.
12547 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
12548 N_Procedure_Call_Statement and N_Indexed_Component.
12549 (Pragma_to_gnu): Translate inspection_point to an asm statement
12550 containaing a comment and a reference to the object (either its address
12551 for BLKmode or its value).
12552 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12553 to go to DECL_INITIAL. Together with the size constraint relaxation
12554 in create_var_decl, enlarges the set of situations in which an
12555 identifier may be used as an initializer without implying elaboration
12557 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12558 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12560 (maybe_stabilize_reference): Remove lvalues_only parameter.
12561 (gnat_stabilize_reference): Adjust for above change.
12562 (gnat_to_gnu): Do not set location information on the result
12563 if it is a reference.
12564 (add_cleanup): Add gnat_node parameter and set the location of the
12566 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12567 (Exception_Handler_to_gnu_zcx): Likewise.
12568 (gigi): Remove the cgraph node if the elaboration procedure is empty.
12569 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12570 the former right after the latter.
12571 (start_stmt_group): Make global.
12572 (end_stmt_group): Likewise.
12573 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12575 (gnu_program_error_label_stack): Likewise.
12576 (gigi): Initialize them.
12577 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12578 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12580 (push_exception_label_stack): New function.
12581 (takes_address): New function.
12583 * utils.c (struct language_function): Move to trans.c from here.
12584 (unchecked_convert): Do not wrap up integer constants in
12585 VIEW_CONVERT_EXPRs.
12586 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12587 the latter for aggregate types, unexpected by later passes, and relax an
12588 arbitrary size constraint on the former.
12589 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12590 to compare the sizes.
12591 (convert_vms_descriptor): When converting to a fat pointer type, be
12592 prepared for a S descriptor at runtime in spite of a SB specification.
12593 (shift_unc_components_for_thin_pointers): New function.
12594 (write_record_type_debug_info): For variable-sized fields, cap the
12595 alignment of the pointer to the computed alignment.
12596 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12597 If REP_LEVEL is 2, do not compute the sizes.
12598 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12599 (build_unc_object_type): Likewise.
12600 (declare_debug_type): New function.
12602 * ada-tree.def: USE_STMT: removed (not emitted anymore).
12604 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12605 no statement is expandable anymore.
12606 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12607 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12608 when the user requested it explicitely.
12609 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12611 (get_alias_set): Return alias set 0 for a type if
12612 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
12614 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12615 (DECL_FUNCTION_STUB): New accessor macro.
12616 (SET_DECL_FUNCTION_STUB): New setter macro.
12618 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
12620 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12623 2007-06-06 Jose Ruiz <ruiz@adacore.com>
12625 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12626 Rename to Abort_Task_Interrupt to be able to keep the same interface
12627 as the rest of the targets.
12629 * s-osinte-vxworks.ads s-osinte-vxworks.adb
12630 (To_VxWorks_Priority): Remove explicit "in" mode indicator
12632 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12635 2007-06-06 Robert Dewar <dewar@adacore.com>
12637 * a-chahan.ads: Remove obsolescent pragmas
12639 * a-chlat1.ads: Minor reformatting
12641 2007-06-06 Robert Dewar <dewar@adacore.com>
12643 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12646 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12649 * errout.ads (Finalize): Changed interface
12650 (Output_Messages): New procedure
12651 (Compilation_Errors): New Interface
12653 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12654 Finalize/Output_Messages interface for Errout
12655 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12658 2007-06-06 Thomas Quinot <quinot@adacore.com>
12659 Olivier Hainque <hainque@adacore.com>
12660 Robert Dewar <dewar@adacore.com>
12662 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12664 (Raise_Current_Excep): Call Debug_Raise_Exception just before
12665 propagation starts, to let debuggers know about the event in a reliable
12667 (Local_Raise): Moved to System.Exceptions
12668 More convenient to have this as a separate unit
12670 * s-except.adb, s-except.ads: New files.
12672 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12673 Debug_Unhandled_Exception in System.Exceptions where it belongs
12674 together with a couple of other debug helpers.
12675 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12676 the former Unhandled_Exception.
12678 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12679 (Warn_No_Exception_Propagation): New procedure
12680 (Warn_If_No_Propagation): Rewritten for new warning generation
12681 (Expand_Exception_Handlers): New warning generation
12682 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12683 (Add_Exception_Label): Use Special_Exception_Package_Used for test
12684 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12685 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12686 even if restriction is set (makes life easier in Check_Returns)
12687 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12688 checking exception identities.
12689 (Expand_Local_Exception_Handlers): Do not optimize when all others case
12690 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12691 block for handler (used by Check_Returns)
12692 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12693 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12694 remove all exception handlers when optimizing local raise statements.
12695 (Find_Local_Handler): Use Get_Renamed_Entity
12696 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12697 marked analyzed after expanding exception handlers, do not generate
12698 redundant cleanup actions, because they have been constructed already.
12700 2007-06-06 Thomas Quinot <quinot@adacore.com>
12702 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12703 presence of this categorization pragma is mandated by the language.
12704 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12707 2007-06-06 Vincent Celier <celier@adacore.com>
12708 Robert Dewar <dewar@adacore.com>
12710 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12711 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12712 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12713 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12714 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12715 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12716 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12717 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12718 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12719 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
12720 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
12722 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12723 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12724 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12725 Use variables of types File_Name_Type and Unit_Name_Type in error
12727 (Get_Name): Add parameter Ignore_Special, and set it reading file name
12728 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12730 Define flags Flag217-Flag230 with associated subprograms
12731 (Flag_Word5): New record type.
12732 (Flag_Word5_Ptr): New access type.
12733 (To_Flag_Word5): New unchecked conversion.
12734 (To_Flag_Word5_Ptr): Likewise.
12735 (Flag216): New function.
12736 (Set_Flag216): New procedure.
12738 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12740 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12743 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12745 2007-06-06 Javier Miranda <miranda@adacore.com>
12747 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12749 (Object_Specific_Data_Array): This is now internal to the package.
12750 (Object_Specific_Data): This is now internal to the package.
12751 (Select_Specific_Data_Element): This is now internal to the package.
12752 (Select_Specific_Data_Array): This is now internal to the package.
12753 (Select_Specific_Data): This is now internal to the package.
12754 (Offset_To_Top_Function_Ptr): This is now public.
12755 (To_Offset_To_Top_Function_Ptr): Removed.
12756 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12757 local to subprogram Offset_To_Top.
12758 (Predefined_DT): Removed.
12759 (Typeinfo_Ptr): Removed.
12760 (OSD): This function is now internal to this package.
12761 (SSD): This function is now internal to this package.
12762 (DT): New function that displaces the pointer to the table of primitives
12763 to get access to the enclosing wrapper record.
12764 (IW_Membership): Code cleanup.
12765 (Offset_To_Top): Code cleanup.
12766 (Predefined_DT): Removed.
12767 (Register_Interface_Tag): Removed.
12768 (Set_Interface_Table): Removed.
12769 (Set_Offset_Index): Removed.
12770 (Set_Offset_To_Top): Code cleanup.
12771 (Set_OSD): Removed.
12772 (Set_Signature): Removed.
12773 (Set_SSD): Removed.
12774 (Set_Tagged_Kind): Removed.
12775 (Typeinfo_Ptr): Removed.
12777 (Displace): Add missing check on null actual.
12779 * exp_disp.ads, exp_disp.adb
12780 (Select_Expansion_Utilities): Removed.
12781 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
12782 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
12783 the interface requires a new parameter.
12784 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
12785 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
12786 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
12787 Done to remove package Select_Expansion_Utilities.
12788 (Make_DT): New implementation for statically allocated dispatch tables.
12789 (Make_Secondary_DT): Moved to the scope of Make_DT.
12790 (Register_Primitive): Code cleanup plus incoporate the use of the new
12791 function DT_Address_Attribute.
12792 (Expand_Interface_Thunk): The profile of this subprogram has been
12793 changed to return the Thunk_Id and the corresponding code.
12794 (Fill_DT_Entry): Removed. Its functionality is now provided by
12795 subprogram Register_Primitive.
12796 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
12797 subprogram Register_Primitive.
12798 (Register_Primitive): New subprogram that incorporates the previous
12799 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
12800 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
12801 was only required to call Make_DT_Access_Action, which is now removed.
12802 (Ada_Actions): Removed
12803 (Action_Is_Proc): Removed
12804 (Action_Nb_Arg): Removed
12805 Replace all the calls to Make_DT_Access_Action by direct calls to
12806 Make_Procedure_Call_Statement or Make_Function_Call.
12807 (Set_DTC_Entity_Value): New subprogram.
12808 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
12809 (Expand_Interface_Thunk): Add missing support for primitives that are
12810 functions with a controlling result (case in which there is no need
12811 to generate the thunk).
12813 * exp_atag.ads, exp_atag.adb
12814 (Build_DT): New subprogram that displaces the pointer to reference the
12815 base of the wrapper record.
12816 (Build_Typeinfo_Offset): Removed.
12817 (RTE_Tag_Node): Removed.
12818 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
12819 (Build_Get_RC_Offset): Removed.
12820 (Build_Inherit_Predefined_Prims): Removed.
12821 (Build_Inherit_TSD: Removed.
12822 (Build_New_TSD): Removed.
12823 (Build_Set_External_Tag): Removed.
12824 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
12825 (Build_Set_Prim_Op_Address): Add documentation.
12826 (Build_Set_TSD): Removed.
12828 * rtsfind.ads, rtsfind.adb
12829 (Load_Fail): If load fails and we are not in configurable run-time
12830 mode, then raise Unrecoverable_Error.
12831 (Text_IO_Kludge): Generate an error message if a run-time library is
12832 not available in a given run-time (ie. zfp run-time).
12833 (RTE_Record_Component): Add code to check that the component we search
12834 for is not found in two records in the given run-time package.
12835 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
12836 (RE_DT_Predef_Prims_Offset): New entity
12837 (RE_Static_Offset_To_Top): New entity
12838 (RE_HT_Link): New entity.
12839 (System_Address_Image): Addition of this run-time package.
12840 (RE_Address_Image): New entity.
12841 (RE_Abstract_Interface): Removed.
12842 (RE_Default_Prim_Op_Count): Removed.
12843 (RE_DT_Entry_Size): Removed.
12844 (RE_DT_Min_Prologue_Size): Removed.
12845 (RE_DT_Prologue_Size): Removed.
12846 (RE_Ifaces_Table_Ptr): Removed.
12847 (RE_Interface_Data_Ptr): Removed.
12848 (RE_Type_Specific_Data): Removed.
12849 (RE_Primary_DT): Removed.
12850 (RE_Register_Interface_Tag): Removed.
12851 (RE_Set_Offset_Index): Removed.
12852 (RE_Set_OSD): Removed.
12853 (RE_Set_SSD): Removed.
12854 (RE_Set_Signature): Removed.
12855 (RE_Set_Tagged_Kind): Removed.
12856 (RE_Address_Array): New entity.
12857 (RE_DT): New entity.
12858 (RE_Iface_Tag): New entity.
12859 (RE_Interfaces_Table): New entity.
12860 (RE_No_Dispatch_Table): New entity.
12861 (RE_NDT_Prims_Ptr): New entity.
12862 (RE_NDT_TSD): New entity.
12863 (RE_Num_Prims): New entity.
12864 (RE_Offset_To_Top_Function_Ptr): New entity.
12865 (RE_OSD_Table): New entity.
12866 (RE_OSD_Num_Prims): New entity.
12867 (RE_Predef_Prims): New entity
12868 (RE_Predef_Prims_Table_Ptr): New entity.
12869 (RE_Primary_DT): New entity.
12870 (RE_Signature): New entity.
12871 (RE_SSD): New entity.
12872 (RE_TSD): New entity.
12873 (RE_Type_Specific_Data): New entity.
12874 (RE_Tag_Kind): New entity.
12876 2007-06-06 Thomas Quinot <quinot@adacore.com>
12878 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
12879 C imported variable.
12880 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
12883 2007-06-06 Robert Dewar <dewar@adacore.com>
12885 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
12888 2007-06-06 Vincent Celier <celier@adacore.com>
12890 * a-tifiio.adb (Put, internal): For negative numbers, check that there
12891 is room for at least one digit and the minus sign.
12892 (Put.Put_Character): Never put a character outside of the range of
12895 2007-06-06 Olivier Hainque <hainque@adacore.com>
12896 Eric Botcazou <ebotcazou@adacore.com>
12898 * utils2.c (build_allocator): Provide the extra arguments to
12899 make_aligning_type for super-aligned objects allocated from the default
12900 pool. Leave enough room for a pointer before the aligning field, and
12901 store the system's allocator return value there.
12902 (build_call_alloc_dealloc): When releasing a super-aligned object,
12903 retrieve the system's allocator return value from where build_allocator
12904 has stored it, just ahead of the adjusted address we are passed.
12905 (build_call_raise): Handle properly the generation of line numbers when
12906 the node is marked No_Location.
12907 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
12908 by using DECL_UID on ties.
12909 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
12911 (build_call_raise): Handle converting exception into goto; support new
12913 (build_component_ref): Add new arg to build_call_raise.
12915 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12917 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
12918 "." in the case of nnn.xxx when nnn terminates with an underscore.
12919 Parse the remaining "#" or ":" in the case of nnn#.xxx#
12921 2007-06-06 Robert Dewar <dewar@adacore.com>
12923 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
12925 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12926 Vincent Celier <celier@adacore.com>
12927 Robert Dewar <dewar@adacore.com>
12929 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
12931 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
12932 ((destructor)) for adafinal, even when switch -a is used.
12933 Do not issue pragma Linker_Destructor for adafinal when switch -a is
12935 (Gen_Object_Files_Options): Add formatting of Linker Options, when
12936 Output_Linker_Option_List is set. Suppress this formatting when
12937 Zero_Formatting is set.
12938 Add case for CLI_Target.
12939 (System_Restrictions_Used): New flag, used to avoid generating with of
12940 System_Restrictions and initialization of the data unless there is
12941 some use of System.Restrictions in the partition.
12942 (Check_System_Restrictions_Used): New procedure
12944 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
12945 since we only with this unit in the binder file if it is used elsewhere
12948 2007-06-06 Vincent Celier <celier@adacore.com>
12950 * bindusg.adb: Add line for @<response file>
12951 Add lines for new switches -R and -Z
12953 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
12954 hierarchy in the list of files of the closure when -R is used
12955 (Gnatbind): Accept arguments starting with '@' to indicate response
12956 files and take the arguments from the response files.
12957 If List_Closure is set, display the referenced files
12959 2007-06-06 Javier Miranda <miranda@adacore.com>
12960 Robert Dewar <dewar@adacore.com>
12961 Ed Schonberg <schonberg@adacore.com>
12963 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
12964 which the address-clause is applied to in-mode actuals (allowed by
12966 (Apply_Discriminant_Check): Do not generate a check if the type is
12967 constrained by a current instance.
12968 (Activate_Division_Check): New procedure
12969 (Activate_Overflow_Check): New procedure
12970 (Activate_Range_Check): New procedure
12971 Call these new Activate procedures instead of setting flags directly
12972 (Apply_Array_Size_Check): Removed, no longer needed.
12973 Code clean up: remove obsolete code related to GCC 2.
12974 (Get_E_Length): Protect against bomb in case scope is standard
12975 (Selected_Range_Checks): If the node to be checked is a conversion to
12976 an unconstrained array type, and the expression is a slice, use the
12977 bounds of the slice to construct the required constraint checks.
12978 Improve NOT NULL error messages
12979 (Apply_Constraint_Check): If the context is a null-excluding access
12980 type, diagnose properly the literal null.
12982 2007-06-06 Pascal Obry <obry@adacore.com>
12984 * clean.adb (Clean_Archive): Use untouched casing for the archive name
12985 and the corresponding .deps file.
12986 (Clean_Interface_Copy_Directory): Use untouched casing for the library
12987 src directory. Minor code-clean-up. Use untouched casing for files
12988 read into the library src dir.
12989 (Clean_Library_Directory): Idem.
12990 (Parse_Cmd_Line): Accept new switch -aP
12992 2007-06-06 Javier Miranda <miranda@adacore.com>
12993 Ed Schonberg <schonberg@adacore.com>
12994 Robert Dewar <dewar@adacore.com>
12995 Eric Botcazou <ebotcazou@adacore.com>
12996 Arnaud Charlet <charlet@adacore.com>
12998 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
12999 applicable to types that have the With_Type flag set. Returns the
13000 non-limited view of the type, if available, otherwise the type itself.
13001 For class-wide types, there is no direct link in the tree, so we have
13002 to retrieve the class-wide type of the non-limited view of the Etype.
13003 New attributes Static_Initialization and Static_Elaboration_Desired.
13004 Remove the pragma Thread_Body, and the associated flag
13005 Is_Thread_Body in entities, and all related code.
13006 (Suppress_Value_Tracking_On_Call): New flag
13007 E_Exception has Esize and Alignment fields
13008 (Universal_Aliasing): New function.
13009 (Set_Universal_Aliasing): New procedure.
13010 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13011 (Check_Nested_Access): New procedure.
13012 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13013 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13014 (Related_Interface): New attribute. Present in dispatch table pointer
13015 components of records. Set to point to the entity of the corresponding
13017 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13018 (Original_Access_Type): Remove, not needed.
13019 (Root_Type): Handle properly subtypes of class-wide-types.
13022 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13023 class-wide types visible through limited-with clauses.
13024 (Try_Primitive_Operation): When examining all primitive operations of a
13025 tagged type, do not consider subprograms labeled as hidden unless they
13026 belong to a private generic type with a tagged parent.
13027 (Try_Object_Operation): Extensive rewriting, to handle properly various
13028 overloading cases, when several ancestors may have class-wide operations
13029 that are possible candidates, and when the overloaded functions return
13030 array types and have defaulted parameters so that the call may be
13031 interpreted as an indexing.
13032 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13033 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13034 successive actuals before analyzing the call itself.
13035 (Try_Primitive_Operation): A primitive operation is compatible with the
13036 prefix if the prefix has a synchronized type and the type of the formal
13037 is its corresponding record, as can be the case when the primitive
13038 operation is declared outside of the body of the type.
13039 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13040 perform homonym traversal, looking for class-wide operation matches
13041 (formerly done in statements of Try_Class_Wide_Operation). Matches on
13042 access parameters are now restricted to anonymous access types.
13043 (Mark_Allocator): An allocator with a discriminant association parent is
13045 (Try_One_Prefix_Interpretation): If the type of the object is
13046 incomplete, as can be happen when it is a limited view obtained through
13047 a limited_with_clause, the selected component is not part of a prefixed
13049 (Complete_Object_Operation): Diagnose properly an object that is not
13050 aliased when the corresponding controlling formal is an access
13052 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13053 ambiguous calls in prefixed notation, where two primitives differ only
13054 in that the controlling argument of one is an access parameter.
13056 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13057 whether a function that returns an unconstrained type can be inlined.
13058 (Process_Formals): Diagnose properly the illegal use of an incomplete
13059 type in the profile of an access_to_subprogram declaration.
13060 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13061 operations are attached to the corresponding record.
13062 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13063 When processing a primitive of a concurrent type which implements an
13064 interface change the type of all controlling formals to that of the
13065 corresponding record type.
13066 (Check_Synchronized_Overriding): Relax the conditional logic when trying
13067 to determine the tagged type to which a primitive belongs.
13068 (Check_Conventions): Capture condition to ignore a primitive operation
13069 (which is shared between the loop in Check_Conventions and the one in
13070 Check_Convention) in a new local function Skip_Check.
13071 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13072 confusion with Check_Conventions' own Prim_Op local variable.
13073 (Create_Extra_Formals): Test for a tagged result type rather than a
13074 controlling result when determining whether to add a BIP_Alloc_Form
13075 formal and a BIP_Final_List formal to the function.
13076 (Check_Conformance); For parameters that are anonymous access types,
13077 subtype conformance requires that the not null and the constant
13078 indicators must match
13079 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13080 to retrieve the appropriate type when processing a concurrent type
13081 declared within a generic. Minor comment reformatting. Change invocation
13082 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13084 (Analyze_Subprogram_Body): If the return type of a function is an
13085 anonymous access to the limited view of a class-wide type, and the
13086 non-limited view of the type is available, update the type of the
13087 function so that code can be generated.
13088 (Process_Formals): In case of access-subtype itype whose designated
13089 type is also an itype (situation that happens now with access to
13090 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13091 attribute to avoid backend problems.
13092 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13093 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13094 anonymous types' designated types are same before testing
13095 Subtypes_Statically_Match.
13096 (Create_Extra_Formals): Test for a named access parameter that is a
13097 controlling formal as an additional condition for adding an
13098 accessibility level formal. This can occur in the subp type created for
13099 dispatching calls in Expand_Dispatching_Call, and allows calling
13100 Create_Extra_Formals from that procedure rather than special-casing the
13101 extra formals there.
13102 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13103 when the function has a controlling result.
13104 (Check_Returns): Add much more knowledge of the optimization of local
13105 raise statements to gotos, to retain proper warnings in this case.
13106 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13107 nodes when looking for last statement.
13109 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13110 class-wide types visible through limited with clauses.
13111 (Add_One_Interp): If the operands are anonymous access types, the
13112 predefined operator on universal_access is immediately visibles
13113 (Find_Unique_Type): Handle anonymous access to subprogram types just as
13114 other anonymous access types.
13115 (Disambiguate): Take into account CIL convention.
13116 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13118 2007-06-06 Robert Dewar <dewar@adacore.com>
13120 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13121 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13122 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13123 Fix lower bound of tables.
13126 * nlists.adb: Ditto.
13127 (Prev_Node, Next_Node): Change index type to Int so that it properly
13128 covers the range First_Node_Id - 1 up.
13130 2007-06-06 Javier Miranda <miranda@adacore.com>
13131 Ed Schonberg <schonberg@adacore.com>
13132 Bob Duff <duff@adacore.com>
13133 Hristian Kirtchev <kirtchev@adacore.com>
13135 * exp_aggr.ads, exp_aggr.adb:
13136 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13137 in extension aggregates.
13138 (Flatten): Other conditions being met, an aggregate is static if the
13139 low bound given by component associations is different from the low
13140 bound of the base index type.
13141 (Packed_Array_Aggregate_Handled): If the component type is itself a
13142 packed array or record, the front-end must expand into assignments.
13143 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13144 Init_Pr, instead of Ancestor_Is_Expression.
13145 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13146 coextension chain root, either generate a list controller or use the
13147 already existing one.
13148 (Static_Array_Aggregate): New procedure to construct a positional
13149 aggregate that can be handled by the backend, when all bounds and
13150 components are compile-time known constants.
13151 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13152 types covering interface types into assignments.
13153 (Replace_Type): move to Build_Record_Aggr_Code.
13154 (Expand_Record_Aggr_Code): if the target of the aggregate is an
13155 interface type, convert to the definite type of the aggregate itself,
13156 so that needed components are visible.
13157 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13158 components and the context is an extended return statement do not
13159 create a transient block for it, to prevent premature finalization
13160 before the return is executed.
13161 (Gen_Assign): Do not generate a call to deep adjust routine if the
13162 component type is itself an array of controlled (sub)-components
13163 initialized with an inner aggregate.
13164 (Component_Check): New name for Static_Check. This name is now more
13165 appropriate, and documentation is added which was missing.
13166 (Component_Check): Add test for bit aligned component value
13167 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13168 Tagged_Comps, name is more appropriate given added function below.
13169 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13171 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13172 Javier Miranda <miranda@adacore.com>
13173 Robert Dewar <dewar@adacore.com>
13175 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13176 Terminated: Add unchecked type conversion from System.Address to
13177 System.Tasking.Task_Id when calling the predefined primitive
13179 Disable new Ada 05 accessibility check for JVM.NET targets, which
13180 cannot be implemented in a practical way.
13181 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13182 the sources always references the tag of the actual object. Therefore,
13183 if 'Tag is applied in the sources to class-wide interface objects we
13184 generate code that displaces "this" to reference the base of the object.
13185 (Expand_N_Attribute_Reference, case Size): Return specified size if
13186 known to front end.
13187 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13188 has code that displaces the pointer of the object to manage interface
13189 types. However this code must not be executed when the prefix is a
13190 subprogram. This bug caused the wrong expansion of the internally
13191 generated assignment that fills the dispatch table when the primitive
13192 is a function returning a class-wide interface type.
13193 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13194 Set_Attribute_Name for Name_Unaligned_Valid.
13196 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13197 Gary Dismukes <dismukes@adacore.com>
13199 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13200 If the initialization is the equivalent aggregate of the initialization
13201 procedure of the type, do not remove it.
13202 (Expand_N_Attribute_Definition_Clause): Exclude access variables
13203 initialized to null from having their expression reset to empty and
13204 note this exception in the comment.
13206 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13207 Robert Dewar <dewar@adacore.com>
13208 Ed Schonberg <schonberg@adacore.com>
13209 Gary Dismukes <dismukes@adacore.com>
13211 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13212 Add "with" and "use" clauses for Sem_Attr.
13213 (Expand_Current_Value): Do not replace occurences of attribute
13214 references where the prefix must be a simple name.
13216 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13217 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13218 Attribute_Requires_Simple_Name_Prefix.
13219 (Name_Modifies_Prefix): Body of new function.
13220 (Requires_Simple_Name_Prefix): Body of new function.
13221 (Resolve_Attribute, case Access): Improve error message for case of
13222 mismatched conventions.
13223 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13225 (Analyze_Attribute, case 'Access): If the type of the prefix is a
13226 constrained subtype for a nominal unconstrained type, use its base type
13227 to check for conformance with the context.
13228 (Resolve_Attribute): Remove test of the access type being associated
13229 with a return statement from condition for performing accessibility
13230 checks on access attributes, since this case is now captured by
13231 Is_Local_Anonymous_Access.
13232 (Analyze_Access_Attribute): Set Address_Taken on entity
13233 (Analyze_Attribute, case Address): Set Address_Taken on entity
13234 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13235 validating an access attribute whose prefix is a current instance.
13236 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13237 applied to dispatching operations, if freezing is required then we set
13238 the attribute Has_Delayed_Freeze in the prefix's entity.
13239 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13240 current scope if access of local subprogram taken
13241 (Analyze_Access_Attribute): Check legality of self-reference even if the
13242 expression comes from source, as when a single component association in
13243 an aggregate has a box association.
13244 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13245 the prefix if it is a protected operation and the attribute is
13246 Unrestricted_Access.
13247 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13248 reference to the base type of the context, to force a constraint check
13249 when the context is an access subtype with an explicit constraint.
13250 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13251 node is rewritten as an interface conversion. leave unanalyzed after
13252 resolution, to ensure that type checking against the context will take
13255 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13256 Javier Miranda <miranda@adacore.com>
13257 Robert Dewar <dewar@adacore.com>
13259 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13260 wrapper when the full view of the controlling type of an inherited
13261 function that dispatches on result implements interfaces.
13262 (Expand_N_Object_Declaration): In cases where the type of the
13263 declaration is anonymous access, create finalization list for it.
13264 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13265 if the object has no explicit initialization, to match description of
13266 functionality of pragam Persistent_BSS.
13267 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13268 new function to build static aggregates, to replace initialization call
13269 when static initialization is desired.
13270 (Freeze_Type): Generate a list controller for an access type whenever
13271 its designated type has controlled anonymous access discriminants.
13272 (Build_Equivalent_Aggregate): New procedure to compute a static
13273 aggregate to be used as default initialization for composite types,
13274 instead of a generating a call to the initialization procedure for the
13276 (Build_Initialization_Call): When available, replace a call to the
13277 initialization procedure with a copy of the equivalent static aggregate
13279 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
13280 declarations for objects of a class-wide interface type, rather than
13281 just identifiers, to prevent visibility problems.
13282 (Expand_N_Object_Declaration): When expanding the declaration for an
13283 object of a class-wide interface type, preserve the homonym chain of
13284 the original entity before exchanging it with that of the generated
13285 renaming declaration.
13286 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13287 active, because there is no way to handle the exception.
13288 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13289 to do a minimum decoration of the Access_Disp_Table list.
13290 (Expand_Record_Controller): Avoid the addition of the controller between
13291 the component containing the tag of a secondary dispatch table and its
13292 adjacent component that stores the offset to the base of the object.
13293 This latter component is only generated when the parent type has
13294 discriminants ---documented in Add_Interface_Tag_Components).
13295 (Apply_Array_Size_Check): Removed, no longer needed.
13296 (Expand_N_Full_Type_Declaration): If the type has anonymous access
13297 components, create a Master_Entity for it only if it contains tasks.
13298 (Build_Init_Procedure): Suppress the tag assignment compiling under
13300 (Freeze_Record_Type): Remove code associated with creation of dispatch
13302 (Init_Secondary_Tags): Update type of actuals when generating calls to
13303 Ada.Tags.Set_Offset_To_Top
13304 (Stream_Operation_OK): Disable use of streams compiling under no
13306 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13307 if Has_Init_Expression set.
13308 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13309 Register_Primitive, which provides the same functionality.
13310 (Requires_Init_Proc): Return false in case of interface types.
13311 (Add_Secondary_Tables): Use the new attribute Related_Interface to
13313 (Predefined_Primitive_Freeze): Do not assume that an internal entity
13314 is always associated with a predefined primitive because the internal
13315 entities associated with interface types are not predefined primitives.
13316 Therefore, the call to Is_Internal is replaced by a call to the
13317 function Is_Predefined_Dispatching_Operation.
13318 (Make_Eq_If): When generating the list of comparisons for the
13319 components of a given variant, omit the controller component that is
13320 present if the variant has controlled components.
13322 2007-06-06 Javier Miranda <miranda@adacore.com>
13323 Hristian Kirtchev <kirtchev@adacore.com>
13324 Bob Duff <duff@adacore.com>
13326 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13327 handle the creation of finalization lists and calls for nested
13328 coextensions when the root of the chains is part of a return statement.
13329 (Inside_A_Return_Statement): New function inside Complete_Coextension_
13331 (Expand_Record_Equality): Skip components that are interface types.
13332 (Displace_Allocator_Pointer): Add missing support for interface subtypes
13333 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13334 with Rewrite_Coextension. Change the condition for detecting coextension
13336 (Is_Local_Access_Discriminant): Removed.
13337 (Rewrite_Coextension): New routine which rewrites a static coextension
13338 as a temporary and uses its unrestricted access in the construction of
13340 (Complete_Coextension_Finalization): New routine. Generate finalization
13341 attachment calls to all delayed coextensions.
13342 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13343 the allocator is not a coextension itself and has delayed coextensions.
13344 If the current allocator is controlled, but also a coextension, delay
13345 the generation of the finalization attachment call.
13346 Rename local variable "Node" to "Nod" in order to avoid confusion with
13348 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13349 limited types that are not inherently limited. Such an allocator is
13350 illegal, but is generated by the expander for a return statement, to
13351 copy the result onto the secondary stack. This is the only case where a
13352 limited object can be copied. Generate code to displace the pointer
13353 to the object if the qualified expression is a class-wide interface
13354 object. Such displacement was missing and hence the copy of the object
13356 (Apply_Accessibility_Check): Handle allocated objects initialized in
13358 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13359 and Expand_Allocator_Expression. Allocating class-wide interface objects
13360 this routine displaces the pointer to the allocated object to reference
13361 the component referencing the corresponding secondary dispatch table.
13362 Expand_Allocator_Expression): Add missing support to allocate class-wide
13363 interface objects initialized with a qualified expression.
13364 (Get_Allocator_Final_List): Test for an anonymous access type that is a
13365 function result type, and use the finalization list associated with the
13366 function scope in that case (such an anonymous type should not be
13367 treated like an access parameter's type).
13369 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13370 Gary Dismukes <dismukes@adacore.com>
13371 Javier Miranda <miranda@adacore.com>
13373 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13374 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13375 required exception handler.
13376 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13377 properly the case of a function whose return type is a limited
13378 class-wide interface type. Modify the code of the accessibility
13379 check to handle class-wide interface objects. In this case we need to
13380 displace "this" to reference the primary dispatch table to get access
13381 to the TSD of the object (to evaluate its accessibility level).
13382 (Expand_N_Extended_Return_Statement): Test for a tagged result type
13383 rather than a controlling result as one of the conditions for
13384 generating tests of the implicit BIP_Alloc_Form formal. The
13385 initialization assignment is also handled according to whether the
13386 result is tagged instead of controlling.
13387 In the case where the init assignment is inserted in the "then" part of
13388 the allocation conditional, rewrite the target to be a dereference of
13389 the implicit BIP_Object_Access formal.
13390 If the returned value is unconstrained and created on the secondary
13391 stack, mark the enclosing block and function so that the secondary
13392 stack is not reclaimed on return.
13393 Treat returns from functions with controlling results similarly to
13394 returns from functions with unconstrained result subtypes.
13395 If the object returned is unconstrained, and an allocator must be
13396 created for it, analyze the allocator once the block for the extended
13397 return is installed, to ensure that finalizable components
13398 of the expression use the proper finalization list. Guard the call to
13399 Move_Final_List with a check that there is something to finalize.
13400 (Make_Tag_Ctrl_Assignment): Use "old" handling
13401 of controlled type assignment for virtual machines, since new code uses
13402 unsupported features (such as direct access to bytes in memory).
13404 2007-06-06 Gary Dismukes <dismukes@adacore.com>
13405 Ed Schonberg <schonberg@adacore.com>
13407 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13408 accessibility actual, check for the case of an aliased object that has
13409 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13410 we fall into processing for the attribute rather than the name of the
13412 (Expand_Inline_Call): If an actual is a literal, and the corresponding
13413 formal has its address taken in the body, create a temporary to capture
13414 value. If the return type is a limited interface, do not treat the
13415 return value as Controlled.
13416 (Is_In_Place_Function): If the return type is a limited interface,
13417 treat as returning in place. The actual returned object may not always
13418 be limited, but the caller has to assume that it is returned in place.
13419 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13420 context of an allocator, use the correct finalization chain (that is,
13421 the chain belonging to the access type, rather than the chain belonging
13422 to the current scope).
13423 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13424 result type rather than a controlling result as a precondition for
13425 adding an allocation form actual to a build-in-place call.
13426 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13427 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13428 primitive in the dispatch tables. This work is now done by Make_DT when
13429 the type is frozen.
13430 (Register_Predefined_DT_Entry): Removed.
13431 (Add_Return): If end label is not present, use sloc of last statement
13432 for generated return statement in procedure, for better gdb behavior
13434 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13435 object address nodes to ensure proper processing by routines like
13437 (Expand_Call): Fix generation of validity check for parameter
13438 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13439 the allocation form parameter if the result subtype is constrained,
13440 except when the function has a controlling result.
13441 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13442 rather than Is_Controlled and Has_Controlled_Component, since we want to
13443 include class-wide result types in this treatment. Also test for a
13444 controlling result, since that also requires passing a finalization
13446 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13447 even when the result subtype is constrained, to handle calls involving
13448 controlling results.
13449 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13450 is now called even when the result subtype is constrained, to handle
13451 calls involving controlling results.
13452 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13453 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13454 now performs the test).
13455 (Make_Build_In_Place_Call_In_Object_Declaration):
13456 Add_Alloc_Form_Actual_* is now called even when the result subtype is
13457 constrained, to handle calls involving controlling results.
13458 (Add_Return): Accomodate rewritten pattern from local raise to goto
13459 transformation, so that we still recognize an transfer statement
13460 and do the right thing here in that case.
13461 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13462 and end of subprogram code.
13463 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13464 support for primitives that are functions (without formals) with a
13465 controlling result.
13466 (Inherited_From_Formal): If the actual subtype has not generic parent
13467 type, it is not an actual for a formal derived type, and there is no
13468 operation to inherit from the formal.
13470 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13471 Thomas Quinot <quinot@adacore.com>
13473 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13474 inserted cleanup code appropriately for GDB use.
13475 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13476 exception handler for Deep_Adjust or Deep_Finalize.
13477 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13478 Raise_From_Controlled_Operation is available, use a call to that
13479 subprogram instead of a plain "raise Program_Error" node to raise
13480 Program_Error if an exception is propagated from an Adjust or Finalize
13482 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13483 appears in the optional statement list of a triggering alternative, the
13484 scope actions can be inserted directly there, and not in the list that
13485 includes the asynchronous select itself.
13487 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13488 Robert Dewar <dewar@adacore.com>
13489 Hristian Kirtchev <kirtchev@adacore.com>
13491 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13492 generated exception handler appropriately when debugging generated code.
13493 Deal properly with No_Exception_Propagation restriction mode.
13494 (Expand_N_Abort_Statement): Add an unchecked type conversion from
13495 System.Address to System.Tasking.Task_Id when processing the result of
13496 the predefined primitive _disp_get_task_id.
13497 (Expand_N_Asynchronous_Select): Clarify comment.
13498 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13499 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13500 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13501 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13502 privals and for generated call to Complete_Entry_Body, for better gdb
13504 (Copy_Result_Type): Utility to construct a parameter and result profile
13505 for protected functions whose return type is an anonymous access to
13507 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13509 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13510 point when the local-raise-to-goto transformation has taken place.
13512 2007-06-06 Javier Miranda <miranda@adacore.com>
13513 Nicolas Setton <setton@adacore.com>
13515 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13516 functionality when the backend is generating code.
13517 Otherwise any serious error
13518 reported by the backend calling the frontend routine Error_Msg
13519 changes the Compilation_Mode to Check_Semantics, disables the
13520 functionality of this routine and causes the generation of
13521 spureous additional errors.
13523 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13524 debugging information now generated by the compiler for fat-pointer
13526 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13528 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13530 2007-06-06 Thomas Quinot <quinot@adacore.com>
13532 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13533 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13534 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13535 For a remote call to a function with a classwide return type, apply an
13536 E.4(18) check to the returned value.
13537 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13538 stream attributes of the designated type of an RACW, as they are not
13539 dispatching primitive operations.
13541 2007-06-06 Geert Bosch <bosch@adacore.com>
13543 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13545 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13547 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13548 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13550 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13552 2007-06-06 Javier Miranda <miranda@adacore.com>
13554 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13555 attribute compiling package Ada.Tags under No_Run_Time_Mode.
13557 2007-06-06 Javier Miranda <miranda@adacore.com>
13559 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13560 deallocation of class-wide interface objects.
13561 (Expand_Dispatching_Constructor_Call): Take into account that if the
13562 result of the dispatching constructor is an interface type, the
13563 function returns a class-wide interface type; otherwise the returned
13564 object would be actual. The frontend previously accepted returning
13565 interface types because Expand_Interface_Actuals silently performed
13566 the management of the returned type "as if" it were a class-wide
13568 (Expand_Dispatching_Constructor_Call): Replace call to
13569 Make_DT_Access_Action by direct call to Make_Function_Call.
13571 2007-06-06 Robert Dewar <dewar@adacore.com>
13572 Ed Schonberg <schonberg@adacore.com>
13574 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13575 compute masking constant, since we now set Esize properly to the
13577 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13578 to match the alignment.
13579 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13580 packed arrays of 8 bits or less.
13582 * freeze.adb (Freeze_Entity): When freezing the formals of a
13583 subprogram, freeze the designated type of a parameter of an access type
13584 only if it is an access parameter.
13585 Increase size of C convention enumeration object
13586 (Freeze_Entity, array type case): Make sure Esize value is properly
13587 adjusted for the alignment if it is known.
13588 (Freeze_Entity, array type case): When checking bit packed arrays for
13589 the size being incorrect, check RM_Size, not Esize.
13590 (Freeze_Record_Type): Check for bad discriminated record convention
13591 (In_Exp_Body): Return true if the body is generated for a subprogram
13592 renaming, either an attribute renaming or a renaming as body.
13593 (Check_Itype): If the designated type of an anonymous access component
13594 is a non-protected subprogram type, indicate that it is frozen, to
13595 prevent out-of-scope freeze node at some subsequent call.
13596 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13597 only if the subprogram is neither imported nor exported, as well as the
13598 NCA descriptor class if the subprogram is exported.
13600 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13601 Arnaud Charlet <charlet@adacore.com>
13602 Robert Dewar <dewar@adacore.com>
13603 Gary Dismukes <dismukes@adacore.com>
13605 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13606 default initialization on an imported object, when there is no
13607 initialization call generated for it.
13608 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13611 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13612 Static_Elaboration_Desired.
13613 Remove pragma Thread_Body.
13614 Implement a new pragma No_Body
13615 Removes the Explicit_Overriding pragma
13616 Remove Optional_Overriding pragma
13617 (Prag): Deal with Universal_Aliasing.
13618 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13619 Pragma_CIL_Constructor): New names.
13621 * sem_cat.adb (Validate_Object_Declaration): An initialization that
13622 uses the equivalent aggregate of a type must be treated as an implicit
13624 (Get_Categorization): Check a unit for pragma Preelaborate only if it
13625 has none of the other categories.
13626 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13627 to apply Import to an object renaming declaration.
13629 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13630 from a C++ class should be declared as limited and that it will be
13631 considererd limited.
13632 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13633 should be declared as limited and that it will be considererd limited.
13634 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13635 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13636 (Analyze_Pragma): Deal with Universal_Aliasing.
13637 (Sig_Flags): Likewise.
13638 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13639 (Overflow_Checks_Unsuppressed): New flag.
13640 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13641 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13642 case of JVM or .NET targets, and compiling user code.
13643 Add debugging convenience routine rv
13645 2007-06-06 Robert Dewar <dewar@adacore.com>
13647 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13648 are interface type.
13649 (Build_Elementary_Input_Call): For floating-point use right type in the
13650 absence of strange size or stream size clauses.
13651 (Build_Elementary_Write_Call): Same fix
13652 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13653 set to value that does not match base type size.
13655 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13657 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13658 object of a limited type can be initialized with a call to a function
13659 that returns in place. If the limited type has unknown discriminants,
13660 and the underlying type is a constrained composite type, build an actual
13661 subtype from the function call, as is done for private types.
13662 (Side_Effect_Free): An expression that is the renaming of an object or
13663 whose prefix is the renaming of a object, is not side-effect free
13664 because it may be assigned through the renaming and its value must be
13665 captured in a temporary.
13666 (Has_Controlled_Coextensions): New routine.
13667 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13668 as is done for other limited types.
13669 (Non_Limited_Designated_Type): new predicate.
13670 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13672 Remove all handling of with_type clauses.
13674 * par-ch10.adb: Remove all handling of with_type clauses.
13676 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13677 checksum if the main source could not be parsed.
13678 (Loat_Unit): When processing a child unit, determine properly whether
13679 the parent unit is a renaming when the parent is itself a child unit.
13680 Remove handling of with_type clauses.
13682 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13683 (Set_Is_Static_Coextension): New procedure.
13684 (Has_Local_Raise): New function
13685 (Set_Has_Local_Raise): New procedure
13686 (Renaming_Exception): New field
13687 (Has_Init_Expression): New flag
13688 (Delay_Finalize_Attach): Remove because flag is obsolete.
13689 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13690 Remove all handling of with_type clauses.
13691 (Exception_Junk): Can now be set in N_Block_Statement
13693 2007-06-06 Vincent Celier <celier@adacore.com>
13694 Robert Dewar <dewar@adacore.com>
13696 * frontend.adb (Frontend): Return immediately if the main source could
13697 not be parsed, because of preprocessing errors.
13699 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13700 (Gnat1drv): Exit with errors if the main source could not be parsed,
13701 because of preprocessing errors.
13702 (Check_Rep_Info): New procedure
13704 2007-06-06 Robert Dewar <dewar@adacore.com>
13706 * g-hesorg.ads, g-heasor.ads,
13707 g-busorg.ads, g-bubsor.ads: Update documentation
13708 GNAT.Heap/Bubble_Sort_G is now pure
13710 2007-06-06 Robert Dewar <dewar@adacore.com>
13712 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13714 2007-06-06 Robert Dewar <dewar@adacore.com>
13715 Ed Schonberg <schonberg@adacore.com>
13717 * g-comlin.ads, g-comlin.adb:
13718 Add new warning for renaming of function return objects
13720 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13721 (Tree_Read): Use size of object instead of type'object_size, since the
13722 latter is incorrect for packed array types.
13723 (Tree_Write): Same fix
13725 * opt.ads: Add new warning for renaming of function return objects
13726 (Generating_Code): New boolean variable used to indicate that the
13727 frontend as finished its work and has called the backend to process
13728 the tree and generate the object file.
13729 (GCC_Version): Is now private
13730 (Static_Dispatch_Tables): New constant declaration.
13731 (Overflow_Checks_Unsuppressed): New flag.
13732 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13733 (List_Closure): New flag for gnatbind (-R)
13734 Zero_Formatting: New flag for gnatbind (-Z)
13735 (Special_Exception_Package_Used): New flag.
13736 (Warn_On_Unrepped_Components): New flag.
13738 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13739 unit is a compilation unit, rather than relying on its scope, so that
13740 Standard can be renamed.
13741 (Analyze_Object_Renaming): Add new warning for renaming of function
13743 Also reject attempt to rename function return object in Ada 83 mode.
13744 (Attribute_Renaming): In case of tagged types, add the body of the
13745 generated function to the freezing actions of the type.
13746 (Find_Type): A protected type is visible right after the reserved word
13747 "is" is encountered in its type declaration. Set the entity and type
13748 rather than emitting an error message.
13749 (New_Scope): Properly propagate Discard_Names to inner scopes
13750 (Check_Nested_Access): New procedure.
13751 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13752 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13754 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13755 Add new warning for renaming of function return objects
13756 (Check_References): Suppress warnings for objects whose type or
13757 base type has Warnings suppressed.
13758 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13759 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13761 2007-06-06 Vincent Celier <celier@adacore.com>
13762 Emmanuel Briot <briot@adacore.com>
13763 Olivier Hainque <hainque@adacore.com>
13765 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13766 absolute value of Header.Block_Size when displaying the freed physical
13768 (Allocate): Compute Storage_Address using Integer_Address, not
13769 Storage_Offset, because the range of Storage_Offset may not be large
13771 (Configure): New parameter Low_Level_Traces
13772 (Allocate, Deallocation, Free_Physically): Added low-level traces
13773 (Configure): new parameter Errors_To_Stdout.
13774 (Output_File): new subprogram
13775 (Deallocate, Dereference): Send error messages to the proper stream
13776 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13777 documented. Previous code would send it to the current output file
13778 defined in GNAT.IO, which might not be stdout
13779 (Is_Valid): Adjust comment to mention that a positive reply means that
13780 Header_Of may be used to retrieve the allocation header associated with
13781 the subprogram Storage address argument. Return False early if this
13782 address argument is misaligned.
13784 2007-06-06 Vincent Celier <celier@adacore.com>
13786 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
13788 (ASIS_Main): New global variable
13789 (Get_Closure): New procedure
13790 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
13791 check, metric or pretty. Call Get_Closure in this case.
13792 (Check_Files): For GNAT LIST, check all sources of all projects when
13793 All_Projects is True.
13794 (GNATCmd): Accept -U for GNAT LIST
13796 2007-06-06 Vincent Celier <celier@adacore.com>
13798 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
13800 Correct error message when invocation of the linker fails
13801 Add explicit size clause for the C imported variables
13802 Object_List_File_Supported and Using_GNU_Linker to emphasize that
13803 we expect char size.
13804 Read target parameters earlier, since this is needed to set
13805 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
13808 2007-06-06 Vincent Celier <celier@adacore.com>
13811 Add 3 spaces before the default project directory when displaying
13812 the project search path.
13813 Add new command line switch '-l' to display license information.
13815 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
13817 * gmem.c: Add support for timestamps on memory operations.
13819 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
13820 operations (not used currently, just foundation for future
13821 enhancements). Add possibility to perform full dump of gmem.out file.
13822 (Print_Back_Traces): Declare accesses to root arrays constants since
13823 they aren't modified.
13824 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
13826 2007-06-06 Vincent Celier <celier@adacore.com>
13828 * gnatsym.adb: Update Copyright notice
13829 (Parse_Cmd_Line): Accept new switch -D
13830 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
13833 * prj.ads (Policy): New policy Direct
13834 (Yes_No_Unknown): New enumeration type
13835 (Project_Data): New component Libgnarl_Needed
13837 * prj-nmsc.adb (Check_For_Source): When recording a source file make
13838 use the untouched pathname casing.
13839 (Get_Directories): Ensure that the Display_Exec_Directory is using the
13840 proper casing on non case-sensitive platforms like Windows.
13841 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
13842 on all platforms, as it is not possible to know which one is allowed
13843 before processing the project files.
13844 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
13845 specified when symbol policy is Direct. Check that when there is a
13846 symbol file defined (either by default or with attribute
13847 Library_Symbol_File) it is not the same as the reference symbol file.
13848 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
13849 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
13850 extending projects.
13851 (Record_Ada_Source): Record a source that has been locally removed in an
13854 * symbols.ads (Policy): New policy Direct
13856 * symbols-vms.adb (Initialize): Take new policy Direct in case
13859 2007-06-06 Vincent Celier <celier@adacore.com>
13861 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
13862 Correct obvious bug (return Dir; instead of return Directory;).
13863 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
13865 2007-06-06 Thomas Quinot <quinot@adacore.com>
13867 * g-pehage.adb (Produce): Open output files in Binary mode, so that
13868 they have UNIX line endings (LF only) even on Windows, and thus pass
13869 all GNAT style checks.
13871 2007-06-06 Emmanuel Briot <briot@adacore.com>
13873 * g-regpat.adb (Quote): Fix improper quoting of '.'
13875 2007-06-06 Thomas Quinot <quinot@adacore.com>
13877 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
13878 default, set False on a per-runtime basis.
13879 (Need_Netdb_Buffer): New constant.
13881 * g-socket.ads, g-socket.adb: Import new package
13882 GNAT.Sockets.Thin.Task_Safe_NetDB.
13883 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
13884 binding to obtain proper message.
13885 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
13886 Replace various occurrences of Arry (Arry'First)'Address with the
13887 equivalent Arry'Address (GNAT always follows implementation advice from
13889 (Get_Host_By_Address, Get_Host_By_Name,
13890 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
13891 instead, rely on platform-specific task safe netdb operations provided
13894 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
13895 parameter Process_Blocking_IO.
13896 (Host_Error_Messages): Add stub body.
13897 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13898 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
13899 Safe_Getservbyport): Move functions into new child package
13901 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
13902 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
13903 (In_Addr): Add alignment clause.
13905 2007-06-06 Robert Dewar <dewar@adacore.com>
13907 * g-trasym.ads, g-traceb.ads: Update list of supported targets
13908 Add note about symbolic traceback
13910 2007-06-06 Pascal Obry <obry@adacore.com>
13912 * hostparm.ads (Normalized_CWD): Use the host directory separator
13913 instead of the hardcoded forward slash which is not the proper
13914 character on Windows for example.
13915 (Java_VM): Removed.
13917 2007-06-06 Vincent Celier <celier@adacore.com>
13918 Arnaud Charlet <charlet@adacore.com>
13920 * a-clrefi.adb, a-clrefi.ads: New files
13922 * impunit.adb: Add s-os_lib in the list of user visible units.
13923 (Non_Imp_File_Names_95): Add a-clrefi to this list
13924 Remove obsolete run-time entries.
13925 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
13926 "a-exetim" -- Ada.Execution_Time
13927 "a-extiti" -- Ada.Execution_Time.Timers
13929 * mlib-prj.ads, mlib-prj.adb
13930 (Build_Library): Use untouched object dir and library dir. At the
13931 same time makes sure that the checks are done using the canonical
13932 form. Removes hard-coded directory separator and use the proper host
13934 (Process_Project): Do not look in object directory to check if libgnarl
13935 is needed for a library, if there is no object directory.
13936 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
13938 (Build_Library): When invoking gnatbind, use a response file if the
13939 total size of the arguments is too large.
13941 * Makefile.rtl: (g-sttsne): New object file.
13942 Add entry for a-clrefi, s-utf_32, System.Exceptions
13944 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
13945 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
13946 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
13947 Change g-string to s-string, g-os_lib to s-os_lib
13948 Change all g-utf_32 references to s-utf_32
13950 2007-06-06 Tristan Gingold <gingold@adacore.com>
13951 Olivier Hainque <hainque@adacore.com>
13953 * init.c: Do not adjust IP of an imported VMS exception of ia64.
13954 LIB$STOP is called to raise an exception and the IP of the exception
13955 is the instruction right after the call.
13956 (__gnat_adjust_context_for_raise, AIX): Implement.
13957 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
13958 adjust_context_for_raise before Raise_From_Signal_Hanler.
13959 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
13960 siginfo is passed to the handler, necessary to let the zcx propagation
13961 engine unwind past it.
13963 2007-06-06 Olivier Hainque <hainque@adacore.com>
13965 * initialize.c (__gnat_initialize for vxworks): Update documentation
13966 on the ZCX support, using different sets of crtstuff objects than with
13969 2007-06-06 Robert Dewar <dewar@adacore.com>
13971 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
13973 (Layout_Type): Fix recomputation of size from alignment.
13975 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13976 Javier Miranda <miranda@adacore.com>
13978 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
13979 association in an instance.
13980 (Copy_Generic_Node): If the node is a string literal, no need to copy
13982 (Is_Generic_Formal): For a formal subprogram, the declaration is the
13983 grandparent of the entity.
13984 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
13985 to simplify handling of formal interfaces that derive from other formal
13987 (Instantiate_Subprogram_Body): The defining unit name of the body of
13988 the instance should be a defining identifier.
13989 (Install_Formal_Packages): make global to the package, for use in
13990 instantiations of child units.
13991 (Analyze_Package_Instantiation): Do not attempt to set information on an
13992 enclosing master of an entry when expansion is disabled.
13993 (Instantiate_Type): If the actual is a tagged synchronized type and the
13994 generic ancestor is an interface, create a generic actual for the
13995 corresponding record.
13996 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
13997 declaration, to ensure that the interface list is processed correctly.
13998 (Inline_Instance_Body): If enclosing scope is an instance body, remove
13999 its entities from visibiility as well.
14000 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
14001 given with a named association, analyze the expression only, not the
14002 discriminant association itself.
14003 (Reset_Entity): If the analysis of a selected component is transformed
14004 into an expanded name in the prefix of a call with parameters, do not
14005 transform the original node into an expanded name, to prevent visibility
14006 errors in the case of nested generics.
14007 (Check_Private_View): For an array type, check whether the index types
14008 may need exchanging.
14010 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14011 Vincent Celier <celier@adacore.com>
14013 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14014 since both are separated.
14015 Add support for imported CIL packages.
14016 Add further special handling of "value_type" for CIL.
14017 Add special handling of pragma Import for CIL.
14019 * make.ads, make.adb: When switch -eS is used, direct all outputs to
14020 standard output instead of standard error, except errors.
14021 (Absolute_Path): Use untouched casing for the parent directory.
14022 (Add_Library_Search_Dir): Use the untouched directory name.
14023 (Add_Source_Search_Dir): Idem.
14024 (Change_To_Object_Directory): Update output to use proper casing.
14025 (Create_Binder_Mapping_File): Use the untouched filename to set
14027 (Gnatmake): Use untouched library and executable directory names.
14028 (Insert_Project_Sources): Use untouched filename for spec and body.
14029 (Is_In_Object_Directory): Use untouched object directory.
14030 (Mark_Directory): Idem.
14031 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14032 contains the non-canonical filename in all cases.
14033 (Change_To_Object_Directory): In verbose mode, display the name of the
14034 object directory we're changing to.
14035 (Compile_Sources): Make sure, when a project file is used, to compile
14036 the body of the unit, when there is one, even when only the spec is
14037 recorded in an ALI file.
14038 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14040 (Report_Compilation_Failed): New procedure
14041 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14042 procedures moved from the spec to the body.
14043 (Extract_Failure): Removed, not used
14044 Replace explicit raises of exception Bind_Failed and Link_Failed with
14045 calls to Make_Failed with the proper message.
14046 Replace explicit raises of exception Compilation_Failed with calls to
14047 procedure Report_Compilation_Failed.
14048 (Initialize): Create mapping files unconditionally when using project
14051 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14052 Pragma_CIL_Constructor): New names.
14054 * targparm.ads, targparm.adb
14055 (Compiler_System_Version): Removed, no longer used.
14056 (Get_Target_Parameters): Relax checks on system.ads validity. Add
14057 handling of two new system flags: JVM and CLI.
14059 2007-06-06 Jose Ruiz <ruiz@adacore.com>
14060 Arnaud Charlet <charlet@adacore.com>
14062 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14063 time, use the default s-interr body that provides interrupt support
14065 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14066 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14067 g-soccon.ads, and s-taprop.adb for the marte run time.
14068 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14069 timers are supported on marte.
14070 (EH_MECHANISM for marte): Do not use ZCX.
14071 (THREADSLIB for marte): Use -lmarte.
14072 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14073 Add mlib-tgt-specific.o to gnatmake objects
14074 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14075 longer of MLib.Tgt.
14076 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14077 6, either kernel or rtp, use a specialized version of s-osinte.ads.
14079 2007-06-06 Pascal Obry <obry@adacore.com>
14081 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14083 2007-06-06 Vincent Celier <celier@adacore.com>
14085 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14086 separator, use instead the proper host directory separator.
14087 (Copy_ALI_Files): Make sure that an already existing ALI file in the
14088 ALI copy dir is writable, before doing the copy.
14090 * mlib-utl.ads, mlib-utl.adb:
14091 (Gcc): If length of command line is too long, put the list of object
14092 files in a response file, if this is supported by the platform.
14093 (Ar): If invocation of the archive builder is allowed to be done in
14094 chunks and building it in one shot would go above an OS dependent
14095 limit on the number of characters on the command line, build the archive
14098 2007-06-06 Vincent Celier <celier@adacore.com>
14100 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14101 of specified object file is not equal to base name of source.
14103 2007-06-06 Javier Miranda <miranda@adacore.com>
14104 Hristian Kirtchev <kirtchev@adacore.com>
14105 Ed Schonberg <schonberg@adacore.com>
14107 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14108 the full type declaration.
14109 (Analyze_Component_Declaration): Add local variable E to capture the
14110 initialization expression of the declaration. Replace the occurences of
14111 Expression (N) with E.
14112 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14113 limited interface object with a function call.
14114 (Array_Type_Declaration): If the declaration lacks subtype marks for
14115 indices, create a simple index list to prevent cascaded errors.
14116 (Is_Null_Extension): Ignore internal components created for secondary
14117 tags when checking whether a record extension is a null extension.
14118 (Check_Abstract_Interfaces): Add missing support for interface subtypes
14119 and generic formals.
14120 (Derived_Type_Declaration): Add missing support for interface subtypes
14121 and generic formals.
14122 (Analyze_Object_Declaration): If an initialization expression is
14123 present, traverse its subtree and mark all allocators as static
14125 (Add_Interface_Tag_Component): When looking for components that may be
14126 secondary tags, ignore pragmas that can appear within a record
14128 (Check_Abstract_Overriding): an inherited function that dispatches on
14129 result does not need to be overriden if the controlling type is a null
14131 (Mentions_T): Handle properly a 'class attribute in an anonymous access
14132 component declaration, when the prefix is an expanded name.
14133 (Inherit_Component): If the derivation is for a private extension,
14134 inherited components remain visible and their ekind should not be set
14136 (Find_Type_Of_Object): In the case of an access definition, always set
14137 Is_Local_Anonymous_Access. We were previously not marking the anonymous
14138 access type of a return object as a local anonymous type.
14139 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14140 range with character literal bounds.
14141 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14142 (Access_Subprogram_Declaration): Indicate that the type declaration
14143 depends on an incomplete type only if the incomplete type is declared
14145 (Analyze_Subtype_Declaration): Handle properly subtypes of
14146 synchronized types that are tagged, and that may appear as generic
14148 (Access_Subprogram_Declaration): An anonymous access to subprogram can
14149 appear as an access discriminant in a private type declaration.
14150 (Add_Interface_Tag_Components): Complete decoration of the component
14151 containing the tag of a secondary dispatch table and the component
14152 containing the offset to the base of the object (this latter component
14153 is only generated when the parent type has discriminants --as documented
14155 (Inherit_Components): Use the new decoration of the tag components to
14156 improve the condition that avoids inheriting the components associated
14157 with secondary tags of the parent.
14158 (Build_Discriminanted_Subtype): Indicate to the backend that the
14159 size of record types associated with dispatch tables is known at
14161 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14162 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14163 to include task, protected, and synchronized interfaces as limited
14165 (Process_Discriminants): Remove the setting of
14166 Is_Local_Anonymous_Access on the type of (anonymous) access
14167 discriminants of nonlimited types.
14168 (Analyze_Interface_Type_Declaration): Complete the decoration of the
14169 class-wide entity it is is already present. This situation occurs if
14170 the limited-view has been previously built.
14171 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14173 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14176 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14178 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14179 of the type that specify the position of interface tags when the type
14180 inherits discriminated array components from the parent type.
14181 If a component is initialized with a box, check for the presence of a
14182 default expression in its declaration before using its default
14183 initialization procedure.
14184 (Resolve_Record_Aggregate): If a component is box-initialized, and the
14185 component type has a discriminants, create a partial aggregate for it
14186 by copying the discriminants of the component subtype.
14187 Reject attempt to initialize a discriminant with a box.
14188 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14189 associated with dispatch tables is known at compile time.
14190 (Get_Value): If an association in a record aggregate has a box
14191 association, and the corresponding record component has a default
14192 expression, always copy the default expression, even when the
14193 association has a single choice, in order to create a proper
14194 association for the expanded aggregate.
14196 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14197 Robert Dewar <dewar@adacore.com>
14199 * par-ch12.adb (P_Generic_Associations): The source position of an
14200 Others association is that of the others keyword, not that of the token
14201 that follows the box.
14202 (P_Formal_Type_Definition): Handle formal access types that carry a
14203 not null indicator.
14205 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14206 multiple identifier are present, save Scan_State before scanning the
14207 colon, to ensure that separate trees are constructed for each
14209 (P_Identifier_Declarations): For object declaration, set new flag
14210 Has_Init_Expression if initialization expression present.
14211 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14212 Improve NOT NULL error messages
14214 2007-06-06 Robert Dewar <dewar@adacore.com>
14216 * par-ch4.adb: (P_Name): Recover from literal used as name
14218 2007-06-06 Vincent Celier <celier@adacore.com>
14220 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14221 defaulted to False.
14222 In the "not" case, recursive call with Complemented set to True.
14223 Do not allow "or" or "and" operators when Complemented is True.
14225 2007-06-06 Vincent Celier <celier@adacore.com>
14227 * prj.adb (Project_Empty): Gives default value for new component
14230 * prj-attr.ads: Minor reformatting
14232 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14233 directory using the untouched casing.
14234 (For_All_Source_Dirs): Idem.
14236 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14237 directories specified with switches -aP.
14238 (Add_Search_Project_Directory): New procedure
14239 (Initialize_Project_Path): Put the directories in table
14240 Search_Directories in the project search path.
14241 (Initialize_Project_Path): For VMS, transform into canonical form the
14244 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14246 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14247 true if configurable run-time or No_Run_Time is set.
14248 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14249 processing an unit which is not the one being compiled.
14251 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14253 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14254 Replace UC by Ada.UC
14256 * s-bitops.adb: Get rid of System.Pure_Exceptions.
14257 Replace UC by Ada.UC
14259 2007-06-06 Robert Dewar <dewar@adacore.com>
14261 * scng.adb: (Check_End_Of_Line): Deal with very long lines
14263 2007-06-06 Robert Dewar <dewar@adacore.com>
14265 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14266 Remove no longer used nodes.
14268 2007-06-06 Javier Miranda <miranda@adacore.com>
14269 Ed Schonberg <schonberg@adacore.com>
14270 Robert Dewar <dewar@adacore.com>
14272 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14273 on obsolescent withed unit in case of limited-withed units.
14274 (Analyze_Compilation_Unit): Add guard to code that removed an
14275 instantiation from visibility, to prevent compiler aborts when
14276 instantiation is abandoned early on.
14277 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14278 current unit being analyzed, and Distinguish local incomplete types
14279 from limited views of types declared elsewhere.
14280 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14281 to state that the class-wide entity is shared by the limited-view
14283 (Analyze_With_Clause): Improve placement of flag for case of
14284 unimplemented unit.
14285 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14286 manner similar to GNAT.Current_Exception. This is a violation of
14287 restriction (No_Exception_Propagation), and also inhibits the
14288 optimization of local raise to goto.
14289 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14290 and if so set Most_Recent_Exception_Used flag in Opt, and also check
14291 for violation of restriction No_Exception_Propagation.
14293 2007-06-06 Javier Miranda <miranda@adacore.com>
14294 Hristian Kirtchev <kirtchev@adacore.com>
14295 Gary Dismukes <dismukes@adacore.com>
14297 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14298 use of entity Exception_Occurrence if it is not available in the
14301 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14302 concurrent types are declared within an Ada 2005 generic, build their
14303 corresponding record types since they are needed for overriding-related
14305 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14306 protected type does not implement a task interface or a nonlimited
14308 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14309 type does not implement a protected interface or a nonlimited interface.
14310 (Single_Task_Declaration, Single_Protected_Declaration): use original
14311 entity for variable declaration, to ensure that debugging information
14312 is correcty generated.
14313 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14314 routines if the expander is not active.
14315 (Analyze_Task_Body): Mark all handlers to stop optimization of local
14316 raise, since special things happen for task exception handlers.
14318 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14319 concurrent types declared within a generic.
14320 (Check_Dispatching_Operation): Do not emit warning about late interface
14321 operations in the context of an instance.
14322 (Check_Dispatching_Call): Remove restriction against calling a
14323 dispatching operation with a limited controlling result.
14324 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14325 Register_Interface_DT_Entry by calls to Register_Primitive.
14326 (Check_Dispatching_Formals): Handle properly a function with a
14327 controlling access result.
14329 2007-06-06 Robert Dewar <dewar@adacore.com>
14330 Arnaud Charlet <charlet@adacore.com>
14332 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14333 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14334 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14335 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14336 message when using a VM, since this attribute is not supported.
14337 (Analyze_Record_Representation_Clause): Give unrepped component warnings
14339 * usage.adb: Add new warning for renaming of function return objects
14340 Indicate that -gnatwp and -gnatwP concern front-end inlining
14341 Add line for -gnatyg
14342 Add usage information for -gnatw.c/C
14344 2007-06-06 Robert Dewar <dewar@adacore.com>
14345 Ed Schonberg <schonberg@adacore.com>
14348 (Find_Var): Do not consider function call in test for infinite loop
14349 warning if warnings set off for function entity.
14350 (One_Bound): Do not create a temporary for a loop bound if it is a
14352 (Analyze_Assignment): Traverse the right hand side of an assignment and
14353 mark all allocators as static coextensions.
14354 (Analyze_Assignment): Exempt assignments involving a dispatching call
14355 to a function with a controlling access result from the check requiring
14356 the target to be class-wide.
14358 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14359 Ed Schonberg <schonberg@adacore.com>
14360 Robert Dewar <dewar@adacore.com>
14361 Javier Miranda <miranda@adacore.com>
14363 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14364 chain of coextensions when an allocator serves as the root of such a
14366 (Propagate_Coextensions): Remove the test for the root being an
14368 (Resolve_Allocator): Add condition to ensure that all future decoration
14369 occurs on an allocator node. Add processing and cleanup for static
14371 (Valid_Conversion): If the operand type is the limited view of a
14372 class-wide type, use the non-limited view is available to determine
14373 legality of operation.
14374 (Ambiguous_Character): move to spec, for use elsewhere.
14375 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14376 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14377 character literals.
14378 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14379 Do_Division_Check flag explicitly.
14380 (Resolve_Actuals): If the actual is of a synchronized type, and the
14381 formal is of the corresponding record type, this is a call to a
14382 primitive operation of the type, that is declared outside of the type;
14383 the actual must be unchecked-converted to the type of the actual
14384 (Resolve_Call): Kill all current values for any subprogram call if
14385 flag Suppress_Value_Tracking_On_Call is set.
14386 (Resolve_Type_Conversion): Generate error message the the operand
14387 or target of interface conversions come from a limited view.
14388 (Check_Infinite_Recursion): Ignore generated calls
14389 (Check_Allocator_Discrim_Accessibility): New procedure for checking
14390 that an expression that constrains an access discriminant in an
14391 allocator does not denote an object with a deeper level than the
14392 allocator's access type.
14393 (Resolve_Allocator): In the case of an allocator initialized by an
14394 aggregate of a discriminated type, check that associations for any
14395 access discriminants satisfy accessibility requirements by calling
14396 Check_Allocator_Discrim_Accessibility.
14397 (Resolve_Equality_Op): Handle comparisons of anonymous access to
14398 subprogram types in the same fashion as other anonymous access types.
14399 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14400 message that is not a continuation message.
14401 (Resolve_Type_Conversion): Add missing support for conversion to
14403 (Resolve_Actuals): Introduce a transient scope around the call if an
14404 actual is a call to a function returning a limited type, because the
14405 resulting value must be finalized after the call.
14406 (Resolve_Actuals): If the call was given in prefix notations, check
14407 whether an implicit 'Access reference or implicit dereference must be
14408 added to make the actual conform to the controlling formal.
14410 2007-06-06 Robert Dewar <dewar@adacore.com>
14411 Javier Miranda <miranda@adacore.com>
14413 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14414 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14415 overriding of an inherited private subprogram now there is no need to
14416 inherit its dispatching slot and reduce the size of the dispatch table.
14417 Set_All_DT_Position now ensures that the same slot is now assigned to
14418 both entities. This is required to statically build the dispatch table.
14419 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14420 of calling Set_All_DT_Position to re-evaluate the position of the
14421 entries in the dispatch table. Such reevaluation is not desired if
14422 the tagged type is already frozen.
14424 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14425 Gary Dismukes <dismukes@adacore.com>
14426 Robert Dewar <dewar@adacore.com>
14427 Javier Miranda <miranda@adacore.com>
14429 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14430 reference acts as an lvalue when the attribute name modifies the prefix
14431 (Is_Coextension_Root): New routine.
14432 (Mark_Static_Coextensions): New routine.
14433 (Type_Access_Level): Revise code for checking the level of the
14434 anonymous access type of a return object.
14435 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14436 (Matches_Prefixed_View_Profile): Remove the no longer necessary
14437 retrieval of the corresponding controlling record type.
14438 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14439 concurrent types declared within a generic as well as class wide types.
14440 Emit a mode incompatibility error whenever a protected entry or routine
14441 override an interface routine whose first parameter is not of mode
14442 "out", "in out" or access to variable.
14443 (Overrides_Synchronized_Primitive): Rename to
14444 Find_Overridden_Synchronized_Primitive.
14445 (Collect_Interface_Components): New subprogram that collects all the
14446 components of a tagged record containing tags of secondary dispatch
14448 (Add_Global_Declaration): New procedure
14449 (Abstract_Interface_List): Handle properly the case of a subtype of a
14451 (Type_Access_Level): In the case of a type whose parent scope is a
14452 return statement, call Type_Access_Level recursively on the enclosing
14453 function's result type to determine the level of the return object's
14455 (Build_Elaboration_Entity): Build name of elaboration entity from the
14456 scope chain of the entity, rather than the unit name of the file name.
14457 (Check_Nested_Access): New procedure.
14458 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14459 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14460 (Get_Renamed_Entity): Utility routine for performing common operation
14461 of chasing the Renamed_Entity field of an entity.
14463 2007-06-06 Robert Dewar <dewar@adacore.com>
14465 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14467 (Check_A_Call): Add check for entry call which was causing blowup
14469 2007-06-06 Olivier Hainque <hainque@adacore.com>
14471 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14472 special code on ia64-vms to handle major incompatibilities between the
14473 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14474 this routine with a very different set of arguments and expectations on
14477 2007-06-06 Thomas Quinot <quinot@adacore.com>
14479 * socket.c (__gnat_close_signalling_fd): New function.
14480 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14481 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14482 New supporting functions for task safe Netdb operations.
14484 2007-06-06 Thomas Quinot <quinot@adacore.com>
14485 Olivier Hainque <hainque@adacore.com>
14487 * a-except-2005.ads, a-except-2005.adb
14488 (Raise_From_Controlled_Operation): New procedure in
14489 (private part of) Ada.Exceptions (standard runtime version). Used to
14490 provide informational exception message when Program_Error is raised as
14491 a result of an Adjust or Finalize operation propagating an exception.
14492 (Rmsg_28): Fix description for E.4(18) check.
14493 (Raise_Current_Excep): Call Debug_Raise_Exception just before
14494 propagation starts, to let debuggers know about the event in a reliable
14496 Take the address of E and dereference to make sure it is homed on stack
14497 and prevent the stores from being deleted, necessary for proper
14498 debugger behavior on "break exception" hits.
14499 (Local_Raise): Moved to System.Exceptions
14501 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14502 exception message from the current occurrence and raise Program_Error
14503 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14505 2007-06-06 Jose Ruiz <ruiz@adacore.com>
14506 Arnaud Charlet <charlet@adacore.com>
14508 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14511 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14512 priority associated to a lock.
14514 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14515 assertion to take into account case of no abort restriction.
14516 (Initialize_Protection_Entries): Add initialization for the field
14517 New_Ceiling associated to the protected object.
14518 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14521 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14522 since this function needs to be set consistently with Update_Exception.
14524 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14525 since this function needs to be set consistently with Update_Exception.
14527 * s-taskin.ads: Update comments on
14528 Interrupt_Server_Blocked_On_Event_Flag.
14529 (Unbind_Handler): Fix handling of server_task wakeup
14530 (Server_Task): Set self's state so that Unbind_Handler can take
14531 appropriate actions.
14532 (Common_ATCB): Now use a constant from System.Parameters to determine
14533 the max size of the Task_Image field.
14535 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14536 Initialize_Analyzer function.
14537 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14538 take into account case of no abort restriction.
14539 ([Vulnerable_]Complete_Master): Modify assertion.
14541 * s-tataat.adb (Finalize): Use the nestable versions of
14542 Defer/Undefer_Abort.
14544 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14546 * s-tpobop.ads: Update comments.
14548 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14549 of locking the object manually, to avoid inconsistencies between
14550 Lock/Unlock_Entry assertions.
14552 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14554 application and System.Parameters.No_Abort is True.
14555 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14556 (Unbind_Handler): Fix handling of server_task wakeup
14557 (Server_Task): Set self's state so that Unbind_Handler can take
14558 appropriate actions.
14560 2007-06-06 Thomas Quinot <quinot@adacore.com>
14562 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14563 declarations instead of an explicit null body, for conciseness.
14565 2007-06-06 Robert Dewar <dewar@adacore.com>
14567 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14568 illegal aggregate and the type is still Any_Composite.
14569 (Subtypes_Statically_Match): Fix problem of empty discriminant list
14571 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14573 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14574 to prevent subsequent expansion.
14576 2007-06-06 Robert Dewar <dewar@adacore.com>
14578 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14580 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14581 Robert Dewar <dewar@adacore.com>
14583 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14585 (Write_Itype): Handle case of string literal subtype, which
14586 comes up in this context.
14587 (Update_Itype): when debugging expanded code, update sloc of itypes
14588 associated with defining_identifiers and ranges, for gdb use.
14589 (Sprint_Node_Actual): Add static keyword to object or exception
14590 declaration output if Is_Statically_Allocated is True.
14591 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14592 or task body, so that the tree carries the proper Sloc information for
14594 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14596 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14598 * s-secsta.adb (Chunk): Ensure this object has a static size known at
14599 compile time, to avoid dynamic memory allocation
14600 (Elaboration code): Only use dynamic memory allocation when needed.
14602 2007-06-06 Quentin Ochem <ochem@adacore.com>
14604 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14606 (Stack_Analyzer): Added field "Overflow_Guard"
14607 (Task_Result): Added field "Overflow_Guard".
14608 (Index_Str): New constant.
14609 (Task_Name_Str): New constant.
14610 (Actual_Size_Str): New constant.
14611 (Pattern_Array_Element_Size): New constant.
14612 (Get_Usage_Range): New subprogram.
14613 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14614 Now align the output.
14616 (Initialize): Added value for Overflow_Guard.
14617 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14618 Update the value of the overflow guard according to the actual
14619 beginning of the pattern array.
14620 (Initialize_Analyzer): Added parameter Overflow_Guard.
14621 Take this parameter into accound when computing the max size.
14622 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14623 (Report_Result): Removed extra useless procedure.
14624 Updated call to Output_Result.
14625 Moved full computation of the Task_Result here.
14627 2007-06-06 Thomas Quinot <quinot@adacore.com>
14629 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14630 Thread_Blocking_IO, always True by default, set False on a per-runtime
14632 Add Windows-specific constants
14633 Add new constant Need_Netdb_Buffer.
14634 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14635 not, whether to use getXXXbyYYY_r.
14637 * gsocket.h: Add new constant Need_Netdb_Buffer.
14638 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14639 not, whether to use getXXXbyYYY_r.
14641 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14643 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14644 than their first call.
14645 Add type Dummy_Communication_Block used in the generation of the pre-
14646 defined dispatching primitive _disp_asynchronous_select.
14647 (Storage_Element): Put Pragma Universal_Aliasing on it.
14649 2007-06-06 Vincent Celier <celier@adacore.com>
14651 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14654 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14655 letter if it is not followed by a '/' or a '\'.
14656 (Windows): New Boolean function
14658 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14660 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14662 (Containing_Directory): Raise Use_Error when the directory is a root
14664 (Extension): When returning the result, use a conversion to Result_Type,
14665 not a qualification.
14667 2007-06-06 Robert Dewar <dewar@adacore.com>
14669 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14670 (Set_Style_Check_Options): Recognize new -gnatyg style switch
14672 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14673 Warn_On_Non_Local_Exception to False, to turn off warnings for
14674 No_Exception_Propagation in ZFP runtime.
14675 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14677 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14679 2007-06-06 Vincent Celier <celier@adacore.com>
14681 * switch-b.adb (Scan_Binder_Switches): Add processing for new
14684 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14685 (Scan_Make_Switches): Recognize new switch -aP
14687 2007-06-06 Matthew Gingell <gingell@adacore.com>
14688 Jose Ruiz <ruiz@adacore.com>
14690 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14691 VxWorks task descriptor in the Ada run time, call a C subprogram
14692 (__gnat_get_stack_info) that extracts the required information.
14694 * sysdep.c: Back out temporary lynxos workaround.
14695 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14696 time the stack information associated to the currently executing task.
14697 Only VxWorks systems require this function.
14699 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14701 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14702 add the stack bias if the offset is computed from a frame address.
14703 (__gnat_backtrace): Adjust for above change.
14705 2007-06-06 Thomas Quinot <quinot@adacore.com>
14707 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14708 PE_Non_Transportable_Actual.
14709 (By_Descriptor_Last): New constant.
14710 (By_Copy_Return): Likewise.
14712 2007-06-06 Vincent Celier <celier@adacore.com>
14714 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14717 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14718 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14719 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14720 Add missing comment for /OPTIMIZE=SPACE
14721 Add entry for OPTIMIZE=SPACE
14722 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14723 Add documentation for new qualifiers corresponding to -gnatw.c/.C
14725 2007-06-06 Vincent Celier <celier@adacore.com>
14726 Robert Dewar <dewar@adacore.com>
14728 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14731 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14732 Document gnatbind switch -a
14733 (case Constructions): Document that variables declarations are allowed
14734 for previously declared variables.
14735 Fix external lib project example
14736 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14737 Indicate that "#if not X or Y then" is not allowed in input files to
14739 Document gnatw.x and gnatw.X warning flags
14740 Mention -Winline switch to activate warnings when back-end inlining is
14742 Add gnatcheck rule descriptions
14743 Describe how to use the GNAT driver to call a tool on a closure.
14744 Describe how to run project-wide checks or metrics.
14745 Document gnatbind's -R option
14746 Updated to account for Ada 2005 support
14748 * gnat_rm.texi (Case Construction): Allow variable declarations for
14749 previously declared variables.
14750 (Representation Clauses and Pragmas): Lift restriction on alignment
14751 clauses for record types.
14752 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14753 Document No_Exception_Propagation restriction
14754 Document No_Body pragma
14755 Updated to account for Ada 2005 support; corrected some typos
14756 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14758 * gnat-style.texi: Make it clear that we never use mode IN for
14759 procedures or functions
14761 * ug_words: Add entries for -gnatw.x and -gnatw.X
14762 Add entries for -gnatw.c/.C
14764 2007-06-06 Pascal Obry <obry@adacore.com>
14765 Vincent Celier <celier@adacore.com>
14767 * makegpr.adb (Add_Archive_Path): Use untouched object and library
14768 dirs and library name.
14769 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14771 (Build_Library): Idem.
14772 (Compile_Individual_Sources): Idem.
14773 (Compile_Link_With_Gnatmake): Idem.
14774 (Compile_Sources): Idem.
14775 (Get_Imported_Directories): Idem.
14776 (Link_Executables): Idem. Same change for the executable dir.
14777 (Check_Compilation_Needed): C_Source_Path new variable containing
14778 the canonical form of Source_Path to check against the source names
14779 in the dependency file.
14780 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14781 verbose mode, display the name of the object directory we're changing
14783 (Saved_Switches): New name of table X_Switches
14784 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
14785 (Usage): New line for switch -aP
14786 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
14787 testing if a directory should be added to the search path.
14789 2007-06-06 Javier Miranda <miranda@adacore.com>
14791 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
14792 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
14793 declaration after freezing point of all its associated tagged types;
14794 otherwise such types are frozen too early.
14796 2007-06-06 Robert Dewar <dewar@adacore.com>
14798 * a-reatim.adb: Documentation addition
14800 * g-cgideb.adb: Minor code reorganization
14802 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
14803 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
14804 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
14806 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
14807 function. Change name New_Scope to Push_Scope
14808 (Get_Debug_Flag_K): Remove unused obsolete function.
14810 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
14813 * makeusg.adb: Update Copyright notice
14814 Add line for switch -aP
14816 * makeusg.adb: Fix wording of some usage messages
14818 * s-assert.adb (Raise_Assert_Failure): Add call to
14819 Debug_Raise_Assert_Failure.
14821 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
14822 (2, Standard'Alignment) for compatibility with AAMP (where alignment
14823 is restricted to 1).
14825 * s-wchjis.adb: Remove use of System.Pure_Exceptions
14827 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
14828 node location to No_Location when we're not debugging the expanded
14831 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
14833 * misc.c (enumerate_modes): Consider log2_b to always be one.
14835 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
14837 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
14839 2007-05-02 Pascal Obry <obry@adacore.com>
14841 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
14842 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
14843 encoding support of Stream_IO.
14844 (Write_Unit): Idem.
14846 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
14847 filename and corresponding encoding to match the OS requirement.
14848 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
14849 routine will fail on specific devices like CON: AUX: ...
14851 PR ada/29856: Add missing braces
14853 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
14856 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
14858 2007-04-21 Jan Hubicka <jh@suse.cz>
14860 * misc.c (gnat_expand_body): Don't call target for destructors,
14861 avoid redundant check on syntax errors.
14863 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
14865 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
14866 instead of checking GIMPLE_STMT_P in chain_next.
14868 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
14871 * system-linux-alpha.ads: Disable constant condition warning for the
14872 Default_Bit_Order variable.
14873 * system-linux-s390.ads: Likewise.
14874 * system-linux-s390x.ads: Likewise.
14875 * system-linux-sparc.ads: Likewise.
14877 2007-04-06 Javier Miranda <miranda@adacore.com>
14878 Matt Heaney <heaney@adacore.com>
14879 Robert Dewar <dewar@adacore.com>
14881 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
14882 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
14883 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
14884 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
14885 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
14886 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
14887 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
14888 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
14889 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
14890 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
14891 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
14892 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
14893 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
14894 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
14895 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
14896 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
14897 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
14898 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
14899 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
14900 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
14901 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
14902 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
14903 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
14904 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
14905 s-taprop-tru64.adb, s-taprop-irix.adb,
14906 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
14907 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
14908 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
14909 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
14910 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
14911 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
14912 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
14913 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
14914 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
14915 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
14916 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
14917 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
14918 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
14919 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
14920 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
14921 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
14922 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
14923 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
14924 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
14925 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
14927 Update documentation.
14930 2007-04-06 Robert Dewar <dewar@adacore.com>
14932 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
14933 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14934 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
14935 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
14936 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
14937 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
14938 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
14939 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
14940 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
14941 system-hpux-ia64.ads, targparm.adb,
14942 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
14944 * system.ads: Move Functions_Return_By_DSP to obsolete section,
14945 kept for bootstrap purposes only.
14947 2007-04-06 Arnaud Charlet <charlet@adacore.com>
14949 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
14950 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
14951 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
14952 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
14954 2007-04-06 Robert Dewar <dewar@adacore.com>
14956 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
14957 (Local_Raise): New dummy procedure called when a raise is converted
14958 to a local goto. Used for debugger to detect that the exception
14961 * debug.adb: Document new d.g flag (expand local raise statements to
14962 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
14964 * exp_sel.adb: Use Make_Implicit_Exception_Handler
14966 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
14967 suppress warnings for unused handlers.
14968 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
14969 warnings for raise statements not handled locally.
14970 (Get_RT_Exception_Entity): New function
14971 (Get_Local_Call_Entity): New function
14972 (Find_Local_Handler): New function
14973 (Warn_If_No_Propagation): New procedure
14974 (Expand_At_End_Handler): Call Make_Implicit_Handler
14975 (Expand_Exception_Handlers): Major additions to deal with local handlers
14976 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
14977 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
14980 * exp_ch11.ads (Get_RT_Exception_Entity): New function
14981 (Get_Local_Call_Entity): New function
14983 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
14984 of restrictions that the binder will never suggest adding.
14986 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
14989 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
14990 be with'ed in the presence of pragma Restriction
14991 (No_Exception_Propagation).
14993 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
14995 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
14996 parameter, then the handler is not a suitable target for a local raise,
14997 and this is a violation of restriction No_Exception_Propagation.
14998 (Analyze_Handled_Statements): Analyze choice parameters in exception
14999 handlers before analyzing statement sequence (needed for proper
15000 detection of local raise statements).
15001 (Analyze_Raise_Statement): Reraise statement is a violation of the
15002 No_Exception_Propagation restriction.
15004 * s-rident.ads: Add new restriction No_Exception_Propagation
15006 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15007 function, like Make_Exception_Handler but sets Local_Raise_Statements
15009 (Add_Unique_Serial_Number): Deal with case where this is called during
15010 processing of configuration pragmas.
15012 2007-04-06 Thomas Quinot <quinot@adacore.com>
15013 Pat Rogers <rogers@adacore.com>
15014 Pascal Obry <obry@adacore.com>
15016 * g-stsifd-sockets.adb: New file.
15018 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15019 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15020 g-socthi-vms.adb: Move signalling
15021 fd management to a nested package, so that they can conveniently be
15022 moved to a subunit that is shared across Windows, VMS, and VxWorks
15023 (Ada implementation) or completed with imported bodies from socket.c
15025 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15027 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15028 the signalling file descriptor.
15029 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15030 signalling file descriptor.
15031 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15032 instead of creating a pair of sockets for signalling here.
15034 * g-socthi.adb: Ditto.
15035 Set the runtime process to ignore SIGPIPEs on platforms that support
15036 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15038 * g-socthi-mingw.adb: Ditto.
15039 (WS_Version): Use Windows 2.2.
15040 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15042 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15043 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15045 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15046 added GNAT byte swapping facility
15047 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15049 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15051 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15053 (__gnat_create_signalling_fds): New subprogram.
15054 Set the runtime process to ignore SIGPIPEs on platforms that support
15055 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15057 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
15058 Vincent Celier <celier@adacore.com>
15060 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15061 New version of Ada.Calendar which supports the new upper bound of Ada
15062 time (2399-12-31 86_399.999999999).
15063 The following modifications have been made to the package:
15064 - New representation of time as count of nanoseconds since the start of
15065 Ada time (1901-1-1 0.0).
15066 - Target independent Split and Time_Of routines which service both
15067 Ada 95 and Ada 2005 code.
15068 - Target independent interface to the Ada 2005 children of Calendar.
15069 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15070 - Handling of non-leap centenial years.
15071 - Updated clock function.
15072 - Updated arithmetic and comparison operators.
15074 * a-caldel.adb (To_Duration): Add call to target independent routine in
15075 Ada.Calendar to handle the conversion of time to duration.
15077 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15079 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15081 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15082 targets do not have a natural time zone, GMT is used as a default.
15083 (__gnat_get_task_options): New.
15085 * a-direct.adb (Modification_Time): Add with and use clauses for
15086 Ada.Calendar and Ada.
15087 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15088 since it is no longer needed.
15089 (Duration_To_Time): Removed.
15090 (OS_Time_To_Long_Integer): Removed.
15091 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15092 Formatting Time_Of routines which automatically handle time zones,
15093 buffer periods and leap seconds.
15095 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15096 target independent routines in Ada.Calendar.
15098 * a-calfor.ads, a-calfor.adb:
15099 Code cleanup and addition of validity checks in various routines.
15100 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15103 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15104 independent routine in Ada.Calendar.
15106 2007-04-06 Olivier Hainque <hainque@adacore.com>
15109 (convert_addresses): Adjust prototype and dummy definition to expect an
15110 extra file_name argument.
15112 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15113 filling the now expected file_name argument with the appropriate
15115 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15116 (tracebk): Array of void * instead of char *, corresponding to what
15117 convert_addresses expects.
15118 (exename): New static global, to hold the executable file name to be
15119 used in all convert_addresses invocations.
15120 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15122 (__gnat_gmem_a2l_initialize): Resolve exename.
15123 (__gnat_convert_addresses): Use exename as the convert_addresses
15124 file_name argument.
15126 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15127 "convert_addresses", now expecting a filename argument. Import the
15128 necessary entities to compute the filename to use and pass it to
15131 2007-04-06 Matt Gingell <gingell@adacore.com>
15133 * system-aix.ads: Back out previous change.
15134 (Functions_Return_By_DSP): Removed
15136 2007-04-06 Pascal Obry <obry@adacore.com>
15138 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15139 or the monotonic used by Ada.Real_Time) to compute the sleep duration
15142 2007-04-06 Jose Ruiz <ruiz@adacore.com>
15144 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15145 function. Its value changes in different VxWorks versions, and it is
15146 now handled by the function __gnat_get_task_options.
15148 * s-taprop-vxworks.adb (Create_Task): Call the function
15149 __gnat_get_task_options to get the required options for creating a task.
15151 2007-04-06 Pascal Obry <obry@adacore.com>
15152 Thomas Quinot <quinot@adacore.com>
15154 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15155 dealing with filename.
15156 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15157 filename from a standard string to a wide-string depending on the
15159 (__gnat_freopen): Idem.
15160 (__gnat_current_time): New function (wrapper for time(3) standard C
15163 * g-os_lib.ads (Current_Time): New function. Returns the current
15164 system time as an OS_Time value.
15166 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15167 (Monotonic_Clock): Same.
15169 2007-04-06 Quentin Ochem <ochem@adacore.com>
15171 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15173 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15175 2007-04-06 Jose Ruiz <ruiz@adacore.com>
15177 * a-retide.adb: Add elaboration code to ensure that the tasking run
15178 time is initialized when using delay operations even when no task is
15181 2007-04-06 Javier Miranda <miranda@adacore.com>
15183 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15184 component Num_Prim_Ops.
15185 (Set_Num_Prim_Ops): Removed.
15186 Remove all the assertions because all the routines of this
15187 package are inline always.
15188 (Get_Offset_Index): Add support to primary dispatch tables.
15189 Move the documentation about the dispatch table to a-tags.ads
15190 (Set_External_Tag): Removed
15191 (Inherit_TSD): Removed.
15192 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15193 moved to a-tags.ads
15194 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15195 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15196 of the TSD field "Table" because this field has been renamed to
15198 (Inherit_CPP_DT): Removed.
15199 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15200 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15201 declarations have been moved to a-tags.ads
15202 (Check_Size): Removed.
15203 (Expanded_Name): Updated to get access to the new field of TSD
15204 containing the address of the expanded name.
15205 (Get_Access_Level/Set_Access_Level): Removed.
15206 (Get_Predefined_Prim_Op_Address): Removed.
15207 (Set_Predefined_Prim_Op_Address): Removed.
15208 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15209 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15210 (Set_Expanded_Name): Removed.
15211 (Inherit_DT): Removed.
15212 (Inherit_CPP_DT): Removed.
15213 (Set_RC_Offset): Removed.
15214 (Set_TSD): Removed.
15215 (Base_Address): New function that displaces "this" to point to the base
15216 of the object (that is, to point to the primary tag of the object).
15218 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15219 Javier Miranda <miranda@adacore.com>
15221 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15222 anonymous access component, do not create a master_id if type already
15223 has one, as may happen if the type is a subcomponent of a packed array
15225 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15226 Initialize_Tag): Remove code associated with the old CPP pragmas.
15227 CPP_Virtual and CPP_Vtable are no longer supported.
15228 (Build_Offset_To_Top_Internal): Add support for concurrent record types
15229 (Build_Offset_To_Top_Functions): Add support for concurrent record types
15230 (Freeze_Record_Type): Remove call to
15231 Init_Predefined_Interface_Primitives.
15232 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15233 code required to initialize the tags of the secondary dispatch tables.
15234 This leaves the algoritm more clear.
15235 (Init_Secondary_Tags): Add support for concurrent record types
15236 (Make_Predefined_Primitive_Specs): Code cleanup.
15237 (Predefined_Primitive_Bodies): Code cleanup.
15238 (Build_Master_Renaming): New local subprogram.
15239 (Expand_N_Full_Type_Declaration): Build the master_id associated with
15240 anonymous access to task type components.
15241 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15242 subtype indication are resolved during analysis, and must not be done
15244 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15246 2007-04-06 Geert Bosch <bosch@adacore.com>
15247 Ed Schonberg <schonberg@adacore.com>
15248 Javier Miranda <miranda@adacore.com>
15249 Bob Duff <duff@adacore.com>
15251 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15252 for conversion of a Float_Type'Truncation to integer.
15254 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15255 check if a node is an attribute that can be handled directly by the
15257 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15258 attributes that can be handled directly by the back end.
15259 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15260 use new predicate Is_Access_Protected_Subprogram_Type.
15261 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15262 and Unchecked_Union if it is generated as part of the default Output
15263 procedure for a type with default discriminants.
15264 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15265 if we are compiling under restriction No_Dispatching_Calls.
15266 (Constrained): Use Underlying_Type, in case the type is private without
15267 discriminants, but the full type has discriminants.
15268 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15269 call to Build_Get_Access_Level.
15270 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15271 interface objects requires a call to the run-time subprogram that
15272 returns the base address of the object.
15273 (Valid_Conversion): Improve error message on illegal attempt to store
15274 an anonymous access to subprogram value into a record component.
15276 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15278 (Simplify_Type_Conversion): New procedure that performs simplification
15279 of Int_Type (Float_Type'Truncation (X)).
15280 (Resolve_Type_Conversion): Call above procedure after resolving operand
15281 and before performing checks. This replaces the existing ineffective
15283 (Set_String_Literal_Subtype): When creating the internal static lower
15284 bound subtype for a string literal, use a newly created copy of the
15285 subtree representing the lower bound.
15286 (Resolve_Call): Exclude build-in-place function calls from transient
15287 scope treatment. Update comments to describe this exception.
15288 (Resolve_Equality_Op): In case of dispatching call check violation of
15289 restriction No_Dispatching_Calls.
15290 (Resolve_Call): If the call returns an array, the context imposes the
15291 component type of the array, and the function has one non-defaulted
15292 parameter, rewrite the call as the indexing of a call with a single
15293 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15295 (Resolve_Actuals): If an actual is an allocator for an access parameter,
15296 the master of the created object is the innermost enclosing statement.
15297 (Remove_Conversions): For a binary operator, check if type of second
15298 formal is numeric, to check if an abstract interpretation is present
15299 in the case of exponentiation as well.
15301 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15302 Bob Duff <duff@adacore.com>
15304 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15305 copying a parameter list in a call, set properly the First_Named_Formal
15306 and Next_Named_Formal fields in the new list and in the enclosing call.
15307 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15308 names, to ease typing in the debugger. Improve comments.
15309 (Watch_Node): New variable, intended to be set in the debugger.
15310 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15311 called when the watched node is created.
15312 (New_Node_Debugging_Output): Combined version of local procedures
15313 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15314 with a parameter so that conditional breakpoints like "if Node = 12345"
15316 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15317 Add Elist1 function
15319 2007-04-06 Thomas Quinot <quinot@adacore.com>
15320 Ed Schonberg <schonberg@adacore.com>
15321 Gary Dismukes <dismukes@adacore.com>
15323 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15324 required for a conversion between two access-to-unconstrained-array
15326 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15327 to discriminant constraints on discriminant objects. This rule must
15328 apply as well to discriminants of protected types in private components.
15329 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15330 object of a null-excluding access type then don't require the
15331 the object declaration to have an expression and don't emit a
15334 2007-04-06 Arnaud Charlet <charlet@adacore.com>
15335 Eric Botcazou <botcazou@adacore.com>
15337 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15340 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15341 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15344 * fe.h (Compiler_Abort): Add third parameter.
15346 * misc.c (internal_error_function): Build third argument from current
15347 input location and pass it to Compiler_Abort.
15349 2007-04-06 Gary Dismukes <dismukes@adacore.com>
15351 * cstand.adb (Create_Standard): When the target's storage unit size is
15352 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15355 2007-04-06 Nicolas Roche <roche@adacore.com>
15357 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15358 absolute path can have the following form: device:/a/b. In this case
15359 '/' should be inserted between the path and the filename.
15361 2007-04-06 Olivier Hainque <hainque@adacore.com>
15362 Eric Botcazou <botcazou@adacore.com>
15364 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15365 VAR_DECL to a CONST_DECL we make for a public constant when we know the
15366 corresponding definition has created the so made visible variable.
15367 Handle anonymous access to protected subprogram.
15368 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15369 object with an address clause volatile. Re-enable original fix.
15370 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15372 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15373 associated with either the Equivalent or Root type, instead of the
15375 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15376 subtree for every field of a global record type.
15377 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15378 discriminants, invoke again variable_size on its newly computed sizes.
15380 2007-04-06 Robert Dewar <dewar@adacore.com>
15381 Thomas Quinot <quinot@adacore.com>
15382 Ed Schonberg <schonberg@adacore.com>
15383 Bob Duff <duff@adacore.com>
15385 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15386 (Next_Component_Or_Discriminant): New function and procedure
15387 (First_Index, First_Literal, Master_Id,
15388 Set_First_Index, Set_First_Literal, Set_Master_Id):
15389 Add missing Ekind assertions.
15390 (Is_Access_Protected_Subprogram_Type): New predicate.
15391 (Has_RACW): New entity flag, set on package entities to indicate that
15392 the package contains the declaration of a remote accecss-to-classwide
15394 (E_Return_Statement): This node type has the Finalization_Chain_Entity
15395 attribute, in case the result type has controlled parts.
15396 (Requires_Overriding): Add this new flag, because "requires
15397 overriding" is subtly different from "is abstract" (see AI-228).
15398 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15399 Is_Abstract_Type. Make sure these are called only when appropriate.
15400 (Has_Pragma_Unreferenced_Objects): New flag
15402 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15403 class-wide, the tag of the right-hand side must be an exact match, not
15404 an ancestor of that of the object on left-hand side.
15405 (Move_Activation_Chain): New procedure to create the call to
15406 System.Tasking.Stages.Move_Activation_Chain.
15407 (Expand_N_Extended_Return_Statement): Generate code to call
15408 System.Finalization_Implementation.Move_Final_List at the end of a
15409 return statement if the function's result type has controlled parts.
15410 Move asserts to Build_In_Place_Formal.
15411 (Move_Final_List): New function to create the call statement.
15412 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15413 tagged type, replace generation of call to the run-time subprogram
15414 CW_Membership by call to Build_CW_Membership.
15415 (Expand_N_Return_Statement): Replace generation of call to the run-time
15416 subprogram Get_Access_Level by call to Build_Get_Access_Level.
15417 (Expand_N_Simple_Function_Return): Replace generation of call to the
15418 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15420 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15421 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15422 access to protected operations.
15423 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15424 master and chain actual parameters to a build-in-place function call
15426 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15428 (Make_Build_In_Place_Call_In_Allocator,
15429 Make_Build_In_Place_Call_In_Anonymous_Context,
15430 Make_Build_In_Place_Call_In_Assignment,
15431 Make_Build_In_Place_Call_In_Object_Declaration): Call
15432 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15433 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15434 stubbed procedure with a null body, replace the call with a null
15435 statement without using the full inlining machinery, for efficiency
15436 and to avoid invalid values in source file table entries.
15438 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15439 renamings of calls to build-in-place functions.
15441 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15442 provides the functionality of RTE_Available to record components.
15443 (RTU_Entity): The function Entity has been renamed to RTU_Entity
15444 to avoid undesired overloading.
15445 (Entity): New subprogram that returns the entity for the referened
15446 unit. If this unit has not been loaded, it returns Empty.
15447 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15448 Remove no longer used entities.
15449 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15450 (RE_Type_Specific_Data): New entity.
15451 (RE_Move_Any_Value): New entity.
15452 (RE_TA_A, RE_Get_Any_Type): New entities.
15453 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15454 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15455 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15456 (Entity): New subprogram that returns the entity for the referened
15457 unit. If this unit has not been loaded, it returns Empty.
15458 (RTE): Addition of a new formal that extends the search to the scopes
15459 of the record types found in the chain of the package.
15461 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15462 "abstract subprograms must be visible" message, whether or not the type
15463 is an interface; that is, remove the special case for interface types.
15464 (Analyze_Function_Return): Remove error message "return of task objects
15465 is not yet implemented" because this is now implemented.
15466 (Create_Extra_Formals): Add the extra master and activation chain
15467 formals in case the result type has tasks.
15468 Remove error message "return of limited controlled objects is not yet
15470 (Create_Extra_Formals): Add the extra caller's finalization list formal
15471 in case the result type has controlled parts.
15472 (Process_Formals): In case of access formal types there is no need
15473 to continue with the analysis of the formals if we already notified
15475 (Check_Overriding_Indicator): Add code to check overriding of predefined
15477 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15478 flags for formals that do not require them,.
15479 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15480 hidden entity is use visible or directly visible.
15481 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15482 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15483 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15484 New_Overloaded_Entity): Split Is_Abstract flag into
15485 Is_Abstract_Subprogram and Is_Abstract_Type.
15487 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15488 a return statement's finalization list to the caller's list, used for
15489 build-in-place functions with result type with controlled parts.
15490 Remove no longer used entities.
15492 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15493 longer needed, because the full type is now limited, and therefore a
15494 pass-by-reference type.
15495 (Foreign_Task_Level): New constant.
15497 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15498 move tasks from the activation chain belonging to a return statement to
15499 the one passed in by the caller, and update the master to the one
15500 passed in by the caller.
15501 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15502 of unactivated tasks, so we don't kill the ones that are being returned
15503 by a build-in-place function.
15504 (Create_Task): Ignore AI-280 for foreign threads.
15506 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15507 Robert Dewar <dewar@adacore.com>
15508 Bob Duff <duff@adacore.com>
15509 Gary Dismukes <dismukes@adacore.com>
15511 * errout.adb (Unwind_Internal_Type): Use predicate
15512 Is_Access__Protected_Subprogram_Type.
15514 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15515 (Freeze_Entity, packed array case): Do not override explicitly set
15516 alignment and size clauses.
15517 (Freeze_Entity): An entity declared in an outer scope can be frozen if
15518 the enclosing subprogram is a child unit body that acts as a spec.
15519 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15520 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15521 Remove all code for DSP option
15523 * layout.adb (Layout_Record_Type): Use First/
15524 Next_Component_Or_Discriminant
15525 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15526 to handle properly the anonymous access case.
15528 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15529 for all access attributes, because overload resolution should work the
15530 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15531 causes the error message for the ambiguous "X'Access = Y'Access" and
15532 "X'Unrestricted_Access = Y'Access" and so forth to match.
15533 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15534 now that anonymous access to protected operations have their own kind.
15535 (Resolve_Attribute): In case of dispatching call check the violation of
15536 restriction No_Dispatching_Calls.
15537 (Check_Array_Type): Check new -gnatyA array index style option
15539 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15540 attempt to derive from a synchronized tagged type.
15541 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15542 type, inherit the class-wide type already created, because it may
15543 already have been used in a self-referential anonymous access component.
15544 (Mentions_T): Recognize self-referential anonymous access components
15545 that use (a subtype of) the class-wide type of the enclosing type.
15546 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15547 Derived_Type for Prev formal on call to
15548 Check_Anonymous_Access_Components rather than Empty.
15549 (Make_Incomplete_Type_Declaration): Add test for case where the type has
15550 a record extension in deciding whether to create a class-wide type,
15551 rather than just checking Tagged_Present.
15552 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15553 to stand-alone object declarations as well as component declarations.
15554 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15555 prevent accidental overwriting when enclosing package appears in
15556 a limited_with_clause.
15557 (Array_Type_Declaration): If the component type is an anonymous access,
15558 the associated_node for the itype is the type declaration itself.
15559 (Add_Interface_Tag_Components): Modified to support concurrent
15560 types with abstract interfaces.
15561 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15562 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15563 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15564 to complete the decoration of synchronized interface types. Add also
15565 a call to Check_Abstract_Interfaces to verify the ARM rules.
15566 (Derive_Interface_Subprograms): Modified to support concurrent types
15567 with abstract interfaces.
15568 (Analyze_Subtype_Indication): Resolve the range with the given subtype
15569 mark, rather than delaying the full resolution depending on context.
15570 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15571 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15572 Array_Type_Declaration,Build_Derived_Record_Type,
15573 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15574 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15575 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15576 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15577 called only when appropriate.
15578 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15580 (Analyze_Subtype_Declaration): For an access subtype declaration, create
15581 an itype reference for the anonymous designated subtype, to prevent
15582 scope anonmalies in gigi.
15583 (Build_Itype_Reference): New utility, to simplify construction of such
15586 2007-04-06 Vincent Celier <celier@adacore.com>
15588 * errutil.adb (Initialize): Initialize warnings table, if all warnings
15589 are suppressed, supply an initial dummy entry covering all possible
15592 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15593 and start with only one, such as "-RTS=none".
15594 (Collect_Arguments): Do not check for sources outside of projects.
15595 Do not collect arguments if project is externally built.
15596 (Compile_Sources): Do nothing, not even check if the source is up to
15597 date, if its project is externally built.
15598 (Compile): When compiling a predefined source, add -gnatpg
15599 as the second switch, after -c.
15600 (Compile_Sources): Allow compilation of Annex J renames without -a
15601 (Is_In_Object_Directory): Check if the ALI file is in the object
15602 even if there is no project extension.
15603 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15604 gnatbind if the ALI file effectively exists.
15605 (Initialize): Add the directory where gnatmake is invoked in front of
15606 the path if it is invoked from a bin directory, even without directory
15607 information, so that the correct GNAT tools will be used when spawned
15608 without directory information.
15610 * makeusg.adb: Change switch -S to -eS
15611 Add lines for new switches -we, -wn and -ws
15612 Add line for new switch -p
15614 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15615 Treat_As_Error and there are warnings.
15617 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15618 -gnatww Change gnatmake switch -S to -eS
15619 (Scan_Make_Switches): Code reorganisation. Process separately multi
15620 character switches and single character switches.
15621 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15622 False when switch is not recognized by gnatmake.
15623 (Scan_Make_Switches): Set Setup_Projects True when -p or
15624 --create-missing-dirs is specified.
15626 * fname.adb (Is_Predefined_File_Name): Return True for annex J
15627 renamings Calendar, Machine_Code, Unchecked_Conversion and
15628 Unchecked_Deallocation only when Renamings_Included is True.
15630 * par.adb: Allow library units Calendar, Machine_Code,
15631 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15632 when -gnatg is not specified.
15633 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15634 there is no need to generate always a record_definition_node in case
15635 of synchronized interface types.
15636 (SIS_Entry_Active): Initialize global variable to False
15637 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15638 indicate cases where AI-447 says "not null" is legal.
15640 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15642 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15643 files with with several lines starting with the object fileb name.
15644 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15646 (Initialize): Add the directory where gprmake is invoked in front of the
15647 path, if it is invoked from a bin directory or with directory
15648 information, so that the correct GNAT tools will be used when invoked
15650 (Check_Compilation_Needed): Process correctly backslashes on Windows.
15652 * vms_data.ads: Update switches/qualifiers
15654 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15655 Thomas Quinot <quinot@adacore.com>
15658 If the array component is a discriminated record, the array aggregate
15659 is non-static even if the component is given by an aggregate with
15661 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15662 (Convert_Aggr_In_Allocator): If the allocator is for an access
15663 discriminant and the type is controlled. do not place on a finalization
15664 list at this point. The proper list will be determined from the
15666 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15667 initialize record controller if needed, before the components, to ensure
15668 that they are properly finalized.
15669 (Build_Record_Aggr_Code): For the case of an array component that has a
15670 corresponding array aggregate in the record aggregate, perform sliding
15673 2007-04-06 Javier Miranda <miranda@adacore.com>
15674 Gary Dismukes <dismukes@adacore.com>
15675 Ed Schonberg <schonberg@adacore.com>
15677 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15678 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15680 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15681 accessibility on class-wide allocators if the allocator occurs at the
15682 same scope level as the allocator's type. The check is guaranteed to
15683 succeed in that case, even when the expression originates from a
15684 parameter of the containing subprogram.
15685 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15686 under No_Dispatching_Calls restriction. During the semantic analysis
15687 we already notified such violation.
15688 (Tagged_Membership): Constant folding. There is no need to check
15689 the tag at run-time if the type of the right operand is non
15690 class-wide abstract.
15691 Replace call to Is_Ancestor by call to Is_Parent
15692 to support concurrent types with interface types.
15693 (Expand_N_Allocator): Add an assertion associated with the generation
15695 (Expand_N_Slice): Do not enable range check to nodes associated
15696 with the frontend expansion of the dispatch table.
15697 (Is_Local_Access_Discriminant): Subsidiary function to
15698 Expand_N_Allocator.
15699 (Tagged_Membership): Replace generation of call to the run-time
15700 subprogram CW_Membership by call to Build_CW_Membership.
15701 (Expand_Allocator_Expression): Replace generation of call to the
15702 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15704 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15705 initialize most the TSD components by means of an aggregate.
15706 Modify the declaration of the object containing the TSD
15707 because we now expand code that has a higher level of abstraction.
15708 The TSD has a discriminant containing the Inheritance Depth Level,
15709 value that is used in the membership test but also to fix the size
15710 of the table of ancestors.
15711 (Expand_Interface_Conversion): Insert function body at the closest place
15712 to the conversion expression, to prevent access-before-elaboration
15713 errors in the backend.
15714 Code improved to reduce the size of the dispatch table if
15715 compiling under restriction No_Dispatching_Calls plus code cleanup.
15716 Code reorganization plus removal of calls to Set_Num_Prim_Ops
15717 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15718 (Expand_Dispatching_Call): Minor code reorganization plus addition of
15719 code to return immediately if compiling under No_Dispatching_Calls
15721 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15722 CPP_Virtual and CPP_Vtable are no longer supported.
15723 (Expand_Interface_Conversion): Add missing support for interface type
15725 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15726 Is_Parent to support concurrent types with interfaces.
15727 (Init_Predefined_Interface_Primitives): Removed.
15728 (Make_Secondary_DT): Modified to support concurrent record types.
15729 (Set_All_DT_Position): Modified to support concurrent record types.
15730 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15731 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15732 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15733 with CW_Membership.
15734 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15735 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15736 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15737 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15738 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15739 (Expand_Dispatching_Call): Replace generation of call to the run-time
15740 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15741 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15743 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15744 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15745 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15746 Build_Set_Prim_Op_Address.
15747 (Get_Remotely_Callable): Subprogram removed.
15748 (Init_Predefined_Interface_Primitives): Replace generation of call to
15749 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15752 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15753 First (Parameter_Associations ()) with the call to First_Actual that
15754 returns an actual parameter expression for both named and positional
15757 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15758 check violation of restriction No_Dispatching_Calls.
15759 (Check_Controlling_Type): A formal of a tagged incomplete type is a
15760 controlling argument.
15762 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15763 First/Next_Component_Or_Discriminant
15764 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15765 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15766 specify Any_Limited_Interface, and this functionality is already
15767 provided by the function Has_Abstract_Interfaces.
15768 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15769 support concurrent types implementing interfaces.
15770 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15771 specify kind Any_Limited_Interface, and this functionality is already
15772 provided by the function Has_Abstract_Interfaces.
15773 (Remove_Side_Effects): replace Controlled_Type by
15774 CW_Or_Controlled_Type whenever the issue is related to
15775 using or not the secondary stack.
15777 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15778 P_Interface_Type_Definition to fulfill the new interface (the formal
15779 Is_Synchronized is no longer required).
15781 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
15782 Update dependencies.
15784 * exp_atag.ads, exp_atag.adb: New file
15786 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15787 Bob Duff <duff@adacore.com>
15788 Cyrille Comar <comar@adacore.com>
15790 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
15791 anonymous, use finalization list of enclosing dynamic scope.
15792 (Expand_N_Package_Declaration): For a library package declaration
15793 without a corresponding body, generate RACW subprogram bodies in the
15794 spec (just as we do for the task activation call).
15795 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
15796 Is_Abstract_Type. Make sure these are called only when appropriate.
15797 Remove all code for DSP option
15798 (CW_Or_Controlled_Type): new subprogram.
15800 2007-04-06 Eric Botcazou <botcazou@adacore.com>
15801 Ed Schonberg <schonberg@adacore.com>
15802 Gary Dismukes <dismukes@adacore.com>
15804 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
15805 parameter. If it is set to true, return a result capped according to
15806 the global upper bound for the index of an entry family.
15807 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
15808 (Build_Find_Body_Index): Adjust for above change.
15809 (Entry_Index_Expression): Likewise.
15810 (Is_Potentially_Large_Family): New function extracted from...
15811 (Collect_Entry_Families): ...here. Call it to detect whether the family
15812 is potentially large.
15813 (Build_Entry_Count_Expression): If the family is potentially large, call
15814 Family_Size with 'Cap' set to true.
15815 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
15816 a protected version of an operation declared in the private part of
15817 a protected object, because they may be invoked through a callback.
15818 (Set_Privals): If the type of a private component is an anonymous access
15819 type, do not create a new itype for each protected body.
15820 If the body of a protected operation creates
15821 controlled types (including allocators for class-widetypes), the
15822 body of the corresponding protected subprogram must include a
15824 (Build_Activation_Chain_Entity): Build the chain entity for extended
15826 (Type_Conformant_Parameters): Use common predicate Conforming_Types
15827 to determine whether operation overrides an inherited primitive.
15828 (Build_Wrapper_Spec): Add code to examine the parents while looking
15829 for a possible overriding candidate.
15830 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
15831 hold an actual parameter value since its initialization is separated
15832 from the the declaration. Prevents errors on null-excluding access
15835 2007-04-06 Thomas Quinot <quinot@adacore.com>
15836 Pablo Oliveira <oliveira@adacore.com>
15838 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
15839 Do an Unchecked_Conversion to handle the passage from the Underlying
15840 Type to the Base Type when calling Build_To_Any_Call and
15841 Build_From_Any_Call.
15842 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
15843 E_Constant, depending upon Variable formal.
15844 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15845 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
15846 parameter that requires an extra constrained parameter, declare
15847 temporary for actual as a variable, not a constant.
15848 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
15849 the unit being compiled is the one that contains the stub type.
15850 Change primitive operation name for the RACW associated with a RAS
15851 from Call to _Call so it cannot clash with any legal identifier.
15852 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
15854 (Append_RACW_Bodies): New subprogram.
15855 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
15856 Add_Receiving_Stubs_To_Declarations functions.
15857 When expanding a package body, this list correspond to the
15858 statements in the HSS at the end of the pacakge.
15859 When expanding a package spec, this list correspond to the
15861 (Add_Receiving_Stubs_To_Declarations): Append the function
15862 registering the receiving stubs at the end of the 'Stmts' list.
15863 (RCI_Package_Locator): Pass the new Version generic formal when
15864 instantiating a RCI_Locator package.
15865 (Build_From_Any_Function): To compute the High bound for an
15866 unconstrained array actual, we add the Low bound with the length.
15867 Thus we must convert the low bound and the length to an appropriate
15868 type before doing the sum.
15869 (Build_Subprogram_Receiving_Stubs, PolyORB):
15870 * Retrieve the extra formals parameters at the
15871 end of the parameter stream.
15872 * Use Move_Any_Value to write back out parameters
15873 after executing the request as it is more efficient
15874 than Copy_Any_Value.
15875 * Build the any containing Extra Formals with the
15876 appropriate typecode.
15877 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
15878 empty Component_List.
15879 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
15880 the tree the declaration for an object that serves as actual parameter
15881 in server-side stubs.
15882 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
15883 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
15884 Use Build_Actual_Object_Declaration to prepare the actuals.
15885 (Add_Parameter_To_NVList): Set the parameter mode to In for
15886 Extra Constrained Parameters.
15887 (Build_General_Calling_Stubs): Set the parameter type to boolean for
15888 Extra Constrained parameters.
15889 (Build_To_Any_Function, Build_From_Any_Function,
15890 Built_TypeCode_Function): When Typ is implicit, call the correct
15891 function with the first not implicit parent type.
15892 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
15893 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
15894 typecode from the Etype. Therefore we retrieve the correct typecode
15895 with a call to Get_Any_Type.
15896 (Copy_Specification): Do controlling formal type substitution based on
15897 Is_Controlling_Formal flag, instead of caller-provided object type.
15898 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
15899 a RACW primitive operation, we might get a subprogram declaration for an
15900 ancestor of the RACW designated type (not for the designated type
15901 itself), in the case where this operation is inherited. In this case we
15902 have no easy means of determining the original tagged type for which
15903 the primitive was declared, so instead we now rely on
15904 Copy_Specification to use the Is_Controlling_Formal flag to determine
15905 which formals require type substitution.
15907 2007-04-06 Robert Dewar <dewar@adacore.com>
15908 Ed Schonberg <schonberg@adacore.com>
15910 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
15911 GNAT.Current_Exception are not allowed if pragma Restrictions
15912 (No_Exception_Propagation) is set and in any case make the associated
15913 handler unsuitable as a target for a local raise statement.
15914 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
15915 run-time subprogram CW_Membership by call to Build_CW_Membership.
15916 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
15917 by a function call, a temporary must be created before expanding the
15918 Constructor_Call itself, to prevent out-of-order elaboration in the
15919 back-end when stack checking is enabled..
15921 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15923 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
15924 result are the bounds of the left operand, not the right.
15926 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15929 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
15930 discriminant defaults.
15931 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
15932 (Make_Component_List_Attributes): Ditto.
15934 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15935 Bob Duff <duff@adacore.com>
15937 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
15938 an association with a box as providing a value even though the
15939 initialization procedure for the type is not available.
15940 (Resolve_Record_Aggregate): Check that a choice of an association with a
15941 box corresponds to a component of the type.
15942 (Resolve_Record_Aggregate): Split Is_Abstract flag into
15943 Is_Abstract_Subprogram and Is_Abstract_Type.
15945 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
15948 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
15949 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15950 called only when appropriate.
15952 2007-04-06 Olivier Hainque <hainque@adacore.com>
15954 * g-alleve.ads (Low Level Vector type definitions): Map each to the
15955 associated vector view instead of all to the unsigned char view.
15957 * g-altcon.adb (Generic_Conversions): New internal generic package,
15958 offering facilities for all the Vector/View conversion routines
15959 implemented by this unit.
15960 (To_View/To_Vector - all versions): Reimplemented in a systematic
15961 manner, using the internal Generic_Conversions facilities.
15963 2007-04-06 Pascal Obry <obry@adacore.com>
15965 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
15967 (Create): Free the source string before storing the new one.
15969 2007-04-06 Vincent Celier <celier@adacore.com>
15971 * g-debpoo.adb (Validity): New package with a complete new
15972 implementation of subprograms Is_Valid and Set_Valid.
15973 (Is_Valid): Move to local package Validity
15974 (Set_Valid): Move to local package Validity
15976 2007-04-06 Arnaud Charlet <charlet@adacore.com>
15977 Pablo Oliveira <oliveira@adacore.com>
15979 * g-expect.adb (Get_Command_Output): When expanding the output buffer
15980 we must ensure that there is enough place for the new data we are going
15983 2007-04-06 Thomas Quinot <quinot@adacore.com>
15985 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
15988 2007-04-06 Jose Ruiz <ruiz@adacore.com>
15989 Vincent Celier <celier@adacore.com>
15991 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
15992 (Stack_String): Add this String that contains the name of the Stack
15993 package in the project file.
15994 (Packages_To_Check_By_Stack): Add this list that contains the packages
15995 to be checked by gnatstack, which are the naming and the stack packages.
15996 (Check_Files): If no .ci files were specified for gnatstack we add all
15997 the .ci files belonging to the projects, including binder generated
15999 (Non_VMS_Usage): Document that gnatstack accept project file switches.
16000 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16001 Add gnatstack to the list of commands that use project file related
16002 switches, and get the single attribute Switches from the stack package
16003 in a project file when calling gnatstack. Parse the -U flag for
16004 processing files belonging to all projects in the project tree.
16005 Remove all processing for command Setup
16007 * prj-attr.adb: Add new package Stack with single attribute Switches
16009 * vms_conv.ads (Command_Type): Add command Stack.
16010 Move to body declarations that are only used in the body: types Item_Id,
16011 Translation_Type, Item_Ptr, Item and its subtypes.
16013 * vms_conv.adb: (Initialize): Add data for new command Stack.
16014 Add declarations moved from the spec: types Item_Id, Translation_Type,
16015 Item_Ptr, Item and its subtypes.
16016 (Cargs_Buffer): New table
16017 (Cargs): New Boolean global variable
16018 (Process_Buffer): New procedure to create arguments
16019 (Place): Put character in table Buffer or Cargs_Buffer depending on the
16021 (Process_Argument): Set Cargs when processing qualifiers for GNAT
16023 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16024 empty, for table Cargs_Buffer.
16025 (Initialize): Remove component Setup in Command_List
16027 2007-04-06 Vincent Celier <celier@adacore.com>
16029 * gprep.adb (Process_Files.Process_One_File): Use full file name when
16030 issuing pragma Source_Reference.
16032 2007-04-06 Emmanuel Briot <briot@adacore.com>
16034 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16035 [[:xdigit:]] character class.
16036 Also raise an exception when an invalid character class is used.
16038 2007-04-06 Pascal Obry <obry@adacore.com>
16040 * i-cstrea.ads: (fopen): Add encoding parameter.
16042 Change reference from a-sysdep.c to sysdep.c in comment.
16043 Update copyright notice.
16044 This set of patch add support for the encoding form parameter.
16046 * mingw32.h (S2WSU): New macro to convert from a string to a
16047 wide-string using the UTF-8 encoding. The S2WS macro supports now only
16048 standard 8bits encoding.
16049 (WS2SU): As above but converting from wide-sring to string.
16050 This is needed as it is necessary to have access to both versions in the
16051 runtime for the form parameter encoding support.
16052 This set of patch add support for the encoding form parameter.
16053 (S2WS): Improve implementation to handle cases where the filename is not
16054 UTF-8 encoded. In this case we default to using the current code page
16055 for the conversion.
16057 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16058 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16059 the constants defined in adaint.h.
16060 (fopen): Add encoding parameter.
16063 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16064 encoding. This is needed for the Reset routine (freopen low level-call).
16066 * s-fileio.adb (Open): Decode encoding form parameter and set the
16067 corresponding encoding value into AFCB structure.
16068 (Reset): Pass the encoding value to freopen.
16069 (Close): Move the call to Lock_Task to the beginning of the procedure.
16071 2007-04-06 Geert Bosch <bosch@adacore.com>
16072 Robert Dewar <dewar@adacore.com>
16074 * i-fortra.ads: Add Double_Complex type.
16076 * impunit.adb: (Is_Known_Unit): New function
16077 Add Gnat.Byte_Swapping
16079 Add new Ada 2005 units
16080 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16081 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16082 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16083 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16085 * impunit.ads (Is_Known_Unit): New function
16087 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16088 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16089 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16090 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16091 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16092 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16095 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16097 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16099 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16100 Arnaud Charlet <charlet@adacore.com>
16102 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16103 __gnat_adjust_context_for_raise.
16104 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16105 implementation of floating point operations as native x86 targets.
16106 So the FPU should be initialized in the same way using finit. Fix
16107 floating point operations accuracy issues.
16108 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16109 member in struct sigaction, so as to avoid warning for incompatible
16112 2007-04-06 Serguei Rybin <rybin@adacore.com>
16114 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16115 switches from previously loaded tree
16117 2007-04-06 Thomas Quinot <quinot@adacore.com>
16119 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16120 cases where a given dependency has a body or not.
16121 (Write_With_File_Names): New subprogram, common code for the two cases
16124 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16125 Javier Miranda <miranda@adacore.com>
16127 * lib-xref.ads, lib-xref.adb:
16128 Modify the loop that collects type references, to include interface
16129 types that the type implements. List each of these interfaces when
16130 building the entry for the type.
16131 (Generate_Definition): Initialize component Def and Typ of new entry
16132 in table Xrefs, to avoid to have these components unitialized.
16133 (Output_References): Split Is_Abstract flag into
16134 Is_Abstract_Subprogram and Is_Abstract_Type.
16135 (Generate_Reference): Add barrier to do not generate the warning
16136 associated with Ada 2005 entities with entities generated by the
16139 2007-04-06 Robert Dewar <dewar@adacore.com>
16140 Arnaud Charlet <charlet@adacore.com>
16141 Vincent Celier <celier@adacore.com>
16143 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16144 Update 'Exception Handling Control' chapter which was outdated.
16145 Minor fix to documentation of -gnatwq
16146 Remove section "Adapting the Run Time to a New C++ Compiler" because
16147 it is now obsolete.
16148 Add passage on need of -nostart-files in some non-ada-main cases.
16149 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16150 Update documentation about Interfacing with C++
16151 Add documentation for new gnatmake switch -p
16152 Add missing protocol part in URLs.
16154 Document pragma Compile_Time_Error
16155 Add documentation for Object_Size indicating that stand alone
16156 objects can have a larger size in some cases.
16157 Add node for GNAT.Byte_Swapping, GNAT.SHA1
16158 Update reference to the Ravenscar profile.
16159 Document pragma Unreferenced_Objects
16161 * gnat-style.texi: Fix typo
16163 2007-04-06 Vincent Celier <celier@adacore.com>
16165 * mlib.adb (Building_Library): Only output "building a library..." in
16168 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16169 files in verbose mode.
16171 * mlib-utl.adb (Ar): Only output the first object files when not in
16173 (Gcc): Do not display all the object files if not in verbose mode, only
16176 2007-04-06 Robert Dewar <dewar@adacore.com>
16178 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16179 it no longer destroys the contents of Name_Buffer or Name_Len and
16180 non-standard and invalid names are handled better.
16181 (Get_Decoded_Name_String): Improve performance by using
16182 Name_Has_No_Encodings flag in the name table.
16183 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16184 Used for debugging printouts.
16186 2007-04-06 Robert Dewar <dewar@adacore.com>
16187 Javier Miranda <miranda@adacore.com>
16188 Bob Duff <duff@adacore.com>
16190 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16191 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16192 there is no need to generate always a record_definition_node in case
16193 of synchronized interface types.
16194 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16195 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16196 illegal in Ada 95, in cases where it is legal. Change the warnings to
16197 errors in other cases. Don't give the error unless the "not null"
16198 parses properly. Correct the source position at which the error occurs.
16199 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16200 P_Null_Exclusion, to suppress "not null" warnings.
16201 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16202 associated goto statements.
16204 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16207 * scans.ads (Type_Token_Location): New flag
16209 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16210 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16211 P_Null_Exclusion, to suppress "not null" warnings.
16213 2007-04-06 Robert Dewar <dewar@adacore.com>
16214 Javier Miranda <miranda@adacore.com>
16215 Bob Duff <duff@adacore.com>
16216 Vincent Celier <celier@adacore.com>
16218 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16219 (Extensions_Allowed): No longer sets Ada_Version
16220 Entry for pragma Unreferenced_Objects
16222 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16223 system.tasking if pragma priority used in a procedure
16224 (Analyze_Pragma, case Warning): Handle dot warning switches
16225 (Process_Compile_Time_Warning_Or_Error): New procedure
16226 (Analyze_Pragma): Add processing for Compile_Time_Error
16227 Add support for extra arguments External_Name and Link_Name.
16228 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16229 (Process_Import_Or_Interface): Add support for the use of pragma Import
16231 (Extensions_Allowed): No longer affects Ada_Version
16232 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16233 Is_Abstract_Type. Make sure these are called only when appropriate.
16234 Add processing for pragma Unreferenced_Objects
16236 * snames.h, snames.ads, snames.adb: Add entry for pragma
16238 Add new standard name Minimum_Binder_Options for new gprmake
16239 Add new standard names for gprmake: Archive_Suffix,
16240 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16241 Library_Support, Library_Version_Options,
16242 Shared_Library_Minimum_Options,
16243 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16244 Change Name_Call to Name_uCall so that it cannot clash with a legal
16246 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16247 Append C_Plus_Plus to convention identifiers as synonym for CPP
16248 Add new standard names Stack and Builder_Switches
16249 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16250 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16251 Run_Path_Option, Toolchain_Version.
16252 Entry for pragma Unreferenced_Objects
16254 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16255 switches, without repetition of "eD". Make sure that last character of
16256 -gnatep= switch is not taken as -gnat switch character.
16257 Complete rewrite of circuit for handling saving compilation options
16258 Occasioned by need to support dot switchs for -gnatw, but cleans up
16260 -gnatX does not affect Ada_Version
16261 Include -gnatyA in -gnatg style switches
16263 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16264 warnings on return objects.
16265 (Warn_On_Useless_Assignment): Exclude warnings on return objects
16266 (Set_Dot_Warning_Switch): New procedure
16267 (Check_References): Add missing case of test for
16268 Has_Pragma_Unreferenced_Objects
16269 (Output_Unreferenced_Messages): Implement effect of new pragma
16270 Unreferenced_Objects, remove special casing of limited controlled
16273 2007-04-06 Vincent Celier <celier@adacore.com>
16275 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16276 the default project path, initially done during elaboration of the
16278 If the prefix returned by Sdefault is null, get the prefix from a call
16279 to Executable_Prefix_Path.
16280 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16283 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16284 canonical directory name to open the directory from which files are
16286 (Record_Other_Sources): Idem.
16287 (Locate_Directory): Add the possibility to create automatically missing
16288 directories when Setup_Projects is True.
16289 Call Locate_Directory so that the directory will be created when
16290 Setup_Projects is True, for object dir, library dir, library ALI dir,
16291 library source copy dir and exec dir.
16293 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16296 2007-04-06 Robert Dewar <dewar@adacore.com>
16298 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16299 Use First/Next_Component_Or_Discriminant
16300 (Analyze_Record_Representation_Clause):
16301 Use First/Next_Component_Or_Discriminant
16302 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16303 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16304 definition if type is unconstrained.
16305 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16306 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16307 Is_Abstract_Subprogram and Is_Abstract_Type.
16308 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16310 * repinfo.adb (List_Record_Info): Use First/
16311 Next_Component_Or_Discriminant.
16313 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16316 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16317 Include -gnatyA in default switches
16319 * opt.ads: (Warn_On_Non_Local_Exception): New flag
16320 (Warn_On_Reverse_Bit_Order): New flag
16321 (Extensions_Allowed): Update the documentation.
16322 (Warn_On_Questionable_Missing_Parens): Now on by default
16324 * usage.adb: Add documentation of -gnatw.x/X switches
16325 Document new -gnatyA style switch
16326 -gnatq warnings are on by default
16328 2007-04-06 Ed Falis <falis@adacore.com>
16330 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16331 full word is no longer compared twice.
16333 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16335 * sem_ch10.adb (Install_Limited_Context_Clauses.
16336 Expand_Limited_With_Clause): Use a new copy of selector name in the
16337 call to Make_With_Clause. This fixes the tree structure for ASIS
16338 purposes. Nothing is changed in the compiler behaviour.
16339 (Process_Body_Clauses): Handle properly use clauses whose prefix is
16340 a package renaming.
16341 (Install_Limited_With_Clauses): Do not install non-limited view when it
16342 is still incomplete.
16344 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16345 Gary Dismukes <dismukes@adacore.com>
16347 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16348 when capturing size information, instead of base type, which for a
16349 formal array type will be the unconstrained type.
16350 (Analyze_Formal_Object_Declaration): Add check for illegal default
16351 expressions for a formal in object of a limited type.
16352 (Instantiate_Object): Ditto.
16353 (Check_Formal_Package_Instance): Skip entities that are formal objects,
16354 because they were defaulted in the formal package and no check applies
16356 (Check_Formal_Package_Instance): Extend conformance check to other
16357 discrete types beyond Integer.
16358 (Process_Default): Copy directly the unmatched formal. A generic copy
16359 has already been performed in Analyze_Formal_Package.
16360 (Analyze_Associations): If a formal subprogram has no match, check for
16361 partial parametrization before looking for a default, to prevent
16363 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16364 not set the instantiation environment before analyzing the actuals.
16365 Fixes regression on 8515-003 with implementation of AI-133.
16366 Set_Instance_Env checks whether the generic unit is a predefined
16367 unit, in which case the instance must be analyzed with the latest Ada
16368 mode. This setting must take place after analysis of the actuals,
16369 because the actuals must be analyzed and frozen in the Ada mode extant
16370 outside of the current instantiation.
16371 (Save_Env, Restore_Env): Preserve and restore the configuration
16372 parameters so that predefined units can be compiled in the proper Ada
16374 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16375 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16376 and Is_Abstract_Type.
16377 (Analyze_Formal_Package): For better error recovery, Add exception
16378 handler to catch Instantion_Error, which can be raised in
16379 Analyze_Associations
16381 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16382 Bob Duff <duff@adacore.com>
16383 Gary Dismukes <dismukes@adacore.com>
16385 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16386 prefix type is a discriminated subtype of the type of the formal.
16387 (Analyze_Allocator): Collect all coextensions regardless of the context.
16388 Whether they can be allocated statically is determined in exp_ch4.
16389 (Analyze_Selected_Component): If the prefix is a limited view and the
16390 non-limited view is available, use the non-limited one.
16391 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16392 therefore illegal), suggest a qualified expression rather than a type
16393 conversion, because a type conversion would be illegal in this context.
16394 (Anayze_Allocator): Trace recursively all nested allocators so that all
16395 coextensions are on the corresponding list for the root. Do no mark
16396 coextensions if the root allocator is within a declaration for a stack-
16397 allocated object, because the access discriminants will be allocated on
16399 (Analyze_Call): Remove restriction on calls to limited functions for the
16400 cases of generic actuals for formal objects, defaults for formal objects
16401 and defaults for record components.
16402 (Analyze_Allocator): Before analysis, chain coextensions on the proper
16403 element list. Their expansion is delayed until the enclosing allocator
16404 is processed and its finalization list constructed.
16405 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16406 for an operation with the given name among the primitive operations of
16407 the corresponding record type.
16408 (Analyze_Selected_Component): If the prefix is a task type that
16409 implements an interface, and there is no entry with the given name,
16410 check whether there is another primitive operation (e.g. a function)
16412 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16413 properly the indexing of a function call written in prefix form, where
16414 the function returns an array type, and all parameters of the function
16415 except the first have defaults.
16416 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16417 the original operands, rather than relocating them, for efficiency and
16418 to work properly when an operand is overloaded.
16419 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16420 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16421 (Analyze_Selected_Component): If the prefix is a private extension, only
16422 scan the visible components, not those of the full view.
16423 (Try_Primitive_Operation): If the operation is a procedure, collect all
16424 possible interpretations, as for a function, because in the presence of
16425 classwide parameters several primitive operations of the type can match
16426 the given arguments.
16428 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16429 Robert Dewar <dewar@adacore.com>
16431 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16432 tag-indeterminate call to an abstract function, when the left-hand side
16434 (Analyze_Loop_Statement): Improve detection of infinite loops
16436 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16437 Thomas Quinot <quinot@adacore.com>
16439 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16440 out of Analyze_Package_Declaration, because processing must be applied
16441 to package bodies as well, for deferred constants completed by pragmas.
16442 (Analyze_Package_Declaration): When the package declaration being
16443 analyzed does not require an explicit body, call Check_Completion.
16444 (May_Need_Implicit_Body): An implicit body is required when a package
16445 spec contains the declaration of a remote access-to-classwide type.
16446 (Analyze_Package_Body): If the package contains RACWs, append the
16447 pending subprogram bodies generated by exp_dist at the end of the body.
16448 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16449 Is_Abstract_Subprogram and Is_Abstract_Type.
16450 (Preserve_Full_Attributes): The full entity list is not an attribute
16451 that must be preserved from full to partial view.
16453 * sem_dist.adb (Add_RAS_Dereference_TSS):
16454 Change primitive name to _Call so it cannot clash with any legal
16455 identifier, and be special-cased in Check_Completion.
16456 Mark the full view of the designated type for the RACW associated with
16457 a RAS as Comes_From_Source to get proper view switching when installing
16458 private declarations.
16459 Provite a placeholder nested package body along with the nested spec
16460 to have a place for Append_RACW_Bodies to generate the calling stubs
16461 and stream attributes.
16463 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16464 Robert Dewar <dewar@adacore.com>
16466 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16467 that is a limited view, check the non-limited view if available.
16468 (Undefined): Refine error message for missing with of Text_IO
16469 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16470 to distinguish real missing with cases.
16471 Fix format of all missing with messages
16472 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16473 renaming as body when renamed entity is abstract.
16475 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16476 Javier Miranda <miranda@adacore.com>
16478 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16479 predicate recursive, to handle complex expressions on literals whose
16480 spurious ambiguity comes from the abstract interpretation of some
16482 (Interface_Present_In_Ancestor): Add support to concurrent record
16484 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16485 Is_Abstract_Subprogram and Is_Abstract_Type.
16487 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16488 Javier Miranda <miranda@adacore.com>
16490 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16491 dereference of a local object R created as a reference to another
16492 object O, use the access level of O.
16493 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16494 rather than local Same_Formal_Type, to check whether protected operation
16495 overrides an inherited one.
16496 (Same_Formal_Type): New predicate, used when matching signatures of
16497 overriding synchronized operations, to handle the case when a formal
16498 has a type that is a generic actual.
16499 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16500 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16501 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16502 syntactic ambiguities involving indexing of function calls that return
16504 (Abstract_Interface_List): New subprogram that returns the list of
16505 abstract interfaces associated with a concurrent type or a
16506 concurrent record type.
16507 (Interface_Present_In_Parent): New subprogram used to check if a
16508 given type or some of its parents implement a given interface.
16509 (Collect_Abstract_Interfaces): Add support for concurrent types
16510 with interface types.
16511 (Has_Abstract_Interfaces): Add support for concurrent types with
16513 (Is_Parent): New subprogram that determines whether E1 is a parent
16514 of E2. For a concurrent type its parent is the first element of its
16515 list of interface types; for other types this function provides the
16516 same result than Is_Ancestor.
16517 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16518 (Collect_Synchronized_Interfaces): Removed because the subprogram
16519 Collect_Abstract_Interfaces provides this functionality.
16520 (Collect_Abstract_Interfaces): Minor update to give support to
16521 concurrent types and thus avoid undesired code duplication.
16522 (Get_Subprogram_Entity): Handle entry calls.
16523 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16525 (Enter_Name): Do not give -gnatwh hiding warning for record component
16526 entities, they never result in hiding.
16528 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16529 Robert Dewar <dewar@adacore.com>
16531 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16532 to chain nested components that are allocators for access discriminants
16533 of the enclosing object.
16534 Add N_Push and N_Pop nodes
16535 New field Exception_Label added
16536 (Local_Raise_Statements): New field in N_Exception_Handler_Node
16537 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16538 (Is_Coextension): New flag for allocators, to mark allocators that
16539 correspond to access discriminants of dynamically allocated objects.
16540 (N_Block_Statement): Document the fact that the corresponding entity
16541 can be an E_Return_Statement.
16542 (Is_Coextension): New flag for allocators.
16543 Remove all code for DSP option
16545 * sprint.ads, sprint.adb: Display basic information for class_wide
16546 subtypes. Add handling of N_Push and N_Pop nodes
16548 2007-04-06 Arnaud Charlet <charlet@adacore.com>
16550 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16551 before propagating exception.
16553 2007-04-06 Olivier Hainque <hainque@adacore.com>
16555 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16556 an address always within the call instruction from a return address.
16558 2007-04-06 Olivier Hainque <hainque@adacore.com>
16559 Eric Botcazou <botcazou@adacore.com>
16561 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16562 expression with a COMPOUND_EXPR including the call instead of emitting
16563 the call directly here.
16564 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16565 high bound is constant and the slice is empty. Tidy.
16566 (tree_transform, case N_Op_Not): Handle properly the case where the
16567 operation applies to a private type whose full view is a modular type.
16568 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16569 Address_Clause, use the associated Expression as the GNAT tree
16570 representing the choice value to ensure the corresponding GCC tree is
16571 of the proper kind.
16572 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16573 instead of just the operands, as the base GCC stabilize_reference does.
16574 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16575 requested; otherwise fail.
16576 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16578 2007-04-06 Thomas Quinot <quinot@adacore.com>
16580 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16581 implementation of UI_Div.
16582 (UI_Div): Reimplement as a call to UI_Div_Rem.
16583 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16584 remainder, avoiding the cost of a multiplication and a subtraction.
16585 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16586 provides both quotient and remainder in a single computation.
16587 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16588 functions for uint.
16589 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16590 is undefined if the given n is not inversible.
16592 2007-04-06 Olivier Hainque <hainque@adacore.com>
16594 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16595 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16598 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16599 Olivier Hainque <hainque@adacore.com>
16601 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16602 when updating the contents of the old pointer to an unconstrained array.
16603 (end_subprog_body): Set error_gnat_node to Empty.
16604 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16605 (unchecked_convert): For subtype to base type conversions, require that
16606 the source be a subtype if it is an integer type.
16607 (builtin_decls): New global, vector of available builtin functions.
16608 (gnat_pushdecl): Add global builtin function declaration nodes to the
16609 builtin_decls list.
16610 (gnat_install_builtins): Adjust comments.
16611 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16612 calling gnat_pushdecl, so that it knows when it handed a builtin
16613 function declaration node.
16614 (builtin_decl_for): Search the builtin_decls list.
16616 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16618 * s-stchop-vxworks.adb:
16619 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16621 2007-04-06 Robert Dewar <dewar@adacore.com>
16622 Arnaud Charlet <charlet@adacore.com>
16624 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16626 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16628 Add mention of -Sev (set initialize_scalars option from environment
16629 variable at run time) in gnatbind usage message.
16631 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16633 * fname-uf.ads: Minor comment fix
16635 * osint.ads: Change pragma Elaborate to Elaborate_All
16637 * par-load.adb: Add documentation.
16639 * sem_cat.ads, sem_cat.adb: Minor code reorganization
16641 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16643 * s-secsta.ads: Extra comments
16645 * s-soflin.ads: Minor comment fixes
16647 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16649 * s-wchcon.ads: Minor comment addition
16651 * treepr.adb: Minor change in message
16652 (Print_Name,Print_Node): Make these debug printouts more robust: print
16653 "no such..." instead of crashing on bad input.
16655 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
16657 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16658 instead of gnat_signed_or_unsigned_type.
16659 * utils.c (gnat_signed_or_unsigned_type): Remove.
16660 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16661 * gigi.h (gnat_signed_or_unsigned_type): Remove
16663 2007-03-09 Roger Sayle <roger@eyesopen.com>
16665 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16666 fold with the result of buildN.
16667 * decl.c (gnat_to_gnu_entity): Likewise.
16668 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16669 * utils.c (finish_record_type, merge_sizes, max_size, convert):
16671 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16672 nonbinary_modular_operation, build_binary_op, build_unary_op,
16673 build_cond_expr): Likewise.
16675 * utils.c (convert): Use fold_build1 when casting values to void.
16676 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16677 fold_convert instead of convert when appropriate.
16679 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
16681 * Make-lang.in: Add install-pdf target as copied from
16682 automake v1.10 rules.
16684 2007-02-28 Andreas Schwab <schwab@suse.de>
16686 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16687 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16688 (doc/gnat-style.info): Likewise.
16690 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16692 * gnat-style.texi: Standardize title page.
16693 * gnat_rm.texi: Likewise.
16694 * gnat_ugn.texi: Likewise.
16696 2007-02-25 Mark Mitchell <mark@codesourcery.com>
16698 * decl.c (annotate_value): Adjust for refactoring of tree_map
16701 2007-02-24 Mark Mitchell <mark@codesourcery.com>
16703 * decl.c (annotate_value): Adjust for refactoring of tree_map
16706 2007-02-21 Ed Schonberg <schonberg@adacore.com>
16709 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16710 untagged derived type, add hidden components to keep discriminant
16711 layout consistent, when a given discriminant of the derived type
16712 constraints several discriminants of the parent type.
16714 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
16715 Sandra Loosemore <sandra@codesourcery.com>
16717 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
16718 build the call expression.
16719 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16720 * utils.c (max_size) <tcc_exceptional>: Delete.
16721 <tcc_vl_exp>: New case.
16722 <tcc_expression>: Delete CALL_EXPR subcase.
16723 (build_global_cdtor): Use build_call_nary instead of build3.
16724 * utils2.c (build_call_1_expr): Likewise.
16725 (build_call_2_expr): Likewise.
16726 (build_call_0_expr): Likewise.
16727 (build_call_alloc_dealloc): Likewise.
16729 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
16731 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
16732 get_action_description_for): Replace _Unwind_Word with _uleb128_t
16733 and _Unwind_SWord with _sleb128_t.
16735 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
16737 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16738 * decl.c: Include gt-ada-decl.h.
16739 (annotate_value_cache): New.
16740 (annotate_value): Use it instead of TREE_COMPLEXITY.
16742 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
16744 * misc.c, utils2.c: Fix comment typos.
16746 2007-01-24 Roger Sayle <roger@eyesopen.com>
16748 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16749 TREE_CONSTANT_OVERFLOW.
16750 (allocatable_size_p, annotate_value): Likewise.
16751 * trans.c (gnat_to_gnu): Likewise.
16752 * utils.c (unchecked_convert): Likewise.
16753 * utils2.c (build_simple_component_ref): Likewise.
16755 2007-01-23 Richard Guenther <rguenther@suse.de>
16758 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16759 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16760 (gnatboot3): Likewise.
16761 (GNATBIND): Do not define.
16762 * Makefile.in (GNATBIND): Do not define.
16764 2007-01-08 Richard Guenther <rguenther@suse.de>
16766 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16767 * trans.c (gnat_to_gnu): Likewise.
16769 2006-12-07 Geoffrey Keating <geoffk@apple.com>
16771 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16772 * adaint.c: Likewise.
16774 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
16776 Merge from gimple-tuples-branch:
16777 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
16779 * ada-tree.h (lang_tree_node): Handle gimple tuples.
16780 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16781 GIMPLE_MODIFY_STMT.
16783 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
16785 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
16786 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
16789 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
16792 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
16793 if the initializer takes into account the padding.
16795 2006-11-11 Richard Guenther <rguenther@suse.de>
16797 * trans.c (maybe_stabilize_reference): Remove handling of
16798 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
16800 2006-11-05 Arnaud Charlet <charlet@adacore.com>
16803 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
16804 (To_Target_Priority): New function.
16806 2006-10-31 Robert Dewar <dewar@adacore.com>
16808 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
16809 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
16810 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
16811 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
16812 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
16813 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
16814 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
16815 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
16816 a-szbzha.adb: Minor reformatting. Fix header.
16818 * a-numaux-x86.adb: Add parentheses for use of unary minus
16819 * a-ngcefu.adb: Supply missing parentheses for unary minus
16820 * a-ngcoty.adb: Add parens for use of unary minus
16821 * a-ngelfu.adb: Add missing parens for unary minus
16822 * a-tifiio.adb: Add parentheses for uses of unary minus
16824 2006-10-31 Robert Dewar <dewar@adacore.com>
16825 Bob Duff <duff@adacore.com>
16826 Ed Schonberg <schonberg@adacore.com>
16828 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
16829 with multiplying operator.
16830 (Expected_Type_Is_Any_Real): New function to determine from the Parent
16831 pointer whether the context expects "any real type".
16832 (Resolve_Arithmetic_Op): Do not give an error on calls to the
16833 universal_fixed "*" and "/" operators when they are used in a context
16834 that expects any real type. Also set the type of the node to
16835 Universal_Real in this case, because downstream processing requires it
16836 (mainly static expression evaluation).
16837 Reword some continuation messages
16838 Add some \\ sequences to continuation messages
16839 (Resolve_Call): Refine infinite recursion case. The test has been
16840 sharpened to eliminate some false positives.
16841 Check for Current_Task usage now includes entry barrier, and is now a
16842 warning, not an error.
16843 (Resolve): If the call is ambiguous, indicate whether an interpretation
16844 is an inherited operation.
16845 (Check_Aggr): When resolving aggregates, skip associations with a box,
16846 which are priori correct, and will be replaced by an actual default
16847 expression in the course of expansion.
16848 (Resolve_Type_Conversion): Add missing support for conversion from
16849 a class-wide interface to a tagged type. Minor code cleanup.
16850 (Valid_Tagged_Converion): Add support for abstact interface type
16852 (Resolve_Selected_Component): Call Generate_Reference here rather than
16853 during analysis, and use May_Be_Lvalue to distinguish read/write.
16854 (Valid_Array_Conversion): New procedure, abstracted from
16855 Valid_Conversion, to incorporate accessibility checks for arrays of
16856 anonymous access types.
16857 (Valid_Conversion): For a conversion to a numeric type occurring in an
16858 instance or inlined body, no need to check that the operand type is
16859 numeric, since this has been checked during analysis of the template.
16860 Remove legacy test for scope name Unchecked_Conversion.
16862 * sem_res.ads: Minor reformatting
16864 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
16865 (PE_Current_Task_In_Entry_Body): New exception code
16866 (SE_Restriction_Violation): Removed, not used
16868 * a-except.ads: Update comments.
16870 * types.h, types.ads: Add definition for Validity_Check
16871 (PE_Current_Task_In_Entry_Body): New exception code
16872 (SE_Restriction_Violation): Removed, not used
16874 2006-10-31 Thomas Quinot <quinot@adacore.com>
16876 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
16879 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
16880 Jose Ruiz <ruiz@adacore.com>
16882 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
16883 part of Ada.Calendar: all subprogram raise Unimplemented.
16884 (Split_W_Offset): Temp function body, raising Unimplemented
16886 * a-calend.ads, a-calend-vms.ads:
16887 Add imported variable Invalid_TZ_Offset used to designate targets unable
16888 to support time zones.
16889 (Unimplemented): Temporary function raised by the body of new
16891 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
16892 unit provides handling of leap seconds and is used by the new Ada 2005
16893 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
16894 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
16895 version returns an extra value which is the offset to UTC.
16897 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
16898 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
16899 (Split_W_Offset): New function body.
16900 (Time_Of): When a date is close to UNIX epoch, compute the time for
16901 that date plus one day (that amount is later substracted after
16902 executing mktime) so there are no problems with time zone adjustments.
16904 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
16906 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
16907 a-catizo.ads, a-catizo.adb: New files.
16909 * impunit.adb: Add new Ada 2005 entries
16911 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
16912 Rename all occurences of "__gnat_localtime_r" to
16913 "__gnat_localtime_tzoff".
16914 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
16915 zone data and calculate the GMT offset.
16916 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
16917 Use the field "tm_gmtoff" to extract the GMT offset.
16918 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
16919 the external variable "timezone" to calculate the GMT offset.
16921 2006-10-31 Arnaud Charlet <charlet@adacore.com>
16922 Jose Ruiz <ruiz@adacore.com>
16924 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
16925 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
16926 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
16927 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
16928 System.Any_Priority to a POSIX priority on the target.
16930 * system-linux-ia64.ads:
16931 Extend range of Priority types on Linux to use the whole range made
16932 available by the system.
16934 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
16935 function maps from System.Any_Priority to a POSIX priority on the
16937 (PTHREAD_PRIO_PROTECT): Set real value.
16938 (PTHREAD_PRIO_INHERIT): Now a function.
16939 (SIGCPUFAIL): New signal.
16940 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
16941 are documented as reserved by the OS.
16943 * system-aix.ads: Use the full range of priorities provided by the
16946 * s-taprop-posix.adb: Call new function To_Target_Priority.
16947 (Set_Priority): Take into account Task_Dispatching_Policy and
16948 Priority_Specific_Dispatching pragmas when determining if Round Robin
16949 must be used for scheduling the task.
16951 * system-linux-x86_64.ads, system-linux-x86.ads,
16952 system-linux-ppc.ads: Extend range of Priority types on Linux to use
16953 the whole range made available by the system.
16955 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
16956 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
16957 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
16958 when deallocating the TCB in order to avoid potential references to
16960 (Set_Priority): Take into account Task_Dispatching_Policy and
16961 Priority_Specific_Dispatching pragmas when determining if Round Robin
16962 or FIFO within priorities must be used for scheduling the task.
16964 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
16965 the Thread field (to be used internally by the run-time system) and the
16966 kernel-level task id in the LWP field (to be used by the debugger).
16967 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
16968 instance, and propagate the current task options to the spawned task.
16969 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
16970 (Initialize): Set Round Robin dispatching when the corresponding pragma
16973 2006-10-31 Robert Dewar <dewar@adacore.com>
16975 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16976 system-linux-hppa.ads, system-hpux-ia64.ads,
16977 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
16978 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
16979 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
16980 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
16981 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
16982 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
16983 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
16984 Default_Bit_Order) to kill constant condition warnings for references
16987 2006-10-31 Vincent Celier <celier@adacore.com>
16988 Eric Botcazou <ebotcazou@adacore.com>
16990 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
16991 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
16992 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
16993 Ext_To, when building the library file name
16995 * mlib-tgt-vxworks.adb: ditto.
16996 (Get_Target_Suffix): Add support for x86 targets.
16998 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17000 * mlib-tgt-darwin.adb:
17001 Use Append_To, instead of Ext_To, when building the library file name
17002 (Flat_Namespace): New global variable.
17003 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17004 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17005 (Link_Shared_Libgcc): Delete.
17006 (Build_Dynamic_Library): Adjust for above changes.
17008 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17010 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17012 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17013 (Initialize): Add type conversions required by above change.
17015 2006-10-31 Jose Ruiz <ruiz@adacore.com>
17017 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17018 (getpid): New body for this function that uses the underlying taskIdSelf
17019 function for VxWorks 5 and VxWorks 6 in kernel mode.
17020 (unsigned_int): New type, modular to allow logical bit operations.
17021 (taskOptionsGet): New imported function.
17023 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17024 field to be compliant with the type used by the corresponding operating
17027 2006-10-31 Pascal Obry <obry@adacore.com>
17028 Eric Botcazou <ebotcazou@adacore.com>
17029 Vincent Celier <celier@adacore.com>
17031 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17032 ASCII version of the registry API. This is needed as the GNAT runtime
17033 is now UNICODE by default.
17035 (get_gcc_version): Do not hardcode the return value.
17036 (__gnat_file_time_name): On Windows properly set the default returned
17037 value to -1 which corresponds to Invalid_Time.
17038 (__gnat_fopen): New routine. A simple wrapper on all plateforms
17039 except on Windows where it does conversion for unicode support.
17040 (__gnat_freopen): Idem.
17041 (__gnat_locate_exec_on_path): If environment variable PATH does not
17042 exist, return a NULL pointer
17044 * adaint.h: (__gnat_fopen): Declare.
17045 (__gnat_freopen): Likewise.
17047 * mingw32.h (_tfreopen): Define this macro here for older MingW
17049 Activate the unicode support on platforms using a MingW runtime
17050 version 3.9 or newer.
17052 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17053 This is needed for proper unicode support on Windows.
17056 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17057 Nicolas Setton <setton@adacore.com>
17058 Olivier Hainque <hainque@adacore.com>
17059 Gary Dismukes <dismukes@adacore.com>
17061 * gigi.h: (tree_code_for_record_type): Declare.
17062 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17063 (get_global_renaming_pointers): Rename to
17064 invalidate_global_renaming_pointers.
17065 (static_ctors): Delete.
17066 (static_dtors): Likewise.
17067 (gnat_write_global_declarations): Declare.
17068 (create_var_decl): Adjust descriptive comment to indicate that the
17069 subprogram may return a CONST_DECL node.
17070 (create_true_var_decl): Declare new function, similar to
17071 create_var_decl but forcing the creation of a VAR_DECL node.
17072 (get_global_renaming_pointers): Declare.
17073 (add_global_renaming_pointer): Likewise.
17075 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17077 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17078 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17080 (gnat_to_gnu_entity): Remove From_With_Type from computation for
17082 <E_Access_Type>: Use the Non_Limited_View as the full view of the
17083 designated type if the pointer comes from a limited_with clause. Make
17084 incomplete designated type if it is in the main unit and has a freeze
17086 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17087 Underlying_Full_View similarly. Return earlier if the full view already
17088 has an associated tree.
17089 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17090 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17091 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17092 reference type built for objects with an address clause.
17093 Use create_true_var_decl with const_flag set for
17094 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17096 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17097 for Character and Wide_Character types. This info is read by the
17098 dwarf-2 writer, and is needed to be able to use the command "ptype
17099 character" in the debugger.
17100 (gnat_to_gnu_entity): When generating a type representing
17101 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17102 so that debug writers can distinguish it from ordinary integers.
17103 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17104 addition to TREE_READONLY to assert the constantness of variables for
17105 elaboration purposes.
17106 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17107 parameters to call new Einfo function First_Formal_With_Extras.
17108 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17109 protected type with its corresponding discriminant, to obtain a usable
17111 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17112 for a multiple elaboration of the "equivalent" type.
17113 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17114 into record_global_renaming_pointer.
17115 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17116 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17117 <E_Array_Subtype>: Likewise.
17118 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17119 incomplete subtypes and incomplete subtypes of incomplete types visible
17120 through a limited with clause.
17121 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17122 the base index type for the maximum size of the array only if they are
17124 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17125 expression into a SAVE_EXPR if stabilization failed.
17127 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17128 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17129 by lower level compilation passes.
17130 (gnat_genericize): New function, lowering a function body to GENERIC.
17131 Turn the type of RESULT_DECL into a real reference type if the decl
17132 has been marked DECL_BY_REFERENCE, and adjust references to the latter
17134 (gnat_genericize_r): New function. Tree walking callback for
17136 (convert_from_reference, is_byref_result): New functions. Helpers for
17138 (create_type_decl): Call gnat_pushdecl before calling
17139 rest_of_decl_compilation, to make sure that field TYPE_NAME of
17140 type_decl is properly set before calling the debug information writers.
17141 (write_record_type_debug_info): The heuristics which compute the
17142 alignment of a field in a variant record might not be accurate. Add a
17143 safety test to make sure no alignment is set to a smaller value than
17144 the alignment of the field type.
17145 (make_dummy_type): Use the Non_Limited_View as the underlying type if
17146 the type comes from a limited_with clause. Do not loop on the full view.
17147 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17148 (dummy_node_table): New global variable, moved from decl.c.
17149 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17150 (save_gnu_tree): Use above macros.
17151 (get_gnu_tree): Likewise.
17152 (present_gnu_tree): Likewise.
17153 (init_dummy_type): New function, moved from decl.c. Use above macros.
17154 (make_dummy_type): Likewise.
17155 (tree_code_for_record_type): New function extracted from make_dummy_type
17156 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17157 (static_ctors): Change it to a vector, make static.
17158 (static_dtors): Likewise.
17159 (end_subprog_body): Adjust for above change.
17160 (build_global_cdtor): Moved from trans.c.
17161 (gnat_write_global_declarations): Emit global constructor and
17162 destructor, and call cgraph_optimize before emitting debug info for
17163 global declarations.
17164 (global_decls): New global variable.
17165 (gnat_pushdecl): Store the global declarations in global_decls, for
17167 (gnat_write_global_declarations): Emit debug information for global
17169 (create_var_decl_1): Former create_var_decl, with an extra argument to
17170 state whether the creation of a CONST_DECL is allowed.
17171 (create_var_decl): Behavior unchanged. Now a wrapper around
17172 create_var_decl_1 allowing CONST_DECL creation.
17173 (create_true_var_decl): New function, similar to create_var_decl but
17174 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17175 (create_field_decl): Do not always mark the field as addressable
17176 if its type is an aggregate.
17177 (global_renaming_pointers): New static variable.
17178 (add_global_renaming_pointer): New function.
17179 (get_global_renaming_pointers): Likewise.
17181 * misc.c (gnat_dwarf_name): New function.
17182 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17183 (gnat_post_options): Add comment about structural alias analysis.
17184 (gnat_parse_file): Do not call cgraph_optimize here.
17185 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17187 * trans.c (process_freeze_entity): Don't abort if we already have a
17188 non dummy GCC tree for a Concurrent_Record_Type, as it might
17189 legitimately have been elaborated while processing the associated
17190 Concurrent_Type prior to this explicit freeze node.
17191 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17192 exception handler volatile if it is of variable size.
17193 (process_type): Remove bypass for types coming from a limited_with
17195 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17196 actual, convert the corresponding gnu_actual to the real destination
17197 type when necessary.
17198 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17199 originally TREE_READONLY but whose elaboration cannot be performed
17201 Part of fix for F504-021.
17202 (tree_transform, subprogram cases): Change loops on formal parameters to
17203 call new Einfo function First_Formal_With_Extras.
17204 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17205 stemming from type conversion for the lhs.
17206 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17207 number of bits per unit for components of records.
17208 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17209 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17210 with At_End_Proc after the SJLJ EH cleanup.
17211 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17213 (elaborate_all_entities): Do not retest type_annotate_only.
17214 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17215 result type of an abstract subprogram, which may be an itype associated
17216 with an anonymous access result (related to AI-318-02).
17217 (build_global_cdtor): Move to utils.c.
17218 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17219 this choice is not a null tree nor an integer constant.
17220 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17221 on the body of elaboration routines instead of mark_unvisited.
17222 (add_stmt): Do not mark the tree.
17223 (add_decl_expr): Tweak comment.
17224 (mark_unvisited): Delete.
17225 (unshare_save_expr): New static function.
17226 (call_to_gnu): Issue an error when making a temporary around a
17227 procedure call because of non-addressable actual parameter if the
17228 type of the formal is by_reference.
17229 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17230 after building the elaboration routine.
17232 2006-10-31 Bob Duff <duff@adacore.com>
17234 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17235 as finalization-started, so we can raise Program_Error on 'new'.
17237 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17238 collection has already started.
17240 * s-finimp.ads (Collection_Finalization_Started): Added new special
17241 flag value for indicating that a collection's finalization has started.
17243 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17244 create a task whose master has already waited for dependent tasks.
17246 2006-10-31 Robert Dewar <dewar@adacore.com>
17248 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17250 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17251 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17252 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17253 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17254 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17255 a-except-2005.ads: Add pragma Preelaborable_Warning
17257 2006-10-31 Robert Dewar <dewar@adacore.com>
17258 Jose Ruiz <ruiz@adacore.com>
17260 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17262 * ali.adb (Get_Name): Properly handle scanning of wide character names
17263 encoded with brackets notation.
17264 (Known_ALI_Lines): Add S lines to this list.
17265 (Scan_ALI): Acquire S (priority specific dispatching) lines.
17266 New flag Elaborate_All_Desirable in unit table
17268 * ali.ads (Priority_Specific_Dispatching): Add this range of
17269 identifiers to be used for Priority_Specific_Dispatching table entries.
17270 (ALIs_Record): Add First_Specific_Dispatching and
17271 Last_Specific_Dispatching that point to the first and last entries
17272 respectively in the priority specific dispatching table for this unit.
17273 (Specific_Dispatching): Add this table for storing each S (priority
17274 specific dispatching) line encountered in the input ALI file.
17275 New flag Elaborate_All_Desirable in unit table
17277 * bcheck.adb: (Check_Configuration_Consistency): Add call to
17278 Check_Consistent_Dispatching_Policy.
17279 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17280 verifying that the use of Priority_Specific_Dispatching,
17281 Task_Dispatching_Policy, and Locking_Policy is consistent across the
17284 * bindgen.adb: (Public_Version_Warning): function removed.
17285 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17286 required information from ALI files in order to initialize the table
17287 containing the specific dispatching policy.
17288 (Gen_Adainit_Ada): Generate the variables required for priority specific
17289 dispatching entries (__gl_priority_specific_dispatching and
17290 __gl_num_specific_dispatching).
17291 (Gen_Adainit_C): Generate the variables required for priority specific
17292 dispatching entries (__gl_priority_specific_dispatching and
17293 __gl_num_specific_dispatching).
17294 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17296 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17297 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17299 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17300 a call to gnat_set_globals.
17301 Generate a string containing settings from
17302 Priority_Specific_Dispatching pragma entries.
17303 (Gen_Object_Files_Options): Do not include the runtime libraries when
17304 pragma No_Run_Time is specified.
17306 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17307 consistency with s-intman-posix.adb.
17308 (__gnat_error_handler, case FreeBSD): Account for the fact that the
17309 handler is installed with SA_SIGINFO.
17310 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17311 FreeBSD ZCX support, copied from Linux version.
17312 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17313 sigfillset, and sigemptyset so the routines defined by MaRTE.
17314 (__gl_priority_specific_dispatching): Add this variable that stores the
17315 string containing priority specific dispatching policies in the
17317 (__gl_num_specific_dispatching): Add this variable that indicates the
17318 highest priority for which a priority specific dispatching pragma
17320 (__gnat_get_specific_dispatching): Add this routine that returns the
17321 priority specific dispatching policy, as set by a
17322 Priority_Specific_Dispatching pragma appearing anywhere in the current
17323 partition. The input argument is the priority number, and the result
17324 is the upper case first character of the policy name.
17325 (__gnat_set_globals): Now a dummy function.
17326 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17327 mechargs instead of sigargs, as the latter can be retrieved from the
17328 former and sigargs is not what we want on ia64.
17329 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17331 (__gnat_adjust_context_for_raise, ia64-vms): New function.
17332 (tasking_error): Remove unused symbol.
17333 (_abort_signal): Move this symbol to the IRIX specific part since this
17334 is the only target that uses this definition.
17335 (Check_Abort_Status): Move this symbol to the IRIX specific part since
17336 this is the only target that uses this definition.
17337 (Lock_Task): Remove unused symbol.
17338 (Unlock_Task): Remove unused symbol.
17340 * lib-writ.adb (Write_ALI): Output new S lines for
17341 Priority_Specific_Dispatching pragmas.
17342 Implement new flag BD for elaborate body desirable
17344 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17345 (Specific_Dispatching): Add this table for storing the entries
17346 corresponding to Priority_Specific_Dispatching pragmas.
17347 Document new BD flag for elaborate body desirable
17349 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17352 2006-10-31 Javier Miranda <miranda@adacore.com>
17354 * a-tags.ads, a-tags.adb:
17355 (Predefined_DT): New function that improves readability of the code.
17356 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17357 Inherit_DT): Use the new function Predefined_DT to improve code
17359 (Register_Interface_Tag): Update assertion.
17360 (Set_Interface_Table): Update assertion.
17361 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17362 determining progenitor interfaces in Tags.
17363 (Inherit_CPP_DT): New subprogram.
17365 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17366 analysis of the thunk code.
17367 (Expand_Interface_Conversion): Handle run-time conversion of
17368 access to class wide types.
17369 (Expand_Dispatching_Call): When generating the profile for the
17370 subprogram itype for a dispatching operation, properly terminate the
17371 formal parameters chaind list (set the Next_Entity of the last formal
17373 (Collect_All_Interfaces): Removed. This routine has been moved to
17374 sem_util and renamed as Collect_All_Abstract_Interfaces.
17375 (Set_All_DT_Position): Hidden entities associated with abstract
17376 interface primitives are not taken into account in the check for
17377 3.9.3(10); this check is done with the aliased entity.
17378 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17379 interfacing with CPP by default.
17380 (Expand_Interface_Conversion): Add missing support for static conversion
17381 from an interface to a tagged type.
17382 (Collect_All_Interfaces): Add new out formal containing the list of
17383 abstract interface types to cleanup the subprogram Make_DT.
17384 (Make_DT): Update the code to generate the table of interfaces in case
17385 of abstract interface types.
17386 (Is_Predefined_Dispatching_Alias): New function that returns true if
17387 a primitive is not a predefined dispatching primitive but it is an
17388 alias of a predefined dispatching primitive.
17389 (Make_DT): If the ancestor of the type is a CPP_Class and we are
17390 compiling under full ABI compatibility mode we avoid the generation of
17391 calls to run-time services that fill the dispatch tables because under
17392 this mode we currently inherit the dispatch tables in the IP subprogram.
17393 (Write_DT): Emit an "is null" indication for a null procedure primitive.
17394 (Expand_Interface_Conversion): Use an address as the type of the formal
17395 of the internally built function that handles the case in which the
17396 target type is an access type.
17398 2006-10-31 Robert Dewar <dewar@adacore.com>
17400 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17402 2006-10-31 Robert Dewar <dewar@adacore.com>
17404 * bindusg.ads, bindusg.adb:
17405 Change to package and rename procedure as Display, which
17406 now ensures that it only outputs usage information once.
17408 2006-10-31 Jose Ruiz <ruiz@adacore.com>
17410 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17413 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17416 2006-10-31 Robert Dewar <dewar@adacore.com>
17417 Ed Schonberg <schonberg@adacore.com>
17419 * treepr.adb: Use new subtype N_Membership_Test
17421 * checks.ads, checks.adb: Add definition for Validity_Check
17422 (Range_Or_Validity_Checks_Suppressed): New function
17423 (Ensure_Valid): Test Validity_Check suppressed
17424 (Insert_Valid_Check): Test Validity_Check suppressed
17425 (Insert_Valid_Check): Preserve Do_Range_Check flag
17426 (Validity_Check_Range): New procedure
17427 (Expr_Known_Valid): Result of membership test is always valid
17428 (Selected_Range_Checks): Range checks cannot be applied to discriminants
17429 by themselves. Disabling those checks must also be done for task types,
17430 where discriminants may be used for the bounds of entry families.
17431 (Apply_Address_Clause_Check): Remove side-effects if address expression
17432 is non-static and is not the name of a declared constant.
17433 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17434 Code cleanup and new error messages.
17435 (Enable_Range_Check): Test for some cases of suppressed checks
17436 (Generate_Index_Checks): Suppress index checks if index checks are
17437 suppressed for array object or array type.
17438 (Apply_Selected_Length_Checks): Give warning for compile-time detected
17439 length check failure, even if checks are off.
17440 (Ensure_Valid): Do not generate a check on an indexed component whose
17441 prefix is a packed boolean array.
17442 * checks.adb: (Alignment_Checks_Suppressed): New function
17443 (Apply_Address_Clause_Check): New procedure, this is a completely
17444 rewritten replacement for Apply_Alignment_Check
17445 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17446 we request a discriminal value only in case of discriminants.
17447 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17448 assignments where the target subtype is unconstrained and the target
17449 object is a parameter or dereference (other aliased cases are known
17450 to be unconstrained).
17452 2006-10-31 Robert Dewar <dewar@adacore.com>
17454 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17455 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17456 vms_conv.adb: Fix bad table increment values (much too small)
17458 * table.adb (Realloc): Make sure we get at least some new elements
17459 Defends against silly small values for table increment
17461 2006-10-31 Robert Dewar <dewar@adacore.com>
17462 Ed Schonberg <schonberg@adacore.com>
17463 Bob Duff <duff@adacore.com>
17465 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17466 entities. Move other fields around to make this possible
17467 (Is_Derived_Type): Add missing call to Is_Type.
17468 (Extra_Formals): New function for subprograms, entries, subprogram
17470 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17471 (First_Formal_With_Extras): New function for subprogs, entries, subp
17473 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17474 Add node information for E_Return_Statement.
17475 (Elaborate_Body_Desirable): New flag
17476 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17477 to be Is_Inherently_Limited_Type, because return-by-reference has
17478 no meaning in Ada 2005.
17479 (E_Return_Statement): New entity kind.
17480 (Return_Applies_To): Field of E_Return_Statement.
17481 (Is_Return_Object): New flag in object entities.
17482 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17483 (Must_Have_Preelab_Init): New flag
17484 (Known_To_Have_Preelab_Init): New flag
17485 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17486 (Is_Visible_Formal): New flag on entities in formal packages.
17487 (Low_Bound_Known): New flag
17488 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17490 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17491 output when Id is an incomplete subtype.
17493 2006-10-31 Robert Dewar <dewar@adacore.com>
17495 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17496 Avoid abbreviation Creat
17497 (Finalize): List all sources in extended mail source if -gnatl
17499 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17500 (Finalize): Implement new -gnatl=xxx switch to output listing to file
17501 (Set_Specific_Warning_On): New procedure
17502 (Set_Specific_Warning_Off): New procedure
17503 Add implementation of new insertion \\
17504 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17505 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17507 (Error_Msg_Internal): Make sure that we set Last_Killed to
17508 True when a message from another package is suppressed.
17509 Implement insertion character ~ (insert string)
17510 (First_Node): Minor adjustments to get better placement.
17513 Implement new -gnatl=xxx switch to output listing to file
17516 Implement new -gnatl=xxx switch to output listing to file
17518 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
17519 (Commands_To_Stdout): New flag
17520 Implement new -gnatl=xxx switch to output listing to file
17521 New switch Dump_Source_Text
17522 (Warn_On_Deleted_Code): New warning flag for -gnatwt
17523 Define Error_Msg_Line_Length
17524 (Warn_On_Assumed_Low_Bound): New switch
17526 * osint.ads, osint.adb
17527 (Normalize_Directory_Name): Fix bug.
17528 Implement new -gnatl=xxx switch to output listing to file
17529 (Concat): Removed, replaced by real concatenation
17530 Make use of concatenation now allowed in compiler
17531 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17532 we find the 'lib' or 'bin' directory even when the tool has been
17533 invoked with a relative path.
17534 (Executable_Name): New function taking string parameters.
17536 * osint-c.ads, osint-c.adb:
17537 Implement new -gnatl=xxx switch to output listing to file
17539 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17542 Implement new -gnatl=xxx switch to output listing to file
17543 Recognize new -gnatL switch
17544 (no longer keep in old warning about old style usage)
17545 Use concatenation to simplify code
17546 Recognize -gnatjnn switch
17547 (Scan_Front_End_Switches): Clean up handling of -gnatW
17548 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17550 2006-10-31 Robert Dewar <dewar@adacore.com>
17552 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17553 (Set_Specific_Warning_Off): New procedure
17554 (Warning_Specifically_Suppressed): New function
17555 (Validate_Specific_Warnings): New procedure
17556 (Output_Msg_Text): Complete rewrite to support -gnatjnn
17558 * err_vars.ads: Implement insertion character ~ (insert string)
17560 2006-10-31 Bob Duff <duff@adacore.com>
17561 Ed Schonberg <schonberg@adacore.com>
17563 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17564 the parent part is a build-in-place function call, generate assignments.
17565 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17566 are build-in-place function calls.
17567 (Replace_Self_Reference): New subsidiary of
17568 Make_OK_Assignment_Statement, to replace an access attribute that is a
17569 self-reference into an access to the appropriate component of the
17570 target object. Generalizes previous mechanism to handle self-references
17571 nested at any level.
17572 (Is_Self_Referential_Init): Remove, not needed.
17573 (Is_Self_Referential_Init): New predicate to simplify handling of self
17574 referential components in record aggregates.
17575 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17576 check for presence of entity before checking for self-reference.
17577 (Has_Default_Init_Comps): Return True if a component association is a
17578 self-reference to the enclosing type, which can only come from a
17579 default initialization.
17580 (Make_OK_Assignment_Statement): If the expression is of the form
17581 Typ'Acc, where Acc is an access attribute, the expression comes from a
17582 default initialized self-referential component.
17583 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17584 that has been derived from several abstract interfaces we must also
17585 initialize the tags of the secondary dispatch tables.
17587 2006-10-31 Ed Schonberg <schonberg@adacore.com>
17588 Thomas Quinot <quinot@adacore.com>
17589 Javier Miranda <miranda@adacore.com>
17590 Robert Dewar <dewar@adacore.com>
17593 (Expand_Access_To_Protected_Op): If the context indicates that an access
17594 to a local operation may be transfered outside of the object, create an
17595 access to the wrapper operation that must be used in an external call.
17596 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17597 target, pass the Valid attribute applied to a floating-point prefix on
17598 to the back end without expansion.
17599 (Storage_Size): Use the new run-time function Storage_Size to retrieve
17600 the allocated storage when it is specified by a per-object expression.
17601 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17602 Nothing to do here, the attribute has been rewritten during semantic
17604 (Expand_Attribute_Reference): Handle expansion of the new Priority
17606 (Find_Fat_Info): Handle case of universal real
17607 (Expand_Access_To_Protected_Op): Fix use of access to protected
17608 subprogram from inside the body of a protected entry.
17609 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17610 'Access and 'Unrestricted_Access, to transform the attribute reference
17611 into a fat pointer.
17612 (Is_Constrained_Aliased_View): New predicate to help determine whether a
17613 subcomponent's enclosing variable is aliased with a constrained subtype.
17614 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17615 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17616 an aliased prefix must be known to be constrained in order to use True
17617 for the attribute value, and now it's possible for some aliased views
17618 to be unconstrained.
17620 2006-10-31 Robert Dewar <dewar@adacore.com>
17622 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17623 (Expand_Entity_Reference): Correct error of not handling subprogram
17624 formals in current_value processing.
17626 2006-10-31 Javier Miranda <miranda@adacore.com>
17627 Robert Dewar <dewar@adacore.com>
17628 Ed Schonberg <schonberg@adacore.com>
17629 Gary Dismukes <dismukes@adacore.com>
17631 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
17632 register in the final list objects containing class-wide interfaces;
17633 otherwise we incorrectly register the tag of the interface in the final
17635 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17636 generate the wrapper if the parent primitive is abstract. This is
17637 required to report the correct error message.
17638 (Expand_N_Subtype_Indication): Do validity checks on range
17639 (Clean_Task_Names): If an initialization procedure includes a call to
17640 initialize a task (sub)component, indicate that the procedure will use
17641 the secondary stack.
17642 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17643 compatibility for interfacing with CPP by default.
17644 (Expand_N_Object_Declaration): Only build an Adjust call when the
17645 object's type is a nonlimited controlled type.
17646 * exp_ch3.adb: Add with and use of Exp_Ch6.
17647 (Expand_N_Object_Declaration): Check for object initialization that is a
17648 call to build-in-place function and apply Make_Build_In_Place_Call_In_
17649 Object_Declaration to the call.
17650 (Freeze_Type): When the designated type of an RACW was not frozen at the
17651 point where the RACW was declared, validate the primitive operations
17652 with respect to E.2.2(14) when it finally is frozen.
17653 (Build_Initialization_Call,Expand_Record_Controller): Rename
17654 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17655 return-by-reference has no meaning in Ada 2005.
17656 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17657 to register tag of the immediate ancestor interfaces in the
17658 run-time structure.
17659 (Init_Secondary_Tags): Moved to the specification to allow the
17660 initialization of extension aggregates with abstract interfaces.
17661 (Build_Master_Renaming): Make public, for use by function declarations
17662 whose return type is an anonymous access type.
17663 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17664 Insert_List_Before_And_Analyze after the generation of the specs
17665 associated with null procedures.
17666 (Expand_Tagged_Root): Update documentation in its specification.
17667 (Init_Secondary_Tags): Update documentation.
17668 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17669 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17670 then generate code to inherit the contents of the dispatch table
17671 directly from the ancestor.
17672 (Expand_Record_Controller): Insert controller component after tags of
17673 implemented interfaces.
17674 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17675 create null procedure overridings when null procedures are inherited
17677 (Make_Null_Procedure_Specs): New procedure to generate null procedure
17678 declarations for overriding null primitives inherited from interfaces.
17679 (Is_Null_Interface_Procedure): New function in
17680 Make_Null_Procedure_Specs.
17681 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17682 immediate ancestor of a tagged type is an abstract interface type we
17683 must generate the specification of the predefined primitives associated
17684 with controlled types (because the dispatch table of the ancestor is
17685 null and hence these entries cannot be inherited). This is required to
17686 elaborate well the dispatch table.
17688 2006-10-31 Javier Miranda <miranda@adacore.com>
17689 Ed Schonberg <schonberg@adacore.com>
17690 Bob Duff <duff@adacore.com>
17691 Gary Dismukes <dismukes@adacore.com>
17692 Robert Dewar <dewar@adacore.com>
17694 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
17696 (Expand_N_In): Do validity checks on range
17697 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17698 (Expand_N_Allocator): For "new T", if the object is constrained by
17699 discriminant defaults, allocate the right amount of memory, rather than
17700 the maximum for type T.
17701 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17702 when the allocator is initialized by a build-in-place call, since the
17703 allocator is already rewritten as a reference to the function result,
17704 and this prevents an unwanted duplication of the function call.
17705 Add with and use of Exp_Ch6.
17706 (Expand_Allocator_Expresssion): Check for an allocator whose expression
17707 is a call to build-in-place function and apply
17708 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17709 untagged designated types).
17710 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17711 optimization if source or target is biased.
17712 (Expand_N_Allocator): Add comments for case of an allocator within a
17713 function that returns an anonymous access type designating tasks.
17714 (Expand_N_Allocator): apply discriminant checks for access
17715 discriminants of anonymous access types (AI-402, AI-416)
17717 2006-10-31 Bob Duff <duff@adacore.com>
17718 Robert Dewar <dewar@adacore.com>
17719 Gary Dismukes <dismukes@adacore.com>
17720 Ed Schonberg <schonberg@adacore.com>
17722 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17724 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
17725 (Expand_N_Assignment_Statement): Call
17726 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17727 build-in-place function call. Currently, this can happen only for
17728 assignments that come from aggregates.
17729 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17730 in order to alleviate the upward compatibility introduced by AI-318.
17731 (Expand_N_Extended_Return_Statement): Add support for handling the
17732 return object as a build-in-place result.
17733 (Expand_Non_Function_Return): Implement simple return statements nested
17734 within an extended return.
17735 (Enable_New_Return_Processing): Turn on the new processing of return
17737 (Expand_Non_Function_Return): For a return within an extended return,
17738 don't raise Program_Error, because Sem_Ch6 now gives a warning.
17739 (Expand_N_Extended_Return_Statement): Implement AI-318
17740 (Expand_Simple_Function_Return): Ditto.
17741 (Expand_N_If_Statement): Handle new -gnatwt warning
17742 (Expand_N_Case_Statement): Handle new -gnatwt warning
17743 (Expand_N_Assignment): Handle assignment to the Priority attribute of
17744 a protected object.
17745 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17746 validity checking of assignments to elementary record components.
17747 (Expand_N_Return_Statement): return Class Wide types on the secondary
17748 stack independantly of their controlled status since with HIE runtimes,
17749 class wide types are not potentially controlled anymore.
17751 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17754 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17755 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17756 it expects a block, procedure, or task. The return statement will get
17757 turned into a block, and Expand_Cleanup_Actions will happen then.
17759 2006-10-31 Robert Dewar <dewar@adacore.com>
17760 Ed Schonberg <schonberg@adacore.com>
17761 Bob Duff <duff@adacore.com>
17762 Gary Dismukes <dismukes@adacore.com>
17764 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17766 (Expand_Inlined_Call): Tagged types are by-reference types, and
17767 therefore should be replaced by a renaming declaration in the expanded
17768 body, as is done for limited types.
17769 (Expand_Call): If this is a call to a function with dispatching access
17770 result, propagate tag from context.
17771 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17773 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17774 build-in-place when the right-hand side of an assignment is a
17775 build-in-place function call.
17776 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17777 of the explicit dereference of the allocator to the result subtype of
17778 the build-in-place function. This is needed to satisfy type checking
17779 in cases where the caller's return object is created by an allocator for
17780 a class-wide access type and the type named in the allocator is a
17782 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
17783 conversion of the reference to the declared object to the result subtype
17784 of the build-in-place function. This is needed to satisfy type checking
17785 in cases where the declared object has a class-wide type. Also, in the
17786 class-wide case, change the type of the object entity to the specific
17787 result subtype of the function, to avoid passing a class-wide object
17788 without explicit initialization to the back end.
17789 (Register_Interface_DT_Entry): Moved outside the body of
17790 Freeze_Subprogram because this routine is now public; it is called from
17791 Check_Dispatching_Overriding to handle late overriding of abstract
17792 interface primitives.
17793 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
17794 adding an implicit access actual on a call to a build-in-place function.
17795 (Expand_Actuals): Test for an actual parameter that is a call to a
17796 build-in-place function and apply
17797 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
17798 (Is_Build_In_Place_Function): New function to determine whether an
17799 entity is a function whose calls should be handled as build-in-place.
17800 (Is_Build_In_Place_Function_Call): New function to determine whether an
17801 expression is a function call that should handled as build-in-place.
17802 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
17803 calls to build-in-place functions as the initialization of an allocator.
17804 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
17805 handling calls to build-in-place functions in contexts that do not
17806 involve init of a separate object (for example, actuals of subprogram
17808 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
17809 handling calls to build-in-place functions as the initialization of an
17810 object declaration.
17811 (Detect_Infinite_Recursion): Add explicit parameter Process to
17812 instantiation of Traverse_Body to avoid unreferenced warning.
17813 (Check_Overriding_Inherited_Interfaces): Removed.
17814 (Register_Interface_DT_Entry): Code cleanup.
17815 (Register_Predefined_DT_Entry): Code cleanup.
17816 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
17817 inlined statements if within a transient scope.
17818 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
17819 formal parameters with occurrences of actuals in inlined body, establish
17820 visibility on the proper view of the actual's subtype for the body's
17822 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
17823 compatibility mode and we have an imported CPP subprogram because
17824 for now we assume that imported CPP primitives correspond with
17825 objects whose constructor is in the CPP side (and therefore we
17826 don't need to generate code to register them in the dispatch table).
17827 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
17828 aligned selected component.
17829 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
17830 the actual of an in-mode parameter is a type conversion.
17831 (Expand_Actuals): If the call does not come from source and the actual
17832 is potentially misaligned, let gigi handle it rather than rejecting the
17833 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
17834 Class Wide types as returning by reference independantly of their
17835 controlled status since with HIE runtimes class wide types are not
17836 potentially controlled anymore.
17838 2006-10-31 Ed Schonberg <schonberg@adacore.com>
17840 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
17841 references that are private components of the protected object.
17842 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
17843 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
17844 instantiation to deal with warnings.
17845 (Initialize_Protection): If expression for priority is non-static, use
17846 System_Priority as its expected type, in case the expression has not
17849 2006-10-31 Robert Dewar <dewar@adacore.com>
17851 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
17852 initialization of Homonym_Len.
17853 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
17854 names from fully qualified name. Fixes problem of duplicate
17855 external names differing only in the presence of such a block name.
17857 2006-10-31 Thomas Quinot <quinot@adacore.com>
17858 Pablo Oliveira <oliveira@adacore.com>
17860 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
17861 subprogram Ids, even if they are not yet assigned.
17862 (Build_Subprogram_Id): It is now this function that will take care of
17863 calling Assign_Subprogram_Ids if necessary.
17864 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
17865 should be done only once they are assigned.
17866 (Build_From_Any_Function, case of tagged types): Add missing call to
17868 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
17869 type for an RACW type.
17870 (Add_RACW_Features): When processing an RACW declaration for which the
17871 designated type is already frozen, enforce E.2.2(14) rules immediately.
17872 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
17873 special reordering of controlling formals.
17875 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
17876 associated stub type for an RACW type.
17878 2006-10-31 Ed Schonberg <schonberg@adacore.com>
17880 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
17881 fixed-point operations in an integer context, i.e. as operands of a
17882 conversion to an integer type, indicate that result must be rounded.
17884 2006-10-31 Robert Dewar <dewar@adacore.com>
17886 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
17887 cases, pass the encoding method, since it is now required by the run
17890 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
17891 assumption that Str'First = 1.
17892 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
17893 it on to the Value_Wide_Wide_Character call.
17894 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
17895 properly handles a string of the form quote-encoded_wide_char-quote.
17897 * s-wchcnv.adb: Minor reformatting
17899 2006-10-31 Javier Miranda <miranda@adacore.com>
17901 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
17902 run-time membership test to ensure that the constructed object
17903 implements the target abstract interface.
17905 2006-10-31 Robert Dewar <dewar@adacore.com>
17907 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
17908 Machine_Attribute pragma internally to implement the user pragma.
17909 Add processing for pragma Interface so that it is now completely
17910 equivalent to pragma Import.
17912 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
17913 so that it can be applied to all entities, including record components
17914 and enumeration literals.
17915 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
17916 priority ranges are correct, verify compatibility against task
17917 dispatching and locking policies, and if everything is correct an entry
17918 is added to the table containing priority specific dispatching entries
17919 for this compilation unit.
17920 (Delay_Config_Pragma_Analyze): Delay processing
17921 Priority_Specific_Dispatching pragmas because when processing the
17922 pragma we need to access run-time data, such as the range of
17923 System.Any_Priority.
17924 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
17925 Allow pragma Unreferenced as a context item
17926 Add pragma Preelaborable_Initialization
17927 (Analyze_Pragma, case Interface): Interface is extended so that it is
17928 now syntactically and semantically equivalent to Import.
17929 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
17930 insertion characters.
17931 Add handling for Pragma_Wide_Character_Encoding
17932 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
17933 never supercedes a real restriction, and that a real restriction
17934 always supercedes a warning.
17935 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
17938 2006-10-31 Bob Duff <duff@adacore.com>
17939 Ed Schonberg <schonberg@adacore.com>
17940 Robert Dewar <dewar@adacore.com>
17942 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
17943 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
17944 Is_Inherently_Limited_Type, because return-by-reference has no meaning
17946 (Find_Node_To_Be_Wrapped): Use new method of determining the result
17947 type of the function containing a return statement, because the
17948 Return_Type field was removed. We now use the Return_Applies_To field.
17950 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
17951 (Build_Task_Image_Decl): If procedure is not called from an
17952 initialization procedure, indicate that function that builds task name
17953 uses the sec. stack. Otherwise the enclosing initialization procedure
17954 will carry the indication.
17955 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
17956 N_Object_Declaration instead.
17957 (Kill_Dead_Code): New interface to implement -gnatwt warning for
17958 conditional dead code killed, and change implementation accordingly.
17959 (Insert_Actions): Add N_Return_Object_Declaration case.
17960 Correct comment to mention N_Extension_Aggregate node.
17961 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
17962 attempts to save information for global variables which cannot be
17964 (Get_Current_Value_Condition): Handle conditions the other way round
17965 (constant on left). Also handle right operand of AND and AND THEN
17966 (Set_Current_Value_Condition): Corresponding changes
17967 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
17968 (Get_Current_Value_Condition): Handle simple boolean operands
17969 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
17970 (Get_Current_Value_Condition): If the variable reference is within an
17971 if-statement, does not appear in the list of then_statments, and does
17972 not come from source, treat it as being at unknown location.
17973 (Get_Current_Value_Condition): Enhance to allow while statements to be
17974 processed as well as if statements.
17975 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
17977 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
17978 of loop. This is safe now that we fixed Kill_Current_Values.
17979 (OK_To_Do_Constant_Replacement): Check whether current scope is
17980 Standard, before examining outer scopes.
17982 2006-10-31 Vincent Celier <celier@adacore.com>
17984 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
17985 When True, apply VMS treatment to children of packages A, G, I and S.
17988 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
17990 2006-10-31 Robert Dewar <dewar@adacore.com>
17991 Ed Schonberg <schonberg@adacore.com>
17993 * freeze.adb: Add handling of Last_Assignment field
17994 (Warn_Overlay): Supply missing continuation marks in error msgs
17995 (Freeze_Entity): Add check for Preelaborable_Initialization
17997 * g-comlin.adb: Add Warnings (Off) to prevent new warning
17999 * g-expect.adb: Add Warnings (Off) to prevent new warning
18001 * lib-xref.adb: Add handling of Last_Assignment field
18002 (Generate_Reference): Centralize handling of pragma Obsolescent here
18003 (Generate_Reference): Accept an implicit reference generated for a
18004 default in an instance.
18005 (Generate_Reference): Accept a reference for a node that is not in the
18006 main unit, if it is the generic body corresponding to an subprogram
18009 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18011 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18013 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18015 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18016 use clauses, to avoid messages on packages used to qualify, and also
18017 to avoid messages from obsolescent units.
18018 (Warn_On_Useless_Assignments): Don't generate messages for imported
18019 and exported variables.
18020 (Warn_On_Useless_Assignments): New procedure
18021 (Output_Obsolescent_Entity_Warnings): New procedure
18022 (Check_Code_Statement): New procedure
18024 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18025 Change name Is_Ada_2005 to Is_Ada_2005_Only
18026 (Last_Assignment): New field for useless assignment warning
18028 2006-10-31 Olivier Hainque <hainque@adacore.com>
18030 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18031 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18033 2006-10-31 Bob Duff <duff@adacore.com>
18034 Robert Dewar <dewar@adacore.com>
18035 Ed Schonberg <schonberg@adacore.com>
18037 * g-awk.adb (Default_Session, Current_Session): Compile this file in
18038 Ada 95 mode, because it violates the new rules for AI-318.
18040 * g-awk.ads: Use overloaded subprograms in every case where we used to
18041 have a default of Current_Session. This makes the code closer to be
18042 correct for both Ada 95 and 2005.
18044 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18045 code, relying on the fact that the compiler generates a warning
18046 instead of an error in -gnatg mode.
18048 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18049 E_Return_Statement entity kind.
18050 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18052 * par.adb (P_Interface_Type_Definition): Addition of one formal to
18053 report an error if the reserved word abstract has been previously found.
18054 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18056 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18057 parenthesized range attribute usage
18058 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18060 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18061 in the syntax for extended_return_statement. This is not in the latest
18062 RM, but the ARG is expected to issue an AI allowing this.
18063 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18064 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18065 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18066 P_Return_Statement): Parse the new syntax for extended_return_statement.
18068 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18069 Output_End_Missing): Add error-recovery code for the new
18070 extended_return_statement syntax; that is, the new E_Return entry on
18073 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18074 limited to nonlimited, because otherwise we violate the new Ada 2005
18075 rules about returning limited types in function Create_AST_Handler in
18078 * sem.adb (Analyze): Add cases for new node kinds
18079 N_Extended_Return_Statement and N_Return_Object_Declaration.
18081 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18082 type is in the same category as type of context before applying check,
18083 to prevent anomalies in instantiations.
18084 (Resolve_Aggregate): Remove test for limited components in aggregates.
18085 It's unnecessary in Ada 95, because if it has limited components, then
18086 it must be limited. It's wrong in Ada 2005, because limited aggregates
18088 (Resolve_Record_Aggregate): Move check for limited types later, because
18089 OK_For_Limited_Init requires its argument to have been resolved.
18090 (Get_Value): When copying the component default expression for a
18091 defaulted association in an aggregate, use the sloc of the aggregate
18092 and not that of the original expression, to prevent spurious
18093 elaboration errors, when the expression includes function calls.
18094 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18095 were missing. We also didn't handle qualified expressions. Now also
18096 allow function calls. Use new common routine OK_For_Limited_Init.
18097 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18098 with space can upper case letter).
18100 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18101 Has_Static_Discriminants flag
18102 (Record_Type_Declaration): Diagnose an attempt to declare an interface
18103 type with discriminants.
18104 (Process_Range_Expr_In_Decl): Do validity checks on range
18105 (Build_Discriminant_Constraints): Use updated form of
18106 Denotes_Discriminant.
18107 (Process_Subtype): If the subtype is a private subtype whose full view
18108 is a concurrent subtype, introduce an itype reference to prevent scope
18110 (Build_Derived_Record_Type, Collect_Interface_Primitives,
18111 Record_Type_Declaration): The functionality of the subprograms
18112 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18113 is now performed by a single routine.
18114 (Build_Derived_Record_Type): If the type definition includes an explicit
18115 indication of limitedness, then the type must be marked as limited here
18116 to ensure that any access discriminants will not be treated as having
18117 a local anonymous access type.
18118 (Check_Abstract_Overriding): Issue a detailed error message when an
18119 abstract subprogram was not overridden due to incorrect mode of its
18121 (Analyze_Private_Extension_Declaration): Add support for the analysis of
18122 synchronized private extension declarations. Verify that the ancestor is
18123 a limited or synchronized interface or in the generic case, the ancestor
18124 is a tagged limited type or synchronized interface and all progenitors
18125 are either limited or synchronized interfaces.
18126 Derived_Type_Declaration): Check for presence of private extension when
18127 dealing with synchronized formal derived types.
18128 Process_Full_View): Enchance the check done on the usage of "limited" by
18129 testing whether the private view is synchronized.
18130 Verify that a synchronized private view is completed by a protected or
18132 (OK_For_Limited_Init_In_05): New function.
18133 (Analyze_Object_Declaration): Move check for limited types later,
18134 because OK_For_Limited_Init requires its argument to have been resolved.
18135 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18136 in order to alleviate the upward compatibility introduced by AI-318.
18137 (Constrain_Corresponding_Record): If the constraint is for a component
18138 subtype, mark the itype as frozen, to avoid out-of-scope references to
18139 discriminants in the back-end.
18140 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18141 this subprogram against wrong sources.
18142 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18143 discriminant of limited type completed with a protected type, when the
18144 discriminant is used to constrain a private component of the type, and
18145 expansion is disabled.
18146 (Find_Type_Of_Object): Do not treat a return subtype that is an
18147 anonymous subtype as a local_anonymous_type, because its accessibility
18148 level is the return type of the enclosing function.
18149 (Check_Initialization): In -gnatg mode, turn the error "cannot
18150 initialize entities of limited type" into a warning.
18151 (OK_For_Limited_Init): Return true for generated nodes, since it
18152 sometimes violates the legality rules.
18153 (Make_Incomplete_Declaration): If the type for which an incomplete
18154 declaration is created happens to be the currently visible entity,
18155 preserve the homonym chain when removing it from visibility.
18156 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18157 inherited subprograms.
18158 (Access_Definition): If this is an access to function that is the return
18159 type of an access_to_function definition, context is a type declaration
18160 and the scope of the anonymous type is the current one.
18161 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18162 incomplete subtype to the set of private dependents of the original
18164 (Constrain_Discriminated_Type): Emit an error message whenever an
18165 incomplete subtype is being constrained.
18166 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18167 corresponding subtype of the full view of the original incomplete type.
18168 (Check_Incomplete): Properly detect invalid usage of incomplete types
18171 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18173 * g-catiio.ads, g-catiio.adb (Value): New function.
18174 Given an input String, try and parse a valid Time value.
18176 2006-10-31 Vincent Celier <celier@adacore.com>
18178 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18179 Integer_Address arithmetic, as in Set_Valid.
18181 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18182 Robert Dewar <dewar@adacore.com>
18184 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18185 handling executable extension manually and duplicating code.
18187 * make.adb: Implement new -S switch
18188 (Gnatmake): Use new function Osint.Executable_Name instead
18189 of handling executable extension manually.
18191 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18192 is specified, the executable name ends with this suffix.
18193 Take advantage of Osint.Executable_Name instead of duplicating code.
18195 * switch-m.adb: Recognize new gnatmake -S switch
18197 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18199 (Get_Target_Parameters): Set Executable_Extension_On_Target if
18202 * makeusg.adb: Add line for gnatmake -S switch
18204 2006-10-31 Vincent Celier <celier@adacore.com>
18206 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18207 call it with -static-libgcc, as there are some platforms, such as
18208 Darwin, where one of these two switches is compulsory to link.
18210 2006-10-31 Vincent Celier <celier@adacore.com>
18212 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18213 instead of ADA_PROJECT_PATH, for the project path.
18214 (Gnatls): When displaying the project path directories, use host dir
18217 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18218 names in the project path, as absolute paths may correspond to
18219 multi-valued VMS logical names.
18221 2006-10-31 Vincent Celier <celier@adacore.com>
18223 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18224 absolute path name.
18225 (Locate_Regular_File): Ditto
18226 (Change_Dir): Remove, no longer used
18227 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18228 on Windows. Get it calling Get_Current_Dir.
18229 (OpenVMS): Remove imported boolean, no longer needed.
18230 (Normalize_Pathname)[VMS]: Do not resolve directory names.
18231 (Pid_To_Integer): New function to convert a Process_Id to Integer
18233 2006-10-31 Thomas Quinot <quinot@adacore.com>
18235 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18236 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18238 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18241 2006-10-31 Robert Dewar <dewar@adacore.com>
18243 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18244 initial letter o as a zero.
18246 2006-10-31 Robert Dewar <dewar@adacore.com>
18248 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18250 2006-10-31 Robert Dewar <dewar@adacore.com>
18252 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18254 (Layout_Variant_Record): Retrieve the discriminants from the entity
18255 rather than from the type definition, because in the case of a full
18256 type for a private type we need to take the discriminants from the
18258 (Layout_Component_List): When applying the Max operator to variants with
18259 a nonstatic size, check whether either operand is static and scale that
18260 operand from bits to storage units before applying Max.
18261 (Layout_Type): In VMS, if a C-convention access type has no explicit
18262 size clause (and does not inherit one in the case of a derived type),
18263 then the size is reset to 32 from 64.
18265 2006-10-31 Vincent Celier <celier@adacore.com>
18267 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18268 its file has already been loaded, according to the unit being loaded,
18269 not to the current value of Multiple_Unit_Index.
18271 2006-10-31 Thomas Quinot <quinot@adacore.com>
18272 Eric Botcazou <ebotcazou@adacore.com>
18273 Arnaud Charlet <charlet@adacore.com>
18275 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18276 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18278 (a-except.o): Pass it to the compiler.
18279 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18280 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18281 a-calend-mingw.adb version.
18283 * Makefile.rtl: Added s-dsaser.
18284 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18285 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18286 Ada.Dispatching.Round_Robin.
18287 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18289 * Make-lang.in: Remove all references to gt-ada-decl.h.
18290 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18292 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18293 Update dependencies.
18295 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18297 2006-10-31 Vincent Celier <celier@adacore.com>
18299 * mlib-utl.adb (Initialized): Remove, no longer used
18300 (Initialize): Remove, no longer used
18301 (Ar): If Ar_Exec is null, get the location of the archive builder and,
18302 if there is one, the archive indexer. Fail if the archive builder cannot
18304 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18307 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18309 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18310 Process_Body_Clauses): If the context of a body includes a use clause
18311 for P.Q then a with_clause for P in the same body is not redundant,
18312 even if the spec also has a with_clause on P.
18313 Add missing continuation mark to error msg
18314 (Build_Limited_Views): A limited view of a type is tagged if its
18315 declaration includes a record extension.
18316 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18317 node, even if the subunit has errors. This avoids malfunction by
18318 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18319 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18320 generation of obsolescent messages for with statements (cannot do
18321 this too early, or we cannot implement avoiding the messages in the
18322 case of obsolescent units withing obsolescent units).
18323 (Install_Siblings): If the with_clause is on a remote descendant of
18324 an ancestor of the current compilation unit, find whether there is
18325 a sibling child unit that is immediately visible.
18326 (Remove_Private_With_Clauses): New procedure, invoked after completing
18327 the analysis of the private part of a nested package, to remove from
18328 visibility the private with_clauses of the enclosing package
18330 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18331 now centralized in Generate_Reference.
18332 (Install_Limited_Context_Clauses): Remove superfluous error
18333 message associated with unlimited view visible through use
18334 and renamings. In addition, at the point in which the error
18335 is reported, we add the backslash to the text of the error
18336 to ensure that it is reported as a single error message.
18337 Use new // insertion for some continuation messages
18338 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18339 to create implicit with_clause for parent unit mentioned in original
18340 limited_with_clause.
18341 (Install_Limited_With_Unit): Set entity of parent identifiers if the
18342 unit is a child unit. For ASIS queries.
18343 (Analyze_Subunit): If the subunit appears within a child unit, make all
18344 ancestor child units directly visible again.
18346 2006-10-31 Robert Dewar <dewar@adacore.com>
18348 * par-ch10.adb (P_Context_Clause): Minor error message fix
18350 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18351 Javier Miranda <miranda@adacore.com>
18353 * par-ch12.adb: Grammar update and cleanup.
18354 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18355 support for synchronized derived type definitions.
18356 Add the new actual Abstract_Present to every call to
18357 P_Interface_Type_Definition.
18358 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18359 a formal object declaration with an access definition or a subtype mark
18360 with a null exclusion.
18361 (P_Generic_Association): Handle association with box, and others_choice
18362 with box, to support Ada 2005 partially parametrized formal packages.
18364 2006-10-31 Robert Dewar <dewar@adacore.com>
18365 Javier Miranda <miranda@adacore.com>
18367 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18368 (P_Type_Declaration): Remove barrier against the reserved word "limited"
18369 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18370 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18371 private extensions.
18372 (P_Type_Declaration): Add the new actual Abstract_Present to every call
18373 to P_Interface_Type_Definition.
18374 (P_Interface_Type_Definition): Addition of one formal to report an error
18375 if the reserved word abstract has been previously found.
18376 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18377 object renaming declaration with an access definition or subtype mark
18378 with a possible null exclusion.
18380 * par-ch9.adb: Minor error msg fix
18382 * par-load.adb: Add missing continuation mark to error msg
18384 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18386 2006-10-31 Vincent Celier <celier@adacore.com>
18388 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18389 unknown attribute in unknown package or in package that does not need
18391 (Parse_Package_Declaration): Do not issue warning for unknown package in
18394 2006-10-31 Vincent Celier <celier@adacore.com>
18396 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18397 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18400 2006-10-31 Vincent Celier <celier@adacore.com>
18402 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18403 on VMS, change "__" to '.' before checking the name.
18404 (Record_Ada_Source): Always add the source file name in the list of
18405 of sources, even if it is not the first time, as it is for another
18407 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18408 dot, instead of replacing only the first '_'.
18410 * prj-part.adb (Parse): Convert project file path to canonical form
18412 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18413 extended, the project id of the project extending it is recorded in its
18414 data, even when it has already been processed as an imported project.
18416 2006-10-31 Robert Dewar <dewar@adacore.com>
18418 * repinfo.adb (List_Entities): Don't list entities from renaming
18421 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18422 Robert Dewar <dewar@adacore.com>
18424 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18425 only a restriction warning is active for the given restriction. This is
18426 desirable because we do not want to modify code in the case where only
18428 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18429 causes overriding of real restrictions.
18430 Take advantage of new No_Restrictions constant.
18432 * raise.h: (__gnat_set_globals): Change profile.
18434 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18436 * rtsfind.adb: Remove s-polint from comment as it exists no more.
18439 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18440 Move all the entities in obsolete package System.PolyORB_Interface to
18441 System.Partition_Interface.
18442 (RE_Storage_Size): New function in System.Tasking.
18443 (RE_Get_Ceiling): New entity.
18444 (RE_Set_Ceiling): New entity.
18445 (RO_PE_Get_Ceiling): New entity.
18446 (RO_RE_Set_Ceiling): New entity.
18447 (Inherit_CPP_DT): New entity
18449 2006-10-31 Robert Dewar <dewar@adacore.com>
18451 * scng.adb (Scan, case of numeric literal): Better msg for identifier
18452 starting with a digit.
18454 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18455 Thomas Quinot <quinot@adacore.com>
18456 Javier Miranda <miranda@adacore.com>
18457 Gary Dismukes <dismukes@adacore.com>
18459 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18460 properly an attempt to apply Unchecked_Access to a protected operation.
18461 (OK_Self_Reference): New subprogram to check the legality of an access
18462 attribute whose prefix is the type of an enclosing aggregate.
18463 Generalizes previous mechanism to handle attribute references nested
18464 arbitrarily deep within the aggregate.
18465 (Analyze_Access_Attribute): An access attribute whose prefix is a type
18466 can appear in an aggregate if this is a default-initialized aggregate
18467 for a self-referential type.
18468 (Resolve_Attribute, case Access): Ditto.
18469 Add support for new implementation defined attribute Stub_Type.
18470 (Eval_Attribute, case Attribute_Stub_Type): New case.
18471 (Analyze_Attribute, case Attribute_Stub_Type): New case.
18472 (Stream_Attribute_Available): Implement using new subprogram from
18473 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18474 Has_Specified_Stream_Attribute flag.
18475 Disallow Storage_Size and Storage_Pool for access to subprogram
18476 (Resolve_Attribute, case 'Access et al): Take into account anonymous
18477 access types of return subtypes in extended return statements. Remove
18478 accessibility checks on anonymous access types when Unchecked_Access is
18480 (Analyze_Attribute): Add support for the use of 'Class to convert
18481 a class-wide interface to a tagged type.
18482 Add support for the attribute Priority.
18483 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18484 whether the designated type is discriminated with a constrained partial
18485 view and require static matching in that case.
18486 Add local variable Des_Btyp. The Designated_Type
18487 of an access to incomplete subtype is either its non-limited view if
18488 coming from a limited with or its etype if regular incomplete subtype.
18490 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18491 Fix predicate to identify and allow cases of (expander-generated)
18492 references to tag of designated object of a RACW.
18493 (Validate_Static_Object_Name): In Ada 2005, a formal object is
18494 non-static, and therefore cannot appear as a primary in a preelaborable
18496 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18497 Has_Read_Write_Attributes.
18498 (Has_Read_Write_Attributes): Reimplement in termes of
18499 Has_Stream_Attribute_Definition.
18500 (Missing_Read_Write_Attributes): When checking component types in a
18501 record, unconditionally call Missing_Read_Write_Attributes recursively
18502 (remove guard checking for Is_Record_Type / Is_Access_Type).
18504 2006-10-31 Robert Dewar <dewar@adacore.com>
18506 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18507 useless assignments here and conditionalize it on absence of exception
18509 (Analyze_Exception_Handlers): Small code reorganization of error
18510 detection code, for new handling of formal packages.
18512 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18513 Hristian Kirtchev <kirtchev@adacore.com>
18515 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
18516 that has been constant-folded, preserve information of original tree,
18518 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18519 generated private extension declaration if the formal derived type is
18520 synchronized. Carry synchronized present over to the generated private
18522 (Validate_Derived_Type_Instance): Ensure that the actual of a
18523 synchronized formal derived type is a synchronized tagged type.
18524 (Instantiate_Formal_Package): When creating the instantiation used to
18525 validate the actual package of a formal declared without a box, check
18526 whether the formal itself depends on a prior actual.
18527 (Instantiate_Formal_Subprogram): Create new entities for the defining
18528 identifiers of the formals in the renaming declaration, for ASIS use.
18529 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18530 a renaming declaration or a subtype declaration for an actual in an
18531 instance, capture location information of declaration in generic, for
18533 (Instantiate_Formal_Package): Add comments on needed additional tests.
18534 AI-317 (partial parametrization) is fully implemented.
18535 (Validate_Private_Type_Instance): Add check for actual which
18536 must have preelaborable initialization
18537 Use new // insertion for some continuation messages
18538 (Analyze_Formal_Object_Declaration): Change usage of Expression to
18539 Default_Expression. Add type retrieval when the declaration has an
18540 access definition. Update premature usage of incomplete type check.
18541 (Check_Access_Definition): New subsidiary routine. Check whether the
18542 current compilation version is Ada 05 and the supplied node has an
18544 (Instantiate object): Alphabetize local variables. Handle the creation
18545 of new renaming declarations with respect to the kind of definition
18546 used - either an access definition or a subtype mark. Guard against
18547 unnecessary error message in the context of anonymous access types after
18548 they have been resolved. Add check for required null exclusion in a
18549 formal object declaration.
18550 (Switch_View): A private subtype of a non-private type needs to be
18551 switched (the base type can have been switched without its private
18552 dependents because of the last branch of Check_Private_View.
18553 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18555 (Instantiate_Type): Emit an error message whenever a class-wide type of
18556 a tagged incomplete type is used as a generic actual.
18557 (Find_Actual_Type): Extend routine to handle a component type in a child
18558 unit that is imported from a formal package in a parent.
18559 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18560 agree on constrainedness, rather than checking against ultimate ancestor
18561 (Instantiate_Subprogram_Body): Create a cross-reference link to the
18562 generic body, for navigation purposes.
18564 2006-10-31 Robert Dewar <dewar@adacore.com>
18565 Thomas Quinot <quinot@adacore.com>
18567 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18569 (New_Stream_Subprogram): When processing an attribute definition clause
18570 for a stream-oriented subprogram, record an entity node occurring at
18571 the point of clause to use for checking the visibility of the clause,
18572 as defined by 8.3(23) as amended by AI-195.
18573 (New_Stream_Subprogram): New procedure, factoring behaviour from both
18574 New_Stream_Function and New_Stream_Procedure.
18575 (New_Stream_Function, New_Stream_Procedure): Removed.
18576 (Analyze_Attribute_Definition_Clause, case Address): Check new
18577 Alignment_Check check
18579 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18580 Javier Miranda <miranda@adacore.com>
18581 Robert Dewar <dewar@adacore.com>
18583 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18584 generate the same errors compiling under -gnatc.
18585 (Try_Object_Operation): If no candidate interpretation succeeds, but
18586 there is at least one primitive operation with the right name, report
18587 error in call rather than on a malformed selected component.
18588 (Analyze_Selected_Component): If the prefix is an incomplete type from
18589 a limited view, and the full view is available, use the full view to
18590 determine whether this is a prefixed call to a primitive operation.
18591 (Operator_Check): Verify that a candidate interpretation is a binary
18592 operation before checking the type of its second formal.
18593 (Analyze_Call): Add additional warnings for function call contexts not
18595 (Analyze_Allocator): Move the check for "initialization not allowed for
18596 limited types" after analyzing the expression. This is necessary,
18597 because OK_For_Limited_Init looks at the structure of the expression.
18598 Before analysis, we don't necessarily know what sort of expression it
18599 is. For example, we don't know whether F(X) is a function call or an
18600 indexed component; the former is legal in Ada 2005; the latter is not.
18601 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18602 were missing. We also didn't handle qualified expressions. Now also
18603 allow function calls. Use new common routine OK_For_Limited_Init.
18604 (Analyze_Type_Conversion): Do not perform some legality checks in an
18605 instance, because the error message will be redundant or spurious.
18606 (Analyze_Overloaded_Selected_Component): Do not do style check when
18607 setting an entity, since we do not know it is the right entity yet.
18608 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18609 (Analyze_Overloaded_Selected_Component): Same change
18610 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18611 since regular incomplete subtypes are transformed into corresponding
18612 subtypes of their full views.
18613 (Complete_Object_Operation): Treat name of transformed subprogram call
18614 as coming from source, for browsing purposes.
18615 (Try_Primitive_Operation): If formal is an access parameter, compare
18616 with base type of object to determine whether it is a primitive
18618 (Operator_Check): If no interpretation of the operator matches, check
18619 whether a use clause on any candidate might make the operation legal.
18620 (Try_Class_Wide_Operation): Check whether the first parameter is an
18621 access type whose designated type is class-wide.
18623 2006-10-31 Robert Dewar <dewar@adacore.com>
18624 Ed Schonberg <schonberg@adacore.com>
18625 Gary Dismukes <dismukes@adacore.com>
18627 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18628 warn on infinite loops.
18629 Add \\ to some continuation messages
18630 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18631 (Process_Bounds): If the bounds are integer literals that result from
18632 constant-folding, and they carry a user-defined type, preserve that type
18633 rather than treating this as an integer range.
18634 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18635 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18636 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18637 left hand side of assignment.
18638 (Analyze_Assignment): Add suport to manage assigments to the attribute
18639 priority of a protected object.
18640 (Check_Possible_Current_Value_Condition): Allow fully qualified names
18641 not just identifiers.
18642 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18643 or AND THEN for possible tracking.
18644 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18645 case of while loops so we can track values in the loop body.
18647 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18648 Hristian Kirtchev <kirtchev@adacore.com>
18649 Bob Duff <duff@adacore.com>
18651 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18652 procedure cannot be a protected operation (it is a basic_declaration,
18653 not a subprogram_declaration).
18654 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18655 Subp. Add logic for entry processing.
18656 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18657 Determine whether an entry or subprogram of a protected or task type
18658 override an inherited primitive of an implemented interface.
18659 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18660 Update the actual used in calls to Check_Overriding_Indicator.
18661 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18662 generate the proper reference to the parent unit, for cross-reference.
18663 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18665 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18666 (Add_Extra_Formal): Revise procedure to allow passing in associated
18667 entity, scope, and name suffix, and handle setting of the new
18668 Extra_Formals field.
18669 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18670 pass new parameters. Add support for adding the new extra access formal
18671 for functions whose calls are treated as build-in-place.
18672 (Analyze_A_Return_Statement): Correct casing in error message.
18673 Move Pop_Scope to after Analyze_Function_Return, because an extended
18674 return statement really is a full-fledged scope. Otherwise, visibility
18675 doesn't work right. Correct use of "\" for continuation messages.
18676 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18677 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18678 the node doesn't get properly marked as analyzed.
18679 (Analyze_Subprogram_Body): If subprogram is a function that returns
18680 an anonymous access type that denotes a task, build a Master Entity
18682 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18683 proper usage of null exclusion in a result definition.
18684 (Process_Formals): Code cleanup and new error message.
18685 (Process_Formals): Detect incorrect application of null exclusion to
18687 (Conforming_Types): Handle conformance between [sub]types and itypes
18688 generated for entities that have null exclusions applied to them.
18689 (Maybe_Primitive_Operation): Add an additional type retrieval when the
18690 base type is an access subtype. This case arrises with null exclusions.
18691 (New_Overloaded_Entity): Do not remove the overriden entity from the
18692 homonym chain if it corresponds with an abstract interface primitive.
18693 (Process_Formals): Replace membership test agains Incomplete_Kind with a
18694 call to the synthesized predicate Is_Incomplete_Type.
18695 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18697 (Analyze_Subprogram_Declaration): Check that abstract interface
18698 primitives are abstract or null.
18699 (Analyze_Subprogram_Specification): Remove previous check for abstract
18700 interfaces because it was not complete.
18701 (Has_Interface_Formals): Removed.
18703 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18704 Javier Miranda <miranda@adacore.com>
18706 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18707 of Analyze_Package_Body, to create Itype references for anonymous
18708 access types created in the package declaration, whose designated types
18709 may have only a limited view.
18710 (Analyze_Package_Specification): For the private part of a nested
18711 package, install private_with_clauses of enclosing compilation unit if
18712 we are in its visible part.
18713 (Declare_Inherited_Private_Subprograms): Complete barrier
18714 to ensure that the primitive operation has an alias to some parent
18715 primitive. This is now required because, after the changes done for the
18716 implementation of abstract interfaces, the contents of the list of
18717 primitives has entities whose alias attribute references entities of
18718 such list of primitives.
18719 (Analyze_Package_Specification): Simplify code that handles parent units
18720 of instances and formal packages.
18721 (Uninstall_Declarations): Check the convention consistency among
18722 primitive overriding operations of a tagged record type.
18724 2006-10-31 Robert Dewar <dewar@adacore.com>
18725 Hristian Kirtchev <kirtchev@adacore.com>
18726 Javier Miranda <miranda@adacore.com>
18727 Ed Schonberg <schonberg@adacore.com>
18729 * sem_ch8.adb: Minor error msg rewording
18730 (Undefined): When checking for misspellings, invert arguments (to get
18731 expected and found set right)
18732 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18733 (Analyze_Generic_Renaming): Same fix
18734 (Use_One_Package): Do not take into account the internal entities of
18735 abstract interfaces during the analysis of entities that are marked
18736 as potentially use-visible.
18737 (Find_Type): Handle the case of an attribute reference for
18738 implementation defined attribute Stub_Type (simply let the analysis of
18739 the attribute reference rewrite it).
18740 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18741 type that appears in a Use_Type clause.
18742 (Analyze_Object_Renaming): Add support for renaming of the Priority
18744 (Find_Type): In Ada 2005, a task type can be used within its own body,
18745 when it appears in an access definition.
18746 (Analyze_Object_Renaming): Remove warning on null_exclusion.
18747 (Analyze_Object_Renaming): Introduce checks for required null exclusion
18748 in a formal object declaration or in a subtype declaration.
18749 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18750 (Check_Null_Exclusion): New local routine to
18751 Analyze_Subprogram_Renaming. Check whether the formals and return
18752 profile of a renamed subprogram have required null exclusions when
18753 their counterparts of the renaming already impose them.
18754 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18755 Determine whether an entity is inside a generic scope.
18756 (In_Open_Scope): First pass of documentation update.
18757 (Find_Expanded_Name): Add support for shadow entities associated with
18758 limited withed packages. This is required to handle nested packages.
18759 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18760 that makes a renaming of a limited withed package illegal.
18762 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18763 Ed Schonberg <schonberg@adacore.com>
18765 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18766 Check_Overriding_Indicator.
18767 (Analyze_Task_Definition): Ditto.
18768 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18769 (Check_Overriding_Indicator): To find overridden interface operation,
18770 examine only homonyms that have an explicit subprogram declaration, not
18771 inherited operations created by an unrelated type derivation.
18772 (Check_Overriding_Indicator): When checking for the presence of "null"
18773 in a procedure, ensure that the queried node is a procedure
18775 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18776 type when the formal is an access to variable.
18777 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18778 (Analyze_Task_Type): Same addition
18779 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18780 provide navigation capabilities for entries.
18782 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18783 Ed Schonberg <schonberg@adacore.com>
18784 Javier Miranda <miranda@adacore.com>
18785 Gary Dismukes <dismukes@adacore.com>
18787 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
18788 inherited from an interface ancestor by another interface in the
18789 context of an instance as 'late'.
18790 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
18791 of a call to a function that dispatches on access result.
18792 (Check_Dispatching_Operation): In case of late overriding of a primitive
18793 that covers abstract interface subprograms we register it in all the
18794 secondary dispatch tables associated with abstract interfaces.
18795 (Check_Dispatching_Call): Add check that a dispatching call is not made
18796 to a function with a controlling result of a limited type. This is a
18797 current implementation restriction.
18798 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
18799 (Check_Dispatching_Operation): Do no emit a warning if the controlling
18800 argument is an interface type that is a generic formal.
18801 (Is_Interface_Subprogram): Removed.
18802 (Check_Dispatching_Operation): If the subprogram is not a dispatching
18803 operation, check the formals to handle the case in which it is
18804 associated with an abstract interface type.
18806 2006-10-31 Robert Dewar <dewar@adacore.com>
18807 Ed Schonberg <schonberg@adacore.com>
18809 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
18810 Add new calls to this procedure during traversal
18811 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
18812 another unit if expansion is disabled.
18814 2006-10-31 Robert Dewar <dewar@adacore.com>
18816 * sem_eval.adb (Compile_Time_Compare): Make use of information from
18817 Current_Value in the conditional case, to evaluate additional
18818 comparisons at compile time.
18820 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18821 Hristian Kirtchev <kirtchev@adacore.com>
18822 Javier Miranda <miranda@adacore.com>
18824 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
18825 subprogram type to provide better diagnostics in case of ambiguity.
18826 (Covers): Handle coverage of formal and actual anonymous access types in
18827 the context of generic instantiation.
18828 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
18829 abstract interface types; this is required to handle concurrent types
18830 with discriminants and abstract interface types.
18831 (Covers): Include type coverage of both regular incomplete subtypes and
18832 incomplete subtypes of incomplete type visibles through a limited with
18835 2006-10-31 Robert Dewar <dewar@adacore.com>
18836 Hristian Kirtchev <kirtchev@adacore.com>
18837 Ed Schonberg <schonberg@adacore.com>
18839 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
18840 messages for entities in packages which are not used.
18841 (Collect_Synchronized_Interfaces): New procedure.
18842 (Overrides_Synchronized_Primitive): New function.
18843 (Denotes_Discriminant): Extend predicate to apply to task types.
18844 Add missing continuation marks in error msgs
18845 (Unqualify): New function for removing zero or more levels of
18846 qualification from an expression. There are numerous places where this
18847 ought to be used, but we currently only deal properly with zero or one
18849 (In_Instance); The analysis of the actuals in the instantiation of a
18850 child unit is not within an instantiation, even though the parent
18851 instance is on the scope stack.
18852 (Safe_To_Capture_Value): Exclude the case of variables that are
18854 (Check_Obsolescent): Removed
18855 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
18856 is an aliased view, even when rewritten as a reference to the target
18857 object in an assignment.
18858 (Get_Subprogram_Entity): New function
18859 (Known_To_Be_Assigned): New function
18860 (Type_Access_Level): Compute properly the access level of a return
18861 subtype that is an anonymous access type.
18862 (Explain_Limited_Type): Correct use of "\" for continuation messages.
18863 (Is_Transfer): The new extended_return_statement causes a transfer of
18865 (Has_Preelaborable_Initialization): New function
18866 (Has_Null_Exclusion): New function. Given a node N, determine whether it
18867 has a null exclusion depending on its Nkind.
18868 Change Is_Lvalue to May_Be_Lvalue
18869 (May_Be_Lvalue): Extensive additional code to deal with subprogram
18870 arguments (IN parameters are not Lvalues, IN OUT parameters are).
18871 (Safe_To_Capture_Value): Extend functionality so it can be used for
18872 the current value condition case.
18873 (Has_Compatible_Alignment): New function
18874 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
18875 objects to handle the Ada 2005 case, where aliasedness no longer implies
18876 that the object is constrained. In particular, for dereferenced names,
18877 the designated object must be assumed to be unconstrained.
18878 (Kill_Current_Values): Properly deal with the case where we encounter
18879 a loop in the scope chain.
18880 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
18882 (Compile_Time_Constraint_Error): Improve error message in error case
18884 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
18885 associated with entities of abstract interface primitives.
18886 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
18888 2006-10-31 Robert Dewar <dewar@adacore.com>
18890 * s-osinte-tru64.adb:
18891 Mark Asm statements Volatile to prevent warnings (seems a
18892 reasonable change anyway)
18895 * s-mastop-irix.adb: Add Volatile to Asm statements
18896 Suppresses warning, and seems appropriate in any case
18898 * s-osinte-vms.adb: Add Volatile to Asm statement
18900 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
18902 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
18904 Add call to Check_Code_Statement
18906 2006-10-31 Robert Dewar <dewar@adacore.com>
18907 Ed Schonberg <schonberg@adacore.com>
18908 Bob Duff <duff@adacore.com>
18910 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
18911 Synchronized_Present): Add Formal_Derived_Type_Definition and
18912 Private_Extension_Declaration to the list of assertions.
18913 (Is_Entry_Barrier_Function): New flag
18914 (Has_Self_Reference): New flag on aggregates, to indicate that they
18915 contain a reference to the enclosing type, inserted through a default
18917 (Next_Rep_Item): Move from Node4 to Node5.
18918 (Entity): Add this field for N_Attribute_Definition_Clause.
18919 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
18920 (N_Return_Object_Declaration): Remove this node kind. We now use
18921 N_Object_Declaration instead.
18922 (Actual_Designated_Subtype): Move to a different place to make room in
18923 N_Extended_Return_Statement.
18924 (Procedure_To_Call): Move to a different place to make room in
18925 N_Extended_Return_Statement.
18926 (Return_Type): Removed this field to make room in return statements
18928 (Return_Statement_Entity): New field in return statements, in part to
18929 replace Return_Type, and in part to support the fact that return
18930 statements are now pushed on the scope stack during semantic analysis.
18931 (Return_Object_Declarations): New field to support extended return
18933 (N_Extended_Return_Statement): New node for extended_return_statement
18935 (N_Return_Object_Declaration): New node for part of
18936 extended_return_statement nonterminal. Needed because all the necessary
18937 fields won't fit in N_Extended_Return_Statement.
18938 Generic_associations now carry the Box_Present flag, to indicate a
18939 default for an actual in a partially parametrized formal package.
18941 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
18942 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
18943 and for the new predefined dispatching policies: EDF_Across_Priorities,
18944 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
18945 Introduce new name Stub_Type for implementation defined attribute.
18946 Add pragma Preelaborable_Initialization
18947 Add entry for Priority attribute.
18948 Add Pragma_Wide_Character_Encoding
18949 (Get_Convention_Name): Given a convention id, this function returns the
18950 corresponding name id from the names table.
18952 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18953 Robert Dewar <dewar@adacore.com>
18954 Bob Duff <duff@adacore.com>
18956 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
18957 print null exclusion twice in the case of an access definition,
18958 Implement new -gnatL switch
18959 Remove N_Return_Object_Declaration. We now use
18960 N_Object_Declaration instead. Implement the case for
18961 N_Extended_Return_Statement. Alphabetize the cases.
18962 Add cases for new nodes N_Extended_Return_Statement and
18963 N_Return_Object_Declaration. The code is not yet written.
18964 Update the output for N_Formal_Object_Declaration
18965 and N_Object_Renaming_Declaration.
18966 (Write_Itype): Account for the case of a modular integer subtype whose
18967 base type is private.
18969 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18971 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
18972 Remove elaboration code, now done in the binder.
18974 * s-rident.ads: Make this unit Preelaborate.
18975 (No_Restrictions): New constant used to clean up code and follow
18976 preelaborate constraints.
18979 Add System.Restrictions dependence, referenced directly from the
18980 binder generated file.
18982 2006-10-31 Gary Dismukes <dismukes@adacore.com>
18984 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
18985 True when AAMP extended floating-point is in use (48-bit). Change type
18986 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
18987 the two byte array types on AFloat. Change type of IV_Ilf overlay
18988 variable from Byte8 to ByteLF. Add appropriate initializations of
18989 floating-point overlays for AAMP cases.
18991 2006-10-31 Javier Miranda <miranda@adacore.com>
18993 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
18994 (Get_Ceiling): New subprogram that returns
18995 the ceiling priority of the protected object.
18996 (Set_Ceiling): New subprogram that sets the new ceiling priority of
18997 the protected object.
18999 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19001 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19003 2006-10-31 Jose Ruiz <ruiz@adacore.com>
19005 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19006 requeuing to the same protected object to give higher priority tasks
19007 the opportunity to execute.
19009 2006-10-31 Robert Dewar <dewar@adacore.com>
19011 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19012 add more precise check for the character sequence that follows '[' to
19013 avoid possible confusion in case if '[' is the last character of a
19015 (Scan_Wide): Always allow brackets encoding
19017 2006-10-31 Olivier Hainque <hainque@adacore.com>
19019 * s-stchop.ads: make this unit preelaborate. This is desirable in
19020 general and made mandatory by the use of this unit by s-taprop which
19021 is itself preelaborate.
19023 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19024 Td_Events component.
19026 2006-10-31 Vincent Celier <celier@adacore.com>
19028 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19031 2006-10-31 Vincent Celier <celier@adacore.com>
19033 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19035 2006-10-31 Vincent Celier <celier@adacore.com>
19037 * makegpr.adb (Check_Compilation_Needed): Take into account path names
19039 (Check_Compilation_Needed): When checking a C or C++ source, do not
19040 resolve symbolic links.
19041 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19042 When not in verbose mode and Ellipse is True, display "..." for the
19043 first argument with Display set to False.
19044 (Build_Global_Archive): Always set Display True for the first object
19045 file. Call Display_Command with Ellipse set to True.
19047 2006-10-31 Matt Heaney <heaney@adacore.com>
19049 * a-crbtgo.ads: Commented each subprogram
19051 * a-crbtgo.adb: Added reference to book from which algorithms were
19054 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19055 indicate which child.
19056 (Generic_Conditional_Insert): changed parameter name from "Success" to
19058 (Generic_Unconditional_Insert_With_Hint): improved algorithm
19060 * a-coorse.adb (Replace_Element): changed parameter name in call to
19061 conditional insert operation.
19063 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19065 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19068 * a-ciorse.adb (Replace_Element): changed parameter name in call to
19069 conditional insert operation.
19071 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19074 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19075 instead of mode inout.
19077 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19079 (Generic_Read): preserve existing buckets array if possible
19080 (Generic_Write): don't send buckets array length anymore
19082 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19083 instead of mode inout.
19085 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19086 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19088 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19089 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19090 (Replace_Element): local operation is now an instantiation
19092 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19093 check current length.
19094 (Generic_Replace_Element): new operation
19096 2006-10-31 Doug Rupp <rupp@adacore.com>
19098 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19099 Call TBK$SYMBOLIZE without omitting parameters.
19101 2006-10-31 Vincent Celier <celier@adacore.com>
19103 * symbols-processing-vms-ia64.adb,
19104 symbols-processing-vms-alpha.adb (Process): Do not include symbols
19105 that come from generic instantiations in bodies.
19107 2006-10-31 Pat Rogers <rogers@adacore.com>
19109 * a-rttiev.ads, a-rttiev.adb:
19110 This is a significant redesign primarily for the sake of automatic
19111 timer task termination but also to fix a design flaw.
19112 Therefore we are now using an RTS lock, instead of a protected
19113 object, to provide mutual exclusion to the queue of pending events
19114 and the type Timing_Event is no longer a protected type.
19116 2006-10-31 Robert Dewar <dewar@adacore.com>
19117 Cyrille Comar <comar@adacore.com>
19118 Ben Brosgol <brosgol@adacore.com>
19120 * debug.adb: Update flags documentation
19122 * gnat_ugn.texi: Add documentation for new -gnatwq switch
19123 Clean up documentation for several other warning switches
19124 Clarify how task stack size can be specified with various
19125 versions of Windows.
19126 Add note that -gnatVo includes ranges including loops
19127 Add documentation for -gnatL switch
19128 Add note on elaboration warning for initializing variables
19129 Add documentation for new -gnatwt warning switch
19130 Document new form of pragma Warnings (On|Off, string)
19131 Add comment on use of pragma Warnings to control warnings
19132 Add documentation for -gnatjnn switch
19133 Modify section on interfacing with C for VMS 64-bit.
19134 Add doc for -gnatVe/E
19135 Add documentation of new warning flags -gnatww/-gnatwW
19136 Add warnings about address clause overlays to list of warnings
19137 (Exception Handling Control): Document that the option --RTS must be
19138 used consistently for gcc and gnatbind.
19139 Clarify that inlining is not always possible
19140 Update documentation on pragma Unchecked_Union.
19143 Add documentation for new extended version of pragma Obsolescent
19144 Add documentation for implementation defined attribute 'Stub_Type.
19145 Add note on use of Volatile in asm statements
19146 Add documentation on use of pragma Unreferenced in context clause
19147 Document new form of pragma Warnings (On|Off, pattern)
19148 Document pragma Wide_Character_Encoding
19149 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19150 enforced if code generation is active.
19151 Add section on pragma Suppress to document GNAT specific check
19153 Clarify difference between No_Dispatching_Calls & No_Dispatch.
19154 Add documentation for pragma Restrictions (No_Elaboration_Code)
19157 Add comments on layout of subprogram local variables in the
19158 presence of nested subprograms.
19160 * ug_words: Resync.
19162 * elists.ads: Minor reformatting
19163 Node returns Node_Or_Entity_Id (doc change only)
19165 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19167 * g-arrspl.ads (Create): Update comments.
19169 * sem.ads: Add details on the handling of the scope stack.
19171 * usage.adb: Update documentation.
19173 * validsw.ads, validsw.adb:
19174 Add definition of Validity_Check_Components and implement -gnatVe/E
19176 * vms_data.ads: Add missing VMS qualifiers.
19178 * s-addope.ads: Add documentation on overflow and divide by zero
19180 2006-10-31 Robert Dewar <dewar@adacore.com>
19181 Thomas Quinot <quinot@adacore.com>
19182 Arnaud Charlet <charlet@adacore.com>
19184 * fmap.adb: Put routines in alpha order
19186 * g-boumai.ads: Remove redundant 'in' keywords
19188 * g-cgi.adb: Minor reformatting
19190 * g-cgi.ads: Remove redundant 'in' keywords
19192 * get_targ.adb: Put routines in alpha order
19194 * prj-attr.ads: Minor reformatting
19196 * s-atacco.ads: Minor reformatting
19198 * scn.adb: Put routines in alpha order
19200 * sinput-l.adb: Minor comment fix
19202 * sinput-p.adb: Minor comment fix
19204 * s-maccod.ads: Minor reformatting
19206 * s-memory.adb: Minor reformatting
19208 * s-htable.adb: Fix typo in comment.
19210 * s-secsta.adb: Minor comment update.
19212 * s-soflin.adb: Minor reformatting
19215 Add comment about odd qualification in Storage_Offset declaration
19218 Remove unnecessary 'in' keywords for formal parameters.
19220 * treeprs.adt: Minor reformatting
19222 * urealp.adb: Put routines in alpha order
19224 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19227 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19229 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19231 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19232 workaround as on other platforms.
19234 * g-eacodu-vms.adb: Remove redundant 'in' keywords
19235 * g-expect-vms.adb: Remove redundant 'in' keywords
19237 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19238 clear error message if the list-of-files file cannot be opened.
19240 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19241 equality operator is always visible.
19243 * lang.opt: Woverlength-strings: New option.
19246 Update copyright, since nmake.ads and nmake.adb have changed.
19248 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19249 (Binder_Output_Time_Stamps_Set): removed.
19250 (Old_Binder_Output_Time_Stamp): idem.
19251 (New_Binder_Output_Time_Stamp): idem.
19252 (Recording_Time_From_Last_Bind): idem.
19253 (Recording_Time_From_Last_Bind): Make constant.
19255 * output.ads, output.adb (Write_Str): Allow LF characters
19256 (Write_Spaces): New procedure
19258 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19260 * inline.adb: Minor reformatting
19262 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19264 * s-mastop-vms.adb: Remove redundant 'in' keywords
19266 * s-osprim-vms.adb: Remove redundant 'in' keywords
19268 * s-trafor-default.adb: Remove redundant 'in' keywords
19270 * 9drpc.adb: Remove redundant 'in' keywords
19272 * s-osinte-mingw.ads: Minor reformatting
19274 * s-inmaop-posix.adb: Minor reformatting
19276 * a-direio.ads: Remove quotes from Compile_Time_Warning message
19278 * a-exexda.adb: Minor code reorganization
19280 * a-filico.adb: Minor reformatting
19282 * a-finali.adb: Minor reformatting
19284 * a-nudira.ads: Remove quote from Compile_Time_Warning message
19286 * a-numeri.ads: Minor reformatting
19288 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19290 * exp_pakd.ads: Fix obsolete comment
19292 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19293 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19294 Probably not a bug, but certainly neater and more efficient.
19296 * a-tienio.adb: Minor reformatting
19298 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19299 Avoid assuming low bound of string is 1.
19301 * gnatbind.adb: Change Bindusg to package and rename procedure as
19302 Display, which now ensures that it only outputs usage information once.
19303 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19305 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19308 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19310 (Match): Add pragma Assert to ensure that Matches'First is zero
19312 * g-regpat.ads (Match): Document that Matches lower bound must be zero
19314 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19315 documented preconditions (also kills warnings about bad indexes).
19317 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19319 (Build_Import_Library): Ditto;
19321 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19323 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19325 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19326 lower bound of choice table is 1.
19328 * sem_case.ads (Analyze_Choices): Document that lower bound of
19331 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19334 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19335 and add appropriate Assert pragma to suppress warnings.
19337 * atree.h, atree.ads, atree.adb
19338 Change Elist24 to Elist25
19339 Add definitions of Field28 and Node28
19340 (Traverse_Field): Use new syntactic parent table in sinfo.
19342 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19344 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19346 * exp_tss.adb: Put routines in alpha order
19348 * fe.h: Remove redundant declarations.
19350 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
19352 * utils.c (builtin_function): Rename to gnat_builtin_function.
19353 Move common code to add_builtin_function.
19354 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19355 gnat_builtin_function.
19356 * gigi.h (builtin_function): Rename to gnat_builtin_function.
19357 Change the signature.
19359 2006-10-16 Brooks Moses <bmoses@stanford.edu>
19361 * Makefile.in: Add TEXI2PDF definition.
19362 * Make-lang.in: Add "ada.pdf" target.
19364 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
19366 * decl.c, utils.c: Fix comment typos.
19367 * utils.c: Fix a typo.
19369 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
19371 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19372 on "pure" Ada subprograms if SJLJ exceptions are used.
19373 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19374 on the declaration node of JMPBUF_SAVE.
19375 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19376 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19377 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19379 2006-08-20 Laurent Guerby <laurent@guerby.net>
19382 g-socket.adb (Bind_Socket): Call Set_Address.
19384 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
19387 * decl.c (same_discriminant_p): New static function.
19388 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19389 subtype and we have discriminants, fix up the COMPONENT_REFs
19390 for the discriminants to make them reference the corresponding
19391 fields of the parent subtype after it has been built.
19393 2006-09-15 Roger Sayle <roger@eyesopen.com>
19396 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19397 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19399 2006-09-13 Olivier Hainque <hainque@adacore.com>
19402 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19403 of a SAVE_EXPR, just make the operand addressable/not-readonly and
19404 let the common gimplifier code make and propagate a temporary copy.
19405 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19406 out/in-out actuals and defer setting the addressable/readonly bits
19409 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19412 * decl.c (components_to_record): Defer emitting debug info for the
19413 record type associated with the variant until after we are sure to
19416 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19419 * gigi.h (gnat_internal_attribute_table): Declare.
19420 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19421 * utils.c (gnat_internal_attribute_table): New global variable.
19422 (builtin_function): Always call decl_attributes on the builtin.
19423 (handle_const_attribute): New static function.
19424 (handle_nothrow_attribute): Likewise.
19426 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
19428 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19430 2006-06-23 Olivier Hainque <hainque@adacore.com>
19432 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19433 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19435 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
19436 Eric Botcazou <ebotcazou@adacore.com>
19439 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
19440 check-gnat into check-acats.
19442 2006-06-17 Karl Berry <karl@gnu.org>
19444 * gnat-style.texi (@dircategory): Use "Software development"
19445 instead of "Programming", following the Free Software Directory.
19447 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19450 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19452 2006-06-06 Laurent Guerby <laurent@guerby.net>
19455 mlib-utl.adb: Use Program_Name.
19457 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
19459 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19460 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19461 trans.c, utils.c: Fix comment typos. Follow spelling
19463 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
19466 2006-05-19 Nicolas Setton <setton@adacore.com>
19468 * misc.c (gnat_dwarf_name): New function.
19469 (LANG_HOOKS_DWARF_NAME): Define to it.
19471 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
19473 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19474 (ada/misc.o): Likewise.
19475 (ada/utils.o): Likewise.
19477 2006-04-08 Aurelien Jarno <aurel32@debian.org>
19479 * Makefile.in: Add Ada support for GNU/kFreeBSD.
19480 * s-osinte-kfreebsd-gnu.ads: New file.
19482 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
19484 * Make-lang.in: Rename docdir to gcc_docdir.
19486 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
19488 * gigi.h (get_ada_base_type): Delete.
19489 * utils2.c (get_ada_base_type): Likewise.
19490 * trans.c (convert_with_check): Operate in the real base type.
19492 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19494 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19496 2006-03-02 Richard Sandiford <richard@codesourcery.com>
19498 * utils.c (create_var_decl): Use have_global_bss_p when deciding
19499 whether to make the decl common.
19501 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
19503 * Make-lang.in (Ada): Remove.
19504 (.PHONY): Remove Ada
19506 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19508 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19509 aggregate, check the interpretations of the other operand to find one
19510 that may be a boolean array.
19512 (Analyze_Selected_Component): Fix flow-of-control typo in case where
19513 the prefix is a private extension.
19515 2006-02-17 Eric Botcazou <botcazou@adacore.com>
19518 * utils2.c (find_common_type): If both input types are BLKmode and
19519 have the same constant size, keep using the first one.
19521 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19523 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19525 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19527 2006-02-17 Jose Ruiz <ruiz@adacore.com>
19529 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19530 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19531 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
19532 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19533 Abort_Defer/Undefer pairs to avoid the possibility of a task being
19534 aborted while owning a lock.
19536 2006-02-17 Javier Miranda <miranda@adacore.com>
19537 Robert Dewar <dewar@adacore.com>
19539 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19540 through an access to class-wide interface we force the displacement of
19541 the pointer to the allocated object to reference the corresponding
19542 secondary dispatch table.
19543 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19544 if Long_Shifts are supported on the target, even if 64 bit divides
19545 are not supported (configurable run time mode).
19546 (Expand_N_Type_Conversion): Do validity check if validity checks on
19547 operands are enabled.
19548 (Expand_N_Qualified_Expression): Do validity check if validity checks
19549 on operands are enabled.
19551 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19553 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19554 must be materialized when the renamed expression is an explicit
19557 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19559 * freeze.adb (Statically_Discriminated_Components): Return false if
19560 the bounds of the type of the discriminant are not static expressions.
19562 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19563 the bounds of the discriminant type are not static.
19565 2006-02-17 Robert Dewar <dewar@adacore.com>
19567 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19568 then we close To if it is valid.
19570 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19572 * init.c (facility_resignal_table): new array
19573 (__gnat_default_resignal_p): enhance default predicate to resignal if
19574 VMS condition has one of the predefined facility codes.
19576 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19578 * Makefile.in: Use VMS64 specialized versions of several units in
19579 Interfaces.C hierarchy to be compatible with HP C default size choices.
19580 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19582 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19584 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19585 instantiation, the corresponding entity is the related_instance of the
19586 wrapper package created for the instance.
19588 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19590 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19591 the current instance is nested within another instance in a child unit.
19593 2006-02-17 Javier Miranda <miranda@adacore.com>
19594 Ed Schonberg <schonberg@adacore.com>
19596 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19597 type we cannot inherit the primitive operations; we inherit the
19598 Corresponding_Record_Type (which has the list of primitive operations).
19599 (Check_Anonymous_Access_Types): When creating anonymous access types for
19600 access components, use Rewrite in order to preserve the tree structure,
19602 (Analyze_Object_Declaration): For limited types with access
19603 discriminants with defaults initialized by an aggregate, obtain
19604 subtype from aggregate as for other mutable types.
19605 (Derived_Type_Declaration): If the derived type is a limited interface,
19606 set the corresponding flag (Is_Limited_Record is not sufficient).
19608 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19610 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19611 to inline a function that returns an unconstrained type, the return
19612 expression must be the first variable declared in the body of the
19615 2006-02-17 Javier Miranda <miranda@adacore.com>
19617 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19618 abstract interface type, the static analysis is not enough to know if
19619 the interface is implemented or not by the source tagged type. Hence
19620 we must pass the work to the expander to generate the required code to
19621 evaluate the conversion at run-time.
19622 (Resolve_Equality_Op): Do not apply previous
19623 transformation if expansion is disasbled, to prevent anomalies when
19624 locating global references in a generic unit.
19626 2006-02-17 Vincent Celier <celier@adacore.com>
19628 * snames.ads, snames.adb: New standard names for new project attributes:
19629 archive_builder, archive_indexer, compiler_pic_option,
19630 config_body_file_name, config_body_file_name_pattern,
19631 config_file_switches, config_file_unique, config_spec_file_name,
19632 config_spec_file_name_pattern, default_builder_switches,
19633 default_global_compiler_switches, default_language,
19634 dependency_file_kind, global_compiler_switches, include_path,
19635 include_path_file, language_kind, linker_executable_option,
19636 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19637 roots, runtime_project.
19639 2006-02-17 Matthew Heaney <heaney@adacore.com>
19641 * a-convec.ads, a-convec.adb:
19642 (operator "&"): handle potential overflow for large index types
19643 (Insert): removed Contraint_Error when using large index types
19644 (Insert_Space): removed Constraint_Error for large index types
19645 (Length): moved constraint check from Length to Insert
19647 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19648 as not null access.
19649 Explicit raise statements now include an exception message.
19650 (operator "&"): handle potential overflow for large index types
19651 (Insert): removed Contraint_Error when using large index types
19652 (Insert_Space): removed Constraint_Error for large index types
19653 (Length): moved constraint check from Length to Insert
19655 2006-02-17 Robert Dewar <dewar@adacore.com>
19657 * s-wchcnv.adb: Document handling of [ on output (we do not change
19658 this to ["5B"] and the new comments say why not.
19661 Add note for -gnatVo that this now includes the cases of type
19662 conversions and qualified expressions.
19663 Add comments on handling of brackets encoding for Text_IO
19665 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
19666 Thomas Quinot <quinot@adacore.com>
19667 Robert Dewar <dewar@adacore.com>
19668 Javier Miranda <miranda@adacore.com>
19670 * expander.adb: Fix typo in comment
19672 * exp_pakd.adb: Fix typo
19673 Minor comment reformatting.
19675 * g-dyntab.adb: Minor reformatting
19677 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19678 aliased subprograms to look for the abstract interface subprogram.
19680 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
19682 * env.c (__gnat_setenv): Use size_t.
19683 (__gnat_unsetenv): Likewise.
19684 (__gnat_clearenv): Likewise.
19686 2006-02-16 Arnaud Charlet <charlet@adacore.com>
19688 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19690 2006-02-13 Arnaud Charlet <charlet@adacore.com>
19692 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19693 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19694 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19695 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19696 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19697 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19698 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19699 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19700 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19703 2006-02-13 Jose Ruiz <ruiz@adacore.com>
19705 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19706 protection against race conditions is not needed.
19707 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19709 (Set_Specific_Handler): Add mutual exclusive access to the specific
19711 (Specific_Handler): Add mutual exclusive access for retrieving the
19714 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19717 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19718 Fall_Back_Handler and Specific_Handler.
19720 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19721 termination handlers.
19722 Set two different owerflow depending on the maximal stack size.
19724 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19725 protection against race conditions is not needed when executing the
19726 task termination handler.
19728 2006-02-13 Robert Dewar <dewar@adacore.com>
19730 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19731 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19732 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19733 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19734 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19735 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19736 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19737 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19738 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19739 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19740 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19741 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19742 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19743 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19744 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19745 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19746 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19747 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19748 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19749 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19750 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19751 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19752 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19753 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19754 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19755 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19756 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19757 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19758 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19759 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19760 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19761 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19762 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19763 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19766 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
19768 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19769 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19770 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19771 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19772 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19773 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19774 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19775 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19776 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19778 2006-02-13 Arnaud Charlet <charlet@adacore.com>
19780 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19781 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
19782 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
19783 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
19784 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
19785 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
19786 replaced by anonymous access type.
19787 (pthread_sigmask): Now take an access sigset_t
19789 * s-osinte-hpux.ads: Ditto.
19790 (pthread_mutex_t, pthread_cond_t): Update definitions to support
19791 properly 32 and 64 bit ABIs.
19793 2006-02-13 Pascal Obry <obry@adacore.com>
19795 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
19796 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
19797 s-taprop-linux.adb, s-taprop-solaris.adb,
19798 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
19799 adjustement is already done when calling this routine.
19801 2006-02-13 Pascal Obry <obry@adacore.com>
19803 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
19804 table to take advantage of the 16 priority levels available on Windows
19805 2000 and XP. On NT4 there are only 7 priority levels, this is properly
19806 supported by this new mapping.
19808 2006-02-13 Nicolas Setton <setton@adacore.com>
19810 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
19811 (get_encoding): New subprogram. Extracts the encodings from an encoded
19814 2006-02-13 Pascal Obry <obry@adacore.com>
19815 Nicolas Roche <roche@adacore.com>
19816 Arnaud Charlet <charlet@adacore.com>
19818 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
19820 (__gnat_try_lock): Add unicode support by using a specific section on
19822 (__gnat_get_current_dir): Idem.
19823 (__gnat_open_read): Idem.
19824 (__gnat_open_rw): Idem.
19825 (__gnat_open_create): Idem.
19826 (__gnat_create_output_file): Idem.
19827 (__gnat_open_append): Idem.
19828 (__gnat_open_new): Idem.
19829 (__gnat_file_time_name): Idem.
19830 (__gnat_set_file_time_name): Idem.
19831 (__gnat_stat): Idem.
19832 (win32_no_block_spawn): Idem.
19833 (__gnat_locate_exec_on_path): Idem.
19834 (__gnat_opendir): New routine.
19835 (__gnat_closedir): Idem.
19836 (__gnat_readdir): Add new parameter length (pointer to int). Update
19837 implementation to use it and add specific Win32 code for Unicode
19839 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
19840 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
19841 (convert_addresses): Do not define this dummy routine on VMS.
19843 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
19844 runtime Unicode support will be activated.
19845 (S2WS): String to Wide-String conversion. This version just copy a
19846 string in non Unicode version.
19847 (WS2S): Wide-String to String conversion. This version just copy a
19848 string in non Unicode version.
19850 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
19851 (Open): Now import __gnat_opendir from adaint.c.
19852 (Read): Change the implementation to support unicode characters. It is
19853 not possible to use strlen() on Windows as this version supports only
19854 standard ASCII characters. So the length of the directory entry is now
19855 returned from the imported __gnat_readdir routine.
19856 Update copyright notice.
19858 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
19859 (opendir): Moved to adaint.c.
19861 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
19862 (Get_Directory): Fix wrong indexing.
19863 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
19864 __gnat_getenv from env.c
19865 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
19868 * env.h, env.c: New file.
19870 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
19871 adaint.c by __gnat_getenv from env.c
19873 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
19874 adaint.c by __gnat_getenv from env.c
19876 * Make-lang.in: Add env.o in the list of C object needed by gnat1
19878 Update dependencies.
19880 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19881 Olivier Hainque <hainque@adacore.com>
19882 Eric Botcazou <ebotcazou@adacore.com>
19884 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
19886 * gigi.h (value_factor_p): Add prototype and description, now public.
19888 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
19889 promotion for field with rep clause if the associated size was proven
19891 Expand comments describing attempts to use a packable type.
19892 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
19893 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
19894 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
19895 necessary since these are not different types and pointers may
19896 actually designate any subtype in this hierarchy.
19897 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
19898 discriminants but put them into record only if not Unchecked_Union;
19899 pass flag to components_to_record showing Unchecked_Union.
19900 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
19901 components before variants; don't set TYPE_UNCHECKED_UNION_P.
19902 (components_to_record): New argument UNCHECKED_UNION.
19903 Remove special case code for Unchecked_Union and instead use main code
19904 with small changes.
19907 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
19908 variable with the expression being built, only its inner field.
19910 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
19911 emit_sequence_entry_statements.
19912 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
19913 (establish_gnat_vms_condition_handler): Move before
19914 Subprogram_Body_to_gnu.
19915 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
19916 for a subprogram if it has a foreign convention or is exported.
19917 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
19918 substituted for a CONST_DECL.
19919 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
19920 Etype to assoc_to_constructor.
19921 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
19922 discriminants of Unchecked_Union.
19923 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
19924 don't need cluttering preprocessor directives.
19925 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
19926 condition handler as current in the compiled function.
19927 (body_with_handlers_p): New function. Tell whether a given sequence of
19928 statements node is attached to a package or subprogram body and involves
19929 exception handlers possibly nested within inner block statements.
19930 (emit_sequence_entry_statements): New function, to emit special
19931 statements on entry of sequences when necessary. Establish GNAT
19932 condition handler in the proper cases for VMS.
19933 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
19934 emit_sequence_entry_statements.
19936 * utils2.c (find_common_type): If both input types are BLKmode and
19937 have a constant size, use the smaller one.
19938 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
19941 * utils.c (value_factor_p): Make public, to allow uses from other gigi
19943 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
19944 (convert, case UNION_TYPE): Remove special treatment for unchecked
19948 (update_pointer_to): Update variants of pointer types to unconstrained
19949 arrays by attaching the list of fields of the main variant.
19951 2006-02-13 Arnaud Charlet <charlet@adacore.com>
19952 Robert Dewar <dewar@adacore.com>
19954 * a-exexpr.adb, a-exexpr-gcc.adb
19955 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
19956 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
19957 Remove code unused for exception propagation for the compiler itself
19958 from a-except.adb and update to still share separate packages.
19960 * a-except.ads, a-except.adb: Ditto.
19961 Add comments that this version is now used only by the compiler and
19962 other basic tools. The full version that includes the Ada 2005 stuff
19963 is in separate files a-except-2005.ads/adb. The reason is that we do
19964 not want to cause bootstrap problems with compilers not recognizing
19966 Add exception reason code PE_Implicit_Return
19967 Add new exception reason code (Null Exception_Id)
19969 * a-except-2005.adb, a-except-2005.ads: New files.
19971 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
19973 * s-wchcon.adb: New file.
19975 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
19976 (traceback.o deps): Likewise.
19977 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
19978 Activate build of GMEM instrumentation library on VMS targets.
19979 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
19980 Use a-except-2005.ads/adb for all run-time library builds unless
19981 specified otherwise.
19982 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
19983 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
19984 Use s-parame.adb on all native platforms.
19985 Use s-parame-vxworks.adb on all vxworks platforms.
19986 Add env.c env.h in LIBGNAT_SRCS
19987 Add env.o in LIBGNAT_OBJS
19988 (GNATMAKE_OBJS): Remove ctrl_c.o object.
19989 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
19990 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
19991 supports VxWorks 6 RTPs.
19992 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
19993 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
19995 * types.h, types.ads (Terminate_Program): New exception
19996 Add comment on modifying multiple versions of a-except.adb when the
19997 table of exception reasons is modified.
19998 Add exception reason code PE_Implicit_Return
19999 Add new exception reason code (Null Exception_Id)
20001 * clean.adb (Initialize): Get the target parameters before checking
20002 if target is OpenVMS. Move the OpenVMS specific code here from package
20003 body elaboration code.
20005 2006-02-13 Thomas Quinot <quinot@adacore.com>
20006 Vincent Celier <celier@adacore.com>
20007 Robert Dewar <dewar@adacore.com>
20009 * ali-util.adb (Get_File_Checksum): Update to account for change in
20010 profile of Initialize_Scanner.
20012 * gprep.adb (Gnatprep): Update to account for change in profile of
20013 Initialize_Scanner.
20014 (Process_One_File): Same.
20016 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20017 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20018 that behaviour using the new Unit information recorded in the source
20019 files table, rather than going through all units every time.
20020 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20021 (Get_Source_Unit): Same.
20023 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20024 change in profile of Initialize_Scanner.
20025 (Prepare_To_Preprocess): Same.
20027 * lib.ads: Fix typo in comment (templace -> template).
20029 * prj-part.adb (Parse_Single_Project): Update to account for change in
20030 profile of Initialize_Scanner.
20032 * scn.adb (Initialize_Scanner): Account for change in profile of
20033 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20034 Also record the association of the given Source_File_Index to the
20035 corresponding Unit_Number_Type.
20037 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20039 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20040 Remove Unit formal for generic scanner: this formal
20041 is only relevant to Scn (the scanner instance used to parse Ada source
20042 files), not to other instances. Update comment accordingly.
20043 (Scan): Use new function Snames.Is_Keyword_Name.
20045 * sinfo-cn.adb: Fix typo in comment.
20047 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20050 * sinput.ads (Source_File_Record): New component Unit, used to capture
20051 the unit identifier (if any) associated to a source file.
20053 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20054 Unit in Source_File_Record.
20056 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20057 in profile of Initialize_Scanner.
20059 * scans.adb (Initialize_Ada_Keywords): New procedure
20061 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20062 Ada keywords in the Namet table, without the need to call
20063 Initialize_Scanner.
20065 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20066 (Is_Keyword_Name): New function
20068 * snames.ads: Add subtype Configuration_Pragma_Names
20069 Add pragma Ada_2005 (synonym for Ada_05)
20070 (Is_Keyword_Name): New function
20072 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20074 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20076 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20079 * a-stwima.adb (To_Set): Add extra check when N = 0.
20081 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20083 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20085 * s-parame-mingw.adb, s-parame-linux.adb,
20086 s-parame-solaris.adb: Removed, replaced by s-parame.adb
20088 * s-parame-vxworks.ads: Fix typo.
20090 * s-parame-vxworks.adb: New file.
20092 * s-parame.adb: Version now used by all native platforms.
20093 (Default_Stack_Size): Use 2 megs for default stack size and use
20094 __gl_default_stack_size when available.
20095 (Minimum_Stack_Size): Use 12K.
20097 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20098 (Create_Task): Refine implementation taking advantage of the XP stack
20099 size support. On XP, we now create the thread using the flag
20100 STACK_SIZE_PARAM_IS_A_RESERVATION.
20102 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20104 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20105 XP and 0 on older Windows versions.
20107 * interfac-vms.ads: Removed, no longer used.
20109 2006-02-13 Matthew Heaney <heaney@adacore.com>
20111 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20112 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20113 a-cohase.adb: All explicit raise statements now include an exception
20116 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20117 (Update_Element_Preserving_Key): renamed op to just Update_Element.
20118 Explicit raise statements now include an exception message
20120 * a-cihase.ads, a-cohase.ads: Removed comment.
20122 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20123 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20124 a-szbzha.adb, a-szfzha.ads: New files.
20126 2006-02-13 Matthew Heaney <heaney@adacore.com>
20128 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20131 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20133 * lang.opt: Wvariadic-macros: New option.
20134 Wold-style-definition: Likewise.
20135 Wmissing-format-attribute: Likewise.
20137 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20138 -Wold-style-definition and -Wmissing-format-attribute.
20140 2006-02-13 Robert Dewar <dewar@adacore.com>
20142 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20144 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20146 2006-02-13 Nicolas Roche <roche@adacore.com>
20148 * a-envvar.adb, a-envvar.ads: New files.
20150 2006-02-13 Douglas Rupp <rupp@adacore.com>
20152 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20154 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20156 2006-02-13 Pat Rogers <rogers@adacore.com>
20158 * a-rttiev.adb, a-rttiev.ads: New files.
20160 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20162 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20163 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
20165 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20167 2006-02-13 Robert Dewar <dewar@adacore.com>
20169 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20170 sem_case.adb: Minor code reorganization (not Present should be No)
20172 2006-02-13 Geert Bosch <bosch@adacore.com>
20173 Gary Dismukes <dismukes@adacore.com>
20175 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20176 0, since the lower bound of the actual string may be greater than one.
20179 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20180 layout is requested.
20182 2006-02-13 Vincent Celier <celier@adacore.com>
20184 * back_end.adb (Scan_Compiler_Arguments): Check if
20185 Search_Directory_Present is True and, if it is, add the argument in
20186 the source search directory path.
20188 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20189 Search_Directory_Present to True.
20191 2006-02-13 Joel Brobecker <brobecke@adacore.com>
20193 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20194 volatile, to tell the compiler to preserve this variable at any level
20196 (Gen_Versions_Ada): Temporarily work around codegen bug.
20198 2006-02-13 Vincent Celier <celier@adacore.com>
20200 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20201 gcc to link with option -shared-libgcc.
20202 (Gnatlink): Remove duplicate switches -shared-libgcc
20204 2006-02-13 Robert Dewar <dewar@adacore.com>
20206 * gnatvsn.ads (Current_Year): New constant, used to easily update
20207 copyright on all GNAT tools.
20209 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20212 2006-02-13 Robert Dewar <dewar@adacore.com>
20214 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20215 after hyphen (small aesthetic change useful for a range of numbers
20217 Suppress range checks for a couple of assignments which otherwise
20218 cause validity checks with validity checking turned on.
20220 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20221 Improvement in error message for object.
20222 (Rep_Item_Too_Late): Remove '!' in warning message.
20224 2006-02-13 Robert Dewar <dewar@adacore.com>
20225 Eric Botcazou <ebotcazou@adacore.com>
20227 * err_vars.ads: Suppress range checks for a couple of assignments
20228 which otherwise cause validity checks with validity checking turned on.
20231 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20232 Make message unconditional if it is a warning.
20233 (Error_Msg_NEL): Always output warning messages.
20234 Suppress range checks for a couple of assignments which otherwise
20235 cause validity checks with validity checking turned on.
20237 * errout.ads (Message Insertion Characters): Document that '!' is
20238 implied by '?' in error messages.
20240 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20241 (Gnat1drv): Use a goto to end of main subprogram instead of
20242 Exit_Program (E_Success) so that finalization can occur normally.
20244 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20246 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20249 2006-02-13 Vincent Celier <celier@adacore.com>
20251 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20252 Unchecked_Conversion functions.
20253 (Modification_Time): Use direct conversion of OS_Time to Calendar time
20254 when OpenVMS returns False.
20256 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20257 a-dirval.adb (OpenVMS): New Boolean function
20259 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20260 Thomas Quinot <quinot@adacore.com>
20262 * checks.adb (Build_Discriminant_Checks): If the expression being
20263 checks is an aggregate retrieve the values of its discriminants to
20264 generate the check, rather than creating a temporary and a reference
20266 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20267 (Install_Null_Excluding_Check): Ditto
20268 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20269 not for the renamed object, so that the actual itype is attached in the
20272 2006-02-13 Robert Dewar <dewar@adacore.com>
20273 Vincent Celier <celier@adacore.com>
20275 * debug.adb: Eliminate numeric switches for binder/gnatmake
20277 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20278 switches for the compiler.
20279 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20280 (Scan_Make_Switches): When failing with an illegal switch, output an
20281 error message with the full switch.
20282 Eliminate numeric switches for binder/gnatmake
20284 * switch.ads, switch.adb (Bad_Switch): New procedure
20286 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20287 Remove 0-9 as debug flag character possibilities
20288 -d is now controlling the primary stack size when its value is a
20289 positive. Also add checks against invalid values, and support for kb,
20290 mb. Ditto for -D switch.
20292 2006-02-13 Robert Dewar <dewar@adacore.com>
20293 Serguei Rybin <rybin@adacore.com>
20295 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20296 save/restore routines.
20297 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20298 were not always properly handled previously.
20299 Since we are changing the tree format anyway, also get rid of the
20300 junk obsolete Immediate_Errors flag.
20301 (Tree_Read): Change the way of reading Tree_Version_String - now we
20302 read the version string from the tree even if its length is not the
20303 same as the length of the version string computed from Gnatvsn.
20304 (Search_Directory_Present): New Boolean flag for the compiler.
20305 Define Tree_Version_String as a dynamic string.
20306 (Default_Stack_Size): new variable, used to handle switch -d.
20309 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20310 only for main unit.
20311 Add pragma Ada_2005 (synonym for Ada_05)
20312 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20313 were not always properly handled previously.
20315 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20316 explicit Ada_95 to Ada_2005.
20318 2006-02-13 Javier Miranda <miranda@adacore.com>
20319 Robert Dewar <dewar@adacore.com>
20320 Ed Schonberg <schonberg@adacore.com>
20322 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20323 against errors in the source program: a private types for which the
20324 corresponding full type declaration is missing and pragma CPP_Virtual
20326 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20327 (Is_Known_Null): New flag
20328 (Has_Pragma_Pure): New flag
20329 (No_Return): Present in all entities, set only for procedures
20330 (Is_Limited_Type): A type whose ancestor is an interface is limited if
20331 explicitly declared limited.
20332 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20333 entities. Only used for component marked Is_Tag. If present it stores
20334 the Offset_To_Top function used to provide this value in tagged types
20335 whose ancestor has discriminants.
20337 * exp_ch2.adb: Update status of new Is_Known_Null flag
20339 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20341 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20342 the categorization sense if Is_Pure was set by pragma Pure_Function.
20344 2006-02-13 Quentin Ochem <ochem@adacore.com>
20345 Olivier Hainque <hainque@adacore.com>
20347 * bindusg.adb: Updated documentation for -d and -D switches.
20349 * raise.h (__gnat_set_globals): added new parameter for
20350 Default_Stack_Size.
20352 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20353 (__gnat_handle_vms_condition): Adjust context before raise.
20354 (__gnat_install_handler): Restore the global vector setup for GCC
20355 versions before 3.4, as the frame based circtuitry is not available
20357 (__gnat_set_globals): added a parameter default_stack_size
20358 (__gl_default_stack_size): new variable.
20360 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20362 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20363 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20364 does not exist in the Ada RM.
20365 (Compatible_Int_Bounds): Determine whether two integer range bounds
20366 are of equal length and have the same start and end values.
20367 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20368 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20369 aggregate when it is part of an object declaration.
20370 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
20371 constrains discriminants of its parent, add explicitly the discriminant
20372 constraints of the ancestor by retrieving them from the
20373 stored_constraint of the parent.
20375 2006-02-13 Robert Dewar <dewar@adacore.com>
20377 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20378 attribute Mechanism_Code is applied to renamed subprogram, modify
20379 prefix to point to base subprogram.
20380 Max/Min attributes now violate Restriction No_Implicit_Conditionals
20382 * sinfo.ads: Document that Mechanism_Code cannot be applied to
20383 renamed subprograms so that the front-end must replace the prefix
20386 2006-02-13 Javier Miranda <miranda@adacore.com>
20387 Gary Dismukes <dismukes@adacore.com>
20389 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20390 availability of RE_Interface_Tag.
20391 (Build_Initialization_Call): Fix wrong access to the discriminant value.
20392 (Freeze_Record_Type): Do not generate the tables associated with
20393 timed and conditional dispatching calls through synchronized
20394 interfaces if compiling under No_Dispatching_Calls restriction.
20395 When compiling for Ada 2005, for a nonabstract
20396 type with a null extension, call Make_Controlling_Function_Wrappers
20397 and insert the wrapper function declarations and bodies (the latter
20398 being appended as freeze actions).
20399 (Predefined_Primitive_Bodies): Do not generate the bodies of the
20400 predefined primitives associated with timed and conditional
20401 dispatching calls through synchronized interfaces if we are
20402 compiling under No_Dispatching_Calls.
20403 (Build_Init_Procedure): Use RTE_Available to check if a run-time
20404 service is available before generating a call.
20405 (Make_Controlling_Function_Wrappers): New procedure.
20406 (Expand_N_Full_Type_Declaration): Create a class-wide master for
20407 access-to-limited-interfaces because they can be used to reference
20408 tasks that implement such limited interface.
20409 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20410 procedure spec and body of the Offset_To_Top function that is generated
20411 when the parent of a type with discriminants has secondary dispatch
20413 (Init_Secondary_Tags): Handle the case in which the parent of the type
20414 containing secondary dispatch tables has discriminants to generate the
20415 correct arguments to call Set_Offset_To_Top.
20416 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20418 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20419 Add Wide_[Wide_]Expanded_Name.
20420 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20421 the same functionality of Get_Prim_Op_Address but applied to predefined
20422 primitive operations because the pointers to the predefined primitives
20423 are now saved in a separate table.
20424 (Parent_Size): Modified to get access to the separate table of primitive
20425 operations or the parent type.
20426 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20427 functionality of Set_Prim_Op_Address but applied to predefined primitive
20429 (Set_Signature): New subprogram used to store the signature of a DT.
20430 (Displace): If the Offset_To_Top value is not static then call the
20431 function generated by the expander to get such value; otherwise use
20432 the value stored in the table of interfaces.
20433 (Offset_To_Top): The type of the actual has been changed to Address to
20434 give the correct support to tagged types with discriminants. In this
20435 case this value is stored just immediately after the tag field.
20436 (Set_Offset_To_Top): Two new formals have been added to indicate if the
20437 offset_to_top value is static and hence pass this value to the run-time
20438 to store it in the table of interfaces, or else if this value is dynamic
20439 and then pass to the run-time the address of a function that is
20440 generated by the expander to provide this value for each object of the
20443 * rtsfind.ads (Default_Prin_Op_Count): Removed.
20444 (Default_Prim_Op_Count): New entity
20445 (Get_Predefined_Prim_Op_Address): New entity
20446 (Set_Predefined_Prim_Op_Address): New entity
20447 (RE_Set_Signature): New entity
20449 2006-02-13 Thomas Quinot <quinot@adacore.com>
20450 Ed Schonberg <schonberg@adacore.com>
20452 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20453 Make_Adjust_Call done for a newly-allocated object.
20455 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20456 in a subprogram are wrapped in a cleanup block, indicate that the
20457 subprogram contains an inner block with an exception handler.
20458 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20459 Adjust call is for a newly-allocated object. In that case we must not
20460 assume that the finalization list chain pointers are correct (since they
20461 come from a bit-for-bit copy of the original object's pointers) so if
20462 the attach level would otherwise be zero (no change), we set it to 4
20463 instead to cause the pointers to be reset to null.
20465 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20466 reset chain pointers to null.
20468 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20470 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20471 string, and the context requires a loop for the assignment (e.g.
20472 because the left-hand side is packed), generate a unique name for the
20473 temporary that holds the string, to prevent spurious name clashes.
20475 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20476 Javier Miranda <miranda@adacore.com>
20477 Robert Dewar <dewar@adacore.com>
20478 Gary Dismukes <dismukes@adacore.com>
20480 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20481 return unconstrained arrays.
20483 (Expand_Call): An indirect call through an access parameter of a
20484 protected operation is not a protected call.
20485 Add circuit to raise CE in Ada 2005 mode following call
20486 to Raise_Exception.
20487 (Register_DT_Entry): Do nothing if
20488 the run-time does not give support to abstract interfaces.
20489 (Freeze_Subprogram): In case of dispatching operations, do not generate
20490 code to register the operation in the dispatch table if the source
20491 is compiled with No_Dispatching_Calls.
20492 (Register_Predefined_DT_Entry): Generate code that calls the new
20493 run-time subprogram Set_Predefined_Prim_Op_Address instead of
20494 Set_Prim_Op_Address.
20496 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20497 on array assignments if the right-hand side is a function call that has
20498 been inlined. Check is performed on the assignment in the block.
20499 (Process_Bounds): If bounds and range are overloaded, apply preference
20500 rule for root operations to disambiguate, and diagnose true ambiguity.
20501 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20502 a tag-indeterminate right-hand side even when Expander_Active is True.
20503 Needed to ensure that dispatching calls to T'Input are allowed and
20504 get the tag of the target class-wide object.
20506 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20507 an inherited primitive operation that already overrides several
20508 abstract interface primitives. For transitivity, the new entity must
20509 also override all the abstract interface primitives covered by the
20510 inherited overriden primitive.
20511 Emit warning if new entity differs from homograph in same scope only in
20512 that one has an access parameter and the other one has a parameter of
20513 a general access type with the same designated type, at the same
20514 position in the signature.
20515 (Make_Inequality_Operator): Use source locations of parameters and
20516 subtype marks from corresponding equality operator when creating the
20517 tree structure for the implicit declaration of "/=". This does not
20518 change anything in behaviour except that the decoration of the
20519 components of the subtree created for "/=" allows ASIS to get the
20520 string images of the corresponding identifiers.
20521 (Analyze_Return_Statement): Remove '!' in warning message.
20522 (Check_Statement_Sequence): Likewise.
20523 (Analyze_Subprogram_Body): For an access parameter whose designated type
20524 is an incomplete type imported through a limited_with clause, use the
20525 type of the corresponding formal in the body.
20526 (Check_Returns): Implicit return in No_Return procedure now raises
20527 Program_Error with a compile time warning, instead of beging illegal.
20528 (Has_Single_Return): Function returning unconstrained type cannot be
20529 inlined if expression in unique return statement is not an identifier.
20530 (Build_Body_To_Inline): It is possible to inline a function call that
20531 returns an unconstrained type if all return statements in the function
20532 return the same local variable. Subsidiary procedure Has_Single_Return
20533 verifies that the body conforms to this restriction.
20535 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20536 same type, and one of them is of an anonymous access type, convert
20537 the other operand to it, so that this is a valid binary operation for
20539 (Resolve_Type_Conversion): Handle subtypes of protected types and
20540 task types when accessing to the corresponding record type.
20541 (Resolve_Allocator): Add '\' in 2-line warning message.
20542 Remove '!' in warning message.
20543 (Resolve_Call): Add '\' in 2-line warning message.
20544 (Valid_Conversion): Likewise.
20545 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20546 resulting type may be an access type with an implicit dereference.
20547 Obtain the proper component from the designated type.
20548 (Make_Call_Into_Operator): Handle properly a call to predefined equality
20549 given by an expanded name with prefix Standard, when the operands are
20550 of an anonymous access type.
20551 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20552 Explicit_Dereference and Resolve_Selected_Component, to verify that the
20553 prefix of the expression is not of an incomplete type. Allows full
20554 diagnoses of all semantic errors.
20555 (Resolve_Actuals): If the actual is an allocator whose directly
20556 designated type is a class-wide interface we build an anonymous
20557 access type to use it as the type of the allocator. Later, when
20558 the subprogram call is expanded, if the interface has a secondary
20559 dispatch table the expander will add a type conversion to force
20560 the displacement of the pointer.
20561 (Resolve_Call): If a function that returns an unconstrained type is
20562 marked Inlined_Always and inlined, the call will be inlined and does
20563 not require the creation of a transient scope.
20564 (Check_Direct_Boolean_Op): Removed
20565 (Resolve_Comparison_Op): Remove call to above
20566 (Resolve_Equality_Op): Remove call to above
20567 (Resolve_Logical_Op): Inline above, since this is only call.
20568 (Valid_Conversion): Handle properly conversions between arrays of
20569 convertible anonymous access types.
20572 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20573 the literal in an unchecked conversion, because GCC 4.x needs a static
20574 value for a string bound.
20576 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20577 Hristian Kirtchev <kirtchev@adacore.com>
20579 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20580 components of the corresponding record, take into account component
20581 definitions that are access definitions.
20582 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20583 procedure is not considered a dispatching call and will be expanded
20586 2006-02-13 Javier Miranda <miranda@adacore.com>
20588 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20589 controlling argument of the dispatching call is an abstract interface
20590 class-wide type then we use it directly.
20591 Check No_Dispatching_Calls restriction.
20592 (Default_Prim_Op_Position): Remove the code that looks for the last
20593 entity in the list of aliased subprograms. This code was wrong in
20595 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20596 when the source is compiled with the No_Dispatching_Calls restriction.
20597 (Init_Predefined_Interface_Primitives): No need to inherit primitives
20598 if we are compiling with restriction No_Dispatching_Calls.
20599 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20600 subprograms if we are compiling under No_Dispatching_Calls restriction.
20601 (Make_DT): Generate a dispatch table with a single dummy entry if
20602 we are compiling with the No_Dispatching_Calls restriction. In
20603 addition, in this case we don't generate code that calls to the
20604 following run-time subprograms: Set_Type_Kind, Inherit_DT.
20605 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20606 of this subprogram if compiling with the No_Dispatching_Calls
20608 (Expand_Type_Conversion): Instead of using the actual parameter,
20609 the argument passed as parameter to the conversion function was
20610 erroneously referenced by the expander.
20611 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20612 Set_Predefined_Primitive_Op_Address and Set_Signature.
20613 (Expand_Dispatching_Call): Generate call to
20614 Get_Predefined_Prim_Op_Address for predefined primitives.
20615 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20616 predefined primitives.
20617 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20618 primitives we reserve one dummy entry to ensure that the tag does not
20619 point to some memory that is associated with some other object. In
20620 addition, remove all the old code that generated the assignments
20621 associated with the signature of the dispatch table and replace them
20622 by a call to the new subprogram Set_Signature.
20623 (Set_All_DT_Position): Change the algorithm because now we have a
20624 separate dispatch table associated with predefined primitive operations.
20625 (Expand_Interface_Conversion): In case of non-static offset_to_top
20626 add explicit dereference to get access to the object after the call
20627 to displace the pointer to the object.
20628 (Expand_Interface_Thunk): Modify the generation of the actual used
20629 in the calls to the run-time function Offset_To_Top to fulfil its
20631 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20633 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20635 * exp_dist.adb (Copy_Specification): For access parameters, copy
20636 Null_Exclusion flag, which will have been set for stream subprograms
20639 2006-02-13 Pascal Obry <obry@adacore.com>
20641 * expect.c (__gnat_expect_portable_execvp): New implementation. The
20642 previous implementation was using the C runtime spawnve routine but
20643 the corresponding wait was using directly the Win32 API. This was
20644 causing some times a lock when waiting for an event using
20645 WaitForSingleObject in __gnat_waitpid. This new implementation uses
20646 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20647 API fixes this problem.
20649 2006-02-13 Robert Dewar <dewar@adacore.com>
20651 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20654 2006-02-13 Thomas Quinot <quinot@adacore.com>
20656 * exp_pakd.ads: Fix typos in comments.
20658 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20659 array reference that is an explicit dereference, mark the converted
20660 (packed) array reference as analyzed to prevent a forthcoming
20661 reanalysis from resetting its type to the original (non-packed) array
20664 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20665 Javier Miranda <miranda@adacore.com>
20666 Eric Botcazou <ebotcazou@adacore.com>
20668 * exp_util.ads, exp_util.adb (Find_Prim_Op,
20669 Is_Predefined_Primitive_Operation): When
20670 searching for the predefined equality operator, verify that operands
20671 have the same type.
20672 (Is_Predefined_Dispatching_Operation): Remove the code that looks
20673 for the last entity in the list of aliased subprograms. This code
20674 was wrong in case of renamings.
20675 (Set_Renamed_Subprogram): New procedure
20676 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20677 Exp_Type constant computed when entering this subprogram.
20678 (Known_Null): New function
20679 (OK_To_Do_Constant_Replacement): New function
20680 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20681 (Side_Effect_Free): An attribute reference 'Input is not free of
20682 side effect, unlike other attributes that are functions. (from code
20684 (Remove_Side_Effects): Expressions that involve packed arrays or records
20685 are copied at the point of reference, and therefore must be marked as
20686 renamings of objects.
20687 (Is_Predefined_Dispatching_Operation): Return false if the operation is
20688 not a dispatching operation.
20691 (Remove_Side_Effects): Lift enclosing type conversion nodes for
20692 elementary types in all cases.
20694 2006-02-13 Javier Miranda <miranda@adacore.com>
20696 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20697 task types when accessing to the corresponding record type.
20698 Remove '!' in warning message.
20700 2006-02-13 Olivier Hainque <hainque@adacore.com>
20702 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20703 to avoid useless and space inefficient overalignments on targets where
20704 Max_Alignment is larger than 16.
20706 2006-02-13 Pascal Obry <obry@adacore.com>
20708 * g-catiio.adb (Sec_Number): New type used to compute the number of
20709 seconds since 1-1-1970.
20710 (Image) [Natural]: The parameter was an Integer, as we can't deal with
20711 negative numbers (years, months...) it is better to have a Natural here.
20713 (Image) [Number]: Change parameter from Long_Integer to Number.
20714 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20715 overflow for dates past year 2038.
20717 2006-02-13 Matthew Heaney <heaney@adacore.com>
20719 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20722 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20724 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20726 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20727 finalization can occur normally.
20729 2006-02-13 Vincent Celier <celier@adacore.com>
20731 * gnatcmd.adb (Rules_Switches): New table
20732 (Add_To_Rules_Switches): New procedure
20733 (GNATCmd): For command CHECK, put all options following "-rules" in the
20734 Rules_Switches table. Append these -rules switches after the -cargs
20737 2006-02-13 Robert Dewar <dewar@adacore.com>
20739 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20740 These two cases were generating incorrect output, and if this unit
20741 was built with checks on, generated a discriminant mismatch constraint
20744 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20745 Robert Dewar <dewar@adacore.com>
20747 * lib-xref.adb (Get_Type_Reference): For a private type whose full
20748 view is an array type, indicate the component type as well, for
20749 navigation purposes.
20750 (Generate_Reference): Don't consider array ref on LHS to be a case
20751 of violating pragma Unreferenced.
20752 Do not give Ada 2005 warning except on real reference.
20754 2006-02-13 Vincent Celier <celier@adacore.com>
20756 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20757 main source, add switch -mdebug-main=_ada_ so that the executable can
20758 be debugged by the standard VMS debugger.
20759 (Gnatmake): Set No_Main_Subprogram to True when there is no main
20760 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20761 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20762 of the last source, as the binding and linking phases are never
20764 Set all executable obsolete when rebuilding a library.
20766 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20769 2006-02-13 Javier Miranda <miranda@adacore.com>
20772 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20773 code to improve the error message reported when the program has
20774 declarations of abstract interface types and it is not compiled with
20775 the -gnat05 switch.
20776 (P_Access_Definition): Reorganize the code to improve the error
20777 message reported when the new Ada 2005 syntax for anonymous
20778 access types is used and the program is not compiled with the
20781 2006-02-13 Robert Dewar <dewar@adacore.com>
20783 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
20784 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
20787 2006-02-13 Javier Miranda <miranda@adacore.com>
20789 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
20790 against source containing syntax errors.
20792 2006-02-13 Vincent Celier <celier@adacore.com>
20794 * prj.adb (Reset): Initialize the first element of table Namings with
20795 the standard naming data.
20797 2006-02-13 Vincent Celier <celier@adacore.com>
20799 * prj.ads (Error_Warning): New enumeration type
20801 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
20802 unknown, use the location of the project to report the error.
20803 (When_No_Sources): New global variable
20804 (Report_No_Ada_Sources): New procedure
20805 (Check): New parameter When_No_Sources. Set value of global variable
20807 (Find_Sources): Call Report_No_Ada_Sources when appropriate
20808 (Get_Sources_From_File): Ditto
20809 (Warn_If_Not_Sources): Better warning messages indicating the unit name
20812 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
20813 Call Prj.Proc.Process with parameter When_No_Sources.
20815 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
20816 Call Recursive_Check with parameter When_No_Sources.
20817 (Recursive_Check): New parameter When_No_Sources. Call itself and
20818 Prj.Nmsc.Check with parameter When_No_Sources.
20819 (Process): New parameter When_No_Sources. Call Check with parameter
20821 (Copy_Package_Declarations): New procedure to copy renamed parameters
20822 and setting the location of the declared attributes to the location
20823 of the renamed package.
20824 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
20827 2006-02-13 Vincent Celier <celier@adacore.com>
20829 * prj-makr.adb (Make): Preserve the comments from the original project
20831 When removing nodes (attributes Source_Dirs, Source_Files,
20832 Source_List_File and package Naming), save the comments and attach the
20833 saved comments to the newly created nodes.
20834 Do not add a with clause for the naming package if one already exists.
20836 2006-02-13 Javier Miranda <miranda@adacore.com>
20837 Gary Dismukes <dismukes@adacore.com>
20838 Robert Dewar <dewar@adacore.com>
20840 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
20842 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
20843 aliased entities to look for the overriden abstract interface
20845 (Is_Interface_Subprogram): Complete documentation.
20846 (Check_Dispatching_Operation): Do not generate code to register the
20847 operation in the dispatch table if the source is compiled with
20848 restriction No_Dispatching_Calls.
20849 (Override_Dispatching_Operation): Check for illegal attempt to override
20850 No_Return procedure with procedure that is not No_Return
20851 (Check_Dispatching_Call): Suppress the check for an abstract operation
20852 when the original node of an actual is a tag-indeterminate attribute
20853 call, since the attribute, which must be 'Input, can never be abstract.
20854 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
20855 call to the Input attribute (even when rewritten).
20856 (Propagate_Tag): Augment comment to indicate the possibility of a call
20857 to an Input attribute.
20859 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
20860 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
20862 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
20863 No_Wide_Characters is no longer partition-wide
20864 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
20867 2006-02-13 Douglas Rupp <rupp@adacore.com>
20869 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
20871 2006-02-13 Javier Miranda <miranda@adacore.com>
20873 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
20874 handles default-initialized components to keep separate the management
20875 of this feature but also avoid the unrequired resolution and
20876 expansion of components that do not have partially initialized
20878 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
20879 (Check_Bounds): Likewise.
20880 (Check_Length): Likewise.
20882 2006-02-13 Javier Miranda <miranda@adacore.com>
20883 Ed Schonberg <schonberg@adacore.com>
20885 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
20886 abstract interface type call analyze_and_resolve to expand the type
20887 conversion into the corresponding displacement of the
20888 reference to the base of the object.
20889 (Eval_Attribute, case Width): For systems where IEEE extended precision
20890 is supported, the maximum exponent occupies 4 decimal digits.
20891 (Accessibility_Message): Add '\' in 2-line warning message.
20892 (Resolve_Attribute): Likewise.
20893 (case Attribute_Access): Significantly revise checks
20894 for illegal access-to-subprogram Access attributes to properly enforce
20895 the rules of 3.10.2(32/2).
20896 Diagnose use of current instance with an illegal attribute.
20898 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
20900 (Enclosing_Generic_Unit): New function to return a node's innermost
20901 enclosing generic declaration node.
20902 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
20903 (Type_Access_Level): The accessibility level of anonymous acccess types
20904 associated with discriminants is that of the current instance of the
20905 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
20906 (Compile_Time_Constraint_Error): Handle case of conditional expression.
20907 (Kill_Current_Values_For_Entity): New function
20908 (Enter_Name): Change formal type to Entity_Id
20910 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20911 Ed Schonberg <schonberg@adacore.com>
20912 Gary Dismukes <dismukes@adacore.com>
20914 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
20915 Analyze_Compilation_Unit.
20916 Detect and warn on redundant with clauses detected in a package spec
20917 and/or body when -gnatwr is used.
20918 (Analyze_Context): Analyze config pragmas before other items
20919 (Install_Context_Items): Don't analyze config pragmas here
20920 (Install_Limited_Withed_Unit): Set limited entity of package in
20921 with_clause so that cross-reference information or warning messages on
20922 unused packages can be properly generated
20923 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
20924 has Error_Posted set. Prevent infinite loops in illegal programs.
20925 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
20926 to the point of the error test requiring the current unit to be private.
20927 This ensures that private with clauses are not exempted from the basic
20928 checking for being a descendant of the same library unit parent as a
20929 withed private descendant unit.
20930 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
20931 handle private with clauses properly, as well as to account for cases
20932 where the withed unit is a public descendant of a private ancestor
20933 (in which case the current unit must be a descendant of the private
20934 ancestor's parent). The spec comments were updated accordingly. Also,
20935 the old error message in this subprogram was replaced with error
20936 messages that mirror the errors tested and reported by
20937 Check_Private_Child_Unit.
20938 Parameter and variable names improved for readability.
20939 (Install_Limited_Context_Clauses): Remove test for a withed unit being
20940 private as the precondition for calling
20941 Check_Private_Limited_Withed_Unit since that subprogram has been
20942 revised to test public units as well as private units.
20944 2006-02-13 Thomas Quinot <quinot@adacore.com>
20945 Robert Dewar <dewar@adacore.com>
20946 Ed Schonberg <schonberg@adacore.com>
20947 Javier Miranda <miranda@adacore.com>
20949 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
20950 that Scope_Stack.First = 1.
20951 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20952 were not always properly handled previously.
20953 (Formal_Entity): Complete rewrite, to handle properly some complex case
20954 with multiple levels of parametrization by formal packages.
20955 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
20956 to the corresponding derived type declaration for proper semantics.
20958 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
20959 (Check_Component): Enforce restriction on components of
20960 unchecked_unions: a component in a variant cannot contain tasks or
20962 (Unchecked_Union): Allow nested variants and multiple discriminants, to
20964 Add pragma Ada_2005 (synonym for Ada_05)
20965 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20966 were not always properly handled previously.
20967 Document that pragma Propagate_Exceptions has no effect
20968 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
20969 (Set_Convention_From_Pragma): Check that if a convention is
20970 specified for a dispatching operation, then it must be
20971 consistent with the existing convention for the operation.
20972 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
20973 longer required to specify an vtable-ptr component in the record. For
20974 compatibility reasons we leave the support for the previous definition.
20975 (Analyze_Pragma, case No_Return): Allow multiple arguments
20977 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
20978 non-overrideen inherited operation with a controlling result as
20979 illegal only its implicit declaration comes from the derived type
20980 declaration of its result's type.
20981 (Check_Possible_Deferred_Completion): Relocate the object definition
20982 node of the subtype indication of a deferred constant completion rather
20983 than directly analyzing it. The analysis of the generated subtype will
20984 correctly decorate the GNAT tree.
20985 (Record_Type_Declaration): Check whether this is a declaration for a
20986 limited derived record before analyzing components.
20987 (Analyze_Component_Declaration): Diagnose record types not explicitly
20988 declared limited when a component has a limited type.
20989 (Build_Derived_Record_Type): Code reorganization to check if some of
20990 the inherited subprograms of a tagged type cover interface primitives.
20991 This check was missing in case of a full-type associated with a private
20993 (Constant_Redeclaration): Check that the subtypes of the partial and the
20994 full view of a constrained deferred constant statically match.
20995 (Mentions_T): A reference to the current type in an anonymous access
20996 component declaration must be an entity name.
20997 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
20998 class_wide type to refer to full type, not to the incomplete one.
20999 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21000 available. Required to give support to the certified run-time.
21001 (Analyze_Component_Declaration): In case of anonymous access components
21002 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21003 (Process_Discriminants): For an access discriminant, use the
21004 discriminant specification as the associated_node_for_itype, to
21005 simplify accessibility checks.
21007 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21008 Javier Miranda <miranda@adacore.com>
21010 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21011 abstract interpretations on an operator, remove interpretations that
21012 yield Address or a type derived from it, if one of the operands is an
21014 (Try_Object_Operation.Try_Primitive_Operation,
21015 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21016 location when creating the new reference to a primitive or class-wide
21017 operation as a part of rewriting a subprogram call.
21018 (Try_Primitive_Operations): If context requires a function, collect all
21019 interpretations after the first match, because there may be primitive
21020 operations of the same type with the same profile and different return
21021 types. From code reading.
21022 (Try_Primitive_Operation): Use the node kind to choose the proper
21023 operation when a function and a procedure have the same parameter
21025 (Complete_Object_Operation): If formal is an access parameter and prefix
21026 is an object, rewrite as an Access reference, to match signature of
21027 primitive operation.
21028 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21029 by an expanded name with prefix Standard, when the operands are of an
21030 anonymous access type.
21031 (Remove_Abstract_Operations): If the operation is abstract because it is
21032 inherited by a user-defined type derived from Address, remove it as
21033 well from the set of candidate interpretations of an overloaded node.
21034 (Analyze_Membership_Op): Membership test not applicable to cpp-class
21037 2006-02-13 Bob Duff <duff@adacore.com>
21039 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21040 redundant use clauses.
21041 In particular, if the scope of two use clauses overlaps, but one is not
21042 entirely included in the other, we should not warn. This can happen
21043 with nested packages.
21044 (Analyze_Subprogram_Renaming): Protect the compiler against previously
21045 reported errors. The bug was reported when the compiler was built
21046 with assertions enabled.
21047 (Find_Type): If the node is a 'Class reference and the prefix is a
21048 synchronized type without a corresponding record, return the type
21051 2006-02-13 Javier Miranda <miranda@adacore.com>
21053 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21054 if this is the full-declaration associated with a private declaration
21055 that implement interfaces, then the private type declaration must be
21057 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21058 as aliased. The use of the 'access attribute is not available for such
21059 object (for this purpose the object should be explicitly marked as
21060 aliased, but being an anonymous type this is not possible).
21062 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21063 Robert Dewar <dewar@adacore.com>
21065 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21066 compilation unit is an elaboration scope.
21067 (Add_Task_Proc): Add '\' in 2-line warning message.
21068 (Activate_All_Desirable): Deal with case of unit with'ed by parent
21070 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21071 Javier Miranda <miranda@adacore.com>
21073 * sem_type.adb (Write_Overloads): Improve display of candidate
21075 (Add_One_Interp): Do not add to the list of interpretations aliased
21076 entities corresponding with an abstract interface type that is an
21077 immediate ancestor of a tagged type; otherwise we have a dummy
21078 conflict between this entity and the aliased entity.
21079 (Disambiguate): The predefined equality on universal_access is not
21080 usable if there is a user-defined equality with the proper signature,
21081 declared in the same declarative part as the designated type.
21082 (Find_Unique_Type): The universal_access equality operator defined under
21083 AI-230 does not cover pool specific access types.
21084 (Covers): If one of the types is a generic actual subtype, check whether
21085 it matches the partial view of the other type.
21087 2006-02-13 Thomas Quinot <quinot@adacore.com>
21089 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21090 line. This is necessary to allow In_Extended_Main_Unit to provide
21091 correct results for itypes while writing out expanded source.
21092 (Close_File): No need to update the source_index_table here since it's
21093 now done for each line.
21095 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21096 Robert Dewar <dewar@adacore.com>
21098 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21099 preserve the source unit where the itype is declared, and prevent a
21101 (Note_Implicit_Run_Time_Call): New procedure
21102 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21105 * sprint.ads: Document use of $ for implicit run time routine call
21107 2006-02-13 Quentin Ochem <ochem@adacore.com>
21109 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21112 2006-02-13 Bob Duff <duff@adacore.com>
21114 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21115 Scan_Unsigned, so we do not scan leading blanks and sign twice.
21116 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21117 raise Constraint_Error.
21119 * s-vallli.adb (Scan_Long_Long_Integer): Call
21120 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21121 do not scan leading blanks and sign twice.
21122 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21123 raise Constraint_Error.
21125 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21126 Scan_Long_Long_Unsigned): Split out most of the processing from
21127 Scan_Long_Long_Unsigned out into
21128 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21129 This prevents scanning leading blanks and sign twice.
21130 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21133 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21134 out most of the processing from Scan_Unsigned out into
21135 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21136 This prevents scanning leading blanks and sign twice.
21138 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21139 use with Modular'Value attribute.
21140 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21143 2006-02-13 Robert Dewar <dewar@adacore.com>
21145 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21147 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21149 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21150 (PPC VxWorks): Likewise.
21151 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21152 (forced_callee): Make non-inlinable and non-pure.
21153 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21155 2006-02-13 Arnaud Charlet <charlet@adacore.com>
21156 Ben Brosgol <brosgol@adacore.com>
21157 Robert Dewar <dewar@adacore.com>
21159 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21161 Document that gnatbind -M option is for cross environments only.
21162 Added description of using gnatmem to trace gnat rtl allocs and deallocs
21163 Add note on use of $ to label implicit run time calls
21164 Add documentation for -gnatyI (check mode IN)
21165 Updated chapter on compatibility with HP Ada
21166 VMS-oriented edits.
21167 Ran spell and corrected errors
21168 Add documentation for gnatbind -d and rework documentation of -D
21170 Add subprogram/data elimination section.
21171 Minor editing of annex A.
21172 Add section for gnatcheck.
21173 Add documentation for restriction No_Dispatching_Calls
21174 Add documentation for pragma Ada_2005
21175 Remove mention of obsolete pragma Propagate_Exceptions
21176 Document that pragma Unreferenced can appear after DO in ACCEPT
21177 Clarify Pure_Function for library level units
21178 Mention Max/Min in connection with No_Implicit_Conditionals
21179 No_Wide_Characters restriction is no longer partition-wide
21180 Add a nice example for Universal_Literal_String attribute
21181 Document that pragma No_Return can take multiple arguments
21183 * ug_words: Added entry for gnatcheck
21185 * g-ctrl_c.ads (Install_Handler): Enhance comments
21187 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21189 * g-trasym.ads: Add documentation on how to do off line symbolic
21190 traceback computation.
21192 * s-fatgen.adb: Add comments for Unaligned_Valid
21194 * stand.ads: Fix typo in comment
21196 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
21198 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21200 2006-02-06 Roger Sayle <roger@eyesopen.com>
21202 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21204 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21207 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21208 implementation that calls __main.
21210 2006-01-25 Peter O'Gorman <peter@pogma.com>
21213 * Makefile.in (GCC_LINK): Remove quotes.
21214 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21217 (powerpc-darwin): Pass -shared-libgcc when building shared library.
21219 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21222 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21224 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21226 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21228 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21230 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21233 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21235 * Make-lang.in: Update dependencies
21237 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21239 * Make-lang.in: Add rule for ada/exp_sel.o
21241 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21243 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21245 2005-12-09 Arnaud Charlet <charlet@adacore.com>
21247 * gnatvsn.ads (Library_Version): Bump to version 4.2
21248 (ASIS_Version_Number): Bumped.
21250 2005-12-09 Doug Rupp <rupp@adacore.com>
21252 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21253 Ada bind file prefix on VMS from b$ to b__.
21254 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21257 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21258 Targparm.OpenVMS_On_Target.
21259 (Object_Suffix): Initialize with target object suffix.
21260 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21262 * butil.adb: Change some Hostparm.OpenVMS checks to
21263 Targparm.OpenVMS_On_Target.
21265 * clean.adb: Change some Hostparm.OpenVMS checks to
21266 Targparm.OpenVMS_On_Target.
21267 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21268 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21269 Ada bind file prefix on VMS from b$ to b__.
21271 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21272 --GCC so that Get_Target_Parameters can find system.ads.
21273 (Gnatlink): Call Get_Target_Parameters in mainline.
21274 Initialize standard packages for Targparm.
21275 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21276 (Process_Args): Also Check for object files with target object
21278 (Make_Binder_File_Names): Create with target object extension.
21279 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21282 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21283 Targparm.OpenVMS_On_Target.
21284 ({declaration},Build_Library,Check_Library): Change Ada bind file
21285 prefix on VMS from b$ to b__.
21287 * osint-b.adb: Change some Hostparm.OpenVMS checks to
21288 Targparm.OpenVMS_On_Target.
21289 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21292 * targext.c: New file.
21294 * Makefile.in: add support for vxworks653 builds
21295 (../../vxaddr2line): gnatlink with targext.o.
21296 (TOOLS_LIBS): Move targext.o to precede libgnat.
21297 (init.o, initialize.o): Minor clean up in dependencies.
21298 (GNATLINK_OBJS): Add targparm.o, snames.o
21299 Add rules fo building targext.o and linking it explicitly with all
21301 Also add targext.o to gnatlib.
21303 * Make-lang.in: Add rules for building targext.o and linking it in
21304 with gnat1 and gnatbind.
21305 Add entry for exp_sel.o.
21307 * osint.adb Change some Hostparm.OpenVMS checks to
21308 Targparm.OpenVMS_On_Target.
21309 (Object_File_Name): Use target object suffix.
21311 * osint.ads (Object_Suffix): Remove, no longer used.
21312 (Target_Object_Suffix): Initialize with target object suffix.
21314 * rident.ads: Add special exception to license.
21316 * targparm.adb (Get_Target_Parameters): Set the value of
21317 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21319 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21321 * targparm.ads: Add special exception to license.
21323 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21325 (Copy_File): Make sure from file is closed if error on to file
21326 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21328 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21329 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21331 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21332 target object suffix.
21334 2005-12-09 Jose Ruiz <ruiz@adacore.com>
21335 Quentin Ochem <ochem@adacore.com>
21336 Florian Villoing <villoing@adacore.com>
21338 * a-taster.ads, a-taster.adb: New files.
21340 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21341 link to the version that does nothing. This way the task termination
21342 routine is not executed twice for the environment task when finishing
21343 because of an unhandled exception.
21345 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21346 handler because of an unhandled exception.
21348 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21349 System.Tasking.Utilities instead of that in System.Tasking.Stages.
21351 * s-finimp.adb (initialization code): Modify the soft link for the
21352 finalization of the global list instead of Adafinal.
21354 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21355 non-tasking version of the soft link for task termination. We do
21356 nothing since if we are using the non-tasking version it
21357 means that the task termination functionality is not used.
21358 (Null_Finalize_Global_List): Add this null version for the procedure
21359 in charge of finalizing the global list for controlled objects.
21360 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21361 instead for handling run-time termination in a more flexible way.
21362 (Adafinal_NT): This new procedure will take care of finalizing the
21363 global list for controlled objects if needed, but no tasking
21366 * s-tarest.adb (Task_Lock): Do not try to lock again the
21367 Global_Task_Lock if we already own it. Otherwise, we get blocked in
21368 some run-time operations.
21369 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21370 until all nested locks have been released.
21371 (Task_Wrapper): Call the fall-back task termination handler. It
21372 applies to all tasks but the environment task.
21373 (Finalize_Global_Tasks): Add the call for the task termination
21374 procedure for the environment task.
21375 (Task_Wrapper): suppress warnings around declaration of
21376 Secondary_Stack_Address.
21378 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21379 moved to the Common_ATCB record.
21380 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21381 Common_ATCB record.
21382 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21383 Common_ATCB record.
21385 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21386 Fall_Back_Handler, and Specific_Handler.
21388 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21389 defined in Ada.Task_Termination, to avoid circular dependencies.
21390 (Termination_Handler): Redefine this type here, alredy defined in
21391 Ada.Task_Termination, for avoiding circular dependencies.
21392 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21393 for storing task termination handlers. In addition,
21394 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21395 Common_ATCB because it is used by both the regular and the restricted
21397 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21398 Common_ATCB because it is used by both the regular and the restricted
21400 (Common_ATCB): Added a dynamic task analyzer field.
21402 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21403 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21404 (Task_Wrapper): Call the task termination handler. It applies to all
21405 tasks but the environment task.
21406 (Finalize_Global_Tasks): Call the task termination procedure for the
21407 environment task. The call to Finalize_Global_List is now performed
21408 using the soft links mechanism.
21409 (Task_Wrapper): added dynamic stack analysis.
21411 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21412 potentially blocking operations has been moved from
21413 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21414 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21415 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21416 this run-time check.
21418 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21419 of task termination procedure.
21420 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21421 link for the task termination procedure.
21423 * bindusg.adb: (Bindusg): Added documentation for -u option.
21425 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21426 (Get_Main_C): Add handling of dynamic stack analysis.
21427 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21429 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21430 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21431 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21433 * opt.ads: Added flags used by dynamic stack measurement.
21434 (Max_Line_Length): Remove (not used anymore)
21436 * s-io.ads, s-io.adb (Standard_Error): new subprogram
21437 (Standart_Output): new subprogram
21438 (Set_Output): new subprogram
21439 (Put): now uses the value of Current_Out to know if the output has to be
21440 send to stderr or stdout.
21442 * s-stausa.ads: Complete implementation.
21444 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
21446 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21447 list of Ada 05 files.
21448 (GNAT Library Units): Add AltiVec files.
21450 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21451 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21452 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21454 2005-12-09 Nicolas Setton <setton@adacore.com>
21456 * adaint.c (__gnat_locate_regular_file): Return immediately if
21457 file_name is empty.
21459 2005-12-09 Javier Miranda <miranda@adacore.com>
21460 Hristian Kirtchev <kirtchev@adacore.com>
21462 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21463 to the specification because the frontend generates code that uses this
21465 (Set_Interface_Table): Add missing assertion.
21466 Update documentation describing the run-time structure.
21467 (Displace): New subprogram that displaces the pointer to the object
21468 to reference one of its secondary dispatch tables.
21469 (IW_Membership): Modified to use the new table of interfaces.
21470 (Inherit_TSD): Modified to use the new table of interfaces.
21471 (Register_Interface_Tag): Use the additional formal to fill the
21472 contents of the new table of interfaces.
21473 (Set_Interface_Table): New subprogram that stores in the TSD the
21474 pointer to the table of interfaces.
21475 (Set_Offset_To_Top): Use the additional formal to save copy of
21476 the offset value in the table of interfaces.
21477 Update structure of GNAT Primary and Secondary dispatch table diagram.
21478 Add comment section on GNAT dispatch table prologue.
21479 (Offset_To_Signature): Update the constant value of the Signature field.
21480 (Dispatch_Table): Update comment on hidden fields in the prologue.
21481 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21482 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21483 the type of formal parameter T to Tag, introduce additional assertions.
21484 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21486 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21488 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21489 in all the calls to Expand_Interface_Thunk. Instead of referencing the
21490 record component containing the tag of the secondary dispatch table we
21491 have to use the Offset_To_Top run-time function to get this information;
21492 otherwise if the pointer to the base of the object has been displace
21493 we get a wrong value if we use the 'position attribute.
21495 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21496 all the calls to Expand_Interface_Thunk.
21497 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21498 interfaces; hence the call to Set_Interface_Table was clearly wrong.
21499 (Collect_All_Interfaces): Modify the internal subprogram Collect to
21500 ensure that the interfaces implemented by the ancestors are placed
21501 at the header of the generated list.
21502 (Expand_Interface_Conversion): Handle the case in which the displacement
21503 associated with the interface conversion is not statically known. In
21504 this case we generate a call to the new run-time subprogram Displace.
21505 (Make_DT): Generate and fill the new table of interfaces.
21506 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21507 Get_Tagged_Kind and Set_Tagged_Kind.
21508 (Tagged_Kind): New function that determines the tagged kind of a type
21509 with respect to limitedness and concurrency and returns a reference to
21511 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21512 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21513 primary dispatch table for a type.
21514 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21515 secondary dispatch table respectively of a tagged type.
21517 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21518 (Expand_Interface_Conversion): New subprogram to indicate if the
21519 displacement of the type conversion is statically known.
21520 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21522 * rtsfind.ads (RE_Offset_To_Top): New entity
21523 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21524 accessible to users.
21525 (Re_Displace): New entity
21526 (RE_Interface_Data): New entity
21527 (RE_Set_Interface_Data): New_Entity
21528 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21529 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21530 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21531 RE_TK_Tagged, RE_TK_Task.
21533 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21534 Init_Secondary_Tags_Internal to allow its use with interface types and
21535 also to generate the code for the new additional actual required
21536 by Set_Offset_To_Top.
21537 (Build_Init_Statements): In case of components associated with abstract
21538 interface types there is no need to generate a call to its IP.
21539 (Freeze_Record_Type): Generate Select Specific Data tables only for
21541 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21542 the bodies and specifications of the predefined primitive operations
21543 dealing with dispatching selects and abort, 'Callable, 'Terminated only
21544 for concurrent types.
21546 * exp_sel.ads, exp_sel.adb: New files.
21548 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21549 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21550 properly protected objects and attach handler in the case of the
21551 restricted profile.
21552 Move embeded package Select_Expansion_Utilities into a separate external
21554 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21555 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21556 (Build_K, Build_S_Assignment): New subprograms, part of the select
21557 expansion utilities.
21558 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21559 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21560 where the trigger is a dispatching procedure of a limited tagged type.
21562 2005-12-09 Olivier Hainque <hainque@adacore.com>
21564 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21565 pointer initialization values. Make a SAVE_EXPR instead. Add comments
21566 about the use and expansion of SAVE_EXPRs in the various possible
21567 renaming handling cases.
21568 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21569 abusing DECL_FCONTEXT.
21571 2005-12-09 Matthew Heaney <heaney@adacore.com>
21573 * a-convec.adb (Merge): Added assertions to check whether vector params
21576 * a-coinve.adb (Merge): Added assertions to check whether vector params
21579 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21581 (Cursor'Read): raises PE
21583 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21584 to its default value.
21586 * a-cihama.adb: Manually check whether cursor's key and elem are
21589 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21590 (Merge): Assert that target and source lists are in order
21591 (Swap): Declare non-const temporaries, to pass to Splice
21593 * a-cdlili.ads: (Splice): Changed param name and param mode
21595 * a-cdlili.adb: (Splice): Changed param name and param mode
21596 (Merge): Assert that target and source lists are in order
21597 (Swap): Declare non-const temporaries, to pass to Splice
21599 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21600 (Write): declare Stream param as not null
21602 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21603 an exception message.
21605 2005-12-09 Thomas Quinot <quinot@adacore.com>
21606 Robert Dewar <dewar@adacore.com>
21608 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21609 which is the absolute maximum length we can support.
21611 * frontend.adb: For the processing of configuration pragma files,
21612 remove references to Opt.Max_Line_Length, which is not checked anymore.
21614 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21617 * scn.adb, scng.adb:
21618 Always check line length against the absolute supported maximum,
21619 Hostparm.Max_Line_Length.
21621 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21622 value for the maximum line length is Max_Line_Length (not
21623 Column_Number'Last).
21624 Minor error msg update
21625 (Set_Style_Check_Options): New interface returning error msg
21626 Minor code reorganization (processing for 'M' was out of alpha order)
21628 * switch-c.adb: New interface for Set_Style_Check_Options
21630 * stylesw.ads (Set_Style_Check_Options): New interface returning error
21633 2005-12-09 Javier Miranda <miranda@adacore.com>
21635 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21636 with IP subprogram were only supported if there were limited types.
21638 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21639 records with IP subprogram were only supported if there were limited
21642 2005-12-09 Olivier Hainque <hainque@adacore.com>
21643 Eric Botcazou <ebotcazou@adacore.com>
21645 * trans.c (tree_transform, emit_check): Adjust calls to
21646 build_call_raise, passing the now expected GNAT_NODE argument.
21648 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21649 source line information than what the current global locus indicates
21652 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21653 field has overflowed.
21654 (build_call_raise): Add a GNAT_NODE argument to convey better source
21655 line information than what the current global locus indicates when
21657 (build_component_ref): Adjust call to build_call_raise.
21659 2005-12-09 Pascal Obry <obry@adacore.com>
21661 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21662 the iterator is quitting iteration on parent directory.
21664 2005-12-09 Javier Miranda <miranda@adacore.com>
21666 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21667 and the assignment to a class-wide object, before the assignment we
21668 generate a run-time check to ensure that the tag of the Target is
21669 covered by the tag of the source.
21671 2005-12-09 Robert Dewar <dewar@adacore.com>
21673 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21674 parameter in call to Image_Wide_Character.
21676 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21677 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21678 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21679 annoying FFFE/FFFF inconsistency.
21681 2005-12-09 Robert Dewar <dewar@adacore.com>
21682 Javier Miranda <miranda@adacore.com>
21683 Ed Schonberg <schonberg@adacore.com>
21685 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21686 of type conversion.
21687 (Find_Interface): New subprogram that given a tagged type and one of its
21688 component associated with the secondary table of an abstract interface
21689 type, return the entity associated with such abstract interface type.
21690 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21691 base type to create anonymous subtype, because entity may be a locally
21692 declared subtype or generic actual.
21693 (Find_Interface): New subprogram that given a tagged type and one of its
21694 component associated with the secondary table of an abstract interface
21695 type, return the entity associated with such abstract interface type.
21697 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21698 conversion cannot be handled at compile time. In this case we pass this
21699 information to the expander to generate the appropriate code.
21701 2005-12-09 Robert Dewar <dewar@adacore.com>
21702 Ed Schonberg <schonberg@adacore.com>
21703 Gary Dismukes <dismukes@adacore.com>
21704 Javier Miranda <miranda@adacore.com>
21705 Hristian Kirtchev <kirtchev@adacore.com>
21707 * einfo.adb (Itype_Printed): New flag
21708 (Is_Limited_Type): Derived types do not inherit limitedness from
21709 interface progenitors.
21710 (Is_Return_By_Reference_Type): Predicate does not apply to limited
21713 * einfo.ads (Itype_Printed): New flag
21714 Move Is_Wrapper_Package to proper section
21715 Add missing Inline for Is_Volatile
21717 * output.ads, output.adb (Write_Erase_Char): New procedure
21718 (Save/Restore_Output_Buffer): New procedures
21719 (Save/Restore_Output_Buffer): New procedures
21721 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21722 Add missing support for anonymous access type
21723 (Write_Id): Insert calls to Write_Itype
21724 (Write_Itype): New procedure to output itypes
21726 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21727 use of "limited" in declaration.
21729 * sinfo.ads, sinfo.adb:
21730 Formal derived types can carry an explicit "limited" indication.
21732 * sem_ch3.adb: Add with and use of Targparm.
21733 (Create_Component): If Frontend_Layout_On_Target is True and the
21734 copied component does not have a known static Esize, then reset
21735 the size and positional fields of the new component.
21736 (Analyze_Component_Declaration): A limited component is
21737 legal within a protected type that implements an interface.
21738 (Collect_Interfaces): Do not add to the list the interfaces that
21739 are implemented by the ancestors.
21740 (Derived_Type_Declaration): If the parent of the full-view is an
21741 interface perform a transformation of the tree to ensure that it has
21742 the same parent than the partial-view. This simplifies the job of the
21743 expander in order to generate the correct object layout, and it is
21744 needed because the list of interfaces of the full-view can be given in
21746 (Process_Full_View): The parent of the full-view does not need to be
21747 a descendant of the parent of the partial view if both parents are
21749 (Analyze_Private_Extension_Declaration): If declaration has an explicit
21750 "limited" the parent must be a limited type.
21751 (Build_Derived_Record_Type): A derived type that is explicitly limited
21752 must have limited ancestor and progenitors.
21753 (Build_Derived_Type): Ditto.
21754 (Process_Full_View): Verify that explicit uses of "limited" in partial
21755 and full declarations are consistent.
21756 (Find_Ancestor_Interface): Remove function.
21757 (Collect_Implemented_Interfaces): New procedure used to gather all
21758 implemented interfaces by a type.
21759 (Contain_Interface): New function used to check whether an interface is
21761 (Find_Hidden_Interface): New function used to determine whether two
21762 lists of interfaces constitute a set equality. If not, the first
21763 differing interface is returned.
21764 (Process_Full_View): Improve the check for the "no hidden interface"
21765 rule as defined by AI-396.
21767 2005-12-09 Robert Dewar <dewar@adacore.com>
21769 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21770 types, not on record subtypes.
21771 (Freeze_Entity): Code cleanup. Add barrier to the loop
21772 that generates the references for primitive operations. This allows to
21773 remove an unnecessary exception handler.
21774 Code reformatting and comment clean ups.
21776 2005-12-09 Vincent Celier <celier@adacore.com>
21778 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21779 If GNAT CHECK is called with a project file, but with no
21780 source on the command line, call gnatcheck with all the compilable
21781 sources of the project.
21782 Take into account the new command Check, for gnatcheck. Treat as for
21783 other ASIS tools: take into account project, specific package Check and
21785 For ASIS tools, add the switches in package Compiler for
21786 the invocation of the compiler.
21788 * prj-attr.adb: Add package Check and its attributes
21790 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
21792 * vms_conv.adb (Initialize): Change Params of command Check to
21794 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21795 Add data for new command Check
21797 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
21799 Add qualifiers for Check command options
21800 (Command_Type): New command Check
21802 2005-12-09 Thomas Quinot <quinot@adacore.com>
21804 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
21805 command line switch overruns the output buffer.
21807 2005-12-09 Robert Dewar <dewar@adacore.com>
21809 * sem_prag.adb: Processing for new pragma Complete_Representation
21810 (Analyze_Pragma, case Debug): Implement two argument form.
21812 * par-prag.adb: Entry for new pragma Complete_Representation
21813 (Prag, case Debug): Recognize two argument form of pragma Debug
21814 New interface for Set_Style_Check_Options.
21816 * sem_ch13.adb: Implement new pragma Complete_Representation.
21818 * snames.adb, snames.ads, snames.h: Entry for new pragma
21819 Complete_Representation.
21821 2005-12-09 Gary Dismukes <dismukes@adacore.com>
21823 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
21824 available user-specified stream attributes on limited parameters to
21825 also test the type directly rather than only its underlying type (for
21826 Ada 95) and, in the case of Ada 2005, to check that the user-specified
21827 attributes are visible at the point of the subprogram declaration.
21828 For Ada 2005, the error message is modified to indicate that the
21829 type's stream attributes must be visible (again, only for -gnat05).
21831 2005-12-09 Ed Schonberg <schonberg@adacore.com>
21833 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
21834 anonymous access types.
21836 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
21837 matching of anonymous access types and anonymous access to subprogram
21838 types. 'R'M 4.9.1 (2/2).
21840 2005-12-09 Ed Schonberg <schonberg@adacore.com>
21842 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
21843 rule prematurely when operands are universal, remaining ambiguities
21844 will be removed during resolution.
21847 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
21848 that are Ada 2005 functions.
21849 (Has_Abstract_Interpretation): Subsidiary to
21850 Remove_Conversions, to remove ambiguities caused by abstract operations
21851 on numeric types when operands are universal.
21853 2005-12-09 Robert Dewar <dewar@adacore.com>
21855 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
21856 for case where spec is categorized.
21858 2005-12-09 Javier Miranda <miranda@adacore.com>
21860 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
21861 types use the corresponding record type. This was not needed before
21862 the implementation of Ada 2005 synchronized types because
21863 concurrent types were never tagged types in Ada 95.
21865 2005-12-09 Ed Schonberg <schonberg@adacore.com>
21867 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
21868 first subtype of the type of the expression to verify that it is a
21871 2005-12-09 Robert Dewar <dewar@adacore.com>
21873 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
21876 2005-12-09 Quentin Ochem <ochem@adacore.com>
21877 Robert Dewar <dewar@adacore.com>
21878 Ed Falis <falis@adacore.com>
21879 Florian Villoing <villoing@adacore.com>
21880 Thomas Quinot <quinot@adacore.com>
21881 Arnaud Charlet <charlet@adacore.com>
21883 * gnat_ugn.texi: Created section "Stack Related Tools"
21884 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
21885 "Stack Related Tools"
21886 Added subsection "Static Stack Usage Analysis"
21887 Added subsection "Dynamic Stack Usage Analysis"
21888 Include documentation of itypes in sprint listing (-gnatG)
21889 Documented gnatbind -D switch (default sec stack size for fixed sec
21891 Added Interrupt_State and Persistent_BSS to list of configuration
21893 Add missing doc for maximum value of nnn in -gnatyMnnn
21895 * gnat_rm.texi: Document the AltiVec binding.
21896 Add documentation for pragma Complete_Representation
21897 Shortened an overly long line (> 79 chars)
21898 Clarify documentation of unchecked conversion in implementation
21900 Document two argument form of pragma Debug
21902 * types.ads (Column_Number): Update documentation.
21904 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
21905 library level Finalize_Storage_Only objects (these are not attached to
21906 any finalization list).
21908 * system-mingw.ads: (Underlying_Priorities): Update comment.
21910 2005-12-09 Robert Dewar <dewar@adacore.com>
21912 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
21913 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
21914 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
21915 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
21916 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
21917 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
21918 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
21919 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
21922 2005-12-09 Robert Dewar <dewar@adacore.com>
21924 * s-vaflop-vms-alpha.adb: (Ne_F): New function
21925 (Ne_G): New function
21927 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
21928 for tag assignment.
21929 (Rewrite_Comparison): Handle case where operation is not a comparison
21930 and ignore, and also handle type conversion case.
21932 2005-12-09 Thomas Quinot <quinot@adacore.com>
21934 * exp_aggr.ads: Fix typo in comment.
21935 ???-mark Convert_Aggr_In_Assignment as needing documentation.
21937 2005-12-09 Gary Dismukes <dismukes@adacore.com>
21939 * layout.adb: Replace various uses of byte by storage unit throughout.
21940 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
21941 static size, convert to storage units before returning, to conform to
21944 2005-12-09 Matthew Gingell <gingell@adacore.com>
21946 * g-exctra.ads: Fix typo in comment.
21948 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21950 * utils.c: Minor reformatting.
21952 2005-12-09 Robert Dewar <dewar@adacore.com>
21955 Further comment fixes to make the status of the default file clear
21957 * s-bitops.adb: Clarify comment for Bits_Array
21959 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
21961 * Make-lang.in (ada.install-normal): Remove.
21963 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
21965 * Make-lang.in: Remove all dependencies on s-gtype.
21967 2005-12-05 Richard Guenther <rguenther@suse.de>
21969 * utils.c (convert): Use fold_convert where appropriate.
21971 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
21973 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
21976 2005-12-02 Richard Guenther <rguenther@suse.de>
21978 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
21980 2005-12-01 Roger Sayle <roger@eyesopen.com>
21982 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
21985 2005-11-23 Laurent Guerby <laurent@guerby.net>
21987 * mlib-prj.adb (Build_Library): Initialize Delete.
21989 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
21991 * socket.c: Add extern int h_errno for rtems since networking header
21992 files are not available at this point in a tool bootstrap. Newlib
21993 only has basic C library header files.
21995 2005-11-19 Richard Guenther <rguenther@suse.de>
21996 Roger Sayle <roger@eyesopen.com>
21999 * misc.c (internal_error_function): Don't use vsprintf to format
22000 the error message text, instead use pp_format_text and the new
22001 pretty printer APIs. This allows handling of %qs, %w, etc.
22003 2005-11-18 Laurent Guerby <laurent@guerby.net>
22006 * Makefile.in: Use s-auxdec-empty for RTEMS.
22008 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22011 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22012 a temporary if taking the address of something that is neither
22013 reference, declaration, or constant, since the gimplifier
22014 can't handle that case.
22016 2005-11-17 Laurent Guerby <laurent@guerby.net>
22019 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22021 2005-11-16 Richard Guenther <rguenther@suse.de>
22023 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22025 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
22028 * raise-gcc.c: Add missing stdarg.h include.
22030 2005-11-16 Richard Guenther <rguenther@suse.de>
22032 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22033 (ada/misc.o): Likewise.
22035 2005-11-14 Thomas Quinot <quinot@adacore.com>
22037 * g-soccon.ads: Minor reformatting. Update comments.
22039 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22040 gain visibility on the declaration of struct timeval.
22042 * g-soccon-freebsd.ads,
22043 g-soccon-darwin.ads,
22044 g-soccon-tru64.ads,
22048 g-soccon-solaris.ads,
22050 g-soccon-mingw.ads,
22051 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22053 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22054 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22055 g-soccon-linux-x86.ads: New files.
22057 * g-socthi-mingw.adb:
22058 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22060 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22061 (time_t, suseconds_t): New types constructed to match the tv_sec
22062 and tv_usec fields of C struct timeval.
22063 (Timeval): Construct structure in terms of the new types.
22064 (Host_Errno): New function (imported from socket.c), returns last hosts
22067 * g-socthi-vxworks.adb: Add error handling circuitry.
22069 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22070 components of struct timeval.
22071 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22072 (Check_Selector): In error conditions, clear internal socket sets to
22073 avoid a memory leak.
22074 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22075 Send_Timeout, Receive_Timeout.
22077 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22078 the tv_sec and tv_usec fields of C struct timeval.
22079 (Timeval): Construct structure in terms of the new types.
22080 (Host_Errno): New function (imported from socket.c), returns last hosts
22083 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22084 hosts database last error code.
22086 * gen-soccon.c: Complete value expansion should not be performed on
22087 TARGET, as it has the form of a math expression, and some components
22088 may be platform-defined macros.
22089 For VxWorks, generate the OK and ERROR values.
22090 New constants giving the sizes of the components of C struct timeval.
22092 2005-11-14 Robert Dewar <dewar@adacore.com>
22093 Ed Schonberg <schonberg@adacore.com>
22096 * types.ads: Include All_Checks in Suppress_Array
22098 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22099 not(a=b), since we no longer do this rewriting, and hence it is not
22101 (Elaboration_Checks_Suppressed): Add special casing to
22102 deal with different cases of static and dynamic elaboration checks (all
22103 checks does not count in the first case, but does in the second).
22104 (Expr_Known_Valid): Do not assume that the result of any arbitrary
22105 function call is valid, since this is not the case.
22106 (Ensure_Valid): Do not apply validity check to a real literal
22107 in a universal or fixed context
22109 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22110 elementary types using the operator in standard. It is cleaner not to
22111 modify the programmers intent, especially in the case of floating-point.
22112 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22113 it did not matter because we always rewrote a/=b to not(a=b).
22114 (Expand_Allocator_Expression): For an allocator expression whose nominal
22115 subtype is an unconstrained packed type, convert the expression to its
22116 actual constrained subtype.
22117 Implement warning for <= or >= where < or > not possible
22118 Fix to Vax_Float tests (too early in many routines, causing premature
22119 Vax_Float expansions.
22121 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22122 to be used with packages and generic packages as well as with
22124 (Suppress): Set All_Checks, but not Elaboration_Check, for case
22125 of pragma Suppress (All_Checks)
22126 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22127 a string literal for precise control over warnings.
22128 Avoid raise of pragma in case of unrecognized pragma and just return
22131 * sem_prag.ads: Minor reformatting
22133 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22134 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22135 Switch. Do not handle any exception.
22136 Include -gnatwx as part of -gnatg (warn on redundant parens)
22137 Allow optional = after -gnatm
22138 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22139 longer sets Elaboration_Checks.
22140 Code to set warning mode moved to Sem_Warn
22141 so that it can be shared by pragma processing.
22143 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22146 * s-taprop-solaris.adb:
22147 Change some <= to =, to avoid new warning
22149 * a-exexda.adb, prj-proc.adb:
22150 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22151 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22153 2005-11-14 Robert Dewar <dewar@adacore.com>
22155 * exp_vfpt.adb: Handle /= case
22156 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22157 so that we do not get duplicate scaling for fixed point conversions.
22159 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22161 2005-11-14 Matthew Gingell <gingell@adacore.com>
22163 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22164 Increase default priority on Lynx from 15 to 17, and meet the Ada
22165 requirement that Default_Priority be ((Priority'First +
22166 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22168 2005-11-14 Vincent Celier <celier@adacore.com>
22170 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22171 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22172 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22173 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22174 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22175 mlib-tgt-lynxos.adb (DLL_Prefix): New function
22177 2005-11-14 Doug Rupp <rupp@adacore.com>
22179 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22182 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22184 * s-traces-default.adb, s-trafor-default.ads,
22185 s-tratas-default.adb: Fix compilation errors.
22187 2005-11-14 Jose Ruiz <ruiz@adacore.com>
22189 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22190 raising the exception so the memory used is freed.
22192 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22194 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22195 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22196 (convert_address): Update comments and list of platforms using this.
22198 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22201 2005-11-14 Pascal Obry <obry@adacore.com>
22202 Vincent Celier <celier@adacore.com>
22204 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22207 * memroot.adb: Remove redundant with/use clause on
22208 System.Storage_Elements.
22210 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22212 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22213 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22214 related code to a-exexpr.adb
22215 (Save_Occurrence_And_Private): Move GCC EH related code to
22217 (Raise_Current_Excep): Add new variable Id with pragma
22218 volatile, to ensure that the variable lives on stack.
22220 * a-exexpr-gcc.adb, raise-gcc.c: New file.
22222 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22224 Move GCC EH related code to a-exexpr-gcc.adb
22226 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22228 Split the Linux version of g-soccon into separate variants for 32 and 64
22230 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22231 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22232 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22233 of host variable $(RANLIB_FLAGS).
22234 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22235 Code clean up: remove unused/obsolete targets.
22236 (EH_MECHANISM): New variable introduced to differenciate between the
22237 two EH mechanisms statically.
22238 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22239 (LIBGNAT_OBJS): Add raise-gcc.o
22240 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22241 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22242 supports VxWorks 6 RTPs.
22243 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22244 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22246 * raise.c: Move all GCC EH-related routines to raise-gcc.c
22248 2005-11-14 Jose Ruiz <ruiz@adacore.com>
22250 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22251 deferral level, when abort is not allowed, to a later stage (the
22253 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22254 it will not get changed by the generated code. It was previously done
22257 2005-11-14 Thomas Quinot <quinot@adacore.com>
22258 Olivier Hainque <hainque@adacore.com>
22259 Eric Botcazou <ebotcazou@adacore.com>
22262 Factor common code to build a storage type for an unconstrained object
22263 from a fat or thin pointer type and a constrained object type.
22264 (annotate_value): Handle BIT_AND_EXPR.
22265 (annotate_rep): Don't restrict the back annotation of inherited
22266 components to the type_annotate_only case.
22267 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22268 we are not defining the type.
22269 <E_Record_Type>: Likewise.
22270 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22271 to get advantage of the new maybe_stabilize_reference interface, to
22272 ensure that what we reference is indeed stabilized instead of relying
22273 on assumptions on what the stabilizer does.
22274 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22275 type imported through a limited_with clause, use its non-limited view.
22276 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22278 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22279 of #if sections + explicit comparisons of convention identifiers.
22280 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22281 before early-returning for certain types when code generation is
22283 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22284 nullification of gnu_expr we do for objects with address clause and
22285 that we are not defining.
22286 (elaborate_expression_1): Do not create constants when creating
22287 variables needed by the debug info: the dwarf2 writer considers that
22288 CONST_DECLs is used only to represent enumeration constants, and emits
22290 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22291 object with an address clause into an indirect reference, drop the
22292 initializing expression.
22294 (STACK_CHECK_BUILTIN): Delete.
22295 (STACK_CHECK_PROBE_INTERVAL): Likewise.
22296 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22297 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22298 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22299 corresponding to the renamed object as ignored for debugging purposes.
22301 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22302 related): For a prefix that is a dereference of a fat or thin pointer,
22303 if there is an actual subtype provided by the front-end, use that
22304 subtype to build an actual type with bounds template.
22305 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22306 is provided by the front-end, use that subtype to compute the size of
22307 the deallocated object.
22308 (gnat_to_gnu): When adding a statement into an elaboration procedure,
22309 check for a potential violation of a No_Elaboration_Code restriction.
22310 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22311 with extra arguments to control whether to recurse through non-values
22312 and to let the caller know if the stabilization has succeeded.
22313 (gnat_stabilize_reference): Now a simple wrapper around
22314 maybe_stabilize, for common uses without restriction on lvalues and
22315 without need to check for the success indication.
22316 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22317 pass false instead of 0 as the FORCE argument which is a bool.
22318 (Identifier_to_gnu): Remove checks ensuring that an renamed object
22319 attached to a renaming pointer has been properly stabilized, as no such
22320 object is attached otherwise.
22321 (call_to_gnu): Invoke create_var_decl to create the temporary when the
22322 function uses the "target pointer" return mechanism.
22323 Reinstate conversion of the actual to the type of the formal
22324 parameter before any other specific treatment based on the passing
22325 mechanism. This turns out to be necessary in order for PLACEHOLDER
22326 substitution to work properly when the latter type is unconstrained.
22328 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22330 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22331 with extra arguments to control whether to recurse through non-values
22332 and to let the caller know if the stabilization has succeeded.
22334 * utils2.c (gnat_build_constructor): Only sort the fields for possible
22335 static output of record constructor if all the components are constant.
22336 (gnat_build_constructor): For a record type, sort the list of field
22337 initializers in increasing bit position order.
22338 Factor common code to build a storage type for an unconstrained object
22339 from a fat or thin pointer type and a constrained object type.
22340 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22341 types variants, and process special cases of VIEW_CONVERT expressions
22342 as their NOP_EXPR counterpart to ensure we get to the
22343 CORRESPONDING_VARs associated with CONST_DECls.
22344 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22345 on the right-hand side.
22347 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22349 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22350 are converting back to its original type.
22351 (convert) <JM input>: Fallthrough regular conversion code instead of
22352 extracting the object if converting to a type variant.
22353 (create_var_decl): When a variable has an initializer requiring code
22354 generation and we are at the top level, check for a potential violation
22355 of a No_Elaboration_Code restriction.
22356 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22357 SIZE and SIZE_UNIT which we need for later back-annotations.
22358 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22359 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22360 is an unchecked union.
22361 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22362 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22363 main variant, just replace the VIEW_CONVERT_EXPR.
22364 <UNION_TYPE>: Revert 2005-03-02 change.
22366 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22368 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22370 2005-11-14 Matthew Heaney <heaney@adacore.com>
22372 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22373 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22374 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22375 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22376 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22377 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22378 Compiles against the spec for ordered maps described in sections
22379 A.18.6 of the most recent (August 2005) AI-302 draft.
22381 2005-11-14 Olivier Hainque <hainque@adacore.com>
22383 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22384 to ensure bias adjustments take place when need be and to prevent
22385 occurrences of intermediate overflows.
22387 2005-11-14 Matthew Gingell <gingell@adacore.com>
22388 Olivier Hainque <hainque@adacore.com>
22390 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22393 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22394 tracebacks on ia64 HP-UX and provide explanatory comment.
22395 Enable backtraces on ia64 GNU/Linux.
22396 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22397 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22399 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22400 Javier Miranda <miranda@adacore.com>
22402 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22403 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22404 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22405 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22407 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22408 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22411 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22412 subprogram that generates the external name associated with a
22413 secondary dispatch table.
22414 (Get_Secondary_DT_External_Name): New subprogram that generates the
22415 external name associated with a secondary dispatch table.
22417 2005-11-14 Emmanuel Briot <briot@adacore.com>
22419 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22420 line in the ALI file to include both an instantiation reference, and a
22423 2005-11-14 Vincent Celier <celier@adacore.com>
22425 * clean.adb (Check_Project): Look for Ada code in extending project,
22426 even if Ada is not specified as a language.
22427 Use new function DLL_Prefix for DLL_Name
22428 (Clean_Interface_Copy_Directory): New procedure
22429 (Clean_Library_Directory): New procedure
22430 (Clean_Directory): Remove procedure, no longer used
22431 (Clean_Project): Do not delete any file in an externally built project
22433 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22434 directory of an extending project, even when there are no Ada source
22436 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22437 (Set_Ada_Paths.Add.Recursive_Add): Ditto
22439 * mlib-prj.adb (Check_Library): For all library projects, get the
22440 library file timestamp.
22441 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22442 (Build_Library): Use new function DLL_Prefix for the DLL_Name
22443 (Clean): Remove procedure, no longer used
22444 (Ultimate_Extension_Of): New function
22445 (Build_Library): When cleaning the library directory, only remove an
22446 existing library file and any ALI file of a source of the project.
22447 When cleaning the interface copy directory, remove any source that
22448 could be a source of the project.
22450 * prj.ads, prj.adb (Project_Empty): Add values of new components
22451 Library_TS and All_Imported_Projects.
22452 (Project_Empty): Add values for new components of Project_Data:
22453 Library_ALI_Dir and Display_Library_ALI_Dir
22455 * prj-attr.adb: New project level attribute name Library_ALI_Dir
22457 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22458 attribute Library_ALI_Dir.
22459 (Check_Library_Attributes): The library directory cannot be the same as
22460 any source directory of the project tree.
22461 (Check_Stand_Alone_Library): The interface copy directory cannot be
22462 the same as any source directory of the project tree.
22464 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22465 all temporary files.
22467 2005-11-14 Robert Dewar <dewar@adacore.com>
22468 Ed Schonberg <schonberg@adacore.com>
22470 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22471 (Check_Elab_Call): A call within a protected body is never an
22472 elaboration call, and does not require checking.
22473 (Same_Elaboration_Scope): Take into account protected types for both
22475 (Activate_Elaborate_All_Desirable): New procedure
22477 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22480 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22481 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22483 * lib-writ.ads, lib-writ.adb:
22484 Implement new AD/ED for Elaborate_All/Elaborate desirable
22485 Use new Elaborate_All_Desirable flag in N_With_Clause node
22487 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22488 N_Free_Statement nodes.
22489 Define new class N_Subprogram_Instantiation
22490 Add Elaborate_Desirable flag to N_With_Clause node
22491 Add N_Delay_Statement (covering two kinds of delay)
22493 * debug.adb: Introduce d.f flag for compiler
22494 Add -da switch for binder
22496 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22497 Cyrille Comar <comar@adacore.com>
22499 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22500 for task component, in the case of a limited aggregate. The enclosed
22501 object declaration will create it earlier. Otherwise, in the case of a
22502 nested aggregate, the object may appear in the wrong scope.
22503 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22504 (Gen_Assign): If the component being assigned is an array type and the
22505 expression is itself an aggregate, wrap the assignment in a block to
22506 force finalization actions on the temporary created for each row of the
22508 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22509 structures are initialized after all discriminants are set so that
22510 they can be accessed even when their offset is dynamic.
22512 2005-11-14 Robert Dewar <dewar@adacore.com>
22513 Hristian Kirtchev <kirtchev@adacore.com>
22515 * sem_attr.adb: Implement Machine_Rounding attribute
22516 (Analyze_Access_Attribute): The access attribute may appear within an
22517 aggregate that has been expanded into a loop.
22518 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22519 'Terminated whenever the prefix is of a task interface class-wide type.
22520 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22521 the prefix is of a task interface class-wide type.
22523 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22526 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22527 Remove pragma Inline for [Unaligned_]Valid.
22528 Add comments that Valid routines do not work for Vax_Float
22530 * exp_attr.adb: Implement Machine_Rounding attribute
22532 * snames.h: Add entry for Machine_Rounding attribute
22534 2005-11-14 Javier Miranda <miranda@adacore.com>
22535 Robert Dewar <dewar@adacore.com>
22536 Hristian Kirtchev <kirtchev@adacore.com>
22538 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22539 and related): For a prefix that is an explicit dereference of an
22540 access to unconstrained packed array type, annotate the dereference
22541 with an actual subtype so GIGI can make a correct size computation.
22542 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22543 'Unrestricted_Access, if the designated type is an interface we
22544 add a type conversion to force the displacement of the pointer
22545 to the secondary dispatch table.
22546 Use Universal_Real instead of Long_Long_Float when we need a high
22547 precision float type for the generated code (prevents gratuitous
22548 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22549 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22550 'Terminated for task interface class-wide objects. Generate a call to
22551 the predefined dispatching routine used to retrieve the _task_id from
22552 a task corresponding record.
22553 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22555 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22556 (Check_Dispatching_Operation): Protect the frontend againts
22557 previously detected errors.
22559 * Makefile.rtl: Add new instantiations of system.fat_gen
22561 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
22562 Change name of instantiated package for better consistency
22563 with newly added system.fat_gen instantiations.
22565 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22566 s-fvagfl.ads: New files.
22568 2005-11-14 Cyrille Comar <comar@adacore.com>
22569 Thomas Quinot <quinot@adacore.com>
22571 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22572 assignment of a value of a tagged type that has been rewritten to a
22573 block statement, it is known by construction that no checks are
22574 necessary for the statements within the block: analyze it with checks
22576 (Expand_N_If_Statement): When killing a dead then-branch in an
22577 if-statement that has elsif_parts, recompute the Current_Value node
22578 for any entity whose value is known from the condition of the first
22580 (Expand_N_Return_Statement): When returning a mutable record, convert
22581 the return value into its actual subtype in order to help the backend
22582 to return the actual size instead of the maximum. This is another
22583 aftermath of not returning mutable records on the sec-stack anymore.
22585 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22586 handling of error msg for suspicious reverse range iteration.
22587 (Check_Possible_Current_Value_Condition): Move declaration from body to
22588 spec, to allow this subprogram to be called from exp_ch5.
22590 2005-11-14 Thomas Quinot <quinot@adacore.com>
22592 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22593 generate a set of nested array aggregates instead of a single flat
22594 aggregate for multi-dimensional arrays.
22596 2005-11-14 Pascal Obry <obry@adacore.com>
22598 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22599 by spawnve is a process handle, no need to convert. Add a parameter
22600 close to control wether the process handle must be closed.
22601 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22602 a process handle, not need to convert.
22603 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22605 * g-expect.adb: (Kill): Document the new close parameter.
22606 (Close): Do not release the process handle in the kill there as
22607 waitpid() is using it.
22608 (Send_Signal): Release the process handle.
22610 2005-11-14 Robert Dewar <dewar@adacore.com>
22612 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22613 need a high precision float type for the generated code (prevents
22614 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22617 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22618 need a high precision float type for the generated code (prevents
22619 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22621 (Expand_Width_Attribute): In configurable run-time, the attribute is not
22622 allowed on non-static enumeration subtypes. Force a load error to emit
22623 the correct diagnostic.
22625 2005-11-14 Thomas Quinot <quinot@adacore.com>
22626 Robert Dewar <dewar@adacore.com>
22627 Ed Schonberg <schonberg@adacore.com>
22629 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22630 subtype to compute the size of the designated object at run-time,
22631 create such a subtype and store it in the Actual_Designated_Subtype
22632 attribute of the N_Free_Statement.
22633 Generate itype for classwide designated object in both cases of
22634 user-specified storage pool: specific and class-wide, not only in the
22636 Raise CE when trying to set a not null access type object to null.
22637 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22638 an explicit loop, because freeze nodes make its position variable.
22640 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22643 2005-11-14 Javier Miranda <miranda@adacore.com>
22645 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22646 Build_Stream_Procedure): Add the null-excluding attribute to the first
22648 This has no semantic meaning under Ada95 mode but it is a
22649 requirement under Ada05 mode.
22651 * par-ch3.adb (P_Access_Definition): Addition of warning message if
22652 the null exclusion is used under Ada95 mode
22653 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22654 (P_Access_Definition): Remove assertion that forbids the use of
22655 the null-exclusion feature in Ada95.
22657 2005-11-14 Robert Dewar <dewar@adacore.com>
22659 * impunit.adb: Exclude container helper units not intended for use by
22662 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22664 * freeze.adb (Freeze_Entity): For an access formal that is an access
22665 to subprogram, freeze the anonymous subprogram type at the same time,
22666 to prevent later freezing in the wrong scope, such as the enclosing
22668 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22669 subprogram whenever available.
22671 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22674 * gnatvsn.ads (Library_Version): Bump to 4.1
22676 2005-11-14 Robert Dewar <dewar@adacore.com>
22678 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22679 Storage_Offset to avoid wrap around causing invalid results.
22681 2005-11-14 Pascal Obry <obry@adacore.com>
22683 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22685 (Scan_Bind_Arg): Fail with an error message if -M option is used
22686 on a native compiler.
22688 2005-11-14 Robert Dewar <dewar@adacore.com>
22689 Vincent Celier <celier@adacore.com>
22691 * gprep.adb: Implement -C switch to scan comments
22693 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22695 * scans.ads: Comment updates (including new use of Tok_Comment in
22698 * opt.ads: Add documentation for flags that are used by gprmake,
22699 currently and in the next version of gprmake.
22700 (Verbosity_Level): New variable
22701 Add Replace_In_Comments switch
22703 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22705 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22707 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22709 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22710 message, friendlier.
22712 2005-11-14 Robert Dewar <dewar@adacore.com>
22714 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22716 2005-11-14 Doug Rupp <rupp@adacore.com>
22718 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22720 2005-11-14 Robert Dewar <dewar@adacore.com>
22722 * interfac.ads: Change declarations of IEEE float types so that we no
22723 longer need a separate version of this package for VMS.
22725 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22727 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22728 internal entity created for the declaration of a child subprogram body
22729 with no spec as coming from source, to generate proper cross-reference
22732 2005-11-14 Vincent Celier <celier@adacore.com>
22734 * make.adb (Compile_Sources): Change verbose message to minimum
22735 verbosity level High for "is in an Ada library", "is a read-only
22736 library" and "is an internal library",
22737 (Create_Binder_Mapping_File): Path name of ALI file for library project
22738 must include the library directory, not the object directory.
22739 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22740 for new switches -vl, -vm and -vh.
22741 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22742 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22743 (Compile_Sources): Do not attempt to compile if an ALI file is missing
22744 in a project that is externally built.
22745 (Compute_All_Imported_Projects): New procedure
22746 (Gnatmake): Check if importing libraries should be regenerated because
22747 at least an imported library is more recent.
22748 (Initialize): For each project compute the list of the projects it
22749 imports directly or indirectly.
22750 (Add_Library_Search_Dir): New procedure, used in place of
22751 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22752 put in the search paths.
22753 (Add_Source_Search_Dir): New procedure, used in place of
22754 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22755 put in the search paths.
22756 (Mark_Directory): Resolve the absolute path the directory before marking
22759 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22760 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22761 Switch. Do not handle any exception.
22762 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22763 so that the switch is recognized as valid.
22764 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22766 2005-11-14 GNAT Script <nobody@adacore.com>
22768 * Make-lang.in: Makefile automatically updated
22770 2005-11-14 Pascal Obry <obry@adacore.com>
22772 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22774 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22775 In both cases the last argument was dropped.
22777 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
22779 * namet.h: (Column_Numbe): New type.
22780 (Get_Column_Number): Define to sinput__get_column_number.
22781 (Instantiation): Define to sinput__instantiation.
22782 (Get_Column_Number): Declare.
22783 (Instantiation): Likewise.
22785 2005-11-14 Robert Dewar <dewar@adacore.com>
22787 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
22788 syntax, which could cause compiler hangs.
22790 2005-11-14 Vincent Celier <celier@adacore.com>
22792 * prj-ext.adb: Take into account new environment variable
22793 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
22795 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
22796 normalize its path name, making it absolute and resolving symbolic
22797 links, and replace the original if resolved path is different.
22799 2005-11-14 Vincent Celier <celier@adacore.com>
22801 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
22802 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
22804 2005-11-14 Emmanuel Briot <briot@adacore.com>
22806 * prj-pp.adb (Print): Do not output the with statement if the
22807 associated name is empty, which happens for virtual extending projects.
22808 (Print): Preserve the "extends all" attribute when printing the project.
22810 * prj-tree.ads (String_Value_Of): Add comment about returned value for
22811 a virtual extending project.
22813 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22815 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
22816 rhs of an assignment even if the type is unconstrained, when the
22817 context is non-expanding.
22818 In an inlined body, if the context type is private,
22819 resolve with its full view, which must be a composite type.
22821 2005-11-14 Robert Dewar <dewar@adacore.com>
22822 Ed Schonberg <schonberg@adacore.com>
22824 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22825 Do not give obsolescent warning on with of subprogram (since we
22827 (Analyze_With_Clause): Add test for obsolescent package
22828 (Install_Context_Clauses): If the unit is the body of a child unit, do
22829 not install twice the private declarations of the parents, to prevent
22830 circular lists of Use_Clauses in a parent.
22831 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
22832 compiling body of child unit.
22833 Use new class N_Subprogram_Instantiation
22834 (Expand_With_Clause): If this is a private with_clause for a child unit,
22835 appearing in the context of a package declaration, then the implicit
22836 with_clauses generated for parent units are private as well.
22837 (License_Check): Do not generate message if with'ed unit is internal
22839 2005-11-14 Gary Dismukes <dismukes@adacore.com>
22840 Ed Schonberg <schonberg@adacore.com>
22841 Thomas Quinot <quinot@adacore.com>
22843 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
22844 names are internal, because they will not have a corresponding partner
22845 in the actual package.
22846 (Analyze_Formal_Package): Move the setting of the formal package spec's
22847 Generic_Parent field so that it occurs prior to analyzing the package,
22848 to allow proper operation of Install_Parent_Private_Declarations.
22849 (Analyze_Package_Instantiation): Set the instantiated package entity's
22850 Package_Instantiation field.
22851 (Get_Package_Instantiation_Node): Move declaration to package spec.
22852 Retrieve the N_Package_Instantiation node when the Package_Instantiation
22854 (Check_Generic_Child_Unit): Within an inlined call, the only possible
22855 instantiation is Unchecked_Conversion, for which no parents are needed.
22856 (Inline_Instance_Body): Deinstall and record the use_clauses for all
22857 parent scopes of a scope being removed prior to inlining an instance
22859 (Analyze_Package_Instantiation): Do not perform front-end inlining when
22860 the current context is itself an instance within a non-instance child
22861 unit, to prevent scope stack errors.
22862 (Save_References): If the node is an aggregate that is an actual in a
22863 call, rewrite as a qualified expression to preserve some type
22864 information, to resolve possible ambiguities in the instance.
22865 (Instance_Parent_Unit): New global variable to record the ultimate
22866 parent unit associated with a generic child unit instance (associated
22867 with the existing Parent_Unit_Visible flag).
22868 (type Instance_Env): New component Instance_Parent_Unit for stacking
22869 parents recorded in the global Instance_Parent_Unit.
22870 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
22872 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
22873 it's not a top-level unit, and only do this if Instance_Parent_Unit is
22874 not already set. Replace test of Is_Child_Unit with test of parent's
22875 scope against package Standard. Add comments and a ??? comment.
22876 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
22877 on a child instance parent to test that the parent equals
22878 Instance_Parent rather than simply checking that the unit is not a
22880 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
22881 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
22882 a formal interface are ancestors of the corresponding actual.
22883 (Validate_Formal_Interface_Type): Additional legality checks.
22884 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
22885 interface types with ancestors.
22886 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
22887 to diagnose attempts to use generic within its own declaration.
22889 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22890 Javier Miranda <miranda@adacore.com>
22892 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
22894 (Build_Private_Derived_Type): The entity of the created full view of the
22895 derived type does not come from source. If after installing the private
22896 declarations of the parent scope the parent is still private, use its
22897 full view to construct the full declaration of the derived type.
22898 (Build_Derived_Record_Type): Relax the condition that controls the
22899 execution of the check that verifies that the partial view and
22900 the full view agree in the set of implemented interfaces. In
22901 addition, this test now only takes into account the progenitors.
22902 (Derive_Interface_Subprograms): No need to derive subprograms
22903 of ancestors that are interfaces.
22904 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
22906 Change name Is_Package to Is_Package_Or_Generic_Package
22907 (Complete_Subprograms_Derivation): Handle the case in which the full
22908 view is a transitive derivation of the ancestor of the partial view.
22909 (Process_Full_View): Rename local subprogram Find_Interface_In_
22910 Descendant to Find_Ancestor_Interface to leave the code more clear.
22911 Remove wrong code that avoids the generation of an error message
22912 when the immediate ancestor of the partial view is an interface.
22913 In addition some minor reorganization of the code has been done to
22914 leave it more clear.
22915 (Analyze_Type_Declaration): If type has previous incomplete tagged
22916 partial view, inherit properly its primitive operations.
22917 (Collect_Interfaces): Make public, for analysis of formal
22919 (Analyze_Interface_Declaration): New procedure for use for regular and
22920 formal interface declarations.
22921 (Build_Derived_Record_Type): Add support for private types to the code
22922 that checks if a tagged type implements abstract interfaces.
22923 (Check_Aliased_Component_Type): The test applies in the spec of an
22925 (Access_Type_Declaration): Clean up declaration of malformed type
22926 declared as an access to its own classwide type, to prevent cascaded
22928 (Collect_Interfaces): For private extensions and for derived task types
22929 and derived protected types, the parent may be an interface that must
22930 be included in the interface list.
22931 (Access_Definition): If the designated type is an interface that may
22932 contain tasks, create Master_Id for it before analyzing the expression
22933 of the declaration, which may be an allocator.
22934 (Record_Type_Declaration): Set properly the interface kind, for use
22935 in allocators, the creation of master id's for task interfaces, etc.
22937 2005-11-14 Javier Miranda <miranda@adacore.com>
22938 Ed Schonberg <schonberg@adacore.com>
22940 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
22941 omitted in case of stream attribute subprograms.
22942 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
22943 appear immediately after a subprogram body, when there is no previous
22944 subprogram declaration.
22945 Change name Is_Package to Is_Package_Or_Generic_Package
22946 (Process_Formals): A non null qualifier on a non null named access
22947 type is not an error, and is a warning only if Redundant_Constructs
22950 2005-11-14 Gary Dismukes <dismukes@adacore.com>
22951 Ed Schonberg <schonberg@adacore.com>
22953 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
22954 nested within Analyze_Package_Specification to install the private
22955 declarations and use clauses within each of the parent units of a
22956 package instance of a generic child package.
22957 (Analyze_Package_Specification): When entering a private part of a
22958 package associated with a generic instance or formal package, the
22959 private declarations of the parent must be installed (by calling new
22960 procedure Install_Parent_Private_Declarations).
22961 Change name Is_Package to Is_Package_Or_Generic_Package
22962 (Preserve_Full_Attributes): For a synchronized type, the corresponding
22963 record is absent in a generic context, which does not indicate a
22966 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22968 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
22969 not try to rewrite a renamed stream attribute, because the operations
22970 on the type may not have been generated.
22971 Handle properly a renaming_as_body generated for a stream operation
22972 whose default is abstract because the object type itself is abstract.
22973 (Find_Type): If the type is incomplete and appears as the prefix of a
22974 'Class reference, it is tagged, and its list of primitive operations
22975 must be initialized properly.
22976 (Chain_Use_Clauses): When chaining the use clauses that appear in the
22977 private declaration of a parent unit, prior to compiling the private
22978 part of a child unit, find on the scope stack the proper parent entity
22979 on which to link the use clause.
22980 (Note_Redundant_Use): Emit a warning when a redundant use clause is
22982 (Analyze_Object_Renaming): An attribute reference is not a legal object
22983 if it is not a function call.
22985 2005-11-14 Robert Dewar <dewar@adacore.com>
22986 Ed Schonberg <schonberg@adacore.com>
22988 * sem_eval.adb: Implement d.f flag
22989 (Subtype_Statically_Match): A generic actual type has unknown
22990 discriminants when the corresponding actual has a similar partial view.
22991 If the routine is called to validate the signature of an inherited
22992 operation in a child instance, the generic actual matches the full view,
22994 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22995 Ed Schonberg <schonberg@adacore.com>
22996 Robert Dewar <dewar@adacore.com>
22997 Thomas Quinot <quinot@adacore.com>
22999 * sem_res.adb (Resolve_Call): Provide a better error message whenever
23000 a procedure call is used as a select statement trigger and is not an
23001 entry renaming or a primitive of a limited interface.
23002 (Valid_Conversion): If the operand has a single interpretation do not
23003 remove address operations.
23004 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23005 statement to inhibit warning.
23006 (Resolve_Unary_Op): Do not produce a warning when
23007 processing an expression of the form -(A mod B)
23008 Use Universal_Real instead of Long_Long_Float when we need a high
23009 precision float type for the generated code (prevents gratuitous
23010 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23011 (Resolve_Concatenation_Arg): Improve error message when argument is an
23012 ambiguous call to a function that returns an array.
23013 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23014 there is an implicit operator in the given scope if we are within an
23015 instance: legality check has been performed on the generic.
23016 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23017 after resolving operand, to avoid false warnings on overloaded calls.
23019 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23020 Javier Miranda <miranda@adacore.com>
23023 * sem_type.adb (Covers): In an inlined body, a composite type matches
23024 a private type whose full view is a composite type.
23025 (Interface_Present_In_Ancestor): Protect the frontend against
23026 previously detected errors to ensure that its compilation
23027 with assertions enabled gives the same output that its
23028 compilation without assertions.
23029 (Interface_Present_In_Ancestor): Add support for private types.
23030 Change name In_Actual to In_Generic_Actual (clean up)
23031 (Disambiguate): New predicate In_Actual, to recognize expressions that
23032 appear in the renaming declaration generated for generic actuals, and
23033 which must be resolved in the outer context.
23035 2005-11-14 Robert Dewar <dewar@adacore.com>
23036 Thomas Quinot <quinot@adacore.com>
23037 Hristian Kirtchev <kirtchev@adacore.com>
23038 Ed Schonberg <schonberg@adacore.com>
23040 * sem_util.ads, sem_util.adb: Change name Is_Package to
23041 Is_Package_Or_Generic_Package.
23042 (Check_Obsolescent): New procedure.
23043 (Set_Is_Public): Remove obsolete junk test.
23044 (Set_Public_Status): Do not set Is_Public on an object whose declaration
23045 occurs within a handled_sequence_of_statemets.
23046 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23047 for a parameterless procedure.
23048 (Enter_Name): Recognize renaming declarations created for private
23049 component of a protected type within protected operations, so that
23050 the source name of the component can be used in the debugger.
23052 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23053 Robert Dewar <dewar@adacore.com>
23055 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23056 of a generic subprogram are not visible outside the body.
23057 (Set_Warning_Switch): New procedure (code to set warning mode moved
23058 here from Switch.C so that it can be shared by pragma processing.
23059 (Check_References): Special case warning for non-modified non-imported
23061 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23062 form with a string literal argument
23064 2005-11-14 Javier Miranda <miranda@adacore.com>
23066 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23068 (Write): Addition of "not null" to the anonymous access.
23069 (Read): Addition of "not null" to the anonymous access.
23070 (Write): Addition of "not null" to the anonymous access.
23072 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23073 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23074 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23075 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23076 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23077 "not null" to the anonymous access.
23079 2005-11-14 Robert Dewar <dewar@adacore.com>
23081 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23084 2005-11-14 Vincent Celier <celier@adacore.com>
23086 * switch.adb (Bad_Switch): New procedure
23087 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23088 message when in error.
23090 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23091 Too_Many_Output_Files): Remove declarations, no longer used.
23092 (Scan_Nat): New parameter Switch
23094 (Bad_Switch): New procedure
23096 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23097 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23098 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23099 to Osint.Fail. Do not handle any exception.
23101 2005-11-14 Vincent Celier <celier@adacore.com>
23103 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23104 designates a non existent directory.
23106 2005-11-14 Robert Dewar <dewar@adacore.com>
23108 * xgnatugn.adb: Replace invalid membership test by 'Valid
23110 2005-11-14 Vincent Celier <celier@adacore.com>
23112 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23113 there is no object directory.
23115 2005-11-14 Robert Dewar <dewar@adacore.com>
23117 * usage.adb: Minor adjustment to output format, use nn instead of nnn
23118 (so that -gnateInnn does not run into next column)
23120 2005-11-14 Ed Falis <falis@adacore.com>
23122 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23125 2005-11-14 Cyrille Comar <comar@adacore.com>
23127 * s-chepoo.ads: Add comments on Dereference.
23128 Remove unnecessary inherited abstract primitives.
23131 2005-11-14 Robert Dewar <dewar@adacore.com>
23133 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23134 node parameter, not needed, since it is available as Declaration_Node.
23136 2005-11-14 Geert Bosch <bosch@adacore.com>
23138 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23139 grammatically correct.
23141 2005-11-14 Vincent Celier <celier@adacore.com>
23143 * s-fileio.ads: Correct spelling error in comment
23145 2005-11-14 Cyrille Comar <comar@adacore.com>
23146 Robert Dewar <dewar@adacore.com>
23147 Vincent Celier <celier@adacore.com>
23148 Ben Brosgol <brosgol@adacore.com>
23149 Jose Ruiz <ruiz@adacore.com>
23150 Pascal Obry <obry@adacore.com>
23153 Document that -fstack-check is needed for strict compliance with the
23154 Ada 95 Reference Manual.
23155 Correct reference to VAX systems to meet HP guidelines
23156 Add documentation for new gnatmake switches -vl, -vm and -vh
23157 Replace DEC Ada by HP Ada
23158 Replace DIGITAL by HP
23159 Remove empty section on tools in compatibility section
23160 Clarify the Windows convention semantics.
23161 Document the Win32 calling convention.
23162 The Stdcall, Win32 and DLL convention are synonyms.
23163 Add a note in -gnatR description about zero size record components
23164 Note on new >= and <= warnings for -gnatwc
23165 Document that equal sign after -gnatm is optional.
23166 Note that strip is working fine on DLL built with a Library
23167 Project. The restriction apply only to DLL built with gnatdll.
23168 Update section about the way to debug a DLL.
23169 Update information about the DLL convention.
23170 Document -C switch for gnatprep
23171 Document new attribute Library_ALI_Dir
23172 Update elaboration doc to include implicit Elaborate pragmas now
23173 generated for subprogram instantiations.
23174 Document limitation on executable names that include spaces for --GCC,
23175 --GNATBIND, and --GNATLINK switches.
23176 Document that -w causes -gnatws to be added at start of gcc switches
23178 * gnat_rm.texi: Document that -mieee is needed for generating infinite
23179 and NaN values in case of overflow on machines that are not fully
23180 compliant with the IEEE floating-point standard.
23181 Create a section describing the set of compiler options needed for
23182 strict compliance with the Ada 95 Reference Manual.
23183 Add documentation for pragma Obsolescent applied to a package
23184 Clarify potential issues of mixed language programs related to the
23185 I/O buffering enabling in the elaboration of the GNAT runtime.
23186 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23187 This documentation only patch adds extra documentsion for pragma
23188 Restrictions (No_Elaboration_Code), explaining why it is not possible
23189 to document this restriction in terms of allowed source constructs.
23190 Document string literal form of pragma Warnings
23191 Document new attribute Library_ALI_Dir
23192 Add documentation on stable attributes in project files that was missing
23194 * gnat-style.texi: Indicate that paragraphs within a single comment
23195 should be separated by empty comment lines
23197 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23200 * bindusg.adb: Minor cleanup, put -m before -M for consistency
23202 2005-11-14 Robert Dewar <dewar@adacore.com>
23204 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23205 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23206 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23207 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23208 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23209 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23210 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23211 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23212 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23213 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23214 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23215 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23216 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23217 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23218 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23219 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23220 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23221 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23222 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23223 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23224 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23225 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23226 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23227 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23228 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23229 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23230 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23231 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23232 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23233 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23234 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23235 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23236 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23237 system-interix.ads, system-solaris-sparc.ads,
23238 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23239 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23240 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23241 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23242 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23243 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23244 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23245 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23246 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23247 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23248 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23249 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23250 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23251 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23252 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23253 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23254 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23255 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23256 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23257 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23258 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23259 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23260 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23261 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23262 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23263 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23264 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23265 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23266 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23267 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23268 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23269 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23270 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23271 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23272 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23273 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23274 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23275 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23276 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23277 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23278 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23279 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23280 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23281 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23282 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23283 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23284 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23285 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23286 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23287 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23288 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23289 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23290 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23291 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23292 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23293 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23294 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23295 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23296 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23297 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23298 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23299 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23300 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23301 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23302 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23303 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23304 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23305 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23306 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23307 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23308 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23309 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23310 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23311 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23312 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23313 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23314 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23315 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23316 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23317 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23318 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23319 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23320 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23321 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23322 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23323 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23324 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23325 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23326 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23327 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23328 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23329 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23330 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23331 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23332 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23333 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23334 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23335 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23336 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23337 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23338 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23339 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23340 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23341 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23342 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23343 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23344 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23345 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23346 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23347 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23348 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23349 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23350 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23351 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23352 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23353 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23354 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23355 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23356 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23357 a-numaux-darwin.ads, a-numaux-darwin.adb,
23358 a-swuwha.ads, a-stunha.ads: Minor reformatting
23360 2005-11-14 Robert Dewar <dewar@adacore.com>
23363 * osint-m.adb: Add pragma Elaborate_All for Osint
23365 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
23368 * trans.c (call_to_gnu): Restore statement lost in translation.
23370 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
23372 * init.c: Use the Linux-specific section for the IA-64/Linux target.
23373 (__gnat_adjust_context_for_raise): Add conditional code so that the
23374 IA-64 is also supported.
23376 2005-11-03 James E Wilson <wilson@specifix.com>
23379 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23380 TREE_OVERFLOW check.
23382 2005-09-21 Olivier Hainque <hainque@adacore.com>
23385 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23386 as we create them to store a size in bits.
23388 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
23396 * utils2.c (build_return_expr): New helper function.
23397 * gigi.h (build_return_expr): Declare it.
23398 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23399 of manually building the RETURN_EXPR tree.
23400 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23401 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23402 build_binary_op for the "target pointer" case. Use build_return_expr
23403 instead of manually building the RETURN_EXPR tree.
23405 2005-09-16 Laurent Guerby <laurent@guerby.net>
23408 * s-tpinop.ads: Make this unit Preelaborate.
23410 2005-09-16 Andreas Jaeger <aj@suse.de>
23412 * socket.c: Add string.h for memcpy.
23414 2005-09-05 Arnaud Charlet <charlet@adacore.com>
23416 * dec-io.ads, dec-io.adb: Removed, no longer used.
23418 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23420 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23422 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23423 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23424 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23425 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23426 dependent units are Preelaborate.
23427 (Initialize): Call Interrupt_Managemeent.Initialize and
23428 OS_Primitives.Initialize to ensure proper initialization of this unit.
23429 Remove use of System.Soft_Links
23430 Make this unit Preelaborate.
23432 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23433 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23434 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23435 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23436 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23437 s-tratas.ads, s-tasinf.ads: Minor reformatting.
23438 Add pragma Preelaborate, since these packages are suitable for this
23442 * s-traent-vms.ads, s-intman-dummy.adb,
23443 s-taprop-dummy.adb: Make this unit Preelaborate.
23445 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
23446 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
23447 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23448 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23449 s-intman-solaris.adb, s-intman-irix-athread.adb,
23450 s-intman-irix.adb: Mark this unit Preelaborate.
23451 (Initialize): New procedure.
23454 * s-taspri-linux.ads: Removed.
23456 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23457 as done by other implementations (e.g. posix).
23459 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23460 responsible for deferring abort.
23461 Mark this unit Preelaborate.
23463 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23464 proper initialization of the tasking run-time.
23466 * s-tasdeb.ads: Mark this unit Preelaborate.
23467 (Known_Tasks): Add explicit default value to avoid elaboration code.
23469 * s-inmaop-vms.adb (Elaboration code): Add call to
23470 Interrupt_Management.Initialize since the elaboration code depends on
23471 proper initialization of this package.
23473 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23474 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23475 s-osprim-posix.adb: Make this unit Preelaborate.
23477 * a-calend.adb: Add call to OS_Primitives.Initialize
23479 * a-elchha.adb: Update use of Except.Id.Full_Name.
23480 Minor reformatting.
23481 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23483 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23484 Move with clauses outside Warnings Off now that dependent units are
23486 Use raise xxx with "..."; Ada 2005 form.
23488 * a-taside.ads, a-taside.adb:
23489 Remove some dependencies, to make it easier to make this unit truly
23491 Rewrite some code to be conformant with Preelaborate rules.
23493 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23494 marked Preelaborate in the future.
23496 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23497 these units Preelaborate.
23499 * s-exctab.adb: Update use of Except.Id.Full_Name.
23501 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23502 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23503 Set_Exc_Stack_Addr): Removed, no longer used.
23504 Remove reference to *Machine_State_Addr*, no longer needed.
23506 * s-stalib.ads: Mark this unit as Preelaborate[_05].
23507 (Exception_Data): Full_Name is now a System.Address so that this unit
23508 can be made Preelaborate.
23509 Clean up/simplify code thanks to Full_Name being a System.Address.
23510 Remove obsolete pragma Suppress (All_Checks), no longer needed.
23512 * s-taskin.ads, s-taskin.adb:
23513 Move with clauses outside Warnings Off now that dependent units are
23515 Make this unit Preelaborate.
23516 (Initialize): New proceduure, replace elaboration code and makes the
23517 set up of the tasking run-time cleaner.
23518 (Detect_Blocking): Now a function instead of a deferred boolean, to
23519 obey Preelaborate rules.
23521 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23522 soft links, no longer used.
23524 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23525 packages are suitable for this categorization.
23527 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23528 since we compile run-time sources in Ada 2005 mode.
23529 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23530 avoid having s-taprop*.adb depend on s-soflin and to avoid code
23532 Remove reference to *Machine_State_Addr*, no longer needed.
23534 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23536 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23537 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23538 Remove reference to System.Exceptions.
23540 * s-mastop-x86.adb: Removed, no longer used.
23542 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23544 * a-excach.adb: Minor reformatting.
23546 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23547 instead fix new warnings that were hidden by this change.
23548 (AAA, ZZZ): Removed, replaced by...
23549 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23550 are used instead of constants, to help make Ada.Exception truly
23552 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23553 Raise_Storage_Error): File is now a System.Address, to simplify code.
23554 (Elab code): Removed, no longer used.
23555 (Null_Occurrence): Remove Warnings Off and make this construct
23557 Remove code related to front-end zero cost exception handling, since
23558 it is no longer used.
23559 Remove -gnatL/-gnatZ switches.
23561 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23562 Update use of Except.Msg.
23564 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23565 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23566 to front-end zero cost exception handling, since it is no longer used.
23567 Remove -gnatL/-gnatZ switches.
23569 * lib-writ.ads: Minor reformatting
23572 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23574 * Make-lang.in: Remove references to s-except.ads
23576 * s-except.ads: Removed, no longer used.
23578 * s-mastop.ads, s-mastop.adb:
23579 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23580 Remove reference to System.Exceptions.
23582 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23583 switch-b.adb: Remove code related to front-end zero cost exception
23584 handling, since it is no longer used.
23585 Remove -gnatL/-gnatZ switches.
23587 2005-09-01 Robert Dewar <dewar@adacore.com>
23588 Gary Dismukes <dismukes@adacore.com>
23589 Javier Miranda <miranda@adacore.com>
23591 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23592 type by valid test and generate warning.
23593 (Tagged_Membership): Generate call to the run-time
23594 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23595 Change formal name Subtype_Mark to Result_Definition in several calls to
23596 Make_Function_Specification.
23597 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23598 check for proper accessibility of the operand of a class-wide allocator.
23599 The check can be left out if checks are suppressed or if the expression
23600 has a specific tagged type whose level is known to be safe.
23602 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23603 generates the run-time check associated with null-excluding entities.
23604 (Expand_N_Return_Statement): Add tests to determine if the accessibility
23605 check on the level of the return expression of a class-wide function
23606 can be elided. The check usually isn't needed if the expression has a
23607 specific type (unless it's a conversion or a formal parameter). Also
23608 add a test for whether accessibility checks are suppressed. Augment
23609 the comments to describe the conditions for performing the check.
23611 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
23612 Javier Miranda <miranda@adacore.com>
23613 Gary Dismukes <dismukes@adacore.com>
23614 Ed Schonberg <schonberg@adacore.com>
23616 * a-tags.adb (IW_Membership): Give support to
23617 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23618 subprogram has been extended to look for the tag in the ancestors tag
23620 Update the structure of the GNAT Dispatch Table to reflect the
23621 additional two tables used in dispatching selects.
23622 Introduce appropriate array types and record components in
23623 Type_Specific_Data to reflect the two tables.
23624 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23625 the TSD of a tag, indexed by position.
23626 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23627 operation kind in the TSD of a tag, indexed by position.
23629 * a-tags.ads: Introduce an enumeration type to capture different
23630 primitive operation kinds. Define a constant reflecting the number of
23631 predefined primitive operations.
23632 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23633 of an entry wrapper.
23634 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23635 callable entity of a primitive operation.
23637 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23638 primitive operations used in dispatching selects for limited
23639 interfaces, limited tagged, task and protected types what implement a
23641 (Freeze_Type): Generate the bodies of the primitive operations used in
23642 dispatching selects for limited tagged, task and protected types that
23643 implement a limited interface. Generate statements to populate the two
23644 auxiliary tables used for dispatching in select statements.
23645 (Freeze_Record_Type): Add call to initialize the dispatch table entries
23646 associated with predefined interface primitive operations.
23647 (Build_Dcheck_Function): Change Set_Subtype_Mark to
23648 Set_Result_Definition.
23649 (Build_Variant_Record_Equality): Change Subtype_Mark to
23651 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23652 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23653 (Build_Assignment): Simplify the code that adds the run-time-check.
23654 (Expand_N_Object_Declaration): Code cleanup.
23656 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23657 entries when there is a protected type that implements a limited
23660 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23661 common routines used in expansion of dispatching selects.
23662 (Add_Private_Declarations): Select the appropriate protection type when
23663 there is a protected type that implements a limited interface.
23664 (Build_Parameter_Block): Generate a wrapped parameter block.
23665 (Build_Protected_Subprogram_Body): Select the appropriate type for
23666 locking entries when there is a protected type that implements a
23668 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23669 classified as entry wrappers.
23670 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23671 asynchronous selects.
23672 (Expand_N_Conditional_Entry_Call): Add support for expansion of
23673 dispatching conditional selects.
23674 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23675 protection when there is a protected type that implements limited
23677 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23679 (Extract_Dispatching_Call): Extract the entity of the name of a
23680 dispatching call, the object parameter, actual parameters and
23681 corresponding formals.
23682 (Make_Initialize_Protection): Correct logic of protection initialization
23683 when there is a protected type that implements a limited interface.
23684 (Parameter_Block_Pack): Populate a wrapped parameter block with the
23685 values of actual parameters.
23686 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23687 block and assign them to the original actual parameters.
23689 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23690 (Build_Protected_Sub_Specification): Change the type and name of the
23691 last formal to account for the increased variety of protection modes.
23693 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23694 entities. Used to save the value of the Is_Hidden attribute when the
23695 limited-view is installed.
23696 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23697 the attribute of procedures classified as entry wrappers.
23698 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23699 entity of a primitive wrapper.
23700 (Write_Entity_Flags): Output the name and value of the
23701 Is_Primitive_Wrapper attribute.
23702 (Write_Field27_Name): Output the name and entity of the field Wrapped_
23704 (Underlying_Type): If we have an incomplete entity that comes from
23705 the limited view then we return the Underlying_Type of its non-limited
23706 view if it is already available.
23707 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23708 including operators.
23709 (Write_Field26_Name): Add entry for Overridden_Operation
23710 (Overridden_Operation): New attribute of functions and procedures.
23712 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23713 predefined position in the dispatch table for the primitive operations
23714 used in dispatching selects.
23715 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23716 predefined primitive operations and replace it with
23717 Default_Prim_Op_Count.
23718 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23719 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23720 the names of the generated primitive operations used in dispatching
23722 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23723 case of abstract interface types. They will be inherit by the objects
23724 implementing the interface.
23725 (Make_DT): There is no need to inherit the dispatch table of the
23726 ancestor interface for the elaboration of abstract interface types.
23727 The dispatch table will be inherited by the object implementing the
23729 (Copy_Secondary_DTs): Add documentation.
23730 (Validate_Position): Improve this static check in case of
23731 aliased subprograms because aliased subprograms must have
23733 (Init_Predefined_Interface_Primitives): New subprogram that initializes
23734 the entries associated with predefined primitives of all the secondary
23736 (Build_Anonymous_Access_Type): Removed.
23737 (Expand_Interface_Actuals): With the previous cleanup there is no need
23738 to build an anonymous access type. This allows further cleanup in the
23739 code generated by the expander.
23740 (Expand_Interface_Conversion): If the actual is an access type then
23741 build an internal function to handle the displacement. If the actual
23742 is null this function returns null because no displacement is
23743 required; otherwise performs a type conversion that will be
23744 expanded in the code that returns the value of the displaced actual.
23745 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23746 conversions that have no effect in the generated code because no
23747 displacement is required. Code cleanup; use local variables to
23748 avoid repeated calls to the subprogram directly_designated_type().
23750 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23751 Classify the primitive operations used in dispatching selects as
23753 (Implements_Limited_Interface): Determine whether some type either
23754 directly implements a limited interface or extends a type that
23755 implements a limited interface.
23756 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23757 (Expand_Subtype_From_Expr): Do not build actual subtype if the
23758 expression is limited.
23759 (Find_Interface_Tag): Add code to handle class-wide types and
23760 entities from the limited-view.
23762 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23763 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23764 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23765 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23768 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23769 of procedure name or prefix that appears as a trigger in a triggering
23772 * uintp.ads: Introduce constants Uint_11 and Uint_13.
23774 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23776 * s-tataat.adb, a-tasatt.adb:
23777 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23779 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23780 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23781 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
23784 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23785 Jose Ruiz <ruiz@adacore.com>
23787 * s-taprop-vxworks.adb:
23788 Move with clauses outside Warnings Off now that dependent units are
23790 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
23791 initialization of this unit.
23792 (Specific): Add new procedures Initialize and Delete so that this
23793 package can be used for VxWorks 5.x and 6.x
23794 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
23795 differences between VxWorks 5.x and 6.x
23796 Minor reformatting.
23797 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
23799 Use only Preelaborate-compatible constructs.
23801 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
23802 Primitives.Operations.
23803 (Delete, Initialize): New procedures.
23805 * s-osinte-vxworks.adb: Body used to handle differences between
23806 VxWorks 5.x and 6.x
23807 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
23809 * s-osinte-vxworks.ads: Minor reformatting.
23810 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
23811 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
23813 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
23814 between Vxworks 5 and 6.
23815 (taskLock, taskUnlock): Removeed, no longer used.
23817 * adaint.c: The wait.h header is not located in the sys directory on
23818 VxWorks when using RTPs.
23819 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
23821 (__gnat_dup): dup is available on Vxworks when using RTPs.
23822 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
23824 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
23826 * expect.c: The wait.h header is not located in the sys directory on
23827 VxWorks when using RTPs.
23829 2005-09-01 Thomas Quinot <quinot@adacore.com>
23831 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
23833 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
23835 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
23836 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23837 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
23838 g-soccon-freebsd.ads: Add new constants:
23840 SO_RCVTIMEO/SO_SNDTIMEO
23844 Move all target-specific file inclusions and macro definitions to
23845 gsocket.h, in order to ensure that any C code in socket.c will see a
23846 set of constants that is consistent with the contents of g-soccon.ads.
23848 * gsocket.h: Code imported from gen-soccon.c:
23849 Move all target-specific file inclusions and macro definitions to
23850 gsocket.h, in order to ensure that any C code in socket.c will see a set
23851 of constants that is consistent with the contents of g-soccon.ads.
23852 This change also makes gen-soccon self-contained (removing dependencies
23853 upon GCC internal headers).
23855 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
23857 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
23859 * socket.c: Minor reformatting.
23861 2005-09-01 Ed Schonberg <schonberg@adacore.com>
23862 Thomas Quinot <quinot@adacore.com>
23864 * fname-sf.adb, mlib-tgt.ads,
23865 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
23866 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
23867 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
23868 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
23869 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
23870 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
23871 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
23872 makegpr.adb: Remove redundant use_clauses.
23874 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23876 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
23877 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
23878 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
23879 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
23880 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
23881 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
23882 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
23883 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
23884 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
23885 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
23886 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
23887 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
23888 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
23889 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
23890 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
23891 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
23892 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
23893 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23894 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
23895 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
23896 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
23897 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
23898 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
23899 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
23900 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
23901 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
23902 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
23903 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
23904 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
23905 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
23906 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
23907 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
23908 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
23909 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
23910 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
23911 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
23912 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
23913 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
23914 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
23915 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
23916 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
23917 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
23918 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
23919 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
23920 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
23921 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
23922 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
23923 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
23924 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
23925 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
23926 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
23927 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
23928 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
23929 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
23930 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
23931 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
23932 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
23933 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
23934 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
23935 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
23936 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
23937 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
23938 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
23939 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
23940 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
23941 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
23942 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
23943 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
23944 and always use the no parameter form for consistency.
23946 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
23948 2005-09-01 Robert Dewar <dewar@adacore.com>
23950 * binde.adb: Minor reformatting
23951 (Find_Elab_Order): Output warning if -p used with static elab order
23953 2005-09-01 Robert Dewar <dewar@adacore.com>
23955 * checks.adb (Check_Needed): New procedure, deals with removing checks
23956 based on analysis of short-circuited forms. Also generates warnings for
23957 improper use of non-short-circuited forms.
23960 2005-09-01 Robert Dewar <dewar@adacore.com>
23962 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
23965 2005-09-01 Robert Dewar <dewar@adacore.com>
23967 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
23969 Implement new insertion char < (conditional warning)
23970 * errutil.adb, erroutc.adb: Implement new insertion char <
23971 (conditional warning).
23972 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
23973 (Error_Msg_Warn): New variable for < insertion char.
23974 * prj-nmsc.adb: Implement new errout insertion char < (conditional
23976 (Check_For_Source): Change value of Source_Id only after the current
23977 source has been dealt with.
23979 2005-09-01 Robert Dewar <dewar@adacore.com>
23980 Doug Rupp <rupp@adacore.com>
23982 * exp_attr.adb: Handle vax fpt for 'Valid attribute
23983 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
23984 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
23985 (Valid_D, Valid_F, Valid_G): New functions
23987 2005-09-01 Ed Schonberg <schonberg@adacore.com>
23988 Hristian Kirtchev <kirtchev@adacore.com>
23989 Javier Miranda <miranda@adacore.com>
23991 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
23992 from object notation, the original node is unanalyzed and carries no
23993 semantic information, so that accessiblity checks must be performed on
23994 the type of the actual itself.
23995 (Expand_N_Subprogram_Declaration): Change last actual parameter for
23996 compatibility with Build_Protected_Sub_Specification.
23997 (Check_Overriding_Inherited_Interfaces): Add suport to handle
23998 overloaded primitives.
23999 (Register_Interface_DT_Entry): Use the new name of the formal
24000 the the calls to Expand_Interface_Thunk
24002 * exp_dbug.ads: Augment comments on encoding of protected types to
24003 include the generation of dispatching subprograms when the type
24004 implements at least one interface.
24006 * lib.ads: Extend information in Load_Stack to include whether a given
24007 load comes from a Limited_With_Clause.
24009 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24010 whether a potential circularity is harmless, because it includes units
24011 loaded through a limited_with clause. Extends previous treatment which
24012 did not handle properly arbitrary combinations of limited and
24013 non-limited clauses.
24015 2005-09-01 Nicolas Setton <setton@adacore.com>
24017 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24018 to be encoded as typ___XBLU_lowerbound__upperbound instead of
24019 typ___XB_lowerbound__upperbound.
24021 2005-09-01 Thomas Quinot <quinot@adacore.com>
24023 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24024 dummy access formal for RACW/RAS TypeCode TSS.
24025 (Build_TypeCode_Call): Do not generate dummy null access actual for
24026 calls to the TypeCode TSS.
24028 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24030 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24031 fully qualified name, to distinguish instances with the same local name.
24033 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24036 2005-09-01 Robert Dewar <dewar@adacore.com>
24038 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24041 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
24043 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24044 (Free): New deallocation procedure for filter elements
24045 (Close): Deallocate any existing filter for the concerned connection
24047 2005-09-01 Laurent Pautet <pautet@adacore.com>
24049 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24050 position set is provided, we compute one in order to reduce the maximum
24051 length of the keys. This computation first selects a character
24052 position between 1 and the minimum length of the keys in order to
24053 avoid reducing one of the keys to an empty string.
24054 (Initialize, Compute): When the ratio V to K is too low, the algorithm
24055 does not converge. The initialization procedure now comes with a
24056 maximum number of iterations such that when exceeded, an exception is
24057 raised in Compute. The user can initialize this ratio to another value
24059 Reformating and updated headers.
24061 2005-09-01 Javier Miranda <miranda@adacore.com>
24063 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24064 that given an entity T creates and returns an Itype that duplicates the
24065 contents of T. The returned Itype has the null-exclusion
24066 attribute set to True, and its Etype attribute references T
24067 to keep the association between the two entities.
24068 Update copyright notice
24070 * sem_aggr.adb (Check_Can_Never_Be_Null,
24071 Aggregate_Constraint_Checks, Resolve_Aggregate,
24072 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24074 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24076 2005-09-01 Gary Dismukes <dismukes@adacore.com>
24077 Robert Dewar <dewar@adacore.com>
24078 Hristian Kirtchev <kirtchev@adacore.com>
24080 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24083 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24085 Call Set_Result_Definition instead of Set_Subtype_Mark.
24086 (P_Subprogram_Specification): Add parsing of anonymous access result
24087 plus null exclusions. Call Set_Result_Definition instead of
24090 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24091 (P_Access_Type_Definition): Add parsing for an anonymous access result
24092 subtype, plus parsing for null exclusions. Call Set_Result_Definition
24093 instead of Set_Subtype_Mark.
24095 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24096 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24097 (Result_Definition): New function for N_Function_Specifications.
24098 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24099 N_Function_Specification.
24100 (Set_Null_Exclusion_Present): Allow this flag for
24101 N_Function_Specification.
24102 (Set_Result_Definition): New procedure for N_Function_Specifications.
24103 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24104 and N_Function_Specification.
24106 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24107 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24108 Add support for LIMITED NEW for Ada 2005 AI-419
24109 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24110 syntax for anonymous access results.
24111 Replace Subtype_Mark field by Result_Definition in
24112 N_Function_Specification and N_Access_Definition specs.
24113 Add Null_Exclusion_Present to spec of N_Function_Specification.
24114 (Result_Definition): New function for N_Function_Specification and
24115 N_Access_Function_Definition.
24116 (Set_Result_Definition): New procedure for N_Function_Specification and
24117 N_Access_Function_Definition.
24119 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24120 Result_Definition for cases of N_Access_Function_Definition and
24121 N_Function_Specification.
24122 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24124 2005-09-01 Vincent Celier <celier@adacore.com>
24126 * lib-writ.adb: Update Copyright notice
24127 (Write_With_Lines): On platforms where file names are case-insensitive,
24128 record the file names in lower case.
24129 (Write_ALI): For D lines, on platforms where file names are
24130 case-insensitive, record the file names in lower case.
24132 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24133 Emmanuel Briot <briot@adacore.com>
24135 * lib-xref.adb (Output_Overridden_Op): Display information on
24136 overridden operation.
24138 * lib-xref.ads: Add documentation on overridden operations.
24140 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24143 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24144 overriding entity information.
24146 2005-09-01 Vincent Celier <celier@adacore.com>
24148 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24149 including those that are inherited.
24151 2005-09-01 Robert Dewar <dewar@adacore.com>
24153 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24155 * par-prag.adb: Implement new pragma Debug_Policy
24157 * sem_prag.adb Implement new pragma Debug_Policy
24158 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24159 Component_Size attribute specification. Give warning for ignored pragma
24162 * snames.h, snames.ads, snames.adb: Introduce entries in
24163 Preset_Names for Name_Disp_Asynchronous_Select,
24164 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24165 Name_Disp_Timed_Select.
24166 New pragma Debug_Policy
24168 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24170 Switch -gnata also sets Debug_Pragmas_Enabled
24172 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24173 handle an explicit -gnata when compiling predefined files.
24175 2005-09-01 Vincent Celier <celier@adacore.com>
24177 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24178 directories of projects that have no Ada sources.
24180 2005-09-01 Robert Dewar <dewar@adacore.com>
24182 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24183 (makes a difference for wide characters)
24185 * widechar.adb, widechar.ads:
24186 Add Wide_Char_Byte_Count feature to count chars vs bytes
24188 2005-09-01 Thomas Quinot <quinot@adacore.com>
24189 Ed Schonberg <schonberg@adacore.com>
24190 Robert Dewar <dewar@adacore.com>
24192 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24193 'Address attribute reference with an overloaded prefix, use the
24194 location of the prefix (not the location of the attribute reference) as
24195 the error location.
24196 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24197 a function renaming thereof, is a valid prefix for 'Size (where it is
24198 intepreted as a function call).
24199 (Statically_Denotes_Entity): New predicate to determine whether the
24200 prefix of an array attribute can be considered static.
24203 (Eval_Attr): Fix failure to evaluate Component_Size for
24204 unconstrained arrays (resulted in wrong value in packed case, since
24205 back end cannot handle this case)
24207 2005-09-01 Robert Dewar <dewar@adacore.com>
24209 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24210 error msgs for most common cases.
24211 Use new errout insertion char < (conditional warning)
24213 2005-09-01 Javier Miranda <miranda@adacore.com>
24214 Ed Schonberg <schonberg@adacore.com>
24216 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24217 become local to the whole package.
24218 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24219 the package was already analyzed the new algorithm "replaces" the
24220 real entities by the shadow ones. This is required to ensure that
24221 the order of these entities in the homonym chains does not change;
24222 otherwise we can have undefined references at linking time because
24223 in case of conflicts the external name of the entities will have
24224 a suffix that depends on the order of the entities in the chain.
24225 (Remove_Limited_With_Clause): Complementary code that completes the
24226 new algorithm and replaces the shadow entities by the real ones.
24227 (Install_Limited_Withed_Unit): When unchaining entities before the
24228 installation of the shadow entities, only regular entities of the
24229 public part must be taken into account. This is required to
24230 keep this routine in synch with the work done by Remove_Limited_
24232 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24233 even if unit is analyzed, because the analysis of the unit is
24234 idempotent in any case, and the limited view of the unit may have to
24235 be installed for proper visibility.
24236 (Expand_Limited_With_Clause): Even if the unit in the implicit
24237 with_clause has been analyzed already, a limited view of the package
24238 must be built for the current context, if it does not exist yet.
24240 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24241 Javier Miranda <miranda@adacore.com>
24242 Gary Dismukes <dismukes@adacore.com>
24244 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24245 defining entity for the instance body, make a new defining identifier
24246 rather than copying the entity of the spec, to prevent accidental
24247 sharing of the entity list.
24248 (Check_Private_View): When exchanging views of private types, build the
24249 list of exchanged views as a stack, to ensure that on exit the exchanges
24250 are undone in the proper order.
24251 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24252 Restore the compilation environment in case of instantiation_error.
24253 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24254 for an anonymous access result.
24255 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24256 (Formal_Entity): Handle properly the case of a formal package that
24257 denotes a generic package renaming.
24259 2005-09-01 Thomas Quinot <quinot@adacore.com>
24261 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24262 clause if the array aggregate is surrounded by parentheses.
24264 2005-09-01 Cyrille Comar <comar@adacore.com>
24265 Gary Dismukes <dismukes@adacore.com>
24266 Ed Schonberg <schonberg@adacore.com>
24267 Javier Miranda <miranda@adacore.com>
24269 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24271 to check if a type is Constrained in cases related to code generation
24272 (rather than semantic checking) since otherwise we do not generate
24273 similar code for mutable private types depending if their
24274 discriminants are visible or not.
24275 (Check_Abstract_Overriding): Do not complain about failure to override
24276 the primitive operations used in dispatching selects since they will
24277 always be overriden at the freeze point of the type.
24278 (Access_Definition): Separate out handling for resetting the scope
24279 of an anonymous access function result type. Retrieve the scope
24280 of the associated function rather than using Current_Scope, which
24281 does not have a consistent value (depends on whether we're in the
24282 middle of analyzing formal parameters). Add ??? comment about
24283 finding a cleaner way to handle the special cases of scope setting.
24284 (Process_Incomplete_Dependents): A protected operation is never a
24285 dispatching operation (only its wrapper may be).
24286 (Build_Derived_Record_Type): In case of tagged private types that
24287 implement interfaces add derivation of predefined primitive
24289 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24290 by two parameters that are used in case of derivation from abstract
24291 interface types: No_Predefined_Prims is used to avoid the derivation
24292 of predefined primitives from the interface, and Predefined
24293 Prims_Only is used to complete the derivation predefined primitives
24294 in case of private tagged types implementing interfaces.
24295 Fix typo in comments
24296 (Find_Interface_In_Descendant): Protect the frontend against
24297 wrong code with large circularity chains.
24298 (Is_Private_Overriding): Add support for entities overriding interface
24299 subprograms. The test failed because Entities associated with overriden
24300 interface subprograms are always marked as hidden (and used to build
24301 the secondary dispatch table); in this case the overriden entity is
24302 available through the field abstract_interface_alias (cf. override_
24303 dispatching_operation)
24304 (Access_Definition): Set the scope of the type to Current_Scope for the
24305 case of a function with an anonymous access result type.
24306 (Access_Subprogram_Declaration): Handle creation of the type entity for
24307 an access-to-function type with an anonymous access result.
24308 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24309 in handling for N_Access_Function_Definition.
24310 (Analyze_Subtype_Declaration): Modify the text of error message.
24311 (Derived_Type_Declaration): Modify the text of error message.
24312 (Process_Subtype): Modify the text of error message plus cleanup
24313 of one redundant error message.
24314 (Analyze_Component_Declaration): Code cleanup.
24315 (Analyze_Object_Declaration): Code cleanup.
24316 (Analyze_Subtype_Declaration): Propagate the null-exclusion
24317 attribute in case of access types. Code cleanup.
24318 (Array_Type_Declaration): Code cleanup.
24319 (Process_Discriminants): Create the new null-excluding itype
24320 if required. Code cleanup.
24321 (Process_Subtype): Create the new null-excluding itype if
24322 required. Code cleanup.
24323 (Build_Derived_Record_Type): Code cleanup to avoid calling
24324 twice the subprogram derive_subprograms in case of private
24325 types that implement interfaces. In this particular case the
24326 subprogram Complete_Subprograms_Derivation already does the
24327 job associated with the second call.
24329 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24330 conversion to the full view when generating an operation for a
24331 discriminant whose type may currently be private.
24333 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24334 Javier Miranda <miranda@adacore.com>
24336 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24337 V (Obj.F), the rewriting does not involve the indexed component, but
24338 only the selected component itself.
24339 Do not apply the transformation if the analyzed node is an actual of a
24340 call to another subprogram.
24341 (Complete_Object_Operation): Retain the entity of the
24342 dispatching operation in the selector of the rewritten node. The
24343 entity will be used in the expansion of dispatching selects.
24344 (Analyze_One_Call): Improve location of the error message associated
24346 (Analyze_Selected_Component): No need to resolve prefix when it is a
24347 function call, resolution is done when parent node is resolved, as
24349 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24350 when attempting to resolve a call transformed from its object notation.
24351 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24352 of the argument list for each interpretation of the operation.
24353 (Try_Object_Operation): The designated type of an access parameter may
24354 be an incomplete type obtained through a limited_with clause, in which
24355 case the primitive operations of the type are retrieved from its full
24357 (Analyze_Call): If this is an indirect call, and the return type of the
24358 access_to_subprogram is incomplete, use its full view if available.
24360 2005-09-01 Javier Miranda <miranda@adacore.com>
24361 Gary Dismukes <dismukes@adacore.com>
24363 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24364 access types the null-exclusion and access-to-constant attributes must
24366 (Analyze_Return_Statement): When the result type is an anonymous access
24367 type, apply a conversion of the return expression to the access type
24368 to ensure that appropriate accessibility checks are performed.
24369 (Analyze_Return_Type): For the case of an anonymous access result type,
24370 generate the Itype and set Is_Local_Anonymous_Access on the type.
24371 Add ??? placeholder for check to disallow returning a limited object
24372 in Ada 2005 unless it's an aggregate or a result of a function call.
24373 Change calls from Subtype_Mark to Result_Definition.
24374 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24375 Result_Definition in call to Make_Function_Specification.
24376 (Build_Body_To_Inline): Change Set_Subtype_Mark to
24377 Set_Result_Definition.
24378 (Make_Inequality_Operator): Change formal Subtype_Mark to
24379 Result_Definition in call to Make_Function_Specification.
24380 (Process_Formals): Create the new null-excluding itype if required.
24381 (New_Overloaded_Entity): For an entity overriding an interface primitive
24382 check if the entity also covers other abstract subprograms in the same
24383 scope. This is required to handle the general case, that is, overriding
24384 other interface primitives and overriding abstract subprograms inherited
24385 from some abstract ancestor type.
24386 (New_Overloaded_Entity): For an overriding entity that comes from
24387 source, note the operation that it overrides.
24388 (Check_Conformance, Type_Conformant): Addition of one new formal
24389 to skip controlling formals in the analysis. This is used to
24390 handle overloading of abstract interfaces.
24391 (Base_Types_Match): Add missing case for types imported from
24392 limited-with clauses
24393 (New_Overloaded_Entity): Add barrier to protect the use of
24394 the "alias" attribute.
24396 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24398 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24399 verify that the procedure and the entry are mode conformant.
24400 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24401 as a different operator, which is often a cut-and-paste error.
24403 2005-09-01 Javier Miranda <miranda@adacore.com>
24404 Ed Schonberg <schonberg@adacore.com>
24406 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24407 used in controlling parameters exclude null because it is necessary to
24408 read the tag to dispatch, and null has no tag.
24409 (Override_Dispatching_Operation): If the previous operation is inherited
24410 from an interface, it becomes hidden and does not participate in later
24413 2005-09-01 Javier Miranda <miranda@adacore.com>
24414 Ed Schonberg <schonberg@adacore.com>
24415 Gary Dismukes <dismukes@adacore.com>
24417 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24418 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24419 the expander will generate the corresponding run-time check to evaluate
24421 (Resolve_Call): Check for legal type of procedure name or prefix that
24422 appears as a trigger in a triggering alternative.
24423 (Valid_Conversion): If expression is ambiguous and the context involves
24424 an extension of System, remove System.Address interpretations.
24425 (Resolve_Qualified_Expression): Reject the case of a specific-type
24426 qualification applied to a class-wide argument. Enhance comment
24427 to explain checking of Original_Node.
24428 (Resolve_Type_Conversion): The location of the error message was not
24429 general enough to handle the general case and hence it has been removed.
24430 In addition, this patch improves the text of the message.
24431 (Resolve_Type_Conversion): Add missing support for access to interface
24433 (Resolve_Type_Conversion): If the target is a class-wide interface type,
24434 do not expand if the expression is the actual in a call, because proper
24435 expansion will take place when the call itself is expanded.
24436 (Resolve_Allocator): If the context is an unchecked conversion, the
24437 allocator inherits its storage pool, if any, from the target type of
24440 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24441 Javier Miranda <miranda@adacore.com>
24443 * sem_type.adb (Add_One_Interp): If a candidate operation is an
24444 inherited interface operation that has an implementation, use the
24445 implementation to avoid spurious ambiguities.
24446 (Interface_Present_In_Ancestor): In case of concurrent types we can't
24447 use the Corresponding_Record_Typ attribute to look for the interface
24448 because it is set by the expander (and hence it is not always
24449 available). For this reason we traverse the list of interfaces
24450 (available in the parent of the concurrent type).
24451 (Interface_Present_In_Ancestor): Handle entities from the limited view
24453 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24455 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24456 from the list of required components.
24457 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24458 primitive procedure of a limited interface with a controlling first
24460 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24462 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24463 capture if it is generated in the second operand of a short-circuit
24465 Do not capture values for variables with address clauses.
24466 (Is_Object_Reference): Treat a function call as an object reference only
24467 if its type is not Standard_Void_Type.
24469 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24471 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24472 to a variable that is statically known to be constant.
24474 2005-09-01 Geert Bosch <bosch@adacore.com>
24475 Robert Dewar <dewar@adacore.com>
24477 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24478 (VAXGF_Safe_First): Idem.
24480 2005-09-01 Robert Dewar <dewar@adacore.com>
24481 Arnaud Charlet <charlet@adacore.com>
24483 * g-dirope.ads: Minor reformatting
24484 Document that bounds of result of Base_Name match the input index
24486 Add documentation on environment variable syntax for Expand_Path
24488 * gnat_ugn.texi: Update documentation to include mention of -m switches
24489 Document new treatment of wide characters in max line length
24491 Remove -gnatL/-gnatZ switches, no longer used.
24492 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24495 * gnat_rm.texi: Add doc for two argument form of pragma
24496 Float_Representation.
24497 Add documentation for pragma No_Strict_Aliasing
24498 Add note that explicit component clause overrides pragma Pack.
24499 Add documentation of pragma Debug_Policy
24501 2005-09-01 Matthew Heaney <heaney@adacore.com>
24503 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24504 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24505 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
24506 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24507 draft (Draft 13, August 2005) of Ada Amendment 1.
24509 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24511 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24512 Note that the platform-specific version of g-soccon.ads for VMS is now
24513 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24514 really is a package spec).
24515 Replace s-taspri-linux.ads by s-taspri-posix.ads
24516 Remove references to s-mastop-x86.adb
24518 * system-vxworks-xscale.ads: Removed, no longer used.
24519 * s-vxwork-xscale.ads: Removed, no longer used.
24521 2005-09-01 Robert Dewar <dewar@adacore.com>
24523 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24524 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24525 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24526 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24527 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24528 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24529 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24530 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24531 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24532 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24533 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24534 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24535 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24536 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24537 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24538 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24539 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24540 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24541 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24542 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24543 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24545 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24549 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
24551 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24552 Doug Rupp <rupp@adacore.com>
24554 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24556 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24557 this code in the GNAT run-time.
24559 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24562 * init.c (__gnat_error_handler [many]): Mark "msg" as const
24563 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24565 (__gnat_inside_elab_final_code): Moved here from
24566 Standard_Library and only defined for the compiler.
24567 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24568 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24569 using RTPs because directly vectored Interrupt routines are not
24570 supported on this configuration.
24571 (getpid): Do not redefine this function on VxWorks when using RTPs
24572 because this primitive is well supported by the RTP libraries.
24573 (copy_msg): Correct the code that checks for buffer overflow.
24574 Discovered during code reading.
24576 2005-08-29 Olivier Hainque <hainque@adacore.com>
24578 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24579 a library level mutable variable with an initializer, tell
24580 build_allocator to ignore the initializer's size. It may not be large
24581 enough for all the values that might be assigned to the variable later
24584 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24585 Eric Botcazou <ebotcazou@adacore.com>
24587 * trans.c: Protect < in error msg with quote
24588 Replace GCC_ZCX by Back_End_Exceptions.
24589 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24590 has been sufficiently aligned in the record.
24592 2005-08-15 James E. Wilson <wilson@specifix.com>
24594 * system-linux-alpha.ads: Change ia64 to alpha.
24596 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
24598 * decl.c, utils.c: Fix comment typos.
24600 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
24602 * decl.c, init.c, initialize.c: Fix comment typos.
24604 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
24606 Make CONSTRUCTOR use VEC to store initializers.
24607 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24609 * trans.c (extract_values): Likewise.
24610 * utils.c (convert, remove_conversions): Likewise.
24611 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24612 gnat_build_constructor): Likewise.
24614 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24616 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24618 (compare_field_bitpos): Likewise.
24620 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24622 * utils.c (create_var_decl): Only set DECL_COMMON on
24623 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24624 VAR_OR_FUNCTION_DECL_P.
24626 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
24628 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24631 2005-07-07 Pascal Obry <obry@adacore.com>
24633 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24634 returned type on Windows.
24636 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24639 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24640 exception in this case.
24641 Simplify the code as "Image (Image'Range)" = "Image".
24643 2005-07-07 Vincent Celier <celier@adacore.com>
24645 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24646 the destructor/constructor attributes for <lib>final/<lib>init.
24648 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24650 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
24652 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24653 type if the parameter is not passed by copy but reference by default.
24655 2005-07-07 Javier Miranda <miranda@adacore.com>
24657 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24658 Reimplementation of the support for abstract interface types in order
24659 to leave the code more clear and easy to maintain.
24661 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24662 abstract interface types in order to leave the code clearer and easier
24665 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24666 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24667 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24668 appropriate entry of the secondary dispatch table.
24669 (Make_DT): Add code to inherit the secondary dispatch tables of
24672 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24673 implementing both functionalities by means of a common routine, each
24674 routine has its own code.
24676 2005-07-07 Javier Miranda <miranda@adacore.com>
24678 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24680 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24683 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24686 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24687 use of tag incomplete types.
24689 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24690 give support to tagged incomplete types.
24692 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24693 expression is a discriminant reference and its type is private, as can
24694 happen within a stream operation for a mutable record, use the full
24695 view of the type to resolve the case alternatives.
24696 (Analyze_Assignment): Check wrong dereference of incomplete types.
24698 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24701 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24704 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24705 N_Incomplete_Type_Declaration nodes.
24707 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24708 Tag_Present to give support to tagged incomplete types:
24710 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24713 2005-07-07 Olivier Hainque <hainque@adacore.com>
24716 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24717 definitions for the Unwind wrappers in the compiler case.
24719 2005-07-07 Ed Schonberg <schonberg@adacore.com>
24720 Javier Miranda <miranda@adacore.com>
24722 * par-load.adb (Load): If a child unit is loaded through a limited_with
24723 clause, each parent must be loaded as a limited unit as well.
24725 * sem_ch10.adb (Previous_Withed_Unit): Better name for
24726 Check_Withed_Unit. Return true if there is a previous with_clause for
24727 this unit, whether limited or not.
24728 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24730 (Is_Visible_Through_Renamings): New local subprogram of install_limited
24731 _withed_unit that checks if some package installed through normal with
24732 clauses has a renaming declaration of package whose limited-view is
24733 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24734 of the current Draft document for Ada 2005.
24735 (Analyze_Context): Complete the list of compilation units that
24736 are allowed to contain limited-with clauses. It also contains
24737 checks that were previously done by Install_Limited_Context_Clauses.
24738 This makes the code more clear and easy to maintain.
24739 (Expand_Limited_With_Clause) It is now a local subprogram of
24740 Install_Limited_Context_Clauses, and contains the code that adds
24741 the implicit limited-with clauses for parents of child units.
24742 This functionality was prevously done by Analyze_Context.
24744 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24747 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24748 been erroneously named in a limited-with clause of its own context.
24749 In this case the error has been previously notified by Analyze_Context.
24751 2005-07-07 Ed Schonberg <schonberg@adacore.com>
24753 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24754 generic package that contains local declarations with the same name.
24755 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24757 2005-07-07 Bernard Banner <banner@adacore.com>
24759 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24760 ia64 platform only on platforms that you the GCC unwind library
24761 rather than the system unwind library.
24763 2005-07-07 Thomas Quinot <quinot@adacore.com>
24765 * expect.c: Minor reformatting
24767 2005-07-07 Sergey Rybin <rybin@adacore.com>
24769 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24772 * gnat_ugn.texi: Add description for new gnatpp option
24775 2005-07-04 Thomas Quinot <quinot@adacore.com>
24777 * g-expect-vms.adb, g-expect.ads, g-expect.adb
24778 (Get_Command_Output): New subprogram to launch a process and get its
24779 standard output as a string.
24781 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
24782 Olivier Hainque <hainque@adacore.com>
24784 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
24785 fetch a code-range descriptor associated with the machine state. On
24786 failure set the machine state's PC to 0; on success, pass the
24787 descriptor to exc_virtual_unwind.
24789 * init.c (Tru64 section): New function __gnat_set_code_loc.
24791 2005-07-04 Vincent Celier <celier@adacore.com>
24793 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24794 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24795 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
24796 Remove all auto-initialization code, as this is now done through the
24797 constructor mechanism.
24799 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
24800 __gnat_sals_init_using_constructors): New functions.
24802 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
24803 Linker_Constructor and Linker_Destructor when switch -a is used.
24805 * bindusg.adb: Add line for new switch -a
24807 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
24808 (Gnatbind): When switch -a is used, check if it is allowed
24810 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
24812 2005-07-04 Joel Brobecker <brobecker@adacore.com>
24814 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
24815 This prevents us from hitting a limitation during the debug info
24816 generation when using stabs.
24817 (Prims_Ptr): Likewise.
24819 2005-07-04 Gary Dismukes <dismukes@adacore.com>
24820 Ed Schonberg <schonberg@adacore.com>
24821 Javier Miranda <miranda@adacore.com>
24823 * checks.adb (Null_Exclusion_Static_Checks): In the case of
24824 N_Object_Declaration, only perform the checks if the Object_Definition
24825 is not an Access_Definition.
24827 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
24828 where the parent of an the access definition is an N_Object_Declaration
24829 when determining the Associated_Node_For_Itype and scope of an
24830 anonymous access-to-subprogram type.
24832 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
24833 Corresponding_Spec on the body created for a null procedure. Add ???
24834 comment. Remove New_Copy_Tree call on body argument to
24835 Set_Body_To_Inline.
24837 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
24838 discriminants, use the type of the actual as well, because the
24839 discriminants may be read by the called subprogram.
24841 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
24842 access type we do not need to handle non-limited views.
24843 (Build_Derived_Record_Type): Additional check to check that in case of
24844 private types, interfaces are only allowed in private extensions.
24846 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
24848 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
24849 <Pragma_Linker_Destructor>: Likewise.
24851 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
24852 Pragma_Linker_Destructor.
24854 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
24855 ATTR_LINK_DESTRUCTOR.
24856 (static_ctors, static_dtors): New variables.
24858 * misc.c (gnat_expand_body): Output current function as constructor
24859 and destructor if requested.
24861 * par-prag.adb: Add processing for pragma Linker_Constructor and
24864 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
24865 extracted from Check_Interrupt_Or_Attach_Handler.
24866 (Check_Interrupt_Or_Attach_Handler): Invoke it.
24867 Implement pragma Linker_Constructor and Linker_Destructor with the
24868 help of Find_Unique_Parameterless_Procedure.
24869 Replace Name_Alias with Name_Target for pragma Linker_Alias.
24871 * snames.h, snames.ads, snames.adb:
24872 Add Name_Linker_Constructor and Name_Linker_Destructor.
24873 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
24874 * snames.adb: Remove Name_Alias.
24876 * trans.c: Include cgraph.h.
24877 (build_global_cdtor): New function.
24878 (Compilation_Unit_to_gnu): Build global constructor and destructor if
24880 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
24882 (addressable_p) <COMPONENT_REF>: Unconditionally test
24883 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
24885 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
24886 variable if it is external.
24888 (static_ctors, static_dtors): New global variables.
24889 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
24890 <ATTR_LINK_DESTRUCTOR>: Likewise.
24891 (end_subprog_body): Chain function as constructor and destructor
24894 * exp_util.adb (Force_Evaluation): Unconditionally invoke
24895 Remove_Side_Effects with Variable_Ref set to true.
24896 (Remove_Side_Effects): Handle scalar types first. Use a renaming
24897 for non-scalar types even if Variable_Ref is true and for class-wide
24900 2005-07-04 Ed Schonberg <schonberg@adacore.com>
24902 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
24903 to prevent spurious warnings.
24905 2005-07-04 Thomas Quinot <quinot@adacore.com>
24907 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
24908 Itypes. Itypes are really unexpected there.
24909 (Build_TypeCode_Function): Generalise special processing for Itypes to
24910 handle the case of numeric implicit base types as well as enumerated
24913 2005-07-04 Ed Schonberg <schonberg@adacore.com>
24915 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
24916 controlled, indicate the expected type of the dereference that is
24917 created for the call to Deep_Finalize, to prevent spurious errors when
24918 the designated type is private and completed with a derivation from
24919 another private type.
24921 2005-07-04 Vincent Celier <celier@adacore.com>
24923 * make.adb (Change_To_Object_Directory): When unable to change the
24924 current dir to the object directory, output the full path of the
24927 2005-07-04 Matthew Gingell <gingell@adacore.com>
24929 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
24931 * indepsw-linux.adb: Replace by...
24933 * indepsw-gnu.adb: ...this new file
24935 2005-07-04 Vincent Celier <celier@adacore.com>
24937 * mlib-prj.adb (Auto_Initialize): New constant String
24938 (SALs_Use_Constructors): New Boolean function
24939 (Build_Library): Call gnatbind with Auto_Initialize switch when
24940 SALs_Use_Constructors returns True.
24942 * mlib-tgt.ads: Minor reformatting
24944 * mlib-utl.ads: Minor reformatting
24946 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
24948 2005-07-04 Ed Schonberg <schonberg@adacore.com>
24950 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
24951 single protected declarations can have an interface list.
24952 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
24953 with seriously malformed entry declarations, and lead to compilation
24954 abandoned messages.
24956 2005-07-04 Javier Miranda <miranda@adacore.com>
24958 * par-load.adb: Load the context items in two rounds.
24960 2005-07-04 Robert Dewar <dewar@adacore.com>
24962 * scng.adb: Do not consider Mod used as an attribute to be a keyword
24964 2005-07-04 Ed Schonberg <schonberg@adacore.com>
24965 Javier Miranda <miranda@adacore.com>
24967 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
24968 type extension needs a limited view.
24969 Remove previous restriction on private types available through the
24970 limited-view (only tagged private types were previously allowed).
24971 (Install_Withed_Unit): In the code that implements the
24972 legality rule given in AI-377, exclude a child unit with the name
24973 Standard, because it is a homonym of the Standard environment package.
24975 2005-07-04 Thomas Quinot <quinot@adacore.com>
24977 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
24978 overloaded function call, carry interpretations from the original tree
24981 2005-07-04 Ed Schonberg <schonberg@adacore.com>
24983 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
24984 types check whether some designated type is a limited view, and use
24985 the non-limited view if available.
24987 2005-07-04 Gary Dismukes <dismukes@adacore.com>
24989 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
24990 constraint of full view of a private view T1 if present, when T2 is a
24991 discriminated full view.
24993 2005-07-04 Thomas Quinot <quinot@adacore.com>
24995 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
24996 actual that is a view conversion of a bit packed array reference.
24998 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25000 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25001 present before checking whether an interface type covers a synchronized
25004 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25006 * sem_util.adb (Is_Object_Reference): An indexed or selected component
25007 whose prefix is an implicit dereference is an object reference. Removes
25008 spurious errors when compiling with -gnatc.
25010 2005-07-04 Robert Dewar <dewar@adacore.com>
25013 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25015 2005-07-04 Matthew Gingell <gingell@adacore.com>
25017 * tracebak.c: Enable tracebacks on ia64 platforms
25019 2005-07-04 Vincent Celier <celier@adacore.com>
25021 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25022 the GNAT BIND command, as gnatbind accepts multiples ALI files with
25023 the -L or -n switches.
25025 2005-07-04 Vincent Celier <celier@adacore.com>
25027 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25028 correctly computed and the main project data is not modified while
25030 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25031 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25032 c++linker as this does not work on some platforms.
25034 2005-07-04 Matthew Heaney <heaney@adacore.com>
25036 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25038 * a-coinve.adb: Perform constraint checks explicitly.
25040 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25041 Thomas Quinot <quinot@adacore.com>
25043 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25044 new target gen-soccon.
25046 2005-07-04 Robert Dewar <dewar@adacore.com>
25048 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25050 2005-07-04 Thomas Quinot <quinot@adacore.com>
25052 * g-socket.ads (Check_Selector): Minor rewording of comment.
25054 2005-07-04 Vincent Celier <celier@adacore.com>
25056 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25058 2005-07-04 Thomas Quinot <quinot@adacore.com>
25060 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25062 2005-07-04 Sergey Rybin <rybin@adacore.com>
25064 * gnat_ugn.texi: Add description of --eol gnatpp option
25066 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25067 Thomas Quinot <quinot@adacore.com>
25069 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25070 if the user wants all calls of a subprogram to be flagged,
25071 independently of whether they are made from within the same unit or
25073 Mention restriction for pragma Linker_Alias on some platforms.
25074 Document pragma Linker_Constructor and Linker_Destructor.
25075 Rewrite documentation of Weak_External, Linker_Section and
25076 Linker_Alias pragmas.
25078 2005-07-04 Arnaud Charlet <charlet@adacore.com>
25080 * s-stausa.ads, s-stausa.adb: New files.
25082 2005-06-30 Kelley Cook
25084 * all files: Update FSF address in copyright headers.
25085 * gen-soccon.co (main): Output new FSF address in generated files.
25087 2005-06-28 Paul Brook <paul@codesourcery.com>
25089 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25091 2005-06-14 Olivier Hainque <hainque@adacore.com>
25092 Eric Botcazou <ebotcazou@adacore.com>
25094 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25095 exc_unwind, now that we are generating proper .debug_frame output for
25098 * tracebak.c: Remove the mips-irix section, as we are now using the
25099 s-mastop based unwinder again.
25100 Under SPARC/Solaris, take into account the stack bias to compute the
25101 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
25104 2005-06-14 Doug Rupp <rupp@adacore.com>
25106 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25108 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25110 2005-06-14 Pascal Obry <obry@adacore.com>
25112 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25113 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25114 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25117 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25118 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25119 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25120 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25121 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25122 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25123 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25124 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25125 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25126 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25127 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25128 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25129 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25130 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25131 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25132 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25133 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25134 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25135 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25136 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25137 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25138 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25139 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25140 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25141 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25142 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25143 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25144 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25145 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25146 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25147 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25148 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25149 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25150 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25151 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25152 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25153 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25154 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25155 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25156 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25157 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25158 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25159 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25160 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25161 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25162 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25163 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25164 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25165 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25166 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25167 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25168 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25169 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25170 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25171 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25172 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25173 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25174 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25175 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25176 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25177 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25178 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25179 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25180 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25181 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25182 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25183 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25184 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25185 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25186 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25187 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25188 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25189 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25190 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25191 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25192 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25193 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25194 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25195 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25196 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25197 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25198 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25199 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25200 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25201 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25202 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25203 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25204 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25205 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25206 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25207 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25208 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25209 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25210 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25211 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25212 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25213 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25214 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25215 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25216 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25217 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25218 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25219 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25220 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25221 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25222 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25223 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25224 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25225 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25226 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25227 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25228 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25229 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25230 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25231 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25232 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25233 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25234 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25235 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25236 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25237 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25238 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25239 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25240 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25241 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25242 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25243 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25244 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25245 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25246 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25247 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25248 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25249 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25251 2005-06-14 Jose Ruiz <ruiz@adacore.com>
25252 Arnaud Charlet <charlet@adacore.com>
25254 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25255 longer protected objects. They have been replaced by lower-level
25256 suspension objects made up by a mutex and a condition variable (or
25257 their equivalent given a particular OS) plus some internal data to
25258 reflect the state of the suspension object.
25259 (Initialize, Finalize): Add this initialization procedure for
25260 Suspension_Object, which is a controlled type.
25261 (Finalize): Add the finalization procedure for Suspension_Object,
25262 which is a controlled type.
25264 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25265 Ada.Synchronous_Task_Control because there is no longer a need for a
25266 VxWorks specific version of this package. Target dependencies
25267 has been moved to System.Task_Primitives.Operations.
25269 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25271 (InitializeCriticalSection, EnterCriticalSection,
25272 LeaveCriticalSection, DeleteCriticalSection): Replace the type
25273 pCriticalSection by an anonymous access type so that we avoid problems
25274 of accessibility to local objects.
25276 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25277 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25278 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25279 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25280 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25281 set the environment task mask here.
25282 (Current_State): Add this function that returns the state of the
25284 (Set_False): Add this procedure that sets the state of the suspension
25286 (Set_True): Add this procedure that sets the state of the suspension
25287 object to True, releasing the task that was suspended, if any.
25288 (Suspend_Until_True): Add this procedure that blocks the calling task
25289 until the state of the object is True. Program_Error is raised if
25290 another task is already waiting on that suspension object.
25291 (Initialize): Add this procedure for initializing the suspension
25292 object. It initializes the mutex and the condition variable which are
25293 used for synchronization and queuing, and it sets the internal state
25295 (Finalize): Add this procedure for finalizing the suspension object,
25296 destroying the mutex and the condition variable.
25298 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25299 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25300 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25301 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25302 which provides a low-level abstraction (using operating system
25303 primitives) for Ada.Synchronous_Task_Control.
25304 This object is made up by a mutex (for ensuring mutual exclusion), a
25305 condition variable (for queuing threads until the condition is
25306 signaled), a Boolean (State) indicating whether the object is open,
25307 and a Boolean (Waiting) reflecting whether there is a task already
25308 suspended on this object.
25310 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25311 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25312 s-intman-vms.ads, s-intman-mingw.adb,
25313 (Initialize_Interrupts): Removed, no longer used.
25315 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25316 (Setup_Interrupt_Mask): New procedure.
25318 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
25320 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25322 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25323 this is no longer done in the body of s-taprop
25324 (Server_Task): Explicitely test for Pending_Action in case
25325 System.Parameters.No_Abort is True.
25327 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25328 is no longer done in the body of s-taprop
25330 2005-06-14 Robert Dewar <dewar@adacore.com>
25332 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25333 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25334 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25335 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25336 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25337 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25338 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25339 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25340 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25341 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25342 system-linux-hppa.ads, system-vms_64.ads,
25343 system-vxworks-alpha.ads: Minor comment update for
25344 AI-362 (unit is Pure).
25346 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25347 Add pragma Pure_05 for AI-362
25348 Make remaining conversion functions obsolescent in Ada 95
25350 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25351 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25352 Add entries for a-wichun and a-zchuni
25353 Add a-widcha a-zchara for AI-395
25354 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25356 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25357 Add entries for a-wichun.o and a-zchuni.o
25358 Entries for a-widcha.o and a-zchara.o
25359 Add entry for a-chacon.o
25361 * a-ztenau.adb: Add with of Ada.Characters.Conversions
25363 * a-chacon.ads, a-chacon.adb: New files.
25365 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25366 categorization violations.
25368 * a-strmap.ads: Add pragma Pure_05 for AI-362
25369 * a-strmap.ads: Add note on implicit categorization for AI-362
25371 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25373 * par-prag.adb: Dummy entry for pragma Persistent_BSS
25374 Set Ada_Version_Explicit, for implementation of AI-362
25375 Add processing for pragma Pure_05 and Preelaborate_05
25376 Add entry for Assertion_Policy pragma
25378 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25379 when needed for proper processing of categorization stuff
25382 For several cases, make errors in preealborate units warnings,
25383 instead of errors, if GNAT_Mode is set. For AI-362.
25385 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25386 preelaborate unit is now warning if in GNAT mode
25388 * s-stoele.ads: Document AI-362 for pragma preelaborate
25390 2005-06-14 Doug Rupp <rupp@adacore.com>
25392 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25393 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25394 Default_Exception_Msg_Max_Length: new parameter.
25396 * a-except.ads: (Exception_Msg_Max_Length): Set to
25397 System.Parameters.Default_Exception_Msg_Max_Length
25398 Add pragma Preelaborate_05 for AI-362
25399 Add warnings off to allow categorization violations for AI-362
25401 2005-06-14 Vincent Celier <celier@adacore.com>
25403 * gnatsym.adb: Adapt to modification of package Symbols: procedure
25404 Process is now in package Processing.
25406 * symbols.ads, symbols.adb:
25407 (Processing): New package, containing procedure Process
25409 * symbols-vms-alpha.adb:
25410 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25412 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25413 symbols-processing-vms-ia64.adb: New files.
25415 2005-06-14 Pascal Obry <obry@adacore.com>
25417 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25418 implementation. This new version generates the proper DllMain routine
25419 to initialize the SAL. The DllMain is generated in Ada and compiled
25420 before being added as option to the library build command.
25422 2005-06-14 Doug Rupp <rupp@adacore.com>
25423 Pascal Obry <obry@adacore.com>
25425 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25426 call to decc$translate_vms.
25427 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25428 need to remove those quotes before catenating the filename.
25429 (__gnat_locate_exec_on_path): improvements to the Win32 section:
25430 * avoid allocating the memory twice for better efficiency;
25431 * allocate 32K buffer for environment expansion as suggested by MSDN;
25432 * prepend ".;" to the path so that current directory is searched too.
25434 2005-06-14 Robert Dewar <dewar@adacore.com>
25436 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25437 instead of raising CE (AI-241)
25438 Add warnings off to allow categorization violations for AI-362
25440 2005-06-14 Robert Dewar <dewar@adacore.com>
25442 * ali-util.adb, gnatbind.adb: Remove references to
25443 Force_RM_Elaboration_Order.
25445 * switch-b.adb: Remove recognition of -f switch
25447 2005-06-14 Pascal Obry <obry@adacore.com>
25449 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25450 implementation which is slightly more efficient.
25452 2005-06-14 Gary Dismukes <dismukes@adacore.com>
25453 Javier Miranda <miranda@adacore.com>
25454 Ed Schonberg <schonberg@adacore.com>
25455 Hristian Kirtchev <kirtchev@adacore.com>
25457 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25458 allocator's designated type is a class-wide type, and compiling for
25459 Ada 2005, emit a run-time check that the accessibility level of the
25460 type given in the allocator's expression is not deeper than the level
25461 of the allocator's access type.
25463 (Tagged_Membership): Modified to gives support to abstract interface
25466 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25468 (Descendant_Tag): New predefined function
25469 (Is_Descendant_At_Same_Level): New predefined function
25470 (Get_Access_Level): New private function
25471 (Set_Access_Level): New private procedure
25472 (IW_Membership): New function. Given the tag of an object and the tag
25473 associated with an interface, evaluate if the object implements the
25475 (Register_Interface_Tag): New procedure used to initialize the table of
25476 interfaces used by the IW_Membership function.
25477 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25478 of the dispatch table.
25479 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25480 table of interfaces of the parent.
25481 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25482 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25483 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25484 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25485 Ada 2005 semantics for the new predefined function.
25487 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25488 call to Descendant_Tag rather than Internal_Tag.
25489 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25490 the accessibility level of the attribute's Item parameter is not deeper
25491 than the level of the attribute's prefix type. Tag_Error is raised if
25492 the check fails. The check is only emitted for Ada_05.
25493 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25494 requested stream attribute, use it.
25495 (Expand_N_Attribute_Reference): If the designated type is an interface
25496 then rewrite the referenced object as a conversion to force the
25497 displacement of the pointer to the secondary dispatch table.
25498 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25499 is a dereference of an object with a constrained partial view.
25501 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25502 type is a class-wide type, emit a run-time check that the accessibility
25503 level of the returned object is not deeper than the level of the
25504 function's master (only when compiling for Ada 2005).
25506 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25507 Action_Nb_Arg): Add entries for new Get_Access_Level and
25508 Set_Access_Level routines in these tables.
25509 (Make_DT): Generate a call to set the accessibility level of the
25510 tagged type in its TSD.
25511 (Make_DT): Code cleanup. The functionality of generating all the
25512 secondary dispatch tables has been moved to freeze_record_type.
25513 (Make_Abstract_Interface_DT): Minor code cleanup.
25514 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25515 this subprogram implements a new algorithm that provides the
25516 same functionality and it is more clear in case of primitives
25517 associated with abstract interfaces.
25518 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25519 clean up, the functionality of this subprogram is now provided
25520 by Set_All_DT_Position.
25521 (Write_DT): New subprogram: a debugging procedure designed to be called
25522 within gdb to display the dispatch tables associated with a tagged
25524 (Collect_All_Interfaces): New subprogram that collects the whole list
25525 of interfaces that are directly or indirectly implemented by a tagged
25527 (Default_Prim_Op_Position): New subprogram that returns the fixed
25528 position in the dispatch table of the default primitive operations.
25529 (Expand_Interface_Actuals): New subprogram to generate code that
25530 displaces all the actuals corresponding to class-wide interfaces to
25531 reference the interface tag of the actual object.
25532 (Expand_Interface_Conversion): New subprogram. Reference the base of
25533 the object to give access to the interface tag associated with the
25534 secondary dispatch table.
25535 (Expand_Interface_Thunk): New subprogram that generates the code of the
25536 thunk. This is required for compatibility with the C+ ABI.
25537 (Make_Abstract_Interface_DT): New subprogram that generate the
25538 declarations for the secondary dispatch tables associated with an
25539 abstract interface.
25540 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25541 attribute for each primitive operation covering interface subprograms
25542 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25543 These subprograms were upgraded to give support to abstract interfaces
25545 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25546 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25547 RE_Set_Access_Level.
25548 (RE_Unit_Table): Add entries for new Ada.Tags operations.
25549 Add support to call the followig new run-time subprograms:
25550 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25552 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25553 match its full declaration when both have an access definition with
25554 statically matching designated subtypes.
25555 (Analyze_Component_Declaration): Delete commented out code that was
25556 incorrectly setting the scope of an anonymous access component's type.
25557 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25558 an access discriminant when the containing type is nonlimited.
25559 (Make_Incomplete_Type_Declaration): Create an incomplete type
25560 declaration for a record type that includes self-referential access
25562 (Check_Anonymous_Access_Types): Before full analysis of a record type
25563 declaration, create anonymous access types for each self-referential
25565 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25566 an access component in this context is a Local_Anonymous_Access, for
25567 proper accessibility checks.
25568 (Access_Definition): Set properly the scope of the anonymous access type
25569 created for a stand-alone access object.
25570 (Find_Type_Of_Object): An object declaration may be given with an access
25572 (Complete_Subprograms_Derivation): New subprogram used to complete
25573 type derivation of private tagged types implementing interfaces.
25574 In this case some interface primitives may have been overriden
25575 with the partial-view and, instead of re-calculating them, they
25576 are included in the list of primitive operations of the full-view.
25577 (Build_Derived_Record_Type): Modified to give support to private
25578 types implemening interfaces.
25579 (Access_Definition): Reject ALL on anonymous access types.
25580 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25581 type derivation to occur at a deeper accessibility level than the
25583 For the case of derivation within a generic body however, disallow the
25584 derivation if the derived type has an ancestor that is a formal type
25585 declared in the formal part of an enclosing generic.
25586 (Analyze_Object_Declaration): For protected objects, remove the check
25587 that they cannot contain interrupt handlers if not declared at library
25589 (Add_Interface_Tag_Components): New subprogram to add the tag components
25590 corresponding to all the abstract interface types implemented by a
25591 record type or a derived record type.
25592 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25593 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25594 Process_Full_View, Record_Type_Declaration): Modified to give
25595 support to abstract interface types
25596 (Collect_Interfaces): New subprogram that collects the list of
25597 interfaces that are not already implemented by the ancestors
25598 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25599 when partial view has no discriminants and full view has defaults.
25600 (Constrain_Access): Reject a constraint on a general access type
25601 if the discriminants of the designated type have defaults.
25602 (Access_Subprogram_Declaration): Associate the Itype node with the inner
25603 full-type declaration or subprogram spec. This is required to handle
25604 nested anonymous declarations.
25605 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25606 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25607 Process_Full_View, Record_Type_Declaration): Modified to give
25608 support to abstract interface types
25609 (Derive_Subprograms): Addition of a new formal to indicate if
25610 we are in the case of an abstact-interface derivation
25611 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25612 to the specification because it is requied to analyze all the
25613 identifiers found in a list of interfaces
25615 * debug.adb: Complete documentation of flag "-gnatdZ"
25617 * exp_ch3.adb: Implement config version of persistent_bss pragma
25618 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25619 testing for TSS presence to properly enforce visibility rules.
25620 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25621 Make_Abstract_Interfaces_DT to generate the secondary tables
25622 associated with abstract interfaces.
25623 (Build_Init_Procedure): Modified to initialize all the tags
25625 (Component_Needs_Simple_Initialization): Similar to other tags,
25626 interface tags do not need initialization.
25627 (Freeze_Record_Type): Modified to give support to abstract interface
25629 (Expand_N_Object_Declaration): Do not generate an initialization for
25630 a scalar temporary marked as internal.
25632 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25633 in-out parameter that is a component in an initialization procedure,
25634 whose constraint might depend on discriminants, and that may be
25635 misaligned because of packing or representation clauses.
25636 (Is_Legal_Copy): New predicate to determine whether a possibly
25637 misaligned in-out actual can actually be passed by copy/return. This
25638 is an error in case the type is by_reference, and a warning if this is
25639 the consequence of a DEC import pragma on the subprogram.
25640 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25642 (Expand_Inlined_Call): Mark temporary generated for the return value as
25643 internal, so that no useless scalar normalization is generated for it.
25644 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25645 null procedure can always be inlined.
25646 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25647 procedure, generate an explicit empty body for it.
25649 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25650 Given a type implementing an interface, returns the corresponding
25651 access_disp_table value.
25652 (Find_Interface_Tag): New subprogram. Given a type implementing an
25653 interface, returns the record component containing the tag of the
25655 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25656 previous ones that return the corresponding tag and access_disp_table
25658 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25659 is a predefined primitive operation.
25660 (Expand_Subtype_From_Expr): If the expression is a selected component
25661 within an initialization procedure, compute its actual subtype, because
25662 the component may depend on the discriminants of the enclosing record.
25664 * i-cpp.ads, i-cpp.adb:
25665 This package has been left available for compatibility with previous
25666 versions of the frontend. As part of the new layout this is now a
25667 dummy package that uses declarations available at a-tags.ads
25669 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25670 "constant access" and "aliased [constant] access" when not compiling
25672 Suppress Ada 2005 keyword warning if -gnatwY used
25673 (P_Identifier_Declarations): Add support for object declarations with
25674 access definitions.
25675 (Private_Extension_Declaration): Complete the documentation
25676 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25677 attribute in case of private extension declaration
25678 (P_Type_Declaration): Mark as "abstract" the type declarations
25679 corresponding with protected, synchronized and task interfaces
25680 (P_Declarative_Items): "not" and "overriding" are overriding indicators
25681 for a subprogram or instance declaration.
25683 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25684 instantiation that is a dispatching operation has controlling access
25685 parameters that are null excluding.
25686 Save and restore Ada_Version_Explicit, for implementation of AI-362
25687 (Validate_Derived_Type_Instance): Add check for abstract interface
25689 (Analyze_Formal_Package): Establish Instantiation source for the copy of
25690 the generic that is created to represent the formal package.
25691 (Analyze_Package_Instantiation): Instantiate body immediately if the
25692 package is a predefined unit that contains inlined subprograms, and
25693 we are compiling for a Configurable_Run_Time.
25694 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25695 If the program has a null default, generate an empty body for it.
25697 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25698 error message condition, null procedures are correctly detected now.
25699 (New_Overloaded_Entity): Bypass trivial overriding indicator check
25700 for subprograms in the context of protected types. Instead, the
25701 indicator is examined in Sem_Ch9 while analysing the subprogram
25703 (Check_Overriding_Indicator): Check consistency of overriding indicator
25704 on subprogram stubs as well.
25705 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25707 (Analize_Subprogram_Specification): When analyzing a subprogram in which
25708 the type of the first formal is a concurrent type, replace this type
25709 by the corresponding record type.
25710 (Analyze_Subprogram_Body): Undo the previous work.
25711 (Analyze_Procedure_Call): If the call has the form Object.Op, the
25712 analysis of the prefix ends up analyzing the call itself, after which
25714 (Has_Interface_Formals): New subprogram subsidiary to analyze
25715 subprogram_specification that returns true if some non
25716 class-wide interface subprogram is found
25717 (New_Overloaded_Entity): Modified to give support to abstract
25719 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25720 access to subprograms must be recursive.
25721 (Is_Unchecked_Conversion): Improve the test that recognizes
25722 instantiations of Unchecked_Conversion, and allows them in bodies that
25723 are to be inlined by the front-end. When the body comes from an
25724 instantiation, a reference to Unchecked_Conversion will be an
25725 Expanded_Name, even though the body has not been analyzed yet.
25726 Replace Is_Overriding and Not_Overriding in subprogram_indication with
25727 Must_Override and Must_Not_Override, to better express intent of AI.
25728 (Analyze_Subprogram_Body): If an overriding indicator is given, check
25729 that it is consistent with the overrinding status of the subprogram
25731 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25733 If the subprogram is a null procedure, indicate that it does not need
25736 * sem_disp.adb (Check_Controlling_Type): Give support to entities
25737 available through limited-with clauses.
25738 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25739 allowed as the last primitive of a tagged type if it has no previous
25741 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25742 to give support to abstract interface types
25744 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25745 in the case where the target type is an anonymous access type of an
25746 object or component (that is, when Is_Local_Anonymous_Access is true).
25747 Prevent the special checks for conversions of access discriminants in
25748 the case where the discriminant belongs to a nonlimited type, since
25749 such discriminants have their accessibility level defined in the same
25750 way as a normal component of an anonymous access type.
25751 (Resolve_Allocator): When an allocator's designated type is a class-wide
25752 type, check that the accessibility level of type given in the
25753 allocator's expression or subtype indication is not statically deeper
25754 than the level of the allocator's access type.
25755 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25756 name in a discriminant constraint of a record component.
25757 (Resolve_Explicit_Dereference): Do not check whether the type is
25758 incomplete when the dereference is a use of an access discriminant in
25759 an initialization procedure.
25760 (Resolve_Type_Conversion): Handle conversions to abstract interface
25762 (Valid_Tagged_Conversion): The conversion of a tagged type to an
25763 abstract interface type is always valid.
25764 (Valid_Conversion): Modified to give support to abstract interface types
25765 (Resolve_Actuals): Enable full error reporting on view conversions
25766 between unrelated by_reference array types.
25767 The rule for view conversions of arrays with aliased components is
25768 weakened in Ada 2005.
25769 Call to obsolescent subprogram is now considered to be a violation of
25770 pragma Restrictions (No_Obsolescent_Features).
25771 (Check_Direct_Boolean_Operator): If the boolean operation has been
25772 constant-folded, there is nothing to check.
25773 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25774 check on possible violation of restriction No_Direct_Boolean_Operators
25775 until after expansion of operands, to prevent spurious errors when
25776 operation is constant-folded.
25778 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25779 Has_Compatible_Type): Modified to give support to abstract interface
25781 (Interface_Present_In_Ancestor): New function to theck if some ancestor
25782 of a given type implements a given interface
25784 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
25785 prefix is a parameterless function that returns an access_to_procedure.
25786 (Transform_Object_Operation): Handle properly function calls of the
25787 form Obj.Op (X), which prior to analysis appear as indexed components.
25788 (Analyze_One_Call): Complete the error notification to help new Ada
25790 (Analyze_Allocator): For an allocator without an initial value, where
25791 the designated type has a constrained partial view, a discriminant
25792 constraint is illegal.
25794 2005-06-14 Robert Dewar <dewar@adacore.com>
25796 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
25797 do with treatment of Set_Col when positioned at end of line character.
25799 2005-06-14 Robert Dewar <dewar@adacore.com>
25801 * atree.adb: (Elist*): Protect against uninitialized field
25803 2005-06-14 Ed Schonberg <schonberg@adacore.com>
25805 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
25806 for an attribute reference that returns an access type.
25807 (Apply_Discriminant_Check): No need for check if (designated) type has
25808 constrained partial view.
25810 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
25811 both bound checks, rather than a conjunction.
25812 (Insert_Valid_Check): If the expression is an actual that is an indexed
25813 component of a bit-packed array, force expansion of the packed element
25814 reference, because it is specifically inhibited elsewhere.
25816 2005-06-14 Vincent Celier <celier@adacore.com>
25818 * clean.adb (Clean_Project): Correctly delete executable specified as
25819 absolute path names.
25821 * make.adb (Gnatmake): Allow relative executable path names with
25822 directory information even when project files are used.
25823 (Change_To_Object_Directory): Fail gracefully when unable to change
25824 current working directory to object directory of a project.
25825 (Gnatmake): Remove exception handler that could no longer be exercized
25826 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
25827 may be deallocated by Normalize_Arguments.
25828 (Collect_Arguments): Eliminate empty arguments
25830 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
25831 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
25832 (Check_Project): Return False when Project is No_Project. Return True
25833 when All_Projects is True.
25834 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
25835 All_Projects to True.
25838 2005-06-14 Ed Schonberg <schonberg@adacore.com>
25839 Javier Miranda <miranda@adacore.com>
25840 Thomas Quinot <quinot@adacore.com>
25841 Robert Dewar <dewar@adacore.com>
25842 Hristian Kirtchev <kirtchev@adacore.com>
25843 Gary Dismukes <dismukes@adacore.com>
25845 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
25846 anonymous access types, to indicate that the accessibility level of
25847 the type is determined by that of the enclosing declaration.
25848 (Has_Persistent_BSS): New flag
25849 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
25850 of this attribute with functions.
25851 (Is_Primitive_Wrapper): Remove the barrier.
25852 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
25853 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
25855 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
25856 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
25858 (Is_Pure_Unit_Access_Type): New flag
25859 (Abstract_Interfaces): Complete the assertion to cover all usages.
25860 (Set_Is_Interface): Complete the assertion to cover all usages.
25861 (Is_Primitive_Wrapper): New attribute.
25862 (Is_Obsolescent): Now applies to all entities (though it is only set
25863 for subprograms currently)
25864 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
25865 which solves various problems concerning access subtypes.
25866 (Has_Persistent_BSS): New flag
25867 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
25868 Remove these subprograms because this attribute is currently
25871 Has_Specified_Stream_Input (Flag190)
25872 Has_Specified_Stream_Output (Flag191)
25873 Has_Specified_Stream_Read (Flag192)
25874 Has_Specified_Stream_Write (Flag193)
25875 Present in all type and subtype entities. Set for a given view if the
25876 corresponding stream-oriented attribute has been defined by an
25877 attribute definition clause. When such a clause occurs, a TSS is set
25878 on the underlying full view; the flags are used to track visibility of
25879 the attribute definition clause for partial or incomplete views.
25880 (Is_Pure_Unit_Access_Type): New flag
25881 Clarify use of Is_Internal.
25882 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
25883 internally generated to wrap the invocation of tasks and protected
25884 types that implement interfaces.
25885 (Implementation_Base_Type): Documentation correction
25886 (Is_Obsolescent): Now applies to all entities (though it is only set
25887 for subprograms currently)
25888 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
25889 which solves various problems concerning access subtypes.
25891 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
25892 for examined parameters. Identify unequal parameter list lengths as
25893 non-conformant parameters.
25894 (Overriding_Possible): Do not check for "All" qualifier in declaration
25895 of controlling access parameter, following prescription of AI-404.
25896 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
25897 that build the procedure body that wraps an entry invocation
25898 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
25899 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
25900 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
25901 give support to abstract interface types
25903 * freeze.adb (Freeze_Entity): Issue error message if
25904 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
25905 type has no storage pool (Ada 2005) AI-366.
25906 Also modified to give support to abstract interface types
25907 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
25908 Inline_Always pragma.
25910 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
25911 now begin an entry declaration.
25912 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
25913 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
25914 a subprogram declaration preceded by an overriding indicator.
25915 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
25916 declarations or subprogram declarations preceded by reserved words
25917 "not" or "overriding".
25918 (P_Entry_Declaration): Update comment. Parse and check overriding
25919 indicator, set semantic flags of entry declarations.
25920 (P_Task): New error message in case of private applied
25921 to a task type declaration.
25922 (P_Protected): New error message in case of private applied
25923 to a task type declaration.
25925 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
25926 in which the full view of a type implementing an interface is a
25928 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
25929 Declare_Inherited_Private_Subprograms): If an explicit operation
25930 overrides an operation that is inherited in the private part, mark the
25931 explicit one as overriding, to enable overriding indicator checks.
25932 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
25933 full view to partial view, to simplify handling in back-end.
25935 * sprint.adb: Print interface lists where needed: derived types,
25936 protected types, task types.
25937 output "is null" for null procedures. Part of implementation of
25939 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
25940 relaxation of rules for access types in pure, shared passive partitions.
25942 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
25943 first read discriminants into temporary objects, performing checks on
25944 the read values, then possibly performing discriminant checks on the
25945 actual (if it is constrained), and only finally reading the components
25946 into a constrained temporary object.
25947 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
25948 case of reading discriminants of a mutable record type to recognize
25949 the new form of the code generated by
25950 Build_Mutable_Record_Read_Procedure.
25952 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
25953 of a simple call to Make_TSS_Name.
25954 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
25955 buffer, in order for Is_TSS to work correctly on local TSS names.
25957 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
25958 Is_Local_Anonymous_Access to check legaliy of attributes in the
25959 context of access components and stand-alone access objects.
25960 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
25961 treated as available for a limited private type if there is an
25962 attribute_definition_clause that applies to its full view, but not in
25963 other cases where the attribute is available for the full view
25964 (specifically, the sole fact that the full view is non-limited does not
25965 make the attribute available for the partial view).
25966 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
25967 non-overloaded intrinsic subprogram.
25968 (Check_Stream_Attribute): Reject an attribute reference for an
25969 unavailable stream attribute even if the prefix is not a limited type
25970 (case of a 'Input attribute reference for an abstract, non-classwide
25972 (Stream_Attribute_Available): New function to determine whether a stream
25973 attribute is available at a place.
25974 (Check_Attribute): Use Stream_Attribute_Available instead of just
25975 testing for TSS presence on the implementation base type.
25976 (Analyze_Attribute): Modified to give support to task interfaces.
25977 (Analyze_Access_Attribute): Add error check for use of an Access (or
25978 Unrestricted_Access) attribute with a subprogram marked as
25980 (Analyze_Attribute, case Attribute_Address): Add error check for use of
25981 an Address attribute with a subprogram marked as Inline_Always.
25982 Update Eval_Attribute to handle new value of Width from AI-395
25984 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
25985 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
25986 Factor common code across the stream-oriented attribute circcuits into
25987 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
25988 processing is functionally identical to the previous duplicated one,
25989 except that an expression that denotes an abstract subprogram will now
25990 be rejected, as mandated by AI-195 item 5.
25992 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
25993 Is_Local_Anonymous_Access to apply accessibility checks to access
25994 components and stand-alone access objects.
25995 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
25997 (Is_Potentially_Persistent_Type): New function
25998 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
25999 a heap-object whose type has a constrained partial view, the object is
26000 unconstrained and the component may depend on a discriminant, making its
26003 * sinfo.ads, sinfo.adb
26004 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26005 (Must_Override): Flag applicable to N_Entry_Declaration.
26006 Indicate that interface_list can appear in single task and single
26007 protected declarations.
26008 Replace Is_Overriding and Not_Overriding with Must_Override and
26009 Must_Not_Override, to better express intent of AI.
26010 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26011 of an overriding indicator in a subprogram or instance.
26012 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26013 Add the overriding indicator [[not] overriding] construct to the
26014 following grammar productions:
26016 GENERIC_INSTANTIATION
26017 SUBPROGRAM_SPECIFICATION
26019 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26020 can start with an overriding indicator.
26022 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26023 flags accordingly on subrogram specifications or instances.
26026 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26027 overriding_indicator, if present, is consistent with status of spec.
26028 Improve error message for null-excluding checks on controlling access
26030 (Check_In_Previous_With_Clause): Protect the frontend against
26031 previously reported critical errors in the context clauses.
26032 Save and restore Ada_Version_Explicit, for implementation of AI-362
26033 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26034 operation verify that controlling formals of the renamed entity that
26035 are access parameters are explicitly non-null.
26036 (Find_Expanded_Name): Improve error message when prefix is an illegal
26037 reference to a private child unit.
26039 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26040 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26041 Rewrite to correspond to new wide character names in AI-395
26043 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26044 default procedures.
26046 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26047 Robert Dewar <dewar@adacore.com>
26049 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26050 code, not on the bodies of predefined operations, to cut down on
26053 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26055 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26056 be expanded in place. The size computation does not require a
26057 subtraction, which would raise an exception on a compiler built with
26058 assertions when the upper bound is Integer'first.
26059 (Flatten): For an array of composite components, take into account the
26060 size of the components to determine whether it is safe to expand the
26061 array into a purely positional representation.
26063 2005-06-14 Thomas Quinot <quinot@adacore.com>
26065 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26066 denoting a formal parameter into account.
26068 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26070 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26071 the entry_call alternative of a conditional entry call, wrap the
26072 conditional entry call itself.
26074 2005-06-14 Nicolas Setton <setton@adacore.com>
26075 Ed Schonberg <schonberg@adacore.com>
26077 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26078 the "simple_choice" member in a variant record, in accordance with the
26079 description in the package spec: the information output for a constant
26080 should be "S number", not "SS number".
26081 (Get_Encoded_Name): Return at once if not generating code. Avoids name
26082 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26084 2005-06-14 Thomas Quinot <quinot@adacore.com>
26086 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26087 RACW without any primitives, do not generate the if statement for
26088 dispatching by name in the PolyORB/DSA case, as it would be malformed
26089 (it would have an Elsif_Parts list that is not No_List, but with a
26092 2005-06-14 Robert Dewar <dewar@adacore.com>
26094 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26096 2005-06-14 Jose Ruiz <ruiz@adacore.com>
26098 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26099 can determine whether pragma Suppress_Exception_Locations is in effect.
26101 * utils2.c (build_call_raise): Do not pass the file name to the
26102 exception handler if pragma Suppress_Exception_Locations is in effect.
26103 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26105 2005-06-14 Emmanuel Briot <briot@adacore.com>
26107 * g-debpoo.adb (Deallocate, Dereference): Improve output.
26109 2005-06-14 Nicolas Roche <roche@adacore.com>
26111 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26113 (Next_Level): Fix minor bug in handling of ../dir case
26114 (Read): Add dir separator to Directory name so that "" is understood as
26117 2005-06-14 Pascal Obry <obry@adacore.com>
26119 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26120 releasing the items.
26122 2005-06-14 Vincent Celier <celier@adacore.com>
26123 Cyrille Comar <comar@adacore.com>
26125 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26126 with output file descriptor and with output file name.
26127 (Dup, Dup2): Now global procedures as they are used by two subprograms
26128 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26130 2005-06-14 Thomas Quinot <quinot@adacore.com>
26133 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26135 (Create_Selector): Bind listening socket used to create the signalling
26136 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26137 Set listen backlog to 1 to ensure that we detect socket theft by a
26138 failure of our own connect(2) call.
26139 (Check_Selector): Improve documentation of the selector mechanism.
26140 (Broadcast_Inet_Addr): New constant.
26142 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26144 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26145 type which turns out to be an incomplete and incorrect fix.
26146 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26147 of the type is declared in a record (for determination of insertion
26149 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26150 a private type and ensure that the primary entity is used for the type
26151 of the newly created function's V formal by taking the Etype of the
26154 2005-06-14 Javier Miranda <miranda@adacore.com>
26155 Jose Ruiz <ruiz@adacore.com>
26156 Robert Dewar <dewar@adacore.com>
26157 Ed Schonberg <schonberg@adacore.com>
26159 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26160 that indicates if we are parsing a compilation unit found in a
26161 limited-with clause.
26162 It is use to avoid the circularity check.
26164 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26165 we are parsing a compilation unit found in a limited-with clause. This
26166 is use to avoid the circularity check.
26168 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26169 unit as a consequence of parsing a limited-with clause. This is used
26170 to avoid the circularity check.
26172 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26173 (Analyze_Context): Limited-with clauses are now allowed
26174 in more compilation units.
26175 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26176 againts previously reported critical errors in context clauses
26177 (Install_Limited_Withed_Unit): Code cleanup plus static detection
26178 of two further errors: renamed subprograms and renamed packages
26179 are not allowed in limited with clauses.
26180 (Install_Siblings): Do not install private_with_clauses on the package
26181 declaration for a non-private child unit.
26182 (Re_Install_Parents): When a parent of the subunit is reinstalled,
26183 reset visibility of child units properly.
26184 (Install_Withed_Unit): When a child unit appears in a with_clause of its
26185 parent, it is immediately visible.
26187 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26188 Emmanuel Briot <briot@adacore.com>
26190 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26191 declared within an inlined body as referenced, to prevent spurious
26193 (Output_One_Ref): If an entity renames an array component, indicate in
26194 the ALI file that this aliases (renames) the array. Capture as well
26195 function renamings that rename predefined operations.
26196 Add information about generic parent for package and subprogram
26198 (Get_Type_Reference): For a subtype that is the renaming of an actual in
26199 an instantiation, use the first_subtype to ensure that we don't generate
26200 cross-reference information for internal types.
26201 For objects and parameters of a generic private type, retain the '*'
26202 indicator to distinguish such an entity from its type.
26204 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26205 to store information about instantiated entities.
26207 * ali.adb (Scan_ALI): Add support for parsing the reference to the
26210 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26211 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26214 2005-06-10 Doug Rupp <rupp@adacore.com>
26215 Arnaud Charlet <charlet@adacore.com>
26216 Olivier Hainque <hainque@adacore.com>
26217 Jose Ruiz <ruiz@adacore.com>
26219 * Make-lang.in: Add initialize.o when needed.
26220 Remove obsolete references to RT_FLAGS.
26221 Add missing dependencies for sdefault.o
26223 * initialize.c: New file.
26225 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26226 [VMS] cond_signal_table: Fix problem in declaration.
26227 [VMS] __gnat_error_handler: rewrite.
26228 Move all __gnat_initialize() routines to initialize.c
26229 Specialize the former "hpux" section to "hppa hpux", as this is what the
26230 section really is here for and we now have other hpux ports that need
26231 different contents.
26232 (__gnat_adjust_context_for_raise) i386-linux: First version of this
26233 function for this target. Adjust PC by one in the machine context. This
26234 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26235 it is more reliable to do that in the signal handler itself.
26236 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26237 flags, so that the handler is passed the context structure to adjust
26238 prior to the raise.
26239 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26240 SA_SIGINFO sigaction should look like. Call
26241 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26242 Machine_State_Operations stuff.
26243 Add conditional code so that the x86_64 is also supported.
26245 2005-06-14 Pascal Obry <obry@adacore.com>
26247 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26250 2005-06-14 Robert Dewar <dewar@adacore.com>
26252 * opt.ads, opt.adb: New flags for persistent_bss mode
26253 Add Ada_Version_Explicit, for implementation of AI-362
26254 Add Assertions_Enabled_Config and associated handling
26255 Needed since setting can be changed with Assertion_Policy pragma
26256 Add new flag Warn_On_Ada_2005_Compatibility
26258 * switch-c.adb: Recognize -gnatwy/Y
26259 Set Ada_Version_Explicit, for implementation of AI-362
26260 The -gnatg switch now includes -gnatyu
26262 * usage.adb: Add -gnatwy/Y
26263 Remove wrong asterisk on -gnatwX line
26264 Add line for -gnatyu switch
26266 2005-06-14 Vincent Celier <celier@adacore.com>
26268 * osint.adb (Add_Default_Search_Dirs): Put source and object
26269 directories of project files before directories coming from
26270 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26272 2005-06-14 Robert Dewar <dewar@adacore.com>
26275 * par-ch2.adb (Scan_Pragma_Argument): New procedure
26276 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26278 2005-06-14 Vincent Celier <celier@adacore.com>
26280 * prep.adb (Preprocess): Ignore error when scanning the first token of
26283 2005-06-14 Vincent Celier <celier@adacore.com>
26285 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26286 (Check_Stand_Alone_Library): If the specified reference symbol file does
26287 not exist, only issue a warning when the symbol policy is not
26288 Controlled. And, when symbol policy is Compliant, set the symbol
26289 policy to Autonomous.
26291 2005-06-14 Vincent Celier <celier@adacore.com>
26293 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26294 when the project file in a with clause is not the last one, that is the
26295 project file name is followed by a comma.
26296 * prj-pp.adb: (First_With_In_List): New Boolean global variable
26297 (Print): Issue list of project files separated by commas in with clauses
26298 according to the values returned by Is_Not_Last_In_List.
26299 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26300 (Set_Is_Not_Last_In_List): New procedure
26302 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26304 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26306 2005-06-14 Robert Dewar <dewar@adacore.com>
26308 * scng.adb: Add call to new Check_EOF routine
26309 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26310 Add some comments regarding wide character handling
26312 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26314 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26316 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26317 characters are now considered graphic characters and hence yield false
26320 * nmake.adt: Modify header so that xnmake does not generate output
26321 files with multiple blank lines.
26323 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26324 not have an extra blank line
26326 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26328 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26329 expression when the component type is an anonymous access type to
26330 ensure that appropriate accessibility checks are done.
26332 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26333 expression of an assignment when the target object is of an anonymous
26334 access type. This ensures that required accessibility checks are done.
26335 (One_Bound): Move the check for type Universal_Integer to
26337 (Process_Bounds): Check whether the type of the preanalyzed range is
26338 Universal_Integer, and in that case set Typ to Integer_Type prior
26339 to setting the type of the original range and the calls to One_Bound.
26341 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26343 * sem_case.adb (Expand_Others_Choice): Improve warning.
26345 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26347 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26348 constraint of full view if present, when other type is discriminated.
26349 (Eval_Relational_Op): Recognize tests of pointer values against Null,
26350 when the pointer is known to be non-null, and emit appropriate warning.
26352 2005-06-14 Robert Dewar <dewar@adacore.com>
26353 Ed Schonberg <schonberg@adacore.com>
26356 * sem_prag.adb: Implement pragma Persistent_BSS
26357 Remove obsolete pragma Persistent_Data, Persistent_Object
26358 Set Ada_Version_Explicit, for implementation of AI-362
26359 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26360 Add processing for pragma Pure_05 and Preelaborate_05
26361 Add processing for Assertion_Policy pragma
26362 Add pragma identifiers for Assert
26363 (Analyze_Pragma, case Assert): Check number of arguments
26364 (Process_Inline): Additional guard against an illegal program, where the
26365 argument of the pragma is undefined, and warnings on redundant
26366 constructs are enabled.
26367 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26368 Ada_05 to this pragma, specifying that the pragma is only active in
26370 (Check_Arg_Order): New procedure
26371 Add appropriate calls to this procedure throughout
26372 Also throughout, check entity name before doing any other checks
26374 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26375 Remove obsolete pragma Persistent_Data, Persistent_Object
26376 Add entries for pragma Pure_05 and Preelaborate_05
26377 Add entries for Assertion_Policy pragma and associated names
26378 Add some names for pragma argument processing
26380 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26382 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26384 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26385 appears within a negation (either from source or as a rewriting of
26386 inequality) adjust text of warning accordingly.
26388 2005-06-14 Thomas Quinot <quinot@adacore.com>
26390 * s-strxdr.adb: Follow AI95-00132
26392 2005-06-14 Arnaud Charlet <charlet@adacore.com>
26394 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26396 2005-06-14 Arnaud Charlet <charlet@adacore.com>
26397 Jose Ruiz <ruiz@adacore.com>
26399 * s-tposen.adb, s-tpobop.adb
26400 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26402 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26403 there is no violation of the Max_Entry_Queue_Length restriction (if it
26404 has been set); Program_Error is raised otherwise.
26405 (Requeue_Call): Before requeuing the task on the target entry queue we
26406 check that there is no violation of the Max_Entry_Queue_Length
26407 restriction (if it has been set); Program_Error is raised otherwise.
26409 2005-06-14 Robert Dewar <dewar@adacore.com>
26411 * styleg.adb: Fix several remaining problems in -gnatyu switch
26412 Blank line count not reset at start
26413 Scanning outside source buffer in some cases
26414 Confusing message for blanks at end of file
26415 Non-empty blank lines not recognized
26417 * nmake.adt: Modify header so that xnmake does not generate output
26418 files with multiple blank lines.
26420 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26421 not have an extra blank line
26423 2005-06-14 Sergey Rybin <rybin@adacore.com>
26425 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26427 2005-06-14 Doug Rupp <rupp@adacore.com>
26428 Vincent Celier <celier@adacore.com>
26430 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26433 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26434 Remove "Library" command.
26435 Change keyword for style check -gnatyd from NOCRLF to
26437 Remove useless second style check keyword NONE
26438 Remove help documentation for inexistent style check keyword
26440 Add help documentation for style check keywords DOS_LINE_ENDINGS,
26441 UNNECESSARY_BLANK_LINES and XTRA_PARENS
26442 Add UNNECESSARY_BLANK_LINES for -gnatyu
26443 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26445 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26447 2005-06-14 Vincent Celier <celier@adacore.com>
26449 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26450 gprmake was invoked with -d.
26451 (Compile_Sources): If -d was used, output the "completed ..." message
26452 for each compilation.
26453 (Scan_Arg): Recognize new switch -d
26454 When -c and at least one main is specified, set
26455 Unique_Compile to True to guarantee that no other sources will be
26458 2005-06-14 Matthew Heaney <heaney@adacore.com>
26460 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26461 * a-swuwha.ads, a-swuwha.adb: New files
26463 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26464 * a-szuzha.ads, a-szuzha.adb: New files.
26466 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26467 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26468 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26469 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26470 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
26471 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
26472 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
26473 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26474 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26475 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26478 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
26479 Olivier Hainque <hainque@adacore.com>
26480 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26481 Pascal Obry <obry@adacore.com>
26483 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26485 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26486 making a temporary around a procedure call because of non-addressable
26488 (process_freeze_entity): If entity is a private type, capture size
26489 information that may have been computed for the full view.
26490 (tree_transform, case N_Allocator): If have initializing expression,
26491 check type for Has_Constrained_Partial_View and pass that to
26493 (tree_transform, case N_Return_Statement): Pass extra arg to
26496 * decl.c (annotate_value): Remove early return if -gnatR is not
26498 (gnat_to_gnu_field): Don't make a packable type for a component clause
26499 if the position is byte aligned, the field is aliased, and the clause
26500 size isn't a multiple of the packable alignment. It serves no useful
26501 purpose packing-wise and would be rejected later on.
26502 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26505 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26506 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26508 (create_concat_name): Idem.
26510 2005-06-10 Robert Dewar <dewar@adacore.com>
26511 Eric Botcazou <ebotcazou@adacore.com>
26512 Ben Brosgol <brosgol@adacore.com>
26513 Cyrille Comar <comar@adacore.com>
26514 Sergey Rybin <rybin@adacore.com>
26515 Pascal Obry <obry@adacore.com>
26517 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26518 Document second argument (Ada_05) of pragma Obsolescent
26519 Add note that call to subprogram marked with pragma Obsolescent
26520 is now considered to be a violation of program Restrictions
26521 (No_Obsolescent_Features).
26522 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26523 that only machine-dependent attributes are supported.
26526 Commented out menu lines and empty section for gnatclean examples
26528 Fix some over long lines
26529 Clarify and enhance documentation of ADA_PROJECT_PATH.
26530 Rework section 2.11.2(3) about linking with a non-GNU compiler.
26531 Mention new switch -fcallgraph-info.
26532 Mention new switch -fstack-usage.
26533 For gnatpp, replace '-notab' with '-N' and add this option to Index
26534 Corrected VMS example.
26535 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26537 Add documentation for -gnatyu switch (unnecessary blank lines)
26538 Document new switch -U for GNAT PRETTY and GNAT METRIC
26539 Add note about Stdcall being handled as C convention on non Windows OS.
26540 Remove some junk typo in description of gnatbind -S switch
26541 Remove reference to Extensions_Allowed pragma
26542 Document the new order of the directories to be searched (source and
26543 object directories of project files before directories in ADA_*_PATH
26544 environment variables.
26546 * g-trasym.ads: Document that IRIX is supported
26548 2005-06-10 Arnaud Charlet <charlet@adacore.com>
26550 * Makefile.in: Add initialize.o when needed.
26551 Adapt to new VMS package body Symbols and subunits
26552 No specialized version of a-sytaco is needed for VxWorks.
26554 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26555 * a-zchara.ads, a-widcha.ads: New files.
26557 * system-hpux-ia64.ads: New file.
26559 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26560 is imported from the VxWorks kernel.
26562 2005-06-14 Robert Dewar <dewar@adacore.com>
26564 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26565 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26566 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26567 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26568 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26569 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26570 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26571 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26572 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26573 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26574 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26575 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26577 2005-06-14 Thomas Quinot <quinot@adacore.com>
26579 * xeinfo.adb: Fix typo in comment
26581 2005-06-14 Javier Miranda <miranda@adacore.com>
26583 * repinfo.ads: Fix typo in comment
26585 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26587 * s-finimp.adb (Parent_Tag): Delete this imported function (function
26588 Parent_Tag is now in the visible part of Ada.Tags).
26589 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26590 using imported function.
26592 2005-06-14 Bernard Banner <banner@adacore.com>
26594 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26595 also apply for handling support for VxSim 653.
26597 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26599 * xsnames.adb: Add automatic generation of snames.h.
26601 2005-06-14 Thomas Quinot <quinot@adacore.com>
26603 * gen-soccon.c: Add IP_MULTICAST_IF constant
26604 Minor reformatting and adjustments to prevent warnings.
26606 2005-06-14 Pascal Obry <obry@adacore.com>
26608 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26610 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
26612 * trans.c (gnat_gimplify_expr): Call
26613 recompute_tree_invarant_for_addr_expr when we change
26614 the operand of the ADDR_EXPR.
26616 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26618 * misc.c: Don't include errors.h.
26620 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26622 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26624 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
26626 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26628 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26630 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
26633 * Makefile.in: Make TGT_LIB behave correctly.
26635 2005-04-23 DJ Delorie <dj@redhat.com>
26637 * misc.c: Adjust warning() callers.
26639 2005-04-16 Laurent Guerby <laurent@guerby.net>
26642 * a-nudira.adb (Value): Check for valid string.
26643 * a-nuflra.adb (Value): Likewise.
26645 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
26647 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26649 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
26651 * adaint.c, init.c, tracebak.c: Fix comment typos.
26652 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26654 2005-04-07 Laurent Guerby <laurent@guerby.net>
26655 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26657 * Makefile.in: Add make ifeq define for hppa linux tasking support.
26658 * system-hpux.ads: Define Signed_Zeros to be True.
26659 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26661 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
26663 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26664 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26667 2005-03-30 Tom Tromey <tromey@redhat.com>
26669 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26671 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26673 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26675 2005-03-29 Robert Dewar <dewar@adacore.com>
26677 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26678 fixed-point expression has value that is not a multiple of the Small
26681 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26683 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26686 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26688 2005-03-29 Vincent Celier <celier@adacore.com>
26690 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26691 (Build_Dynamic_Library.Version_String): Return the empty string when
26692 Lib_Version is empty or when the symbol policy is not Autonomous.
26694 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26695 a symbol is not in the reference symbol file, increase the Major ID
26696 and set the Minor ID to 0.
26697 Use gsmatch=lequal instead of gsmatch=equal
26699 2005-03-29 Doug Rupp <rupp@adacore.com>
26701 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26702 name and translate.
26704 2005-03-29 Javier Miranda <miranda@adacore.com>
26706 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26707 (Inherit_DT): The first formal has been redefined as a Tag.
26708 This allows us the removal of the subprogram Get_TSD.
26709 (TSD): Replace the call to Get_TSD by the actual code.
26711 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26712 (Make_DT): Upgrade the call to Inherit_TSD according to the
26713 new interface: the first formal is now a Tag.
26715 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26716 redefined as a Tag.
26717 This change allows us to remove the subprogram Get_TSD.
26718 (CPP_Get_TSD): Subprogram removed.
26719 (TSD): Replace the call to CPP_Get_TSD by the actual code.
26721 * rtsfind.ads: Remove support to call the run-time
26724 2005-03-29 Robert Dewar <dewar@adacore.com>
26726 * errutil.adb, errout.adb:
26727 Minor comment updates on Line_Terminator references
26729 * par-ch10.adb: Add ??? comment about line terminator
26731 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26732 (check dos line terminator).
26733 (Check_Line_Max_Length): New procedure, split off from the existing
26734 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26735 be properly recognized.
26737 * styleg.adb: Add ??? comment for line terminator reference
26739 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26740 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26742 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26743 (check dos line terminator).
26744 (Check_Line_Max_Length): New procedure, split off from the existing
26745 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26746 be properly recognized.
26748 * stylesw.ads, stylesw.adb:
26749 Add handling for new -gnatyd switch (check dos line terminator)
26751 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26752 Recognize -gnatwb/-gnatwB switches
26753 Include Warn_On_Bad_Fixed_Value for -gnatg
26756 Add line for new -gnatyd switch (check dos line terminator)
26758 * usage.adb: Add lines for -gnatwb/-gnatwB
26760 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26762 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26764 * gnat_ugn.texi: Fix overlong lines
26765 Document new -gnatyd switch
26766 Document new -gnatwb/-gnatwB switches
26768 2005-03-29 Ed Schonberg <schonberg@adacore.com>
26770 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26771 order to retrieve the component list of the type, before examining
26772 individual components.
26774 * sem_type.adb (Covers): Types are compatible if one is the base type
26775 of the other, even though their base types might differ when private
26776 views are involved.
26778 2005-03-29 Thomas Quinot <quinot@adacore.com>
26780 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26781 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
26782 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
26783 analyzed if expansion is disabled (which could otherwise cause spurious
26784 error messages if expansion has been disabled due to previous
26785 (unrelated) errors).
26787 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
26788 is disabled, the entity denoted by the argument is the access type
26789 itself, not an underlying record type, so there is no need to go back
26790 to the Corresponding_Remote_Type.
26792 2005-03-29 Gary Dismukes <dismukes@adacore.com>
26793 Robert Dewar <dewar@adacore.com>
26795 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
26796 expand a call to an instance of
26797 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
26798 Constructor actual of the instance. A class-wide membership
26799 check is also generated, to ensure that the tag passed to the instance
26800 denotes a type in the class.
26801 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
26802 of Name_Generic_Dispatching_Constructor.
26804 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
26805 05 unit for AI-260-02).
26807 * a-tgdico.ads: New file.
26809 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
26810 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
26812 * snames.ads, snames.adb (Preset_Names): Add entry for
26813 Generic_Dispatching_Constructor.
26816 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
26817 character type cases.
26818 (Analyze_Subprogram_Renaming): Add special handling for
26819 the case of renaming of stream attributes when the renaming denotes a
26820 generic formal subprogram association for an abstract formal subprogram.
26821 Check that the attribute is a primitive stream attribute (and not
26822 a class-wide stream attribute) and then rewrite the attribute name
26823 as the name of the appropriate compiler-generated stream primitive.
26825 2005-03-29 Robert Dewar <dewar@adacore.com>
26827 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
26829 (Is_Possibly_Unaligned_Object): Correct typo that
26830 resulted in inaccurate result for unaligned scalars within records.
26832 2005-03-29 Ed Schonberg <schonberg@adacore.com>
26834 * freeze.adb (Freeze_Record_Type): If the type of the component is an
26835 itype whose parent is controlled and not yet frozen, do not create a
26836 freeze node for the itype if expansion is disabled.
26838 2005-03-29 Vincent Celier <celier@adacore.com>
26840 * make.adb (Gnatmake): Don't fail if the main project file is declared
26841 as having no Ada sources. Do not display message "no sources to
26842 compile" in quiet output.
26844 2005-03-29 Doug Rupp <rupp@adacore.com>
26846 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
26849 2005-03-29 Robert Dewar <dewar@adacore.com>
26851 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
26854 2005-03-29 Robert Dewar <dewar@adacore.com>
26856 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
26857 missing TYPE Improve the error message generated when compiling a
26858 limited interface in Ada83 or Ada95 mode.
26860 2005-03-29 Robert Dewar <dewar@adacore.com>
26862 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
26863 rather than proceed ahead using a junk attribute name.
26865 2005-03-29 Vincent Celier <celier@adacore.com>
26867 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
26869 * prj-part.adb (Parse_Single_Project): Set the location of a project
26870 on its defining identifier, rather than on the reserved word "project".
26872 * prj-proc.adb (Expression): Adapt to the fact that default of external
26873 references may be string expressions, not always literal strings.
26874 (Recursive_Process): Set Display_Name equal to Name
26875 when Location is No_Location, that is when there is no actual file.
26876 Get the Display_Name of the project from the source, when it is not a
26878 (Process): Use the Display_Name in error messages
26880 * prj-strt.adb (External_Reference): Allow default to be string
26881 expressions, not only literal strings.
26883 2005-03-29 Vincent Celier <celier@adacore.com>
26885 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
26886 file and the reference symbol file to be the same file.
26888 2005-03-29 Thomas Quinot <quinot@adacore.com>
26890 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
26891 forbid conversion of a local access-to-subprogram type to a remote one.
26893 * sem_util.adb (Wrong_Type): For a record type that is the expanded
26894 equivalent type for a remote access-to-subprogram type, go back to the
26895 original RAS entity when displaying an error message, so the casing is
26896 the original source casing.
26898 2005-03-29 Robert Dewar <dewar@adacore.com>
26900 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
26903 2005-03-29 Ed Schonberg <schonberg@adacore.com>
26905 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
26906 subtype if code is being pre-analyzed, to prevent un-expanded
26907 references to protected formals, among others.
26908 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
26909 interpretation that can be a call, include the result of the call as a
26910 possible interpretation of the dereference.
26912 * sem_ch5.adb (Process_Bounds): Determine type of range by
26913 pre-analyzing a copy of the original range, and then analyze the range
26914 with the expected type.
26916 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
26917 with an overloaded prefix where not all interpretations yield an
26918 access to subprogram, do not rewrite node as a call.
26919 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
26920 the node as a call once the context identifies the interpretation of
26921 the prefix whose call yields the context type.
26922 (Valid_Conversion): For the case of a conversion between
26923 local access-to-subprogram types, check subtype conformance using
26924 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
26925 detailed error message.
26927 2005-03-29 Ed Schonberg <schonberg@adacore.com>
26929 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
26930 indicator, indicate that the formal can never be null.
26931 (Process_Formals): If a formal has a non_null indicator, insert the
26932 resulting subtype immediately before the enclosing subprogram decl,
26933 and not at the beginning of the corresponding declarative part, to
26934 prevent access before elaboration (Ada2005).
26936 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26939 * utils.c (finish_record_type): Use variable_size when setting sizes.
26941 2005-03-29 Robert Dewar <dewar@adacore.com>
26943 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
26944 guarantee Unix style line terminators for the output files, even when
26945 running on windows.
26947 2005-03-29 Robert Dewar <dewar@adacore.com>
26949 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
26950 buffer if an exception is raised.
26952 2005-03-29 Ed Falis <falis@adacore.com>
26954 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
26957 2005-03-29 Robert Dewar <dewar@adacore.com>
26959 * sem_util.ads: Minor reformatting
26960 * gnat_rm.texi: Minor editing.
26962 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
26964 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
26965 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
26967 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26969 * adaint.c (__gnat_portable_spawn): Adjust cast.
26971 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
26973 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
26975 2005-03-17 Pascal Obry <obry@adacore.com>
26977 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
26980 * expect.c (__gnat_waitpid): Moved here from adaint.c.
26981 Reimplement under Win32 using Win32 API.
26983 (__gnat_kill) [Win32]: Properly close the process handle before leaving
26986 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
26988 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
26989 (DECL_RENAMED_OBJECT): New accessor macro.
26990 (SET_DECL_RENAMED_OBJECT): New setter macro.
26992 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
26993 object in all cases. Attach the renamed object to the VAR_DECL.
26994 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
26995 field is not prescribed.
26997 * misc.c (gnat_handle_option): Handle -gnatO separately.
26998 (gnat_print_decl) <VAR_DECL>: New case.
26999 Print the DECL_RENAMED_OBJECT node.
27001 * lang.opt: Declare separate -gnatO option.
27003 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27004 pointer, replace it with the renamed object.
27005 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27006 pointer type if the source is not a fat pointer type whose underlying
27007 array has the same non-zero alias set as that of the destination array.
27009 2005-03-17 Javier Miranda <miranda@adacore.com>
27011 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27012 (Get_Inheritance_Depth): Removed.
27013 (Set_Inheritance_Depth): Removed.
27015 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27016 subprogram Get_Expanded_Name because it is not referenced by the
27019 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27020 (CPP_Get_Inheritance_Depth): Removed.
27021 (CPP_Set_Inheritance_Depth): Removed.
27023 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27025 2005-03-17 Robert Dewar <dewar@adacore.com>
27027 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27028 3, since we now expect GCC 3 to do all the work.
27030 2005-03-17 Javier Miranda <miranda@adacore.com>
27032 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27033 of one barrier to avoid wrong usage of this attribute.
27035 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27036 First_Private_Entity.
27038 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27039 the subprogram against wrong usage.
27040 Adapt the code to traverse the entities in the
27041 scope of a record_type because in addition to its usage regarding
27042 packages, this subprogram is also called by Expand_N_Freeze_Entity
27043 to install the visible declarations of the enclosing scope of a
27044 record_type_with_private to establish the proper visibility before
27045 freezing the entity and related subprograms.
27047 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27049 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27052 2005-03-17 Thomas Quinot <quinot@adacore.com>
27054 * exp_ch3.adb (Check_Attr): New subprogram.
27055 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27056 into a new Check_Attr subprogram, in order to provide a more
27057 explanatory error message (including the name of the missing attribute).
27058 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27059 subprogram determines whether a default implementation exists for a
27060 given stream attribute.
27061 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27062 Determine whether to generate a default implementation for each stream
27063 attribute separately, as this depends on the specific attribute.
27065 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27066 limited extension where a stream attribute is missing for a limited
27067 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27068 generate a bogus reference to the missing attribute to prevent
27069 cascaded errors. Instead, generate a null statement.
27071 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27072 available for a limited type if it has been specified for an ancestor
27075 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27077 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27078 entity is an operator.
27080 2005-03-17 Thomas Quinot <quinot@adacore.com>
27082 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27083 spec, to make this predicate available to other units.
27085 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27088 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27089 when no distribution runtime library is available.
27091 * sem_res.adb, sem_dist.adb: Disable expansion of remote
27092 access-to-subprogram types when no distribution runtime library is
27094 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27095 predicate available to other units.
27097 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27098 spec, to make this predicate available to other units.
27100 2005-03-17 Vincent Celier <celier@adacore.com>
27102 * make.adb (Insert_Project_Sources): Make sure the Q is always
27105 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27106 the default for the tree, not the global default naming.
27108 * prj-proc.adb (Recursive_Process): No need to put the default naming
27109 in the project data, it's already there.
27111 2005-03-17 Doug Rupp <rupp@adacore.com>
27113 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27115 * 5xcrtl.ads: Renamed to...
27116 * s-crtl-vms64.ads: ...this new file
27118 2005-03-17 Robert Dewar <dewar@adacore.com>
27121 * namet.adb (Copy_One_Character): Set proper wide character encoding
27122 for upper half character if we have upper half encoding.
27124 2005-03-17 Robert Dewar <dewar@adacore.com>
27126 * par.adb (Par): Improved msg for attempt to recompile predefined unit
27128 2005-03-17 Thomas Quinot <quinot@adacore.com>
27130 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27131 tagged limited type, the TSS is a newly built renaming declaration:
27132 insert it using Set_TSS, not Copy_TSS.
27134 2005-03-17 Javier Miranda <miranda@adacore.com>
27136 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27137 Try_Object_Operation): Analyze the object that is accessible
27138 through the prefix of the subprogram call before we apply
27139 the transformation of the object-operation notation.
27141 2005-03-17 Jose Ruiz <ruiz@adacore.com>
27143 * s-taprob.adb (Initialize_Protection): Initialize the protected
27144 object's owner to Null_Task.
27145 (Lock): If pragma Detect_Blocking is in effect and the caller of this
27146 procedure is already the protected object's owner then Program_Error
27147 is raised. In addition the protected object's owner is updated.
27148 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27149 of this procedure is already the protected object's owner then
27150 Program_Error is raised.
27151 In addition the protected object's owner is updated.
27152 (Unlock): Remove the ownership of the protected object.
27154 * s-taprob.ads (Protection): Add the field Owner, used to store the
27155 protected object's owner.
27156 This component is needed for detecting one type of potentially blocking
27157 operations (external calls on a protected subprogram with the same
27158 target object as that of the protected action). Document the rest of
27161 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27162 Initialize the protected object's owner to Null_Task.
27163 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27164 caller of this procedure is already the protected object's owner then
27165 Program_Error is raised.
27166 Do not raise Program_Error when this procedure is called from a
27168 (Unlock_Entries): Remove the ownership of the protected object.
27169 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27170 of this procedure is already the protected object's owner then
27171 Program_Error is raised.
27172 Do not raise Program_Error when this procedure is called from
27173 a protected action.
27175 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27176 used to store the protected object's owner.
27178 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27179 effect and this procedure (a potentially blocking operation) is called
27180 from whithin a protected action, Program_Error is raised.
27181 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27182 and this procedure (a potentially blocking operation) is called from
27183 whithin a protected action, Program_Error is raised.
27185 2005-03-17 Vincent Celier <celier@adacore.com>
27186 Nicolas Setton <setton@adacore.com>
27188 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27189 switch, not supported by the linker on Darwin. Add '_' before
27190 <library>init, as this character is added unconditionally by the
27192 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27193 correct one ".dylib". This fixes detection of the archive files when
27194 building library projects.
27196 2005-03-17 Vincent Celier <celier@adacore.com>
27198 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27199 -gnat83, -gnat95 and -gnat05.
27201 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
27203 * gnat_ugn.texi: Document gnatmem restriction
27205 2005-03-17 Thomas Quinot <quinot@adacore.com>
27207 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27210 2005-03-17 Robert Dewar <dewar@adacore.com>
27212 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27213 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27214 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27216 * casing.adb: Comment improvements
27218 2005-03-17 Pascal Obry <obry@adacore.com>
27220 * g-expect.adb: Minor reformatting.
27222 2005-03-15 Zack Weinberg <zack@codesourcery.com>
27224 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27225 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27228 2005-03-15 Vincent Celier <celier@adacore.com>
27230 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27231 Add new parameter In_Tree to specify the project tree: needed
27232 by the project manager. Adapt to changes in project manager
27233 using new parameter In_Tree.
27235 2005-03-15 Jakub Jelinek <jakub@redhat.com>
27237 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27238 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27239 ada/bldtools to avoid make -jN failures.
27241 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27243 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27244 to NULL_TREE on entry.
27246 2005-03-15 Robert Dewar <dewar@adacore.com>
27248 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27249 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27250 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27251 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27252 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27253 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27254 system-interix.ads, system-solaris-sparc.ads,
27255 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27256 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27257 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27258 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27259 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27260 Compiler_System_Version to be False.
27262 * opt.ads: Add new flag Opt.Address_Is_Private
27264 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27265 Add new parameter Compiler_System_Version to avoid checking for
27266 completeness of parameters when compiler is compiling itself.
27267 Allows old versions of GNAT to be compiled with new compiler.
27269 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27271 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27272 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27274 (Stack_Base_Available): New flag.
27275 (Get_Page_Size): New overloaded functions imported from C.
27276 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27277 PROT_ON, PROT_OFF): New constants.
27278 (mprotect): New function imported from C.
27279 (pthread_teb_t): New record type.
27281 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27282 (Create_Task): Account for the Yellow Zone and the guard page.
27284 2005-03-15 Vincent Celier <celier@adacore.com>
27286 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27287 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27288 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27289 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27290 Library_File_Name_For): Add new parameter In_Tree
27291 to specify the project tree: needed by the project manager.
27292 Adapt to changes in project manager using new parameter In_Tree.
27293 Remove local imports, use functions in System.CRTL.
27295 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27296 to use the project manager.
27298 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27299 In_Tree to designate the project tree. Adapt to changes in the project
27300 manager, using In_Tree.
27302 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27303 Copy_Interface_Sources): Add new parameter In_Tree to specify the
27304 project tree: needed by the project manager.
27305 (Build_Library): Check that Arg'Length >= 6 before checking if it
27306 contains "--RTS=...".
27308 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27309 Library_File_Name_For): Add new parameter In_Tree to specify the
27310 project tree: needed by the project manager.
27312 * prj.ads, prj.adb: Major modifications to allow several project trees
27313 in memory at the same time.
27314 Change tables to dynamic tables and hash tables to dynamic hash
27315 tables. Move tables and hash tables from Prj.Com (in the visible part)
27316 and Prj.Env (in the private part). Move some constants from the visible
27317 part to the private part. Make other constants deferred.
27318 (Project_Empty): Make it a variable, not a function
27319 (Empty_Project): Add parameter Tree. Returns the data with the default
27320 naming data of the project tree Tree.
27321 (Initialize): After updating Std_Naming_Data, copy its value to the
27322 component Naming of Project Empty.
27323 (Register_Default_Naming_Scheme): Use and update the default naming
27324 component of the project tree, instead of the global variable
27326 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27327 Tree is not defaulted, return the default naming data of the Tree.
27328 (Initial_Buffer_Size): Constant moved from private part
27329 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27330 variables initialized in procedure Initialize.
27331 (Add_To_Buffer): Add two in out parameters to replace global variables
27332 Buffer and Buffer_Last.
27333 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27335 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27337 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27338 for the project tree.
27339 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27340 constant at the beginning of the package spec, so that they cane be used
27341 in subprograms before their full declarations.
27342 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27343 (Empty_Project): Add parameter of type Project_Node_Ref
27344 (Private_Project_Tree_Data): Add component Default_Naming of type
27346 (Buffer, Buffer_Last): remove global variables
27347 (Add_To_Buffer): Add two in out parameters to replace global variables
27348 Buffer and Buffer_Last.
27349 (Current_Packages_To_Check): Remove global variable
27350 (Empty_Name): Move to private part
27351 (No-Symbols): Make it a constant
27352 (Private_Project_Tree_Data): New type for the private part of the
27354 (Project_Tree_Data): New type for the data of a project tree
27355 (Project_Tree_Ref): New type to designate a project tree
27356 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27357 for the project tree.
27359 * prj-attr.ads: Add with Table; needed, as package Prj no longer
27360 imports package Table.
27362 * prj-com.adb: Remove empty, no longer needed body
27364 * prj-com.ads: Move most of the content of this package to package Prj.
27366 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27367 designate the project node tree and Packages_To_Check to replace
27368 global variable Current_Packages_To_Check.
27369 Add new parameters In_Tree and Packages_To_Check to local subprograms,
27370 when needed. Adapt to changes in project manager with project node tree
27373 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27374 project tree to most subprograms. Move tables and hash tables to
27375 private part of package Prj.
27376 Adapt to changes in project manager using project tree In_Tree.
27378 * prj-makr.adb (Tree): New constant to designate the project node tree
27379 Adapt to change in project manager using project node tree Tree
27381 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27382 display the Library_Src_Dir and the Library_Dir.
27383 Add new parameter In_Tree to designate the project node tree to most
27384 subprograms. Adapt to changes in the project manager, using project tree
27386 (Check_Naming_Scheme): Do not alter the casing on platforms where
27387 the casing of file names is not significant.
27388 (Check): Add new parameter In_Tree to designate the
27390 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27391 designate the project tree.
27392 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27394 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27395 to replace those that were in the private part of package Prj.
27396 Add new parameter In__Tree to designate the project node tree to most
27397 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27398 (Post_Parse_Context_Clause): When specifying the project node of a with
27399 clause, indicate that it is a limited with only if there is "limited"
27400 in the with clause, not necessarily when In_Limited is True.
27401 (Parse): Add new parameter In_Tree to designate the project node tree
27403 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27404 designate the project node tree. Adapt to change in Prj.Tree with
27405 project node tree In_Tree.
27407 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27408 tree In_Tree in the call to function Empty_Process to give its initial
27409 value to the project data Processed_Data.
27410 Add new parameters In_Tree to designate the project tree and
27411 From_Project_Node_Tree to designate the project node tree to several
27412 subprograms. Adapt to change in project manager with project tree
27413 In_Tree and project node tree From_Project_Node_Tree.
27415 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27416 to replace those that were in the private part of package Prj.
27417 Add new parameter In_Tree to designate the project node tree to most
27418 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27420 * prj-tree.ads, prj-tree.adb: Add new parameter of type
27421 Project_Node_Tree_Ref to most subprograms.
27422 Use this new parameter to store project nodes in the designated project
27424 (Project_Node_Tree_Ref): New type to designate a project node tree
27425 (Tree_Private_Part): Change table to dynamic table and hash tables to
27426 dynamic hash tables.
27428 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27429 the project tree to most subprograms. Adapt to changes in project
27430 manager using project tree In_Tree.
27432 * makegpr.adb (Project_Tree): New constant needed to use project
27435 2005-03-15 Olivier Hainque <hainque@adacore.com>
27437 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27438 for sigactions with SA_SIGINFO set. Call
27439 __gnat_adjust_context_for_raise before raising, to perform the
27440 potentially required adjustments to the machine context for the GCC
27443 * raise.h (__gnat_adjust_context_for_raise): New prototype.
27445 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27446 Adjust PC by one in the provided machine context.
27447 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27448 so that the handler is passed the context structure to adjust prior to
27450 (__gnat_error_handler) HPUX: Adjust the signature to match what an
27451 SA_SIGINFO sigaction should look like. Call
27452 __gnat_adjust_context_for_raise before actually raising.
27453 (__gnat_adjust_context_for_raise): Default noop to help PC
27454 adjustments before raise from signal handlers.
27455 (__gnat_error_handler): Indirectly call a predicate function to
27456 determine if a condition should be resignaled or not.
27457 (__gnat_set_resignal_predicate): User interface to modify the predicate.
27458 (__gnat_default_resignal_p): Default GNAT predicate.
27460 2005-03-15 Doug Rupp <rupp@adacore.com>
27462 * adaint.c: Prefix #include of VMS system header files with vms/
27463 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27464 Do not define a dummy function "convert_addresses" under Darwin,
27467 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27470 2005-03-15 Nicolas Setton <setton@adacore.com>
27472 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27475 2005-03-15 Robert Dewar <dewar@adacore.com>
27477 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27480 * a-retide.ads: Minor comment changes
27482 2005-03-15 Robert Dewar <dewar@adacore.com>
27484 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27485 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27486 Realloc_For_Chunk to private part of package.
27487 New subprograms for AI-301
27489 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27490 Get_Line procedure.
27491 Avoid unnecessary use of Get/Set_Wide_String
27493 2005-03-15 Robert Dewar <dewar@adacore.com>
27496 * a-stunau.ads, a-stunau.adb:
27497 Change interface to allow efficient (and correct) implementation
27498 The previous changes to allow extra space in unbounded strings had
27499 left this interface a bit broken.
27501 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27503 * g-spipat.ads, g-spipat.adb: New interface for Get_String
27504 Minor reformatting (function specs)
27506 * g-spitbo.adb: New interface for Get_String
27508 * g-spitbo.ads: Minor reformatting
27510 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27512 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27514 2005-03-15 Javier Miranda <miranda@adacore.com>
27515 Robert Dewar <dewar@adacore.com>
27516 Thomas Quinot <quinot@adacore.com>
27517 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27519 * atree.ads, atree.adb: Add support for Elist24 field
27521 * atree.h: Fix wrong definition of Field27
27522 Add support for Elist16 field
27523 Add support for Elist24 field
27525 * einfo.ads, einfo.adb (Abstract_Interfaces,
27526 Set_Abstract_Interfaces): New subprograms.
27527 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27529 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27530 entities rather than a single node.
27531 (Is_Interface, Set_Is_Interface): New subprogram
27532 (First_Tag_Component): New syntesized attribute
27533 (Next_Tag_Component): New synthesized attribute
27534 (Write_Entity_Flags): Upgraded to write Is_Interface
27535 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27536 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27537 (Task_Body_Procedure): New subprogram to read this attribute.
27538 (Set_Task_Body_Procedure): New subprogram to set this attribute.
27539 (Has_Controlled_Component): Now applies to all entities.
27540 This is only a documentation change, since it always worked to apply
27541 this to other than composite types (yielding false), but now this is
27543 Update documentation on Must_Be_Byte_Aligned for new spec
27545 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27546 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27547 uses of the Access_Disp_Table attribute to reference the first dispatch
27548 table associated with a tagged type. As
27549 part of the implementation of abstract interface types,
27550 Access_Disp_Table has been redefined to contain a list of dispatch
27551 tables (rather than a single dispatch table).
27552 Similarly, upgrade all the references to Tag_Component by the
27553 new attribute First_Tag_Component.
27554 (Find_Inherited_TSS): Moved to exp_tss.
27555 Clean up test in Expand_N_Object_Declaration for cases
27556 where we need to do a separate assignment of the initial value.
27557 (Expand_N_Object_Declaration): If the expression in the
27558 declaration of a tagged type is an aggregate, no need to generate an
27559 additional tag assignment.
27560 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27562 Bit packed array ops are only called if operands are known to be
27564 (Component_Equality): When returning an N_Raise_Program_Error statement,
27565 ensure that its Etype is set to Empty to avoid confusing GIGI (which
27566 expects that only expressions have a bona fide type).
27567 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27568 determine the amount of data to be copied.
27570 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27571 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27572 INTERFACE_TYPE_DEFINITION ::=
27573 [limited | task | protected | synchronized] interface
27574 [AND interface_list]
27576 * par-ch3.adb (P_Type_Declaration): Modified to give support to
27578 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27580 (P_Interface_Type_Definition): New subprogram that parses the new
27581 syntax rule of Ada 2005 interfaces
27582 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27583 messages by the correct RENAMES (quotes removed).
27585 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27586 attribute First_Tag_Component.
27588 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27589 (Interface_List, Set_Interface_List): New subprograms.
27590 (Interface_Present, Set_Interface_Present): New subprograms.
27591 (Limited_Present, Set_Limited_Present): Available also in derived
27592 type definition nodes.
27593 (Protected_Present, Set_Protected_Present): Available also in
27594 record type definition and
27595 derived type definition nodes.
27596 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27597 (Task_Present, Set_Task_Present): New subprogram.
27598 (Task_Body_Procedure): Removed.
27599 (Set_Task_Body_Procedure): Removed.
27600 These subprogram have been removed because the attribute
27601 Task_Body_Procedure has been moved to the corresponding task type
27602 or task subtype entity to leave a field free to store the list
27603 of interfaces implemented by a task (for AI-345)
27604 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27605 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27606 expression flag Do_Range_Check
27607 (Exception_Junk): Change to Flag7 to accomodate above change
27608 (Box_Present, Default_Name, Specification, Set_Box_Present,
27609 Set_Default_Name, Set_Specification): Expand the expression
27610 "X in N_Formal_Subprogram_Declaration" into the corresponding
27611 two comparisons. Required to use the csinfo tool.
27613 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27614 "with string" given.
27616 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27619 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27622 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27623 attribute Task_Body_Procedure rather than the old semantic field that
27624 was available in the task_type_declaration node.
27626 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27627 interface type definitions.
27628 (P_Formal_Derived_Type_Definition): Modified to handle the list of
27631 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27632 task type declaration.
27633 (P_Protected): Modified to handle the list of interfaces in a
27634 protected type declaration.
27636 2005-03-15 Doug Rupp <rupp@adacore.com>
27637 Vincent Celier <celier@adacore.com>
27639 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27640 (Gen_Output_File_C): Likewise.
27641 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27643 2005-03-15 Thomas Quinot <quinot@adacore.com>
27645 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27646 is an N_Raise_Constraint_Error node, create a new copy of it without
27647 going through a call to Duplicate_Subexpr.
27649 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27650 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27651 Nicolas Setton <setton@adacore.com>
27652 Ed Schonberg <schonberg@adacore.com>
27658 * decl.c (gnat_to_gnu_field): Reject aliased components with a
27659 representation clause that prescribes a size not equal to the rounded
27660 size of their types.
27661 (gnat_to_gnu_entity, case E_Component): Always look at
27662 Original_Record_Component if Present and not the entity.
27663 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27664 of tagged extension types by not making field for components that are
27666 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27667 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27668 expression to the type of the object when the object is constant.
27669 Reverse defer_debug_incomplete_list before traversing it, so that trees
27670 are processed in the order at which they were added to the list. This
27671 order is important when using the stabs debug format.
27672 If we are deferring the output of debug information, also defer this
27673 output for a function return type.
27674 When adding fields to a record, prevent emitting debug information
27675 for incomplete records, emit the information only when the record is
27677 (components_to_record): New parameter defer_debug.
27678 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27679 (gnat_to_gnu_field_decl): New function.
27680 (substitution_list, annotate_rep): Call it.
27681 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27682 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27683 No longer update discriminants to not be a COMPONENT_REF.
27684 (copy_alias_set): Strip padding from input type; also handle
27685 unconstrained arrays properly.
27687 * gigi.h (write_record_type_debug_info): New function.
27688 Convert to use ANSI-style prototypes. Remove unused
27689 declarations for emit_stack_check, elab_all_gnat and
27690 set_second_error_entity.
27691 (gnat_to_gnu_field_decl): New decl.
27693 * utils.c (write_record_type_debug_info): New function.
27694 (finish_record_type): Delegate generation of debug information to
27695 write_record_type_debug_info.
27696 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27697 (update_pointer_to): Fix pasto.
27698 (convert) <UNION_TYPE>: Accept slight type variations when
27699 converting to an unchecked union type.
27701 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27702 replace the N_Freeze_Entity with a null statement.
27704 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27705 within a constrained subcomponent of an enclosing record, place the
27706 freeze nodes in the scope stack entry for the enclosing record.
27707 (Undelay_Type): New Subprogram.
27708 (Set_Small_Size): Pass T, the type to modify; all callers changed.
27709 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27710 within records; allow them to have freeze nodes if their base types
27713 * exp_util.adb (Remove_Side_Effects): Properly test for
27714 Expansion_Delayed and handle case when it's inside an
27715 N_Qualified_Expression.
27717 * sem_ch3.adb (Derived_Type_Declaration): New predicate
27718 Comes_From_Generic, to recognize accurately that the parent type in a
27719 derived type declaration can be traced back to a formal type, because
27720 it is one or is derived from one, or because its completion is derived
27722 (Constrain_Component_Type): If component comes from source and has no
27723 explicit constraint, no need to constrain in in a subtype of the
27725 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27726 Minor change to propagate Is_Ada_2005 flag
27728 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27729 Expansion_Delayed is False.
27730 (assoc_to_constructor): Ignore fields that have a
27731 Corresponding_Discriminant.
27732 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27733 function returns "by target", dereference the target pointer using the
27734 type of the actual return value.
27735 <all>: Be prepared for a null gnu_result.
27736 (processed_inline_subprograms): Check flag_really_no_inline
27737 instead of flag_no_inline.
27738 (set_second_error_entity): Remove unused function.
27739 (gnat_to_gnu, case N_Selected_Component): Call
27740 gnat_to_gnu_field_decl.
27741 (assoc_to_constructor): Likewise.
27743 2005-03-15 Robert Dewar <dewar@adacore.com>
27744 Ed Schonberg <schonberg@adacore.com>
27745 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27747 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27748 Must_Be_Byte_Aligned for cases where we do not need to use a
27749 System.Pack_nn unit.
27751 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27753 Needed now that we do some processing for IN parameters as well. This
27754 may well fix some unrelated errors.
27755 (Expand_Call): Handle case of unaligned objects (in particular those
27756 that come from packed arrays).
27757 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27758 renamed entity is an inherited operation, re-expand the call using the
27759 original operation, which is the one to call.
27760 Detect attempt to inline parameterless recursive subprogram.
27761 (Represented_As_Scalar): Fix to work properly with private types
27762 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27763 accurate estimate. Yields True in far fewer cases than before,
27764 improving the quality of code that depends on this test.
27766 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27767 over both visible and private declarations to remove them from tree,
27768 and mark subprograms declared in package as eliminated, to prevent
27769 spurious use in subsequent compilation of generic units in the context.
27771 * exp_util.ads: Minor cleanup in variable names
27773 * sem_eval.ads, sem_eval.adb: Minor reformatting
27774 (Compile_Time_Known_Bounds): New function
27776 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27778 * exp_ch7.adb (Convert_View): Use base types of underlying types when
27779 determining whether an unchecked conversion is needed for the argument
27780 of an initialization call.
27782 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27784 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
27785 that appears in the instantiation rather than the internal subtype
27786 generated in the wrapper package, to avoid anomalies in gigi when the
27787 target is derived from a private type whose full view is an access type.
27789 2005-03-15 Robert Dewar <dewar@adacore.com>
27791 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
27793 Add documentation to replace the use of this flag
27794 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
27797 2005-03-15 Thomas Quinot <quinot@adacore.com>
27799 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
27800 here from exp_attr so it can be shared between exp_attr and exp_dist.
27801 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
27802 all TSS names, not a subset thereof, and the previous name introduced
27803 an unnecessarily confusion that a distinction might exist between
27804 "OK" TSS names and some "not OK" TSS names.
27806 2005-03-15 Doug Rupp <rupp@adacore.com>
27808 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
27811 2005-03-15 Pascal Obry <obry@adacore.com>
27812 Eric Botcazou <ebotcazou@adacore.com>
27816 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
27817 when IN_RTS. This is to work around a bootstrap path problem.
27819 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
27820 table and pass it to __gnat_install_SEH_handler().
27821 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
27823 * lang.opt: Fix specification of -fRTS=.
27825 2005-03-15 Doug Rupp <rupp@adacore.com>
27826 Bernard Banner <banner@adacore.com>
27827 Vincent Celier <celier@adacore.com>
27828 Arnaud Charlet <charlet@adacore.com>
27831 This change works fine when gnatlib is built from the gcc directory,
27832 but does not work when using the libada Makefile, since GCC_FOR_TARGET
27833 is not passed to ada/Makefile.in, so more work is needed by a
27834 Makefile/configure expert.
27836 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
27837 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
27838 Setup gnatlink switch -M for x86_64 linux, as it is already setup
27840 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
27841 Run ranlib on libgccprefix.a
27842 Define PREFIX_OBJS for Darwin, to build libgccprefix.
27843 (ADA_INCLUDE_SRCS): Split Ada packages.
27845 2005-03-15 Robert Dewar <dewar@adacore.com>
27847 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
27849 * impunit.adb: Add GNAT.UTF_32
27851 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
27853 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
27854 now uses GNAT.UTF_32).
27856 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
27857 capabilities for categorizing characters using Unicode categories
27859 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27861 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
27862 instantiation that has been rewritten as a package body, retrieve spec
27863 to generate proper name for implicit_with_clause.
27864 (Install_Parents): Recognize a parent that is an instantiation but has
27865 been rewritten as a package declaration during analysis.
27867 2005-03-15 Javier Miranda <miranda@adacore.com>
27868 Ed Schonberg <schonberg@adacore.com>
27870 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
27871 parameter reported some error we immediately return. This improves the
27872 behaviour of the frontend in case of errors.
27873 (Install_Parent, Remove_Parent): Introduce new flag
27874 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
27875 ancestor of a generic child unit, when the child is being instantiated.
27876 (Inline_Instance_Body): If we are compiling the private
27877 part or the body of a child unit, restore the proper visibility of the
27878 parents after compiling the instance body.
27880 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27881 Javier Miranda <miranda@adacore.com>
27884 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
27885 of a private type, in which case it is underlying_type that denotes
27886 the proper task. Also modified to use the new entity attribute
27887 that is directly available in the task type and task subtype entities
27888 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
27889 arrays when other dimensions than the first are constrained by
27890 discriminants of an enclosing record.
27891 (Insert_Explicit_Dereference): If the prefix is an indexed component or
27892 a combination of indexed and selected components, find ultimate entity
27893 and generate the appropriate reference for it, to suppress spurious
27895 (Note_Possible_Modification): If an entity name has no entity, return.
27896 (Is_Variable): A function call never denotes a variable.
27897 (Requires_Transient_Scope): For record types, recurse only on
27898 components, not on internal subtypes that may have been generated for
27899 constrained components.
27901 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27903 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
27904 Eliminated as candidates for resolution. Both efficient, and avoids
27905 anomalies with operators declared in deleted code.
27906 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
27907 expansion is disabled (as when compiling a generic) to prevent spurious
27908 warnings on prefixes of selected components.
27910 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27912 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
27913 attached to a list before checking whether it appears in the private
27914 declarations of the current package.
27915 (Make_Inequality_Operator): Insert declaration in proper declarative
27916 list rather than just setting the Parent field, so that
27917 Is_Private_Declaration can handle it properly.
27919 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27921 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
27922 a renaming a body, check that the renamed subprogram in not intrinsic.
27923 (Find_Direct_Name): If several use_visible entities hide
27924 each other, and the context is a predefined file compiled through
27925 rtsfind, keep only the entity that comes from a predefined file.
27927 2005-03-15 Geert Bosch <bosch@adacore.com>
27929 * s-fatgen.adb (Valid): Extend special exceptions to account for long
27930 long float padding to also cover AMD64 and IA64.
27932 2005-03-15 Gary Dismukes <dismukes@adacore.com>
27934 * s-imgwch.adb: Add with and use of Interfaces.
27935 (Img_Wide_Character): Change type of Val to Unsigned_16.
27936 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
27938 2005-03-15 Matthew Gingell <gingell@adacore.com>
27940 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
27942 2005-03-15 Robert Dewar <dewar@adacore.com>
27944 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
27946 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
27948 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
27950 2005-03-15 Robert Dewar <dewar@adacore.com>
27952 * s-bitops.adb, s-bitops.ads,
27953 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
27954 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
27955 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
27956 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
27957 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
27958 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
27959 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
27960 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
27963 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27965 * utils2.c (build_binary_op): Fix typo.
27967 2005-03-15 Doug Rupp <rupp@adacore.com>
27969 * s-crtl.ads (popen,pclose): New imports.
27971 2005-03-15 Cyrille Comar <comar@adacore.com>
27973 * comperr.adb (Compiler_Abort): remove references to obsolete
27974 procedures in the bug boxes for various GNAT builds.
27976 2005-03-15 Vincent Celier <celier@adacore.com>
27978 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
27980 2005-03-15 Geert Bosch <bosch@adacore.com>
27981 Arnaud Charlet <charlet@adacore.com>
27982 Robert Dewar <dewar@adacore.com>
27983 Cyrille Comar <comar@adacore.com>
27984 Sergey Rybin <rybin@adacore.com>
27986 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
27987 too specific and long-winded to be appropriate for the GNAT User's
27989 Warn about use of GCC switches not documented in the GNAT User's Guide,
27990 as these may cause generated code to not conform to Ada semantics.
27991 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
27992 Add documentation for -gnat95 and -gnat05 switches
27993 Remove paragraph documenting obsolete way to refer to third party
27995 Add a few references to Ada_05 that were missing.
27996 Update documentation on -gnatZ/-gnatL.
27997 Document limitation when using -m64 under Solaris.
27998 Change the "Name Casing" subsection of the pretty-printer section
27999 according to the changes in the dictionary processing.
28001 * gnat_rm.texi: Document the Ada_05 pragma.
28002 Section on record representation clauses describes the new more
28003 relaxed rules about placement of large packed bit array components.
28004 Add documentation of GNAT.UTF_32
28006 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
28008 * misc.c (gnat_post_options): Turn off structural
28011 2005-03-08 Laurent Guerby <laurent@guerby.net>
28013 * system-linux-sparc.ads: Fix typo in previous commit.
28015 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
28016 Laurent Guerby <laurent@guerby.net>
28019 * system-linux-sparc.ads: New.
28020 * Makefile.in: Add sparc linux entry.
28022 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
28024 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28025 parameters as unused.
28027 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
28028 Partial merge from libada-gnattools-branch:
28030 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28031 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28032 into code in gnattools/Makefile.in. Remove direct dependencies on
28033 stamp-tools by tools clauses.
28034 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28035 * config-lang.in: Add gnattools to $lang_dirs.
28037 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
28040 * utils.c (gnat_type_for_mode): Return null instead of ICE because
28041 we asked for an unknown mode.
28043 2005-02-12 Richard Henderson <rth@redhat.com>
28045 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28046 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28048 2005-02-10 Andreas Jaeger <aj@suse.de>
28050 * init.c (__gnat_initialize): Mark parameter as unused.
28052 2005-02-09 Doug Rupp <rupp@adacore.com>
28054 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28055 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28057 2005-02-09 Doug Rupp <rupp@adacore.com>
28059 * gnatchop.adb (dup, dup2),
28060 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28062 * gnatlbr.adb (mkdir),
28063 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
28065 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28067 2005-02-09 Doug Rupp <rupp@adacore.com>
28069 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28071 2005-02-09 Robert Dewar <dewar@adacore.com>
28072 Thomas Quinot <quinot@adacore.com>
28073 Javier Miranda <miranda@adacore.com>
28074 Pascal Obry <obry@adacore.com>
28075 Ed Schonberg <schonberg@adacore.com>
28076 Doug Rupp <rupp@adacore.com>
28077 Gary Dismukes <dismukes@adacore.com>
28078 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28080 * g-zstspl.ads: New file.
28082 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28084 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28086 Add definition of Wide_Wide_Space for AI-285
28088 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28089 interface (to support Ada 95 and Ada 2005 units).
28090 Add Unbounded_IO files
28091 Add entries for Wide_Wide packages for AI-285
28092 Add list of containers packages to Ada 2005 unit list
28094 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28095 support new Unbounded_IO package cleanly.
28097 * g-utf_32.ads, g-utf_32.adb: New files.
28099 * Makefile.rtl: Add entry for g-utf_32
28100 Add new files for Unbounded_IO
28101 Adjust make file for new AI-285 wide wide packages
28102 Add AI-302 containers to the run time.
28104 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28105 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28106 subprograms for AI-301.
28108 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28110 * a-stunau.ads: Minor comment correction
28112 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28114 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28115 (Check_RPC): Update to match changes in expanded code.
28116 Clean up unused entity.
28118 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28119 was not taken into account.
28120 This includes proper initialization with Normalize_Scalars.
28121 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28122 normalize scalars cases (particularly the latter) to do a better job
28123 of finding invalid representations.
28125 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28127 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28130 * exp_dist.adb: Add support for wide wide character type
28131 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28132 private part, generate stub bodies at the end of the private part,
28133 not the visible part.
28134 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28136 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28137 generic wrapper to execute final processing after completing the
28138 expansion of the RPC receiver for an RACW.
28140 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28141 packages and attributes.
28142 (Preset_Names): Addition of the new reserved words of Ada 2005,
28143 that is interface, overriding and synchronized.
28144 (Get_Pragma_Id): Give support to the use of the new reserved word
28145 "interface" as a pragma name.
28146 (Is_Pragma_Name): Give support to the use of the new reserved word
28147 "interface" as a pragma name.
28148 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28149 attribute implementation.
28151 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28152 checks to entities that are output parameters of Asm operations.
28153 Handle the Stream_Size attribute.
28154 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28156 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28158 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28159 for second parameter being 0.0.
28160 Add support for wide wide character type.
28161 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28163 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28164 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28165 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28166 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28167 for wide wide character cases.
28169 * cstand.adb: Create entities for Wide_Wide_Character and
28172 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28173 accordance with AI-258.
28174 Add new declarations for 16/32 bit C character types (Part of AI285)
28176 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28177 (Obsolescent_Warning): New field
28178 (Rep_Clause): New local subprogram used to share code. Returns the rep
28179 clause for which the name is given in parameter.
28180 (Has_Stream_Size_Clause): New routine.
28181 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28182 (Address_Clause): Implementation is now using Rep_Clause.
28183 (Alignment_Clause): Idem.
28184 (Size_Clause): Idem.
28186 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28187 entity in non-Ada 2005 mode and generate warning.
28189 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28190 (Prag): Code cleanup. Remove old gnat pragma "overriding"
28192 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28193 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28194 on the named unit if the pragma is not in the current compilation unit,
28195 so that elaboration calls in the current unit can set up an elaboration
28196 dependency on the named unit, as needed.
28197 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28198 subprogram as well as for subprograms declared within a package.
28199 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28202 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28203 to z) to avoid some instances of duplication for Wide_Wide packages.
28205 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28208 * scn.adb: Char_Literal_Value field is now a Uint
28210 * scng.adb: Significant rewrite to handle new Ada 2005 features
28211 allowing wide and wide wide characters in program text, e.g. for
28212 identifiers, as described in AI-285.
28213 (Set_Reserved): New procedure, makes setting up keywords cleaner.
28214 (Initialize_Scanner): Register the new reserved words of Ada 2005.
28215 (Scan): Give support to the new reserved words.
28217 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28218 warning notifying that interface, overriding, and synchronized are
28219 new reserved words.
28220 (P_Pragma): Allow the use of the new reserved word "interface" as
28223 * gnatls.adb, gnatbind.adb,
28224 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28225 identifiers named "interface" to "SAL_Interface".
28227 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28228 (Structured Exception handling).
28229 (Gen_Main_C): Idem.
28232 (Gen_Main_Ada): Set the default exit code if specified.
28233 (Gen_Main_C): Likewise.
28235 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28236 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28238 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28241 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28242 has a collision with the new Ada 2005 "interface" reserved word.
28244 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28245 generate a warning notifying that interface, overriding, and
28246 synchronized are new reserved words.
28248 * scans.ads (Token_Type): Addition of the tokens corresponding to the
28249 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28250 and Tok_Synchronized.
28252 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28253 "dispatching" rather than "primitive" operations, since dispatching
28254 calls are now allowed to abstract formal subprograms (which are not
28256 Char_Literal_Value field is now a Uint
28257 (Resolve_Slice): If the prefix is an access to an unconstrained array,
28258 compute the actual subtype of the designated object to impose the proper
28260 (Resolve_Selected_Component): Do not insert an access check if the
28261 prefix is an access type: such a node is expanded into an explicit
28262 dereference, on which the access check is performed anyway. Removes
28263 expensive duplicate checks.
28264 (Resolve_Call): Use new flag Is_Obsolescent and field
28265 Obsolescent_Warning so that pragma Obsolescent works on library
28267 Add support for wide wide character type
28268 (Resolve_Allocator): Replace the error message on wrong null-exclusion
28269 value by a warning message.
28270 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28271 as fixed-point, and one of the operands is non-static and universal, it
28272 can only be an illegal exponentiation operation, in which case there is
28273 no real value to retrieve.
28275 * exp_strm.adb: Add support for wide wide character type
28276 (Build_Elementary_Input_Call): Compute the size of the stream element by
28277 querying the rep chain to find the Stream_Attribute attribute value.
28278 (Build_Elementary_Write_Call): Ditto.
28280 * sem_aggr.adb: Char_Literal_Value field is now a Uint
28281 Add support for wide wide character type
28282 Replace the error messages on wrong null-exclusion value by warnings
28283 as described in Ada 2005.
28284 (Resolve_Extension_Aggregate): Document the fact that the error
28285 message on class-wide expressions in extensions aggregates.
28287 * sem_case.adb: Add support for wide wide character type
28289 * sem_ch13.adb: Add support for wide wide character type
28290 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28292 * sem_ch3.adb: Add support for wide wide character type
28293 (Process_Subtype): If constraint is illegal for the type, set Ekind of
28294 now-useless Itype, to prevent cascaded errors on a compiler built
28297 * sem_ch8.adb: Add with and use of Sem_Disp.
28298 (Analyze_Subprogram_Renaming): Replace unclean uses of
28299 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28300 of Corresponding_Spec to Empty).
28301 (Attribute_Renaming): Replace use of Corresponding_Spec with
28302 Corresponding_ Formal_Spec and simplify condition.
28303 (Use_One_Package): Check that scope of homonym of identifier is defined,
28304 before checking whether it is a wrapper package.
28305 Add support for wide wide character type
28307 * sem_eval.adb: Add support for wide wide character type.
28308 (Eval_Arithmetic_Op): Check for compile time known signed integer
28309 overflow in the non-static case.
28310 (Subtypes_Statically_Match): A formal scalar type and its base type do
28311 not statically match.
28313 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28314 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28316 (Unit_Declaration_Node): Ditto.
28317 (Is_Variable_Prefix): For the case of an indexed component whose prefix
28318 has a packed array type, the prefix has been rewritten into a type
28319 conversion. Determine variable-ness from the converted expression.
28320 Handle wide wide character cases.
28322 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28324 * stringt.ads, stringt.adb: Handle full UTF-32 range.
28325 Remove ["0A"] from comment, since it can look like a line terminator.
28326 Currently we don't permit this, but this is under discussion by the
28327 ARG, and it is easy enough to use a different example.
28329 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28330 handling UTF-32 encoding for wide wide character.
28331 Implement new brackets coding ["hhhhhhhh"]
28332 Add UTF-8 encodings for full UTF-32 range
28334 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28336 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28337 bit range Add full UTF-32 support.
28338 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28339 notify that constraint error will be raised at run-time
28340 because a null value is assigned to a null-excluding object.
28341 Remove some obsolete declarations and make Char_Code
28344 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28345 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28346 Rcheck subprograms.
28348 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28349 wrong null-exclusion value by a warning message.
28350 (Enable_Range_Check): Do range check if the prefix is an
28351 explicit dereference whose designated object is an unconstrained array.
28352 Current algorithm for removing duplicate checks is over-eager in this
28355 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28356 null-exclusion value by a warning message
28358 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28359 completely. Add support for Uint2 field
28361 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28362 exp_prag.adb: Char_Literal_Value field is now a Uint.
28364 * exp_util.adb (Insert_Actions): Replace
28365 N_Formal_Subprogram_Declaration by
28366 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28367 Char_Literal_Value field is now a Uint.
28369 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28370 defined for subprogram renaming declarations. When set, the field
28371 indicates the defining entity of a corresponding formal subprogram
28372 when the renaming corresponds to a formal subprogram association in an
28374 (Set_Corresponding_Formal_Spec): New procedure to return
28375 Corresponding_Formal_Spec field.
28376 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28377 (which is now a subtype).
28378 Char_Literal_Value field is now a Uint
28380 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28381 pointer to the base of the dispatch table.
28382 Minor changes to comments.
28383 (Controlling_Type): New function for determining the tagged type
28384 associated with a tagged primitive subprogram.
28385 (Expand_Dispatching_Call): Add support for a controlling actual that is
28386 directly a value of type Ada.Tag rather than a tagged object.
28388 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28389 describing the new layout.
28390 (Dispatch_Table): The expander computes the actual array size, allocates
28391 the Dispatch_Table record accordingly, and generates code that displaces
28392 the base of the record after the Typeinfo_Ptr component. The access to
28393 these components is done by means of local functions.
28394 (Offset_To_Top): New function.
28395 (Typeinfo_Ptr): New function.
28396 (Get_TSD): Modified to access the new position of the TSD.
28397 (Set_TSD): Modified to save the TSD in its new position.
28399 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28400 case of formal abstract subprograms. Add check and message for -gnat05.
28403 * sem_ch12.adb: Add with and use for Sem_Disp.
28404 (Analyze_Associations): Minor change from "=" to "in" for use of
28405 N_Formal_Subtype_Declaration (which is now a subtype).
28406 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28407 N_Formal_Subtype_Declaration (which is now a subtype).
28408 (Analyze_Formal_Subprogram): Add handling for
28409 N_Formal_Abstract_Subprogram, marking the formal as abstract and
28410 dispatching, setting the controlling status of the formal parameters
28411 and result, and issuing an error if there is no controlling type for
28412 the formal subprogram.
28413 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28414 which is an unclean use of that field, we set the new field
28415 Corresponding_Formal_Spec to make the formal subprogram available to
28416 processing in Analyze_Subprogram_Declaration.
28417 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28418 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28419 Constrained, so that it is is does not statically match its anonymous
28422 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28423 abstract formal subprograms in error check for functions returning
28424 abstract types. Set scope of new designator for
28425 a parameterless subprogram, so that it is available when checking the
28426 body for nested subprograms, before full analysis of said body.
28427 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28428 subprogram only if inner one comes from source.
28429 (Analyze_Function_Call): If the call is given in object notation, the
28430 analysis of the name rewrites the node and analyzes it with the proper
28431 argument list. After analyzing the name, if the call has been rewritten
28432 and the result type is set, no further analysis is needed.
28433 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28434 mark in function specification, in a context where the formals are
28435 visible and hide outer homographs.
28437 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28438 as the tagged type for the cases of abstract formal subprograms and
28439 renamings of those. Clean up spec comments.
28440 (Check_Dispatching_Context): Add error message to indicate "abstract
28441 procedure", covering the case of a call to a formal abstract procedure
28442 that has statically tagged operands.
28443 (Check_Dispatching_Call): Check for the case of an actual given by
28444 a tag-indeterminate function call whose type is an ancestor of the
28445 containing call's associated tagged type. This situation can occur
28446 for inherited primitives with function defaults. In this case we
28447 use the tagged type's tag directly as the controlling argument for
28449 (Expand_Call): Name change on call to Expand_Dispatch_Call.
28451 * sprint.adb (Sprint_Node_Actual): Split
28452 N_Formal_Subprogram_Declaration into two alternatives for the new
28453 cases N_Formal_Abstract_Subprogram_Declaration and
28454 N_Formal_Concrete_Subprogram_Declaration.
28455 Char_Literal_Value field is now a Uint.
28457 * trans.c: Get rid of junk Uint2 reference.
28458 Char_Literal_Value field is now a Uint.
28459 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28460 (gigi): Correct third arg to gimplify_body.
28462 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28463 (TYPE_LANG_FLAG_0): Check for record or union.
28465 * treepr.adb: Char_Literal_Value field is now a Uint
28467 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28470 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28471 Add full UTF-32 support
28472 Char_Code is now 32 bits
28474 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28475 wide character UTF_32 line terminators.
28476 Initialize Main_Source_File to avoid error when no main
28479 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28480 (Main_Source_File) when no main source has been loaded, to avoid
28483 2005-02-09 Robert Dewar <dewar@adacore.com>
28485 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28486 Fix name of Set routine
28488 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28491 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28492 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28495 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28496 forms of Get_Line subprograms for AI-301.
28498 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28499 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28500 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28501 a-stwima.ads: Minor reformatting.
28503 2005-02-09 Doug Rupp <rupp@adacore.com>
28504 Thomas Quinot <quinot@adacore.com>
28506 * adaint.c, adaint.h
28507 [VMS] (to_ptr32): New function.
28508 (MAYBE_TO_PTR32): New macro.
28509 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28511 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28512 [VMS] (#define fork()): Remove since unneccessary.
28513 (__gnat_set_close_on_exec): New routine to support
28514 GNAT.OS_Lib.Set_Close_On_Exec.
28516 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28517 the parent side as close-on-exec so that they are not inherited by the
28520 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28521 set or clear the FD_CLOEXEC flag on a file descriptor.
28523 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
28524 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28528 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28529 on the field if Pragma Component_Alignment (Storage_Unit).
28530 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28531 side-effects as if it were a constant; also make SAVE_EXPR to protect
28533 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28535 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28536 (components_to_record): Test it.
28537 Fix improper usage of REFERENCE_CLASS_P.
28539 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28542 * utils2.c: Minor reformatting.
28544 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28545 handle other cases like RECORD_TYPE.
28547 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28549 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28551 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28552 component of an array of arrays in an assignment context, and the
28553 aggregate has component associations that require sliding on
28554 assignment, force reanalysis of the aggregate to generate a temporary
28555 before the assignment.
28556 (Must_Slide): Make global to the package, for use in Gen_Assign.
28558 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28560 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28561 unchecked union with no inferable discriminants, return a
28562 Raise_Program_Error node, rather than inserting it at the point the
28564 (Expand_Record_Equality, Component_Equality): Handle properly the case
28565 where some subcomponent is an unchecked union whose generated equality
28566 code raises program error.
28568 2005-02-09 Doug Rupp <rupp@adacore.com>
28570 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28571 [VMS] (#define exit hack): Remove.
28573 2005-02-09 Pascal Obry <obry@adacore.com>
28574 Arnaud Charlet <charlet@adacore.com>
28576 * init.c (__gnat_initialize): Add a new parameter eh which contains the
28577 address of the exception registration. The Win32 version of this
28578 routine calls __gnat_install_SEH_handler() to initialize the SEH
28579 (Structured Exception Handling) handler.
28580 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28581 SEH (Structured Exception Handling) now.
28582 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28583 (__gnat_initialize for ppc-vxworks): Adjust comments and the
28584 preprocessor condition protecting the call to the extra eh setup
28585 subprogram, which is only available for the ppc target.
28586 (__gnat_clear_exception_count): replaced reference to
28587 variable taskIdCurrent by call to taskIdSelf(), cleaner.
28589 * seh_init.c: New file.
28591 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28592 (GNATBIND_OBJS): Idem.
28594 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28595 routine takes a new parameter (a pointer to the exception registration
28596 for the SEH (Structured Exception Handling) support.
28598 * raise.h: (__gnat_install_SEH_handler): New prototype.
28599 Update copyright notice.
28601 * s-tassta.adb (Task_Wrapper): Declare the exception registration
28602 record and initialize it by calling __gnat_install_SEH_handler.
28604 2005-02-09 Vincent Celier <celier@adacore.com>
28606 * make.adb (Gnatmake): Do not fail when the main project has no object
28609 2005-02-09 Doug Rupp <rupp@adacore.com>
28611 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28612 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28613 [VMS]: Add translations for g-enblsp.adb.
28615 * s-asthan-vms.adb: Removed.
28616 * s-asthan-vms-alpha.adb: Added.
28618 2005-02-09 Pascal Obry <obry@adacore.com>
28620 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28621 (LIBGNAT_OBJS): Add seh_init.o.
28623 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28626 * Makefile.in: Link all gnat tools with -static-libgcc, since
28627 -shared-libgcc is now used by default on some systems (e.g. linux with
28629 Remove references to Makefile.prolog/generic, no longer used.
28631 2005-02-09 Vincent Celier <celier@adacore.com>
28633 * prj-makr.adb (Process_Directory): Put file name in canonical case
28634 before matching against the patterns.
28635 If gnatname has been invoked as <prefix>-gnatname
28636 then invoke the compiler as <prefix>-gcc, not just "gcc".
28638 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28640 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28641 with expansion disabled. The actual subtype is needed among other
28642 places when the selected component appears in the context of a loop
28643 bound, and denotes a packed array.
28644 (Operator_Check): Always use the first subtype in the
28645 error message, to avoid the appearance of internal base types.
28646 (Transform_Object_Operation): Copy each actual in full
28647 to the parameter associations of the constructed call, rather than
28648 using the shallow copy mechanism of New_Copy_List. This ensures that
28649 the chaining of named associations is done properly.
28650 (Complete_Object_Operation): Rewrite node, rather than
28651 replacing it, so that we can trace back to the original selected
28654 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28655 and calls that use object notation, if the called function is not
28656 declared in a withed unit, place the elaboration constraint on the
28657 unit in the context that makes the function accessible.
28658 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28659 imposes an elaboration constraint between two packages.
28661 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28663 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28664 views of a private type after handling its private dependents, to
28665 maintain proper stack discipline between entry and exit from the
28668 2005-02-09 Cyrille Comar <comar@adacore.com>
28670 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28671 Minor reformatting.
28673 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28675 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28676 fields for foreign threads.
28678 2005-02-09 Doug Rupp <rupp@adacore.com>
28680 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28681 recursion warnings when compiled with -gnatdm.
28683 2005-02-09 Robert Dewar <dewar@adacore.com>
28685 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28686 Slight fix to documentation of -gnaty with no parameters
28688 * xr_tabls.ads: Add ??? comment for missing overall comment
28690 * xsinfo.adb: Make default file name be sinfo.h, since this is what
28691 we now use by default.
28693 * xsnames.adb: Adjust end of file test to look for five space followed
28694 by '#' instead of six spaces. The format of xsnames.adb was modified
28695 in the last update.
28697 * a-numeri.ads: Add reference to AI-388 for greek letter pi
28700 * clean.adb: Minor reformatting.
28702 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28703 gnatname.adb: Minor reformatting
28704 Add 2005 to copyright output when utility is run
28706 * csets.adb: Eliminate obsolete comment
28708 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28711 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28713 2005-02-09 Sergey Rybin <rybin@adacore.com>
28715 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28716 the difference between compact and incompact layout and add the record
28717 representation clause to the example illustrating different layouts.
28718 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28719 component clauses").
28721 2005-02-09 Florian Villoing <villoing@adacore.com>
28723 * gnat_ugn.texi: Fix typos.
28724 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28726 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28727 in the generated documentation.
28729 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28731 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28733 Update linker wrapper when linking with non GNU C++.
28735 2005-02-09 Pascal Obry <obry@adacore.com>
28738 Document the procedure to debug the DllMain routine on Windows.
28739 Add note about -funwind-tables and mixed Ada and C/C++ programming in
28741 Document new BIND qualifer /RETURN_CODES=VMS.
28743 2005-02-09 Ben Brosgol <brosgol@adacore.com>
28745 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28746 Edited gnatmetric chapter
28748 2005-02-09 Robert Dewar <dewar@adacore.com>
28751 Changes to document new wide wide character support
28753 Update documentation on Normalize_Scalars and Initialize_Scalars
28755 2005-02-09 Pascal Obry <obry@adacore.com>
28757 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28759 2005-02-09 Jose Ruiz <ruiz@adacore.com>
28761 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28762 from the VxWorks kernel) that is needed for getting the active
28763 priority of the different tasks.
28765 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28766 Use a pragma Elaborate_Body in the spec file instead.
28767 Noticed by code reading.
28769 2005-02-09 Thomas Quinot <quinot@adacore.com>
28771 * exp_util.ads: Minor correction in comment.
28773 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28775 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28776 since this procedure is now too complex to be worth inlining.
28778 2005-02-09 Richard Henderson <rth@redhat.com>
28780 * utils.c (gnat_define_builtin): Remove.
28781 (gnat_install_builtins): Use build_common_builtin_nodes.
28783 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28785 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
28786 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
28787 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
28788 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
28789 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
28790 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
28791 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
28792 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
28793 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
28794 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
28795 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
28796 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
28797 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
28798 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
28799 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
28800 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
28801 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
28802 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
28803 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
28804 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
28805 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
28806 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
28807 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
28808 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
28809 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
28810 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
28811 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
28812 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
28813 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
28814 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
28815 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
28816 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
28817 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
28818 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
28821 2005-01-27 Laurent Guerby <laurent@guerby.net>
28823 * Makefile.in: Fix a-intnam.ads from previous commit,
28824 add 2005 to copyright.
28825 * a-intman-rtems.ads: Renamed to...
28826 * a-intnam-rtems.ads:
28828 2005-01-27 Laurent Guerby <laurent@guerby.net>
28830 * Makefile.in: Rename GNAT RTEMS specific files.
28831 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
28832 5rosinte.ads, 5rparame.adb: Replaced by files below.
28833 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
28834 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
28836 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
28837 Laurent Guerby <laurent@guerby.net>
28840 * 5rosinte.ads: Add No_Key constant.
28841 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
28842 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
28844 2005-01-26 Laurent Guerby <laurent@guerby.net>
28847 * i-cobol.adb (Valid_Numeric): Handle zero length case.
28849 2005-01-20 Richard Henderson <rth@redhat.com>
28851 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
28852 a-intnam-linux.ads and system-linux-alpha.ads.
28853 * a-intnam-linux-alpha.ads: Remove file.
28854 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
28855 * system-linux-alpha.ads: New file.
28857 2005-01-18 Jakub Jelinek <jakub@redhat.com>
28860 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
28861 set to the new string.
28863 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
28865 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
28868 2005-01-18 Richard Henderson <rth@redhat.com>
28870 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
28871 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
28873 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
28875 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
28877 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
28878 (GCC_ZCX_Support): Likewise.
28880 2005-01-11 Bastian Blank <waldi@debian.org>
28882 * system-linux-s390.ads: Define Preallocated_Stacks.
28883 * system-linux-s390x.ads: Likewise.
28885 2005-01-04 Arnaud Charlet <charlet@adacore.com>
28887 * gnat_ugn.texi: Fix texi errors with null variables.
28889 2005-01-03 Thomas Quinot <quinot@adacore.com>
28891 * gen-soccon.c: New utility program to generate g-soccon.ads
28894 * socket.c, gsocket.h: Split inclusion of system header files into a
28895 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
28897 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
28898 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
28899 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
28900 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
28901 should not be edited by hand anymore, but should be regenerated using
28904 2005-01-03 Robert Dewar <dewar@adacore.com>
28905 Ed Schonberg <schonberg@adacore.com>
28906 Vincent Celier <celier@adacore.com>
28908 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
28909 on/off, since this is an obsolescent feature, for which we now generate
28912 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
28913 warning mode is set and obsolescent usage of this attribute occurs.
28914 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
28915 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
28916 predates, and partly motivates, the adoption of the AI.
28917 Implement new Ada 2005 attribute Mod
28919 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
28922 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
28924 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
28925 pragma restrictions.
28926 New entry for Ada 2005 attribute Mod.
28929 Add recognition of new pragma Restrictions No_Dependence
28930 Recognize restriction No_Obsolescent_Features at parse time
28932 * bcheck.adb: Add circuitry for checking for consistency of
28933 No_Dependence restrictions.
28935 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
28938 * restrict.ads, restrict.adb: Add subprograms to deal with
28939 No_Dependence restrictions.
28941 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
28944 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
28945 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
28947 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
28948 dummy parameter to scng instantiation.
28949 Needed for new restriction No_Obsolescent_Features
28951 * scn.adb: (Obsolescent_Check): New procedure
28952 Needed for new restriction No_Obsolescent_Features
28954 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
28955 specified by AI-285, needed for implementation of AI-388 (adding greek
28956 pi to Ada.Numerics).
28957 Add new generic formal to scng, needed for new restriction
28958 No_Obsolescent_Features.
28960 * s-rident.ads: Add new restriction No_Obsolescent_Features.
28962 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
28963 restrictions lines.
28964 (Scan_ALI): When finding an unexpected character on an R line, raise
28965 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
28966 Ignore_Errors is True, default restrictions are set and scanning of the
28967 ALI file continues with the next line. Also, when Bad_R_Line is raised
28968 and Ignore_Errors is True, skip to the end of le line.
28970 * sem_ch10.adb: Check that explicit with's do not violate
28971 No_Dependence restrictions.
28972 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
28973 illegal context clauses containing child units of instance.
28975 * sem_prag.adb: Processing and checking for new No_Dependence
28977 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
28978 analyze and check the External argument.
28980 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
28982 2005-01-03 Robert Dewar <dewar@adacore.com>
28984 * atree.adb: Add a fifth component to entities
28985 This allows us to add 32 flags and four new fields
28987 * atree.ads: Add a fifth component to entities
28988 This allows us to add 32 flags and four new fields
28990 * einfo.ads, einfo.adb: Document new fields and new flags now available
28991 Add routines for printing new fields
28993 * treepr.adb: Call routines to print out additional fields if present
28995 2005-01-03 Arnaud Charlet <charlet@adacore.com>
28997 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
28998 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29000 * Makefile.in: Add support to build shared Ada libraries on solaris x86
29001 Remove gpr2make, replaced by gprmake.
29002 Remove references to gnatmem and libaddr2line.
29003 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29004 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29005 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29006 a-numaux-darwin.ads and a-numaux-darwin.adb
29007 Enable mlib-tgt-lynxos.adb on lynxos.
29009 * Make-lang.in: Remove rules for gpr2make.
29010 When generating sdefault.adb, do not call Relocate_Path
29011 on S3 for function Target_Name, as it is not a path.
29012 Remove references to gnatmem and libaddr2line.
29014 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29017 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
29019 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29020 address is incompatible with its base type alignment constraints when
29021 this can be decided statically.
29023 2005-01-03 Olivier Hainque <hainque@adacore.com>
29025 * decl.c (compatible_signatures_p): New function. The intended purpose
29026 is to check if two function signatures for a call-site and a callee are
29027 compatible enough for the call to be valid. The underlying purpose is
29028 to check if a call to a mapped builtin is using the right interface.
29029 The current code actually does not check antyhing - this a placeholder
29030 for future refinements.
29031 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29032 builtin calls for convention Intrinsic.
29034 * gigi.h (builtin_decl_for): Declare (new function).
29036 * utils.c (gnat_install_builtins): Install the target specific builtins.
29037 (builtin_decl_for): New function, provide a dummy body for now.
29039 2005-01-03 Geert Bosch <bosch@adacore.com>
29041 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29042 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29043 (Pred): Implement in terms of Succ.
29045 * trans.c (convert_with_check): Reimplement conversion of float to
29048 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29049 Vincent Celier <celier@adacore.com>
29051 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29052 bounds can be negative, and must be declared Int, not Nat.
29054 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29055 array is checked after using the index in the array.
29057 * makegpr.adb (Add_Switches): Check if there is a package for the
29058 processor. If there is no package, do not look for switches.
29060 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29062 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29063 generation of predefined stream operations (specs and bodies) should
29064 proceed. Under various restrictions these subprograms must not be
29067 2005-01-03 Thomas Quinot <quinot@adacore.com>
29070 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29071 amount of PCS-specific code in RACW stubs generation.
29072 (Copy_Specification): Set Etype on copied formal parameter entities, as
29073 this information is needed for PolyORB stubs generation.
29074 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29075 variable Dynamic_Async.
29076 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29077 (Build_RPC_Receiver_Specification): Make generic again, as recent
29078 changes have allowed RPC receivers to have the same profile for both
29079 variants of the PCS.
29080 Reorganise RPC receiver generation to reduce differences between the
29081 structure of GARLIC and PolyORB RPC receivers.
29082 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29084 Simplify elaboration code for RCI packages.
29086 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29087 generation to reduce differences between the structure of GARLIC and
29088 PolyORB RPC receivers.
29090 * s-stratt.adb: Fix typo in comment.
29092 2005-01-03 Thomas Quinot <quinot@adacore.com>
29094 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29095 copied from Make_Init_Call).
29097 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29098 reads and assignments on a temporary variable declared with appropriate
29101 2005-01-03 Robert Dewar <dewar@adacore.com>
29103 * i-c.adb (To_C): Raise CE if string is null and Append_Null
29105 2005-01-03 Robert Dewar <dewar@adacore.com>
29107 * i-cstrin.adb (Update): Do not append a null in form called with a
29108 String. This avoids unintended behavior.
29110 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29113 * init.c: Fix warnings on Free BSD section.
29115 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29118 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29121 2005-01-03 Vincent Celier <celier@adacore.com>
29123 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29124 libraries when Unique_Compile is True (-u switch).
29127 2005-01-03 Robert Dewar <dewar@adacore.com>
29129 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29130 upper case letter or underscore after W, as allowed by spec.
29132 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29134 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29135 darwin port by using proper type definitions from header files.
29136 Use SIGTERM instead of SIGABRT for SIGADAABORT.
29138 2005-01-03 Robert Dewar <dewar@adacore.com>
29140 * par.adb: Enhance error message handling for configuration file
29143 2005-01-03 Robert Dewar <dewar@adacore.com>
29145 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29146 removed during the previous update (test properly for case of dividing
29147 largest negative number by -1, which generates overflow).
29149 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29150 Sergey Rybin <rybin@adacore.com>
29152 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29153 to use as the defining identifier for a formal package.
29154 (Remove_Parent): If the instance takes place within (an instance of)
29155 a sibling, preserve private declarations of common parent.
29157 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29159 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29160 to determine whether one of the operands is a fixed-point type for
29161 which a user-defined multiplication or division operation might be
29164 * sem_res.adb (Valid_Conversion): The legality rules for conversions
29165 of access types are symmetric in Ada 2005: either designated type can
29168 2005-01-03 Vincent Celier <celier@adacore.com>
29170 * s-fileio.adb (Temp_File_Record): Change length of string component
29171 Name from L_tmpnam + 1 to max_path_len + 1.
29173 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29175 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29176 Self_Id.Deferral_Level = 0.
29177 (Do_Pending_Action): Move this function to the spec.
29179 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29180 Do_Pending_Action explicitely when needed, in case we're using
29181 No_Abort restrictions.
29183 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29184 deferral level since it will not get changed by the generated code.
29185 Keeping a default value of 1 would prevent some operations (e.g.
29186 select or delay) to proceed successfully.
29188 2005-01-03 Ben Brosgol <brosgol@adacore.com>
29189 Robert Dewar <dewar@adacore.com>
29190 Cyrille Comar <comar@adacore.com>
29192 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29193 porting guide chapter (vms version).
29194 Revised doc title (removed "for native platforms") and subtitle.
29195 Add discussion on warning flag for obsolescent features. First we
29196 note that it applies to obsolete GNAT features, which was previously
29197 omitted. Second we contrast the behavior with that of the new
29198 Ada 2005 AI-368 restriction No_Obsolescent_Features.
29199 Preliminary rewriting of GNAT & libraries chapter in order to take
29200 into account default project locations & new project manager
29203 2005-01-03 Robert Dewar <dewar@adacore.com>
29205 * cstand.adb (Create_Operators): Clean up format and documentation of
29206 unary and binary operator result tables. No change in code, just
29207 reformatting and addition of comments.
29209 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29210 sem_ch2.adb: Minor reformatting
29212 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29213 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29214 comments for Tree_Read and Tree_Write.
29216 2005-01-03 Pascal Obry <obry@adacore.com>
29218 * exp_attr.ads: Minor reformatting.
29220 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
29222 * comperr.adb (Compiler_Abort): Add specialized message for GAP
29225 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29227 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29228 whether the ancestor type is private, as may be the case with nested
29231 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
29234 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29236 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
29238 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29239 * utils2.c (build_unary_op): Likewise.
29241 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29243 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29245 2004-12-19 Richard Henderson <rth@redhat.com>
29247 * trans.c (gigi): Update gimplify_body call.
29249 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
29251 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29253 2004-12-07 Ed Falis <falis@adacore.com>
29255 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29256 current task being suspended.
29258 * init.c (__gnat_clear_exception): added to reset VxWorks exception
29260 (__gnat_map_signal): removed test for current task being suspended.
29262 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29264 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29265 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29266 targets (such as AAMP).
29268 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29270 * atree.adb (Visit_Itype): Create a new name for the generated itype,
29271 because the back-end may otherwise treat it as a redefinition of the
29274 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
29276 * back_end.adb (Scan_Back_End_Switches): Accept --param.
29278 * lang-specs.h: Accept --param.
29280 2004-12-07 Vincent Celier <celier@adacore.com>
29282 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29283 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29284 Current_Body_Suffix => Ada_Body_Suffix).
29285 Take into account Externally_Built attribute.
29287 * clean.adb (In_Extension_Chain): Always return False when one of the
29288 parameter is No_Project.
29289 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29290 Ada_Language_Index).
29291 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29292 Process_Languages for procedure Parse).
29294 * gnatcmd.adb (Carg_Switches): New table.
29295 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29296 Adapt to name changes in package Prj (Current_Spec_Suffix =>
29297 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29299 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29300 Header_Num and function Hash are now declared in package Prj,
29303 * prj.adb (Suffix_Of): New function.
29304 (Set (Suffix)): New procedure.
29305 (Hash): One function moved from Prj.Com
29306 (Is_Present, Language_Processing_Data_Of): New functions
29307 (Set): Two new procedures
29308 (Add_Language_Name, Display_Language_Name): New procedures
29310 * prj.ads: (Suffix_Of): New function
29311 (Set (Suffix)): New procedure
29312 Add several types and tables for multi-language support.
29313 (Header_Num): Type moved from Prj.Com
29314 (Hash): Two functions moved from Prj.Com
29315 (Is_Present, Language_Processing_Data_Of): New functions
29316 (Set): Two new procedures
29317 (Add_Language_Name, Display_Language_Name): New procedures
29318 (Naming): Component name changes:
29319 Current_Spec_Suffix => Ada_Spec_Suffix,
29320 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29321 Impl_Suffixes, Supp_Suffixes.
29322 (Project_Data): New components: Externally_Built, Supp_Languages,
29323 First_Language_Processing, Supp_Language_Processing, Default_Linker,
29324 Default_Linker_Path.
29326 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29327 new package Language_Processing with its attributes (Compiler_Driver,
29328 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29329 Binder_Driver, Default_Linker).
29331 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29332 (Header_Num): Type moved to package Prj
29334 * prj-env.adb: Adapt to name changes in package Prj
29335 (Current_Spec_Suffix => Ada_Spec_Suffix,
29336 Current_Body_Suffix => Ada_Body_Suffix).
29338 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29339 default to the project path, except the "-" is one of the directories
29340 in env var ADA_PROJECT_PATH.
29341 (Current_Project_Path): Global variable, replacing Project_Path
29342 that was in the body of Prj.Part.
29343 (Project_Path): New function
29344 (Set_Project_Path): New procedure
29345 Initialize Current_Project_Path during elaboration of the package
29346 Remove dependency on Prj.Com, no longer needed
29348 * prj-ext.ads (Project_Path): New function
29349 (Set_Project_Path): New procedure
29351 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29352 suffix is defined for language <lang>.
29353 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29354 accessing directly the components of Naming.
29355 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29356 Reorganise of this package.
29357 Break procedure Check in several procedures.
29359 * prj-nmsc.ads: Replace all procedures (Ada_Check,
29360 Other_Languages_Check and Language_Independent_Check) with a single
29363 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29364 Process_Languages, no longer needed.
29366 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29367 Current_Project_Path.
29368 Remove elaboration code, moved to the body of Prj.Ext
29369 Use new function Prj.Ext.Project_Path instead of old variable
29371 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29372 When comparing with project paths on the stack, first put the resolved
29373 path in canonical case.
29374 (Parse_Single_Project): Set the path name of the project file in the
29375 tree to the normalized path.
29377 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29378 parameter Process_Languages, no longer needed.
29379 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29380 Other_Languages_Check.
29382 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29383 to store the resolved canonical path of the project file.
29384 Remove dependency to Prj.Com, no longer needed
29386 * prj-util.adb: Adapt to name changes in package Prj
29387 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29390 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29391 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29392 Externally_Built, Include_Option, Language_Processing.
29394 * makegpr.adb: Numerous changes due to changes in packages
29397 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29398 default to the project path, except whe "-" is one of the directories
29399 in env var ADA_PROJECT_PATH.
29400 (Gnatls): In verbose mode, add the new section "Project Search Path:"
29402 2004-12-07 Robert Dewar <dewar@adacore.com>
29404 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29406 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29409 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29410 flag. No longer needed now that we handle this in gnat1drv.adb.
29412 * repinfo.ads: Minor reformatting
29414 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29415 Olivier Hainque <hainque@adacore.com>
29416 Eric Botcazou <ebotcazou@adacore.com>
29418 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29419 TYPE_SIZE_UNIT of result type if SIZE is not specified.
29420 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29421 of a bitfield, which we know is useless and causes trouble because of
29422 alignment implications.
29424 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29426 (process_attributes): Clear DECL_COMMON again when a section attribute
29428 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29429 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29430 (create_field_decl): Special case ADDRESSABLE negative to mean
29431 "no bitfield creation", to be used by make_aligning_type. Don't
29432 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29433 fields claimed addressable still have to be bitfields. Use
29434 value_factor_p instead of a raw binop construction to check for the
29435 position's alignment.
29437 2004-12-07 Geert Bosch <bosch@adacore.com>
29439 * eval_fat.adb: Revert previous change.
29441 2004-12-07 Thomas Quinot <quinot@adacore.com>
29442 Ed Schonberg <schonberg@adacore.com>
29444 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29445 with an implicit dereference as its prefix, use
29446 Insert_Explicit_Dereference instead of merely rewriting the prefix into
29447 an explicit dereference. This ensures that a reference to the original
29448 prefix is generated, if appropriate.
29450 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29451 dereference is rewritten to an explicit one, generate a reference to
29452 the entity denoted by its prefix using the original prefix node, so
29453 the dereference can be properly recorded as a read of the denoted
29454 access value, if appropriate.
29456 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29457 emitting 'assigned but never read' warning on a variable on the basis
29458 that it has an access type.
29459 (Check_References): Emit unreferenced warning when the scope is a
29462 2004-12-07 Robert Dewar <dewar@adacore.com>
29463 Ed Schonberg <schonberg@adacore.com>
29465 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29468 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29469 leaving call unchanged.
29470 This deals with the case where the pragma Import specified
29471 an external name, to be handled by the back end.
29473 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29474 subprogram which is Imported with convention Intrinsic if an
29475 External_Name argument is specified.
29476 (Process_Import_Or_Interface): Properly diagnose link name argument.
29477 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29478 with Sem_Ch6.Cannot_Inline.
29479 (Process_Inline): Provide separate warning for inapplicable inline
29481 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29482 treatment is uniform on different targets.
29484 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29486 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29487 construct is rewritten, preserve end label to permit source navigation.
29489 2004-12-07 Thomas Quinot <quinot@adacore.com>
29491 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29492 Specific_Build_Stub_Target): New subprograms.
29493 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29494 the PCS implementation used, using the above PCS-customized subprograms.
29495 Minor reformatting.
29496 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29497 for generation of DSA code targeted to the PolyORB PCS.
29498 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29499 implementation of the partition communication subsystem in ancillary
29501 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29502 PolyORB_Support.Build_Stub_Type): New subrograms containing the
29503 PCS-specific part of Add_Stub_Type.
29504 (Insert_Partition_Check): Use runtime library function to perform
29507 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29508 (RE_Same_Partition): New entity, from s-parint.
29510 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
29512 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29514 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29515 Output the copyright message on a separate line from the version
29518 2004-12-07 Joel Brobecker <brobecker@adacore.com>
29520 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29521 compile-time warning.
29523 2004-12-07 Robert Dewar <dewar@adacore.com>
29525 * g-regpat.adb: (Match): Change a misuse of or to or else
29527 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29530 (Generate_Reference): Handle properly a reference to an entry formal,
29531 when an accept statement has a pragma Unreferenced for it.
29533 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29534 and the Has_Pragma_Unreferenced flag for each formal before analyzing
29535 the body, to ensure that warnings are properly emitted for each accept
29536 statement of a given task entry.
29538 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
29540 * Makefile.in: Add support for foreign threads on VMS.
29542 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29544 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29546 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29548 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29550 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29552 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29554 2004-12-07 Robert Dewar <dewar@adacore.com>
29556 * nlists.adb (Prepend_Debug): Remove parameters and nest within
29558 (Remove_Next_Debug): Same fix
29560 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29561 maintain back pointers now, though we did not used to, and comments
29563 (Prepend): Remove pragma Inline.
29564 (Remove_Next): Same cleanup
29566 2004-12-07 Thomas Quinot <quinot@adacore.com>
29568 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29569 used to record an implicit dereference as a read operation on its
29570 prefix when operating under -gnatc. Necessary to avoid spurious
29571 'variable assigned but never read' warnings in that mode.
29572 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29573 is a non-overloaded implicit dereference, call the above subprogram to
29574 ensure proper recording of references.
29576 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29578 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29579 to be resolved later as part of Analyze_Iteration_Scheme's call to
29582 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29584 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29585 prefix is not a scalar type, place error message on prefix, not on
29588 2004-12-07 Bernard Banner <banner@adacore.com>
29590 * vxaddr2line.adb: Add support for x86 vxworks
29592 2004-12-07 Thomas Quinot <quinot@adacore.com>
29594 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29595 documentation of the behaviour of these functions when passed an IP
29596 address that has no record in the system hosts database and no reverse
29599 * cstand.adb, a-tags.ads: Fix typos in comment.
29601 2004-12-07 Robert Dewar <dewar@adacore.com>
29603 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29604 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29605 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29606 s-poosiz.ads: Minor reformatting
29608 * make.adb: Minor reformatting
29609 Add some ??? comments asking for more comments
29611 * s-poosiz.adb: Minor reformatting
29612 Add comments on alignment requirement
29614 * sinfo.ads: Remove obsolete comment and fix typo.
29616 2004-12-07 Vincent Celier <celier@adacore.com>
29617 Sergey Rybin <rybin@adacore.com>
29619 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29620 Files" with the new tool and package names.
29621 Reformatting to suppress most of the warnings for line too long
29622 Document the new section "Project Search Path:" in the output of
29624 Add gnatmetric section
29626 2004-12-07 Vincent Celier <celier@adacore.com>
29628 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29629 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29630 and -eit to -ept. Added qualifier
29631 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29633 2004-11-27 Andreas Schwab <schwab@suse.de>
29635 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29637 2004-11-25 Arnaud Charlet <charlet@adacore.com>
29639 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29640 internal implementation unit GNAT.Sockets.Thin,
29641 as their usage for sockets is non-portable (using the read and write
29642 functions from the system runtime library is fine on UNIX but won't
29643 work under Windows).
29645 * mingw32.h: Update copyright notice.
29647 2004-11-25 Arnaud Charlet <charlet@adacore.com>
29649 * ada-tree.h: Minor reformatting of previous change to avoid lines
29650 longer than 79 characters.
29652 2004-11-25 Olivier Hainque <hainque@adacore.com>
29654 * tb-gcc.c: GCC infrastructure based implementation of
29657 2004-11-24 Steven Bosscher <stevenb@suse.de>
29659 * misc.c (gnat_post_options): Don't clear
29660 flag_inline_functions.
29662 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
29665 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29668 2004-11-21 Andreas Jaeger <aj@suse.de>
29670 * stylesw.adb: Change Style_Check_Subprogram_Order to
29671 Style_Check_Order_Subprograms.
29673 2004-11-18 Arnaud Charlet <charlet@adacore.com>
29675 * adaint.h, adaint.c
29676 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29678 Add also a cast to kill another warning.
29679 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29680 parameter with the priority class of the parent process instead of
29681 always using the NORMAL_PRIORITY_CLASS.
29682 (__gnat_dup): New function.
29683 (__gnat_dup2): New function.
29684 (__gnat_is_symbolic_link): Enable the effective body of this
29685 function when __APPLE__ is defined.
29687 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29690 2004-11-18 Olivier Hainque <hainque@adacore.com>
29692 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29693 address of which may be used to represent "others" and "all others"
29694 choices in exception tables, instead of the current harcoded
29695 (void *)0 and (void *)1.
29696 (Setup_Exception): Do nothing in the GNAT SJLJ case.
29698 * gigi.h (others_decl, all_others_decl): New decls representing the
29699 new Others_Value and All_Others_Value objects.
29700 (struct attrib): Rename "arg" component as "args", since GCC expects a
29701 list of arguments in there.
29703 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29704 corresponding objects exported by a-exexpr, instead of hardcoded dummy
29707 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29708 others_decl and all_others_decl instead of hardcoded dummy addresses
29709 to represent "others" and "all others" choices, which is cleaner and
29710 more flexible with respect to the possible eh pointer encoding policies.
29712 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29713 (process_attributes): Account for the naming change of the "args"
29714 attribute list entry component.
29716 * decl.c (build_attr_list): Rename into prepend_attributes to allow
29717 cumulating attributes for different entities into a single list.
29718 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29719 attributes for the current entity and propagate first subtype
29720 attributes to other subtypes.
29721 <E_Procedure>: Attribute arguments are attr->args and not
29722 attr->arg any more.
29723 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29724 argument provided, as this is what GCC expects. Use NULL_TREE instead
29727 2004-11-18 Robert Dewar <dewar@adacore.com>
29729 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
29730 Minor reformatting througout (including new function specs)
29731 Add ??? comments asking for clarification.
29733 2004-11-18 Thomas Quinot <quinot@adacore.com>
29735 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29736 incomplete duplicate implementation of this subprogram from butil.
29738 2004-11-18 Thomas Quinot <quinot@adacore.com>
29740 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29741 procedures factors the common processing for building an RPC receiver
29742 for an RCI package or an RACW type.
29743 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29744 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29745 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29747 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29749 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29751 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29752 distribution subprogram identifiers that are either subprogram numbers
29754 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29755 string distribution identifiers assigned to a given subprogram.
29756 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29757 (Add_RAS_Dereference_TSS): Add comments.
29758 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29759 is not referenced yet because it will be used by the PolyORB DSA
29761 (Insert_Partition_Check): Remove fossile code.
29762 (First_RCI_Subprogram_Id): Document this constant.
29763 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29765 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29766 replaced with calls to Get_Library_Unit_Name_String. Previously there
29767 were several instances of the same code in different locations in the
29768 compiler; this checkin completes the replacement of all of these
29769 instances with calls to a common subprogram.
29770 Minor reformatting.
29772 * sem_dist.adb: Remove comment noting that RPC receiver generation
29773 should be disabled for RACWs that implement RASs.
29774 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29776 * sem_util.ads, sem_util.adb (Has_Stream): New function
29777 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29778 qualified name of a library unit into the name buffer.
29779 (Note_Possible_Modification): Generate a reference only
29780 if the context comes from source.
29782 * snames.ads (PCS_Names): New subtype corresponding to names of
29783 supported implementations of the Partition Communication Subsystem
29784 (PCS) (i.e. the runtime library support modules for the distributed
29787 2004-11-18 Robert Dewar <dewar@adacore.com>
29788 Ed Schonberg <schonberg@adacore.com>
29790 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
29791 (Has_Rep_Pragma): New function
29792 (Has_Attribute_Definition_Clause): New function
29793 (Record_Rep_Pragma): Moved here from sem_ch13.adb
29794 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
29796 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
29798 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
29799 (Expand_Pragma_Psect_Object): New procedure
29800 These procedures contain the revised and cleaned up processing for
29801 these two pragmas. This processing was formerly in Sem_Prag, but
29802 is more appropriately moved here. The cleanup involves making sure
29803 that the pragmas are properly attached to the tree, and that no
29804 nodes are improperly shared.
29806 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
29807 pragmas to Exp_Prag, which is more appropriate.
29808 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
29809 check for duplicates Remove use of Is_Psected flag, no longer needed.
29810 Use new Make_String_Literal function with string.
29812 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
29813 that are functions return universal values, that have to be converted
29814 to the context type.
29815 Use new Make_String_Literal function with string.
29816 (Get_Stream_Convert_Pragma): New function, replaces the use of
29817 Get_Rep_Pragma, which had to be kludged to work in this case.
29819 * freeze.adb: Use new Has_Rep_Pragma function
29821 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
29822 function with string.
29823 Use new Has_Rep_Pragma function.
29825 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
29828 2004-11-18 Robert Dewar <dewar@adacore.com>
29830 * errout.ads, errout.adb: (First_Sloc): New function
29832 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
29833 check (-gnatyx) instead of being included as a redundant construct
29836 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
29837 Style_Check_Order_Subprograms.
29839 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
29840 stylesw.adb: Add Style_Check_Xtra_Parens
29842 * usage.adb: Add line for -gnatyx (check extra parens)
29844 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
29846 2004-11-18 Ed Schonberg <schonberg@adacore.com>
29847 Robert Dewar <dewar@adacore.com>
29849 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
29850 discriminant of a constrained subtype, analyze the copy of the
29851 corresponding constraint, because in some cases it may be only
29852 partially analyzed.
29853 Removes long-lived ??? comments.
29855 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
29856 handled controlled or secondary-stack expressions within the
29857 iteration_scheme of a loop.
29859 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
29860 bounds that may contain functions calls, to prevent memory leaks when
29861 the bound contains a call to a function that uses the secondary stack.
29862 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
29863 generate temporaries for loop bounds that might contain function calls
29864 that require secondary stack and/or finalization actions.
29866 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
29867 selected component and the selector is overloadable (not just a
29868 function) treat as function call, Analyze_Call will disambiguate if
29870 (Analyze_Selected_Component): Do not generate an actual subtype for the
29871 selected component if expansion is disabled. The actual subtype is only
29872 needed for constraint checks.
29873 (Analyze_Allocator): If restriction No_Streams is set, then do
29874 not permit objects to be declared of a stream type, or of a
29875 composite type containing a stream.
29877 * restrict.ads: Remove the a-stream entry from Unit_Array, since
29878 No_Streams no longer prohibits with'ing this package.
29880 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
29881 discriminants, but the parent base has unknown discriminants, there is
29882 no discriminant constraint to inherit. Such a discrepancy can arise
29883 when the actual for a formal type with unknown discriminants is a
29884 similar private type whose full view has discriminants.
29885 (Analyze_Object_Declaration): If restriction No_Streams is set, then
29886 do not permit objects to be declared of a stream type, or of a
29887 composite type containing a stream.
29889 2004-11-18 Ed Schonberg <schonberg@adacore.com>
29891 * exp_dbug.ads: Update documentation to reflect simpler encoding for
29892 protected operations.
29894 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
29895 generated name, it complicates decoding in gdb and hinders debugging
29896 of protected operations.
29897 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
29898 flag for the protected entry barrier function.
29899 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
29900 flag for the protected entry function.
29902 2004-11-18 Nicolas Setton <setton@adacore.com>
29904 * expect.c: Define __unix__ when __APPLE__ is defined.
29906 * Makefile.in: Inform the value of the variable GMEM_LIB in the
29907 Darwin-specific section.
29909 * lang-specs.h: Change the placement of the %1 marker.
29910 Works around the fact that gcc adds -fPIC by default under Darwin.
29912 2004-11-18 Ed Schonberg <schonberg@adacore.com>
29914 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
29915 type of the object with the packed array type, set the Analyzed flag
29916 on the object if it is an entity or simple indexed component, to avoid
29917 spurious type errors.
29919 2004-11-18 Gary Dismukes <dismukes@adacore.com>
29921 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
29922 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
29923 separate line from the version message.
29925 2004-11-18 Ed Falis <falis@adacore.com>
29927 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
29929 (init_float): Eliminate initialization of floating point status for
29930 AE653. The instructions have no effect for vThreads.
29932 2004-11-18 Vincent Celier <celier@adacore.com>
29934 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
29935 gnatbind is invoked with -shared.
29937 2004-11-18 Jose Ruiz <ruiz@adacore.com>
29939 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
29940 for Detect_Blocking which is redundant with the check done within the
29941 procedure Protected_Single_Entry_Call.
29942 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
29943 Detect_Blocking which is redundant with the check done within the
29944 procedure Protected_Single_Entry_Call.
29946 2004-11-18 Vincent Celier <celier@adacore.com>
29948 * makegpr.adb (Compile): Put the compiling switches (in package
29949 Compiler and on the command line) immediately after "-c", instead of
29950 at the end of the command line invocation of the compiler, when
29951 compiling a non-Ada file.
29952 (Build_Global_Archive): When there is no need to rebuild the archive,
29953 set Global_Archive_Exists, so that the archive is passed to the linker
29956 2004-11-18 Robert Dewar <dewar@adacore.com>
29957 Sergey Rybin <rybin@adacore.com>
29960 Remove extra paren check from list of checks for redundant constructs
29961 Add documentation of new -gnatyx style check (check extra parens)
29962 Remove paragraph about gnatelim debug options.
29964 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
29965 objects rather than forbidding dependencies on the package Ada.Streams.
29967 * sinfo.ads: Add ??? note that we should document pragmas passed to
29970 * g-expect.ads: Fix a few typos in the comments.
29972 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
29974 * misc.c (gnat_handle_option): Use %< and %> for quoting in
29977 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29979 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
29981 2004-11-07 Andreas Schwab <schwab@suse.de>
29983 * Makefile.in (install-gnatlib): Remove spurious hyphen.
29985 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
29988 * Makefile.in (darwin): Set soext to .dylib.
29990 2004-10-26 Vincent Celier <celier@gnat.com>
29991 Thomas Quinot <quinot@act-europe.fr>
29993 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
29994 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
29995 there is no use of GNAT.Sockets.Constants.
29996 Remove remaining pragma Import for C_Write
29997 Remove C_Read and C_Write from internal implementation unit
29998 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
29999 the read and write functions from the system runtime library is fine
30000 on UNIX but won't work under Windows).
30002 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30003 (Check_Selector): Use C_Recv instead of C_Read.
30004 Selectors are the GNAT.Sockets abstraction to perform a select()
30005 call on a set of descriptors. To allow abortion of an ongoing
30006 select operation, some data is written to a dedicated socket that
30007 is always monitored.
30008 Under Windows, the write and read library functions cannot operate
30009 on sockets, so we need to use send and recv instead, which is portable
30010 across all supported platforms.
30012 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30013 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30014 (using the read and write functions from the system runtime library is
30015 fine on UNIX but won't work under Windows).
30017 2004-10-26 Nicolas Setton <setton@act-europe.fr>
30019 * mlib-tgt-darwin.adb: New file.
30021 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30022 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30023 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30024 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30027 * Makefile.in: Add support for building shared libraries under Darwin.
30028 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30029 the low level EH init subprogram to be called from __gnat_initialize.
30031 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30032 indicates which options to pass to the archive indexer.
30034 * mlib-utl.adb: Add support for calling ranlib with additional
30035 options. This is needed for instance under Mac OS X.
30036 (Ranlib_Options): New global variable, used to store the potential
30037 options to pass to ranlib.
30038 (Ar): Use Ranlib_Options when spawning ranlib.
30039 (Initialize): Set the value of ranlib option.
30041 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30043 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30044 instead of 8K, to reflect the real potential needs for stack-checking
30047 2004-10-26 Pascal Obry <obry@gnat.com>
30049 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30051 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30052 Windows only the initial thread stack size can be set so it is good to
30053 start we a low stack size.
30054 The OS will adjust the size as needed.
30056 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30057 Nicolas Setton <setton@act-europe.fr>
30059 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30060 "__unix__" instead of "unix".
30061 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30062 sections were just mistakenly ignored. The former is
30063 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30064 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30065 of hpux. This prevents an unwanted definition of the symbol
30066 convert_addresses in adaint.o.
30068 2004-10-26 Gary Dismukes <dismukes@gnat.com>
30070 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30071 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30073 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30075 * a-filico.ads, a-filico.adb: fix incorrect header.
30077 2004-10-26 Javier Miranda <miranda@gnat.com>
30079 * a-ststio.ads: Fix typo in identifier
30081 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30083 * sem_ch4.adb: Minor reformatting.
30085 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30087 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30088 enabled, check the result of unary and binary operations when the
30089 expression is the right-hand side of an assignment.
30091 2004-10-26 Vincent Celier <celier@gnat.com>
30093 * clean.adb (Delete): Do not output warnings when in quiet output and
30094 not in verbose mode.
30095 (Force_Deletions): New Boolean flag, defaulted to False
30096 (Delete): Only delete a file if it is writable, and when
30097 Force_Deletions is True.
30098 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30099 (Usage): Line for new switch -f
30100 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30103 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30105 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30106 JM type only if its size matches that of the wrapper. When a size is
30107 prescribed and the field is not aliased, remove the wrapper of a JM
30108 type only if the size is not greater than that of the packed array.
30109 (gnat_to_gnu_entity): Change the extension of packed array wrappers
30112 2004-10-26 Geert Bosch <bosch@gnat.com>
30114 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30115 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30116 (Pred): Implement in terms of Succ.
30118 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30120 * exp_aggr.adb (Safe_Component): An aggregate component that is an
30121 unchecked conversion is safe for in-place use if the expression of the
30122 conversion is safe.
30123 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30124 be expandable in place even if the aggregate does not come from source.
30125 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30126 designated object of an allocator in place, rather than building it
30127 first on the stack. The previous scheme forces a full copy of the array,
30128 and may be altogether unsusable if the size of the array is too large
30129 for stack allocation.
30131 2004-10-26 Robert Dewar <dewar@gnat.com>
30133 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30134 compares if the component is atomic.
30136 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30137 array assignment if the component type is atomic.
30139 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30140 Eric Botcazou <ebotcazou@act-europe.fr>
30142 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30143 is aliased and is a by_reference type, do not pass by copy.
30144 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30145 detect whether the call is in the right side of an assignment or
30146 the expression of an object declaration. Recurse on component
30147 association within aggregates.
30148 Call it in the condition that determines whether the temporary is
30149 necessary for correct stack-checking.
30151 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30153 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30154 RACW_Type, used in the PolyORB version.
30155 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30156 version and the GARLIC version.
30158 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30159 Rename RCI_Info to RCI_Locator for better consistency between the
30160 GARLIC and PolyORB versions of the distributed systems annex.
30161 (DSA_Implementation_Name): This enumeration lists the possible
30162 implementations of the Partition Communication Subsystem for the
30163 Distributed Systems Annex (DSA). The three available implementations
30164 are the dummy stub implementation (No_DSA), and two versions based on
30165 two different distribution runtime libraries: GARLIC and PolyORB. Both
30166 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30168 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30171 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30172 between the GARLIC and PolyORB versions of the distributed systems
30174 Remove RE_Unbounded_Reclaim_Pool since it is unused.
30176 2004-10-26 Gary Dismukes <dismukes@gnat.com>
30178 * gnat1drv.adb: Suppress calling the back end when
30179 Frontend_Layout_On_Target is true.
30181 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30183 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30184 Set_Read_Only): New subprograms.
30185 These new routines allow the user to set or unset the Owner execute
30186 and Owner write permission flags on a file.
30188 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30189 GNAT.OS_Lib.Set_Executable instead of rolling our own.
30191 2004-10-26 Matthew Gingell <gingell@gnat.com>
30193 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30195 2004-10-26 Pascal Obry <obry@gnat.com>
30197 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30198 memory before the faulting page we properly test the process read
30199 access for this address using appropriate Win32 routine.
30200 (HPUX sections): guard with "__hpux__" instead of "hpux".
30202 2004-10-26 Robert Dewar <dewar@gnat.com>
30204 * lib-xref.adb (Generate_Reference): Don't complain about reference to
30205 entry parameter if pragma Unreferenced set, since we do not properly
30206 handle the case of multiple parameters.
30208 2004-10-26 Vincent Celier <celier@gnat.com>
30210 * prj-env.adb: (Contains_ALI_Files): New Boolean function
30211 (Ada_Objects_Path.Add): For a library project, add to the object path
30212 the library directory only if there is no object directory or if the
30213 library directory contains ALI files.
30214 (Set_Ada_Paths.Add.Recursive_Add): Ditto
30216 2004-10-26 Vincent Celier <celier@gnat.com>
30218 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30219 extension of library projects.
30221 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30222 path defaults to ".:<prefix>/lib/gnat".
30223 (Parse): For an extending all project, allow direct import of a project
30224 that is virtually extended.
30226 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30227 the specified name is directly imported, return its ID. Otherwise, if
30228 an extension of this project is imported, return the ID of the
30231 2004-10-26 Robert Dewar <dewar@gnat.com>
30233 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30234 (Sub3): New procedure, used by Scaled_Divide
30235 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30236 correct more than one instance of failure to propagate carries
30238 (Double_Divide): Handle overflow case of largest negative number
30239 divided by minus one.
30241 * s-arit64.ads (Double_Divide): Document that overflow can occur in
30242 the case of a quotient value out of range.
30245 2004-10-26 Robert Dewar <dewar@gnat.com>
30247 * s-bitops.adb (Bit_Eq): Remove redundant check.
30249 * s-bitops.ads: Minor comment updates
30250 Change some occurrences of Address to System.Address
30252 * s-carsi8.ads: Fix minor cut-and-paste error in comments
30254 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30256 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30257 accessibility check to prefix that is a protected operation.
30259 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30261 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30262 empty, post message on stub.
30264 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30265 Javier Miranda <miranda@gnat.com>
30267 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30268 current instance appears within a unit that is directly in the context
30270 Used to determine whether the body of the instance should be analyzed
30271 immediately after its spec, to make its subprogram bodies available
30272 for front-end inlining.
30273 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30274 constraint is not allowed on the component type (AARM 12.5.3(3))
30276 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30278 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30279 'Storage_Pool): enhance, document & limit detection of non-sharable
30282 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30284 * s-pooglo.ads: Add more documentation now that this pool is properly
30287 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30289 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30290 or protected type with discriminants, do not constrain the
30291 corresponding record type if the subtype declaration has no
30292 discriminant constraints. This can be the case in source code, or in
30293 the subtype declaration created to rename an actual type within an
30296 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30298 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30299 different kind of stub (possibly wrong name for file), do not check
30301 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30302 includes call to some function that returns an unconstrained type, do
30305 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30307 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30308 appear in the code for the main unit. Dependencies among units in the
30309 context of the main unit are established when those other units are
30310 compiled. Otherwise spurious elaboration constraints can generate
30311 incorrect elaboration circularities.
30313 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30314 Ed Schonberg <schonberg@gnat.com>
30316 * sem_util.adb (Is_Aliased_View): Defend against the case where this
30317 subprogram is called with a parameter that is not an object name. This
30318 situation arises for some cases of illegal code, which is diagnosed
30319 later, and in this case it is wrong to call Is_Aliased, as that might
30320 cause a compiler crash.
30321 (Explain_Limited_Type): Refine previous fix to include
30322 inherited components of derived types, to provide complete information.
30324 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30325 is the prival for a protected object.
30326 It is necessary to mark this entity as a variable, in addition to
30327 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30328 modified to avoid checking the Aliased flag on entities that are not
30329 objects. (Checking that flag for non-objects is erroneous and could
30330 lead to a compiler crash).
30332 2004-10-26 Robert Dewar <dewar@gnat.com>
30334 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30335 X_Frac = 0.5, then we know that the number X must be positive.
30336 (Succ): Remove the same redundant test, and also fix the primary test
30337 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30339 (Decompose): Add fuller comments to spec
30341 2004-10-26 Pascal Obry <obry@gnat.com>
30343 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30344 validity (process must have read access). Set to 0 in all other cases.
30345 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30346 violation on Win32.
30347 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30348 segmentation violation.
30350 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30352 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30353 whose type is a constructed subtype of an aliased object with an
30354 unconstrained nominal subtype, convert the actual to the constructed
30355 subtype before taking its address.
30357 2004-10-26 Vincent Celier <celier@gnat.com>
30359 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30360 (Is_Path_Name_Case_Sensitive): New function
30362 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30363 (Base_Name, Simple_Name, Current_Directory, Compose,
30364 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30367 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30368 Vasiliy Fofanov <fofanov@act-europe.fr>
30369 Vincent Celier <celier@gnat.com>
30371 * gnat_ugn.texi: Generalize "finding memory problems" section into a
30372 "memory management issues" section and document some of the useful
30373 memory pools provided as part of the GNAT library.
30374 Remove "virtual" from declaration of A::method2 in
30375 the simple example of Ada/C++ mixed system.
30376 Library Projects may be virtually extended: their virtual extensions
30377 are not Library Projects.
30378 Added section on extending project hierarchies.
30380 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
30382 * adaint.c (__gnat_get_libraries_from_registry): Cast value
30384 (__gnat_portable_spawn): Remove const.
30386 * mingw32.h (MAXPATHLEN): Check for previous definition.
30388 2004-10-17 Matthias Klose <doko@debian.org>
30390 * gnatvsn.ads: Set gnat library version to 4.0.
30392 2004-10-05 Vincent Celier <celier@gnat.com>
30394 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30396 2004-10-04 Laurent Guerby <laurent@guerby.net>
30399 * Makefile.in: Define and use RANLIB_FLAGS.
30401 2004-10-04 Pascal Obry <obry@gnat.com>
30403 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30404 other x86 platforms).
30406 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
30408 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30409 in general and triggers stack alignment adjustment for thread entry
30410 points on targets where this is necessary.
30412 2004-10-04 Bernard Banner <banner@gnat.com>
30415 * Makefile.in: Add section for powerpc linux
30416 Add variant i-vxwork-x86.ads
30418 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30420 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
30422 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30423 table registration calls when need be. Ensures no reference to the crt
30424 ctors symbol are issued in the SJLJ case, which avoids possible
30425 undefined symbol errors in the case of modules to be statically linked
30428 2004-10-04 Javier Miranda <miranda@gnat.com>
30430 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30431 in-line the code corresponding to subprogram Analyze_Actuals. In
30432 addition, analyze the actuals only in case of subprogram call.
30434 2004-10-04 Ed Falis <falis@gnat.com>
30436 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30438 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
30440 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30441 in the documentation.
30443 2004-10-04 Robert Dewar <dewar@gnat.com>
30445 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30447 (Analyze_Block_Statement): Add circuitry to detect following dead code
30448 (Check_Unreachable_Code): Handle case of block exit
30450 2004-10-04 Robert Dewar <dewar@gnat.com>
30452 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30453 (XMatchD): Avoid warning for Logic_Error call
30455 2004-10-04 Robert Dewar <dewar@gnat.com>
30457 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30458 consider expressions buried within a procedure actual to be an actual.
30459 This caused some blowups with uses of packed slices within a procedure
30462 2004-10-04 Robert Dewar <dewar@gnat.com>
30464 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30465 longer need to be initialized to zero.
30466 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30467 initialized to zero.
30469 * checks.adb (Expr_Known_Valid): Packed arrays are now always
30470 considered valid, even if the representation is modular. That's correct
30471 now that we no longer initialize packed modular arrays to zero.
30473 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30474 suffixes. These are now documented as the only cases in which the
30475 debugger ignores outer records.
30476 Previously, the spec allowed arbitrary suffixes for this purpose.
30477 Change name of LJM to JM for packed array pad records
30478 Create separate section on packed array handling, and add a whole new
30479 set of comments to this section describing the situation with packed
30480 modular types and justification requirements depending on endianness.
30482 2004-10-04 Robert Dewar <dewar@gnat.com>
30484 * a-except.adb: Add a comment for last change
30486 * einfo.ads: Minor spelling correction in comment
30488 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30490 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30493 * sem_util.ads: Minor comment update
30495 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30497 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30498 Inline_Always when in Configurable_Run_Time mode.
30500 * sem_prag.adb (Process_Convention): If entity is an inherited
30501 subprogram, apply convention to parent subprogram if in same scope.
30502 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30503 when in Configurable_Run_Time mode.
30505 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30507 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30508 class_wide type after component list has been inherited.
30510 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30512 * sem_ch12.adb (Check_Generic_Actuals): New predicate
30513 Denotes_Previous_Actual, to handle properly the case of a private
30514 actual that is also the component type of a subsequent array actual.
30515 The visibility status of the first actual is not affected when the
30516 second is installed.
30517 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30518 make fully recursive the treatment of formals of packages declared
30520 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30521 the above on exit from an instantiation.
30522 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30523 current instantiation which is now complete.
30524 (Analyze_Package_Instantiation): No instantiated body is needed if the
30525 main unit is generic. Efficient, and avoid anomalies when a instance
30526 appears in a package accessed through rtsfind.
30528 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30530 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30531 do not generate a declaration for a temporary if the call is part of a
30532 library-level instantiation.
30534 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30536 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30537 searching for a limited component to flag.
30539 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30540 expansion of Input, to account for the fact that the implicit call
30541 generated by the attribute reference must freeze the user-defined
30542 stream subprogram. This is only relevant to 'Input, because it can
30543 appear in an object declaration, prior to the body of the subprogram.
30545 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30546 expansion can proceed and further errors uncovered.
30547 (Minor clean up): Fix cases of using | instead of \ for continuation
30550 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30552 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30554 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30555 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30556 Use gcc_assert and gcc_unreachable.
30558 * decl.c (gnat_to_gnu_entity, case object): Check and process a
30559 specified alignment before validating size.
30560 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30561 stripped-down declaration for the type of the inner field when making
30564 * utils.c (finish_record_type): Do not compute the size in units
30565 incrementally. Instead compute it once for the rep clause case.
30566 Use gcc_assert and gcc_unreachable.
30568 2004-10-04 Vincent Celier <celier@gnat.com>
30570 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30572 (Is_Valid_Path_Name): Take '/' as a directory separator.
30574 2004-10-04 Vincent Celier <celier@gnat.com>
30576 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30577 (Extended_Project) only if Extended_Project is defined, to avoid
30579 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30581 (Parse_Single_Project): Ditto.
30583 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30584 Add_To_Project_Path for virtual projects.
30586 2004-10-04 Vincent Celier <celier@gnat.com>
30588 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30589 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30590 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
30591 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30592 parameter Options_2.
30594 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30595 Build_Dynamic_Library with an empty Options_2.
30597 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30600 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30601 directory separator, if any.
30602 (Gprmake): Do not allow mains on the command line for library projects.
30603 Do not attempt to link when the project is a library project.
30604 (Library_Opts): New table to store Library_Options.
30605 (Build_Library): If Library_Options is specified, pass these options
30606 when building a shared library.
30608 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30610 * s-tposen.adb (Service_Entry): The object must be always unlocked at
30611 the end of this procedure now that the unlock operation was inserted
30614 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30616 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30617 corresponding to the Preallocated_Stacks flags in System.
30618 (Get_Target_Parameters): Including the processing for
30619 Preallocated_Stacks.
30621 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30622 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30623 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30624 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30625 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30626 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30627 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30628 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30629 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30630 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
30631 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30632 used to signal whether the compiler creates the required stacks and
30633 descriptors for the different tasks (when True) or it is done by the
30634 underlying operating system at run time (when False).
30635 It is initially set to False in all targets.
30637 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30638 if it is supported by the target.
30639 (Make_Task_Create_Call): Pass the stack address if it has been
30640 previously created. Otherwise pass a Null_Address.
30642 * snames.adb: Add _stack.
30644 * snames.ads: Add Name_uStack. Required to allow the expander to
30645 statically allocated task stacks.
30647 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30648 Stack_Address argument.
30649 Check that its value is equal to Null_Address because this target does
30650 not support the static stack allocation.
30652 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30654 * usage.adb: Change "pragma inline" to "pragma Inline" in information
30657 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30659 * exp_dist.adb: Split declaration of asynchronous flag out of
30660 Add_RACW_Read_Attribute.
30661 Minor reformatting for better alignment with PolyORB version.
30662 Store the entity for the asynchronous flag of an RACW, rather than the
30663 expression, in the asynchronous flags table. This will allow this flag
30664 to be used in other subprograms beside Add_RACW_Read_Attribute.
30666 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30668 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
30669 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30670 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30671 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
30672 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
30673 sockets constant MSG_NOSIGNAL (Linux-specific).
30674 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30675 all Send operations.
30676 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30677 from trigerring SIGPIPE.
30678 Rename components to avoid clash with Ada 2005 possible reserved
30680 (Check_Selector): When the select system call returns with an error
30681 condition, propagate Socket_Error to the caller.
30683 2004-10-01 Jan Hubicka <jh@suse.cz>
30685 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30687 2004-09-23 Robert Dewar <dewar@gnat.com>
30690 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30691 instead do this at freeze time (we won't do it if there is an address
30693 Change "pragma inline" to "pragma Inline" in information and error
30695 Minor reformatting.
30697 * freeze.adb (Check_Address_Clause): Remove previous change, not the
30698 right way of doing things after all.
30699 (Freeze_Entity): For object, set Is_Public for imported entities
30700 unless there is an address clause present.
30702 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
30704 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30705 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30706 ensures proper handling of types with rep clauses, which might have
30707 their TYPE_SIZE set already.
30709 2004-09-21 Robert Dewar <dewar@gnat.com>
30711 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30712 packed array types in both little- and big-endian cases. This change
30713 ensures that we no longer count on the unused bits being initialized
30714 for such types (and in particular ensures that equality testing will
30715 only read the relevant bits).
30716 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30717 These changes mean that we no longer need to initialize small packed
30719 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30720 optimization to an LJM field as to its parent field.
30722 * ada-tree.h, trans.c, utils.c, utils2.c:
30723 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30725 2004-09-20 Jan Hubicka <jh@suse.cz>
30727 * utils.c (gnat_finalize): Remove.
30728 (end_subprog_body): Directly call cgraph_finalize_function;
30729 do not lower the nested functions.
30731 2004-09-20 Robert Dewar <dewar@gnat.com>
30734 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30735 if an address clause is present, since that means that the Import
30738 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
30740 * 5tsystem.ads: Removed, no longer used.
30742 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
30743 Zack Weinberg <zack@codesourcery.com>
30745 * ada-tree.def: Use tree_code_class enumeration constants
30746 instead of code letters.
30747 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30748 Update for new tree-class enumeration constants.
30750 2004-09-17 Vincent Celier <celier@gnat.com>
30752 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30753 capabilities of the general project manager.
30755 2004-09-09 Vincent Celier <celier@gnat.com>
30757 * a-direct.ads: Add pragma Ada_05
30758 (Directory_Entry_Type): Give default value to component Kind to avoid
30759 not initialized warnings.
30761 * a-direct.adb (Current_Directory): Remove directory separator at the
30763 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30764 an existing directory.
30765 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30766 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30767 Convert the result to File_Size.
30769 * prj.ads: (Project_Error): New exception
30771 * prj-attr.adb: Except in procedure Initialize, Fail comes from
30772 Prj.Com, not from Osint.
30773 (Attrs, Package_Attributes): Tables moved to private part of spec
30774 (Add_Attribute, Add_Unknown_Package): Moved to new child package
30776 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30777 Prj.Project_Error after call to Fail.
30778 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30779 Fail. Check that package name is not already in use.
30781 * prj-attr.ads: Comment updates to indicate that all subprograms may be
30782 used by tools, not only by the project manager, and to indicate that
30783 exception Prj.Prj_Error may be raised in case of problem.
30784 (Add_Unknown_Package, Add_Attribute): Moved to new child package
30786 (Attrs, Package_Attributes): Table instantiations moved from the body to
30787 the private part to be accessible from Prj.Attr.PM body.
30789 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
30790 from new package Prj.Attr.PM.
30791 (Parse_Attribute_Declaration): Call Add_Attribute from new package
30794 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
30796 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
30797 instead of Elaboration_Checks).
30799 * a-calend.adb: Minor reformatting
30801 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30803 * gigi.h (maybe_pad_type): New declaration.
30804 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
30806 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
30808 * cuintp.c: Convert to use buildN.
30810 * decl.c (maybe_pad_type): No longer static.
30811 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
30813 Convert to use buildN.
30815 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
30816 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
30817 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
30819 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
30820 (gnat_gimplify_expr, case ADDR_EXPR): New case.
30821 Convert to use buildN.
30823 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
30824 TREE_READONLY for const.
30825 Convert to use buildN.
30827 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
30828 (create_var_decl): Refine when TREE_STATIC is set.
30829 Convert to use buildN.
30831 2004-09-09 Gary Dismukes <dismukes@gnat.com>
30833 * gnat_ugn.texi: Delete text relating to checking of ali and object
30836 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
30839 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
30841 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
30842 pragmas recognized by GNAT.
30844 * gnat_rm.texi: Document pragma Detect_Blocking.
30846 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
30847 raise Program_Error if called from a protected operation.
30849 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
30850 the protected action nesting level.
30851 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
30852 protected action nesting level.
30853 (Unlock): When pragma Detect_Blocking is active decrease the protected
30854 action nesting level.
30856 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
30857 Protected_Action_Nesting.
30859 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
30860 Common_ATCB record. It contains the dynamic level of protected action
30861 nesting for each task. It is needed for checking whether potentially
30862 blocking operations are called from protected operations.
30863 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
30864 Detect_Blocking is active or not in the partition.
30866 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
30867 raise Program_Error if called from a protected operation.
30868 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
30869 Program_Error if called from a protected operation.
30870 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
30871 Program_Error if called from a protected operation.
30873 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
30874 raise Program_Error if called from a protected operation.
30876 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
30877 raise Program_Error if called from a protected operation, and increase
30878 the protected action nesting level.
30879 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
30880 Program_Error if called from a protected operation, and increase the
30881 protected action nesting level.
30882 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
30883 protected action nesting level.
30885 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
30886 raise Program_Error if called from a protected operation, and increase
30887 the protected action nesting level.
30888 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
30889 Program_Error if called from a protected operation, and increase the
30890 protected action nesting level.
30891 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
30892 raise Program_Error if called from a protected operation.
30893 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
30894 active, raise Program_Error if called from a protected operation.
30895 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
30896 protected action nesting level.
30898 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
30899 insertion of the statement raising Program_Error. The run time
30900 contains the required machinery for handling that.
30902 * sem_util.ads: Change comment associated to procedure
30903 Check_Potentially_Blocking_Operation.
30904 This procedure does not insert a call for raising the exception because
30905 that is currently done by the run time.
30907 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
30909 * init.c: Add the global variable __gl_detect_blocking that indicates
30910 whether pragma Detect_Blocking is active (1) or not (0). Needed for
30911 making the pragma available at run time.
30912 (__gnat_set_globals): Pass and update the detect_blocking parameter.
30914 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
30915 pragma Detect_Blocking is active.
30917 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
30919 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
30920 DB is found in the ali file. Any unit compiled with pragma
30921 Detect_Blocking active forces its effect in the whole partition.
30923 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
30924 Detect_Blocking is active and delay is called from a protected
30927 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
30928 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
30929 Detect_Blocking is active (0 otherwise).
30930 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
30931 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
30934 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
30936 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
30937 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
30940 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
30941 (Register_Receiving_Stub): Add Subp_Info formal parameter.
30942 Update API in placeholder implemetation of s-parint to reflect changes
30943 in distribution runtime library.
30945 * sem_ch3.adb (Expand_Derived_Record): Rename to
30946 Expand_Record_Extension.
30948 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
30949 primitive operations of potentially distributed object types that have
30950 non-controlling anonymous access formals.
30952 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
30954 New implementation of expansion for remote access-to-subprogram types,
30955 based on the RACW infrastructure.
30956 This version of sem_dist is compatible with PolyORB/DSA as well as
30959 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
30960 Asynchrronous that applies to a remote access-to-subprogram type, mark
30961 the underlying RACW type as asynchronous.
30963 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
30964 __gnat_using_gnu_linker to 1.
30966 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
30967 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
30968 GNAT.Perfect_Hash_Generators, and remove the empty
30969 GNAT.Perfect_Hash package.
30971 * atree.adb: Minor reformatting
30973 * exp_ch3.adb (Expand_Derived_Record): Rename to
30974 Expand_Record_Extension.
30975 (Build_Record_Init_Proc.Build_Assignment): The default expression in
30976 a component declaration must remain attached at that point in the
30977 tree so New_Copy_Tree copies it if the enclosing record type is derived.
30978 It is therefore necessary to take a copy of the expression when building
30979 the corresponding assignment statement in the init proc.
30980 As a side effect, in the case of a derived record type, we now see the
30981 original expression, without any rewriting that could have occurred
30982 during expansion of the ancestor type's init proc, and we do not need
30983 to go back to Original_Node.
30985 * exp_ch3.ads (Expand_Derived_Record): Rename to
30986 Expand_Record_Extension.
30988 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
30989 Returns the RACW type used to implement a remote access-to-subprogram
30991 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
30992 New subprograms. Used to create a proxy tagged object for a remote
30993 subprogram. The proxy object is used as the designated object
30994 for RAS values on the same partition (unless All_Calls_Remote applies).
30995 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
30996 System.Partition_Interface.Get_Unique_Remote_Pointer.
30997 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
30998 Renamed from Add_RAS_*_Attribute.
30999 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31001 New implementation of expansion for remote access-to-subprogram types,
31002 based on the RACW infrastructure.
31004 * exp_dist.ads (Copy_Specification): Update comment to note that this
31005 function can copy the specification from either a subprogram
31006 specification or an access-to-subprogram type definition.
31008 2004-09-09 Ed Schonberg <schonberg@gnat.com>
31010 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31011 in an instance, between an explicit subprogram an one inherited from a
31012 type derived from an actual.
31014 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31015 add a polling call if the subprogram is to be inlined by the back-end,
31016 to avoid repeated calls with multiple inlinings.
31018 * checks.adb (Apply_Alignment_Check): If the expression in the address
31019 clause is a call whose name is not a static entity (e.g. a dispatching
31020 call), treat as dynamic.
31022 2004-09-09 Robert Dewar <dewar@gnat.com>
31024 * g-trasym.ads: Minor reformatting
31026 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31027 packed arrays, since unused bits are expected to be zero for a
31030 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
31032 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31035 2004-09-09 Pascal Obry <obry@gnat.com>
31037 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31038 enable map file generation. Add the right option to generate the map
31039 file if Map_File is set to True.
31041 * gnatdll.adb (Gen_Map_File): New variable.
31042 (Syntax): Add info about new -m (Map_File) option.
31043 (Parse_Command_Line): Add support for -m option.
31044 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31045 Minor reformatting.
31047 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
31049 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31050 new gnatdist implementation.
31051 Define a subpackage isolating the output routines specific to this
31054 2004-09-09 Joel Brobecker <brobecker@gnat.com>
31056 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31058 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31060 2004-09-09 Cyrille Comar <comar@act-europe.fr>
31062 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31065 * opt.ads: Add Ada_Version_Runtime constant used to decide which
31066 version of the language is used to compile the run time.
31068 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
31070 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31071 of variable length temporaries for function return now that the
31072 back-end and gigi support it.
31074 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31076 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31078 * trans.c (struct stmt_group): Delete field GLOBAL.
31079 (gnat_init_stmt_group): Do not initialize it.
31080 (call_to_gnu): Use save_expr, not protect_multiple_eval.
31081 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31082 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31083 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31084 (start_stmt_group): Likewise.
31085 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31087 * utils2.c (ggc.h): Include.
31088 (build_call_raise): Call build_int_cst, not build_int_2.
31090 * utils.c (gnat_init_decl_processing): Fix arg to
31091 build_common_tree_nodes.
31092 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31093 (gnat_define_builtin): Set built_in_decls.
31094 (init_gigi_decls): Call build_int_cst, not build_int_2.
31096 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31097 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31098 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31099 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31100 SET_TYPE_MODULE): Use them.
31101 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31102 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31103 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31104 SET_TYPE_ADA_SIZE): Likewise.
31105 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31106 (DECL_CONST_CORRESPONDING_VAR,
31107 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31108 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31109 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31110 (TYPE_RM_SIZE_NUM): New macro.
31111 (TYPE_RM_SIZE): Modified to use above.
31113 * cuintp.c: (build_cst_from_int): New function.
31114 (UI_To_gnu): Use it.
31116 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31117 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31118 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31119 MIN_EXPR for the size, copy it into new.
31121 2004-09-01 Robert Dewar <dewar@gnat.com>
31123 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31124 packed indexed component where array is an IN OUT formal. This
31125 generated garbage code previously.
31127 * gnat_ugn.texi: Document -fverbose-asm
31129 * gnat-style.texi: Minor updates (note that boolean constants and
31130 variables are joined with AND/OR rather than short circuit forms).
31132 2004-09-01 Ed Schonberg <schonberg@gnat.com>
31134 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31135 it is an upward conversion of an untagged type with no representation
31138 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
31140 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31141 System.Partition_Interface.
31143 * checks.adb (Apply_Access_Checks): Do not generate checks when
31144 expander is not active (but check for unset reference to prefix of
31147 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31148 pragma Debug as an if statement with a constant condition, for
31149 consistent treatment of entity references contained within the
31150 enclosed procedure call.
31152 2004-09-01 Vincent Celier <celier@gnat.com>
31154 * bindgen.adb: (Set_EA_Last): New procedure
31155 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31157 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31158 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31159 linked without errors.
31160 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31162 (Gen_Exception_Table_C): Correct same bugs
31164 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31166 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31167 on Windows, make sure that the drive letter is in upper case.
31169 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31170 Windows, when the drive letter is added and Case_Sensitive is True, the
31171 drive letter is forced to upper case.
31173 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31174 to Options_2 for the call to MLib.Utl.Gcc.
31176 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31177 directory separator when defining BASE_DIR.
31179 2004-09-01 Pascal Obry <obry@gnat.com>
31181 * gprcmd.adb (Extend): Do not output trailing directory separator. This
31182 is not needed and it confuses Windows GNU/make which does not report
31183 directory terminated by a slash as a directory.
31184 (gprcmd): Idem for "pwd" internal command.
31186 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31187 target names rewrite to fix regressions with recent version of
31188 GNU/make. Starting with GNU/make 3.80 the pipe character was not
31189 handled properly anymore.
31191 2004-09-01 Andreas Schwab <schwab@suse.de>
31193 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31194 * raise.c [!IN_RTS]: Undef abort.
31196 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
31198 * utils2.c (build_allocator): Use ssize_int.
31200 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31202 2004-08-27 Andreas Schwab <schwab@suse.de>
31204 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31206 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31207 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31209 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31211 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31213 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31214 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31215 * utils.c (init_gigi_decls): Likewise.
31216 * utils2.c (build_call_raise, build_allocator): Likewise.
31218 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
31220 * utils.c (gnat_init_decl_processing): Adjust
31221 build_common_tree_nodes call.
31223 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
31225 * utils2.c (build_allocator): Use build_int_cst for negative
31228 2004-08-18 Richard Henderson <rth@redhat.com>
31230 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31232 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
31234 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31236 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31237 (gnat_to_gnu): Likewise.
31239 2004-08-16 Pascal Obry <obry@gnat.com>
31241 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31242 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31243 option and not mdll anymore. Update comment.
31245 2004-08-16 Pascal Obry <obry@gnat.com>
31247 * bld.adb (Put_Include_Project): Properly handle directory separators
31250 2004-08-16 Ed Schonberg <schonberg@gnat.com>
31252 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31253 decreasing the number of allocated junk nodes while searching for the
31254 appropriate subprogram.
31256 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
31258 * cuintp.c (UI_To_gnu): Use build_int_cst..
31259 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31260 * utils.c (init_gigi_decls): Likewise.
31261 * utils2.c (build_call_raise): Likewise.
31263 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
31265 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31266 for a global aliased object with a variable size and an unconstrained
31267 nominal subtype, pretend there is no initializer if the one we have is
31268 incomplete, and avoid referencing an inexistant component in there. The
31269 part we have will be rebuilt anyway and the reference may confuse
31270 further operations.
31272 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
31274 * einfo.ads: Minor reformatting
31276 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31277 restrictions in the ALI if we only want to warn about violations.
31279 2004-08-13 Vincent Celier <celier@gnat.com>
31281 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31282 when creating a new Unit_Record in table Units.
31284 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31285 that are violated, if any.
31287 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31288 add directory separator if path already ends with a directory separator.
31290 2004-08-13 Ed Schonberg <schonberg@gnat.com>
31292 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31293 unit, this is an attempt to inline a construct that is not available in
31294 the current restricted mode, so abort rather than trying to continue.
31296 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31297 discriminants that rename those of the parent, recover names of
31298 original discriminants for the constraint on the full view of the
31300 (Complete_Private_Subtype): Do not create a subtype declaration if the
31301 subtype is an itype.
31303 * gnat_rm.texi: Added section on implementation of discriminated
31304 records with default values for discriminants.
31306 2004-08-13 Ed Schonberg <schonberg@gnat.com>
31309 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31310 the second operand is overloaded.
31312 2004-08-10 Richard Henderson <rth@redhat.com>
31314 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31315 add __builtin_alloca.
31317 2004-08-10 Richard Henderson <rth@redhat.com>
31319 * config-lang.in (boot_language): Yes.
31321 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
31323 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31324 from complaining on potential uninitialized reference.
31325 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31326 new specification and test explicitly for non-zero return value.
31328 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31329 returning C.int, to avoid using a derived boolean type.
31331 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31332 Duplicate_Subexpr_No_Checks in preference to direct use of
31333 Remove_Side_Effects and New_Copy_Tree.
31334 Clear Comes_From_Source on prefix of 'Size attribute reference.
31336 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31337 g-socthi-vxworks.adb: Change calls to
31338 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31339 and test explicitly for non-zero return value.
31341 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31342 (Is_Socket_In_Set): Declare imported function as returning C.int, to
31343 avoid using a derived boolean type.
31345 2004-08-09 Albert Lee <lee@gnat.com>
31347 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31349 2004-08-09 Pascal Obry <obry@gnat.com>
31351 * gnat_ugn.texi: Document new way to build DLLs on Windows using
31352 GCC's -shared option.
31354 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31355 Options_2 parameter (options put after object files).
31357 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
31359 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31360 ignore overflows on low and high bounds of an index to also account for
31361 differences in signedness between sizetype and gnu_index_subtype.
31362 These are as legitimate as the ones caused by a lower TYPE_PRECISION
31365 2004-08-09 Robert Dewar <dewar@gnat.com>
31367 * s-solita.ads, s-solita.adb: Minor reformatting
31369 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31370 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31371 obsolescent section
31372 Add note that No_Implicit_Conditionals does not suppress
31373 run time constraint checks.
31375 * vms_conv.ads: Minor reformatting
31377 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31378 and necessary for following change).
31379 (Mark): Return new format Mark_Id containing sec stack address
31380 (Release): Use sec stack address from Mark_Id avoiding Self call
31382 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31383 pointer (cleanup and necessary for following change).
31384 Define Mark_Id as record containing address of secondary stack, that way
31385 Release does not need to find the stack again, decreasing the number of
31386 calls to Self and improving efficiency.
31388 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31390 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31391 case variable into the individual case branches when possible.
31393 * sem_ch11.adb: Minor reformatting
31395 * prj.ads: Correct spelling of suffixs
31397 * prj-nmsc.adb: Minor reformatting
31398 Correct spelling suffixs throughout (also in identifiers)
31400 * freeze.adb: Minor spelling correction
31402 * exp_ch2.adb: Cleanups to handling of Current_Value
31403 (no functional effect).
31405 * bld.adb: Correct spelling of suffixs
31407 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31409 2004-08-09 Ed Schonberg <schonberg@gnat.com>
31412 * sem_ch7.adb (Install_Private_Declarations): In the body of the
31413 package or of a child, private entities are both immediately_visible
31416 2004-08-09 Ed Schonberg <schonberg@gnat.com>
31418 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31419 there are no range checks on the value of the literal.
31421 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31422 wrapped is the triggering alternative of an asynchronous select, action
31423 statements mustbe inserted before the select itself.
31425 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31426 case where the prefix is a protected function call.
31427 (Resolve_Attribute, case 'Access): The attribute reference on a
31428 subprogram is legal in a generic body if the subprogram is declared
31431 2004-08-09 Vincent Celier <celier@gnat.com>
31433 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31434 languages, otherwise building the library may fail with unresolved
31436 (Compile_Sources): Do not build libraries if -c switch is used
31438 * gnatlink.adb (Process_Args): New switches -M and -Mmap
31439 (Write_Usage): If map file creation is supported, output new switches
31441 (Gnatlink): When -M is specified, add the necessary switch(es) to the
31442 gcc call, when supported.
31444 * Makefile.in: Added indepsw.o to the object list for gnatlink
31445 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31447 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31448 indepsw.adb, indepsw.ads: New files.
31450 2004-08-09 Bernard Banner <banner@gnat.com>
31452 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31454 * Makefile.in: add section for vxworks x86
31456 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
31458 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31459 per-object constrained components where the discriminant is of an
31461 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31462 the parent initialization procedure for derived Unchecked_Unions.
31463 Instead, derived Unchecked_Unions build their own initialization
31465 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31466 Check the body of the subprogram for details.
31467 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31468 functions for derived Unchecked_Union types by introducing a condition.
31469 Allow the creation of TSS equality functions for Unchecked_Unions.
31470 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31471 Add formal parameter Discr to function signature. Discr is used to
31472 control the generated case statement for Unchecked_Union types.
31473 (Make_Eq_If): Rename formal parameter Node to E in function signature.
31475 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31477 Check the body of the subprogram for details.
31478 (Expand_Composite_Equality): Augment composite type equality to include
31479 correct handling of Unchecked_Union components.
31480 (Expand_N_In): Add condition to detect illegal membership tests when the
31481 subtype mark is a constrained Unchecked_Union and the expression lacks
31482 inferable discriminants, and build a Raise_Program_Error node.
31483 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31484 to detect types that contain components of unconstrained Unchecked_Union
31485 subtype. Add condition to detect equality between types that have an
31486 unconstrained Unchecked_Union component, and build a Raise_Program_Error
31487 node. Add condition to detect equality between Unchecked_Union types
31488 that lack inferable discriminants, and build a Raise_Program_Error node.
31489 Otherwise build a TSS equality function call.
31490 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31491 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31492 with the operand lacking inferable discriminants, and build a Raise_
31493 Program_Error node.
31494 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31495 composite equality.
31496 (Has_Inferable_Discriminants): Implement new predicate for objects and
31497 expressions of Unchecked_Union type. Check the body of subprogram for
31499 (Has_Unconstrained_UU_Components): Add function
31500 Component_Is_Unconstrained_UU. It is used to detect whether a single
31501 component is of an unconstrained Unchecked_Union subtype. Add function
31502 Variant_Is_Unconstrained_UU. It is used to detect whether a single
31503 component inside a variant is of an unconstrained Unchecked_Union type.
31505 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31506 inferred discriminant values. Add condition to generate a case
31507 statement with an inferred discriminant as the switch.
31508 (Make_Component_List_Assign): Introduce a Boolean flag that determines
31509 the behaviour of the subprogram in the presence of an Unchecked_Union.
31510 Add condition to trigger the usage of the inferred discriminant value
31511 as the generated case statement switch.
31512 (Make_Field_Assign): Introduce a Boolean flag that determines the
31513 behaviour of the subprogram in the presence of an Unchecked_Union. Add
31514 condition to trigger the usage of the inferred discriminant value as
31515 the right-hand side of the generated assignment.
31517 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31518 parameter generation when dealing with Unchecked_Unions.
31520 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31521 checks for Unchecked_Unions.
31523 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31525 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31526 Raise_Program_Error nodes for the execution of Read and Write
31527 attributes of Unchecked_Union types and the execution of Input and
31528 Output attributes of Unchecked_Union types that lack default
31529 discriminant values.
31531 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31532 Unchecked_Union. Add procedure Check_Component. It is used to inspect
31533 per-object constrained components of Unchecked_Unions for being
31534 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31535 check individual components withing a variant.
31537 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31538 comparison of Unchecked_Unions.
31539 (Resolve_Equality_OP): Remove guard that prevents equality between
31542 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31543 of component subtypes for Unchecked_Union components.
31544 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31545 since it is the actual subtype.
31547 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31548 pass of Unchecked_Union subtypes as generic actuals to formal types
31549 that lack known_discriminant_parts or that are derived Unchecked_Union
31550 types, and do nothing. In any other case, produce an error message.
31552 * sem_ch3.adb (Analyze_Component_Declaration): Add function
31553 Contains_POC. It determines whether a constraint uses the discriminant
31554 of an enclosing record type.
31555 Add condition to detect per-object constrained component and set the
31557 (Derived_Type_Declaration): Remove guard that prevents derivation from
31558 Unchecked_Union types.
31559 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31562 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31563 references to Unchecked_Union discriminants.
31565 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31566 formal generation when dealing with Unchecked_Unions.
31567 (Set_Actual_Subtypes): Add condition to prevent generation of actual
31568 subtypes for Unchecked_Unions.
31570 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31571 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31572 completions of discriminated partial views by Unchecked_Unions and
31573 produce an error message.
31575 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31577 * trans.c (struct stmt_group): New field, GLOBAL.
31578 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31579 (struct elab_info): New struct.
31580 (elab_info_list, gnu_elab_proc_stack): New variables.
31581 (Compilation_Unit_to_gnu): New procedure.
31582 (gigi): Call it and also handle elaboration procs we've saved.
31583 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31584 global field from parent.
31585 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31586 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31587 (start_stmt_group): Initialize global field from parent.
31588 (add_decl_expr): Set to global for current statement group.
31589 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31592 * utils.c (global_bindings_p): True when no current_function_decl; no
31593 longer check current_binding_level.
31595 2004-08-09 Ben Brosgol <brosgol@gnat.com>
31597 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31600 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31602 2004-08-06 Andreas Schwab <schwab@suse.de>
31604 * utils.c (gnat_define_builtin): Remove second parameter of
31606 (begin_subprog_body): Likewise.
31608 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
31610 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31611 optimization, not supported by the tree-ssa back-end.
31613 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
31615 * s-mastop-irix.adb: Update comments.
31617 * a-except.adb (Exception_Information): Raise Constraint_Error if
31618 exception Id is Null_Id.
31619 This is required behavior, which is more reliably and clearly checked
31620 at the top level interface level.
31622 2004-07-26 Javier Miranda <miranda@gnat.com>
31624 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31625 call if a component has no default_expression and the box is used.
31627 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31628 default_expression and you use box, it behaves as if you had declared a
31629 stand-alone object.
31630 (Resolve_Record_Aggregate): If a component has no default_expression and
31631 you use box, it behaves as if you had declared a stand-alone object.
31633 * sem_ch10.adb (Install_Siblings): Do not make visible the private
31634 entities of private-with siblings.
31636 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31638 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31639 for a component of an itype, set the parent pointer for analysis,
31640 there is no list in which to insert it.
31642 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31643 bona-fide renamings, not for inherited operations.
31645 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31646 actual for a formal that is an access parameter, create local
31647 finalization list even if the expression is not an aggregate.
31649 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31652 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31653 Diagnose properly illegal subprogram renamings that are library units.
31655 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31658 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31659 conversion rewritten as an unchecked conversion, check that original
31660 expression is a variable.
31662 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31663 unchecked_conversion, create new node rather than rewriting in place,
31664 to preserve original construct.
31666 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31668 * gigi.h (gnat_expand_body): Deleted.
31670 * Make-lang.in: (trans.o): Depends on function.h.
31672 * misc.c: (gnat_expand_body): Moved to here.
31674 * trans.c (gnat_expand_body_1): Deleted.
31675 (gnat_expand_body): Moved from here.
31676 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31677 (add_stmt): Check for marked visited with global_bindings_p.
31678 (gnat_gimplify_expr, case COMPONENT_REF): New case.
31679 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31681 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31682 VIEW_CONVERT_EXPR if not operation type.
31684 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31687 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31688 changes: reformatting of negation operators, removing unneeded
31689 inequality comparison with zero, converting equality comparisons with
31690 zero to negations, changing int/0/1 to bool/false/true, replace calls
31691 to gigi_abort with abort, and various other similar changes.
31693 2004-07-26 Vincent Celier <celier@gnat.com>
31695 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31698 * make.adb (Gnatmake): Fail when a library is not present and there is
31699 no object directory.
31701 * mlib-prj.adb (Check_Library): No need to check if the library needs
31702 to be rebuilt if there is no object directory, hence no object files
31703 to build the library.
31705 * opt.ads (Setup_Projects): New Boolean flag.
31707 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31709 Create directory when Kind /= "" and in "gnat setup". Report error if
31710 directory cannot be created.
31711 (Ada_Check): Create library interface copy dir if it does not exist
31712 and we are in "gnat setup".
31713 (Find_Sources): No error if in "gnat setup" and no Ada sources were
31715 (Language_Independent_Check): Create object directory, exec directory
31716 and/or library directory if they do not exist and we are in
31719 * vms_conv.ads: (Command_Type): New command Setup.
31721 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31723 * vms_data.ads: Add qualifiers/switches for new built-in command
31726 2004-07-25 Richard Henderson <rth@redhat.com>
31728 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31729 DECL_IGNORED_P on RESULT_DECL.
31731 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
31733 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31734 allocation and potentially overflowing update with
31735 Tailored_Exception_Information. Use the sec-stack free procedural
31736 interface to output Exception_Information instead.
31738 * a-except.adb (To_Stderr): New subprogram for character, and string
31739 version moved from a-exextr to be visible from other separate units.
31740 (Tailored_Exception_Information): Remove the procedural version,
31741 previously used by the default Last_Chance_Handler and not any more.
31742 Adjust various comments.
31744 * a-exexda.adb: Generalize the exception information procedural
31745 interface, to minimize the use of secondary stack and the need for
31746 local buffers when the info is to be output to stderr:
31747 (Address_Image): Removed.
31748 (Append_Info_Character): New subprogram, checking for overflows and
31749 outputing to stderr if buffer to fill is of length 0.
31750 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31751 (Append_Info_Address, Append_Info_Exception_Name,
31752 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31753 Append_Info_Basic_Exception_Traceback,
31754 Append_Info_Exception_Information): New subprograms.
31755 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31756 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31757 Exception_Info_Maxlength, Exception_Name_Length,
31758 Exception_Message_Length): New subprograms.
31759 (Exception_Information): Use Append_Info_Exception_Information.
31760 (Tailored_Exception_Information): Use
31761 Append_Info_Basic_Exception_Information.
31762 Export services for the default Last_Chance_Handler.
31764 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31765 other separate units.
31767 2004-07-20 Vincent Celier <celier@gnat.com>
31769 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31771 2004-07-20 Ed Schonberg <schonberg@gnat.com>
31773 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31774 emit itype references for the designated types of component types that
31775 are declared outside of the full record declaration, and that may
31776 denote a partial view of that record type.
31778 2004-07-20 Ed Schonberg <schonberg@gnat.com>
31781 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
31782 which is the designated type in an access component declaration, to the
31783 list of incomplete dependents of the parent type, to avoid elaboration
31784 issues with out-of-scope subtypes.
31785 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
31786 full view of the parent.
31788 2004-07-20 Ed Schonberg <schonberg@gnat.com>
31791 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
31792 entities that are hidden, such as references to generic actuals
31793 outside an instance.
31795 2004-07-20 Javier Miranda <miranda@gnat.com>
31797 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
31798 support to the new notation.
31799 (Analyze_Selected_Component): Add call to Try_Object_Operation.
31801 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
31803 * s-taprob.adb: Adding the elaboration code required for initializing
31804 the tasking soft links that are common to the full and the restricted
31807 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
31808 restricted run time has been moved to the package
31809 System.Soft_Links.Tasking.
31811 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
31812 restricted run time has been moved to the package
31813 System.Soft_Links.Tasking.
31815 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
31817 * s-solita.ads, s-solita.adb: New files.
31819 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31821 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
31822 Case_Statement_to_gnu): Split off from gnat_to_gnu.
31823 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
31824 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
31825 Exception_Handler_to_gnu_zcx): Likewise.
31827 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
31829 * gigi.h (builtin_function): Declare.
31831 2004-07-15 Robert Dewar <dewar@gnat.com>
31833 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
31836 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
31837 access values as an example of a warning.
31839 * gnat_rm.texi: Document new attribute Has_Access_Values
31841 * gnat-style.texi: Document that box comments belong on nested
31844 * sem_util.ads (Has_Access_Values): Improved documentation
31846 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
31848 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
31849 (Process_Interface_Name): Call to this new procedure
31850 (Set_Extended_Import_Export_External_Name): Call to this new procedure
31852 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
31854 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
31856 * einfo.ads: Minor comment typo fixed
31858 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
31860 * snames.adb: Add _atcb.
31862 * snames.ads: Add Name_uATCB.
31864 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
31865 (in the expanded code) when using the restricted run time.
31867 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
31868 a in parameter in order to allow ATCBs to be preallocated (in the
31871 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
31872 order to allow ATCBs to be preallocated. In case of error, the ATCB is
31873 deallocated in System.Tasking.Stages.
31875 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
31876 order to allow ATCBs to be preallocated.
31878 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
31879 here. It was previously done in Initialize_ATCB.
31881 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
31883 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
31884 Restricted run time.
31886 * exp_ch3.adb: When using the Restricted run time, pass the
31887 preallocated Ada_Task_Control_Block when creating a task.
31889 2004-07-15 Ed Schonberg <schonberg@gnat.com>
31891 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
31892 function call that is itself an actual in an enclosing call, diagnose
31893 problem here rather than assuming that resolution will catch it.
31895 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
31896 the local copy of a generic unit for a formal package, and the generic
31897 is a child unit, install private part of ancestors before compiling
31898 private part of spec.
31900 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
31901 use scope entities rather than tree structures, to handle properly
31902 parent units that are instances rewritten as bodies for inlining
31905 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
31906 Remove_Parents): Handle properly a parent unit that is an
31907 instantiation, when the unit has been rewritten as a body for inlining
31910 * par.adb (Goto_List): Global variable to collect goto statements in a
31911 given unit, for use in detecting natural loops.
31913 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
31914 use in detecting natural loops.
31916 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
31917 backwards goto's, and rewrite as a infinite loop, to improve locality
31920 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
31921 subcomponent that includes an indexed reference, to prevent the
31922 generation of copies that would miscompile the desired assignment
31924 (Build_Task_Image_Decls): Add a numeric suffix to
31925 generated name for string variable, to avoid spurious conflicts with
31926 the name of the type of a single protected object.
31928 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
31929 loop with an explicit exit statement, to avoid generating an
31930 out-of-range value with 'Succ leading to spurious constraint_errors
31931 when compiling with -gnatVo.
31933 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
31935 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
31936 might not be analyzed yet, even if its Etype is already set (case of an
31937 unchecked conversion built using Unchecked_Convert_To, for example).
31938 If the prefix has already been analyzed, this will be a nop anyway.
31940 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
31941 controller type, or an assignment of a record type with controlled
31942 components, copy only user data, and leave the finalization chain
31943 pointers untouched.
31945 2004-07-15 Vincent Celier <celier@gnat.com>
31947 * make.adb (Collect_Arguments): Improve error message when attempting
31948 to compile a source not part of any project, when -x is not used.
31950 * prj.ads: (Defined_Variable_Kind): New subtype
31952 * prj-attr.adb (Register_New_Package): Two new procedures to register
31953 a package with or without its attributes.
31954 (Register_New_Attribute): Mew procedure to register a new attribute in a
31956 New attribute oriented subprograms: Attribute_Node_Id_Of,
31957 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31958 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31960 New package oriented subprograms: Package_Node_Id_Of,
31961 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31963 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
31965 (Package_Node_Id): Now a private, self initialized type
31966 (Register_New_Package): New procedure to register a package with its
31968 New attribute oriented subprograms: Attribute_Node_Id_Of,
31969 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
31970 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
31972 New package oriented subprograms: Package_Node_Id_Of,
31973 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
31975 * prj-dect.adb (Parse_Attribute_Declaration,
31976 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
31978 * prj-makr.adb (Make): Parse existing project file before creating
31979 other files. Fail if there was an error during parsing.
31981 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
31982 new spec of Prj.Attr.
31984 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
31985 to new spec of Prj.Attr.
31987 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31989 * utils2.c: Fix typo in comment.
31991 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31993 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
31994 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
31996 2004-07-14 Andreas Schwab <schwab@suse.de>
31998 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32000 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32002 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32004 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32007 * misc.c (gnat_types_compatible_p): New function.
32008 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32009 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32011 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32012 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32013 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32014 (mark_visited): Don't mark dummy type.
32015 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32016 parameter, we must remove any LJM building from GNU_NAME.
32017 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32018 (pos_to_constructor): Use int_const_binop.
32019 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32022 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32023 (gnat_pushlevel): Set TREE_USE on BLOCK node.
32024 (gnat_install_builtins): Add __builtin_memset.
32026 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
32028 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32029 for a renaming, stabilize the initialization expression if we are at a
32030 local level. At the local level, uses of the renaming may be performed
32031 by a direct dereference of the initializing expression, and we don't
32032 want possible variables there to be evaluated for every use.
32034 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32035 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32036 them on the way. Account for the fact that we may introduce side
32037 effects in the process.
32039 2004-07-13 Richard Henderson <rth@redhat.com>
32041 * misc.c (default_pass_by_ref): Use pass_by_reference.
32043 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
32045 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32046 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32048 2004-07-08 Richard Henderson <rth@redhat.com>
32050 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32053 2004-07-06 Vincent Celier <celier@gnat.com>
32055 * vms_conv.ads: Minor reformatting.
32056 Alphabetical order for enumerated values of type Command_Type, to have
32057 the command in alphabetical order for the usage.
32059 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32060 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32062 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32064 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32065 (Add_Archive_Path): Only add the global archive if there is one.
32066 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32067 or not any object file to put in the global archive, and don't build
32068 a global archive if there is none.
32069 (X_Switches): New table
32070 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32071 in the X_Switches table, if any.
32072 (Initialize): Make sure the X_Switches table is empty
32073 (Scan_Arg): Record -X switches in table X_Switches
32075 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32077 * make.adb: Minor comment fix
32079 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32080 invoked with directory information, add the directory in front of the
32083 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32084 invoked with directory information, add the directory in front of the
32087 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32088 when Keep_Temporary_Files is False.
32089 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32090 directory information, add the directory in front of the path.
32091 When not on VMS, handle new switch -dn before the command to set
32092 Keep_Temporary_Files to True.
32093 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32096 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32097 invoked with directory information, add the directory in front of the
32100 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
32102 * snames.ads, snames.adb (Name_Stub): New name for the distributed
32105 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32106 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32108 * g-socket.adb (To_Timeval): Fix incorrect conversion of
32109 Selector_Duration to Timeval for the case of 0.0.
32111 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32112 documentation from Evolve_And_Then.
32114 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
32116 * s-taprop-tru64.adb, s-taprop-os2.adb,
32117 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32119 2004-07-06 Robert Dewar <dewar@gnat.com>
32121 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32122 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32123 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32124 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32125 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32126 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32127 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32128 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32129 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32130 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32131 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32132 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32133 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32134 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32135 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32136 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32137 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32138 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32139 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32140 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32141 vms_data.ads: Minor reformatting,
32142 Fix bad box comment format.
32144 * gnat_rm.texi: Fix minor grammatical error
32146 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32148 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32149 more cases of discriminated records to be recognized as not needing a
32151 (Has_Access_Values): New function.
32153 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32155 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32156 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32157 with LRM terminology).
32158 Change terminology in comments primitive type => elementary type.
32160 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32163 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32164 parameters do not impose any requirements on the presence of a body.
32166 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32169 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32170 compilation unit and is in an open scope at the point of instantiation,
32171 assume that a body may be present later.
32173 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32175 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32176 Improve error message when specified size is not supported.
32178 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32179 is never a primitive operation.
32181 2004-07-05 Andreas Schwab <schwab@suse.de>
32183 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32184 RECORD_OR_UNION_CHECK.
32185 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32187 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
32189 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32190 dependency on xgnatugn, instead build it via a submake.
32191 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32193 2004-07-04 Richard Henderson <rth@redhat.com>
32195 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32197 2004-07-01 Richard Henderson <rth@redhat.com>
32199 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32200 * utils.c (max_size): Likewise.
32202 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32204 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32205 and rest_of_type_compilation; add arg to create_*_decl.
32206 (annotate_decl_with_node): Deleted.
32207 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32208 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32209 (get_current_block_context, gnat_pushdecl): New declarations.
32210 (gnat_init_stmt_group): Likewise.
32211 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32212 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32213 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32214 (gnat_init): Call gnat_init_stmt_group.
32215 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32216 (gnu_pending_elaboration_list): Deleted.
32217 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32218 (gigi): Rearrange initialization calls and move some to last above.
32219 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32220 Delete calls to add_decl_expr; add arg to create_*_decl.
32221 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32222 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32223 begin_subprog_body and call it.
32224 Don't push and pop ggc context.
32225 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32226 (add_stmt): Remove handling of DECL_EXPR from here.
32227 If not in function, mark visited.
32228 (add_decl_expr): Put global at top level.
32229 Check for cases of DECL_INITIAL we have to handle here.
32230 (process_type): Add extra arg to create_type_decl.
32231 (build_unit_elab): Rework to just gimplify.
32232 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32233 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32234 (get_pending_elaborations, pending_elaborations_p): Likewise.
32235 (push_pending_elaborations, pop_pending_elaborations): Likewise.
32236 (get_elaboration_location, insert_elaboration_list): Likewise.
32237 (gnat_binding_level): Renamed from ada_binding_level.
32238 (init_gnat_to_gnu): Don't clear pending_elaborations.
32239 (global_bindings_p): Treat as global if no current_binding_level.
32240 (set_current_block_context): New function.
32241 (gnat_pushdecl): Renamed from pushdecl; major rework.
32242 All callers changed.
32243 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32244 (finish_record_type): Call call pushdecl for stub decl.
32245 (function_nesting_depth): Deleted.
32246 (begin_subprog_body): Delete obsolete code.
32247 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32249 2004-06-28 Robert Dewar <dewar@gnat.com>
32251 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32252 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32253 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32254 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32255 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32257 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32258 deal with problem of inefficient slices on machines with strict
32259 alignment, when the slice is a component of a composite.
32261 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32262 machines, we need the check there as well.
32264 2004-06-28 Ed Schonberg <schonberg@gnat.com>
32266 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32267 determine safe copying direction for overlapping slice assignments
32268 when component is controlled.
32270 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32271 formal derived type in the actual for a formal package are visible in
32272 the enclosing instance.
32274 2004-06-28 Ed Schonberg <schonberg@gnat.com>
32277 * sem_util.adb (Trace_Components): Diagnose properly an illegal
32278 circularity involving a private type whose completion includes a
32279 self-referential component.
32280 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32281 renaming or an instantiation from an implicit derived operation.
32283 2004-06-28 Pascal Obry <obry@gnat.com>
32285 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32287 (Library_File_Name_For): Idem.
32289 2004-06-28 Matthew Gingell <gingell@gnat.com>
32291 * g-traceb.ads: Add explanatory note on the format of addresses
32292 expected by addr2line.
32294 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
32296 * Makefile.in: Force debugging information on s-tasdeb.adb,
32297 a-except.adb and s-assert.adb needed by the debugger.
32299 2004-06-28 Vincent Celier <celier@gnat.com>
32301 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32305 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32307 * prj.adb: Minor reformatting
32308 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32310 * prj.ads: Comment updates
32312 (Project_Data): Change Flag1 to Need_To_Build_Lib.
32313 Remove Flag2: not used.
32315 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32318 * gnat_ugn.texi: Put a "null;" declaration in one project file example
32320 * gnat_rm.texi: Document Empty declarations "null;".
32322 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32323 front of the linker options.
32324 (Link_Foreign): Put the global archives and the libraries in front of
32325 the linker options.
32327 2004-06-28 Javier Miranda <miranda@gnat.com>
32329 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32330 (RTU_Loaded): Code cleanup
32331 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32332 withed predefined units.
32334 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32335 explicitly withed predefined units.
32336 Fix typo in comment
32338 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32339 explicitly withed predefined units.
32341 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32343 * ada-tree.def (DECL_STMT): Deleted.
32344 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32345 (DECL_STMT_VAR): Deleted.
32346 * decl.c: add_decl_stmt now add_decl_expr.
32347 * gigi.h: Likewise.
32348 * trans.c: Likewise.
32349 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32350 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32351 (add_stmt): Only handle padded type here.
32352 (add_stmt_with_node): Allow gnat_node to not be present.
32353 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32354 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32355 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32356 make a SAVE_EXPR for the entire fat pointer.
32357 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32358 (create_index_type): Make a DECL_EXPR.
32359 (end_subprog_body): Don't call allocate_struct_function here but
32362 2004-06-25 Pascal Obry <obry@gnat.com>
32364 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32365 Relocatable from Build_Dynamic_Library call.
32367 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32368 Relocatable are now synonym.
32370 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32372 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32373 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32376 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32377 Lib_Address and Relocatable.
32378 (Default_DLL_Address): Removed.
32380 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32381 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32382 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32383 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32384 (Default_DLL_Address): Removed.
32386 * mlib-tgt-mingw.adb: Ditto.
32387 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32389 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32390 the initial thread stack size.
32392 * a-strmap.ads: Move package L to private part as it is not used in
32393 the spec. Found while reading code.
32395 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
32397 * tracebak.c: Introduce support for a GCC infrastructure based
32398 implementation of __gnat_backtrace.
32400 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32401 any more. Use accessors instead. This eases maintenance and relaxes
32402 some alignment constraints.
32403 (_GNAT_Exception structure): Remove the Ada specific fields
32404 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32406 (is_handled_by, __gnat_eh_personality): Replace component references to
32407 exception structure by use of the new accessors.
32409 * init.c (__gnat_initialize): Adjust comments to match the just
32410 reverted meaning of the -static link-time option.
32412 * adaint.c (convert_addresses): Arrange not to define a stub for
32413 mips-irix any more, as we now want to rely on a real version from a
32414 recent libaddr2line.
32416 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32417 the personality routine can use them and not have to rely on a C
32418 counterpart of the record anymore. This simplifies maintenance and
32419 relaxes the constraint of having Standard'Maximum_Alignment match
32421 Update comments, and add a section on the common header alignment issue.
32423 2004-06-25 Geert Bosch <bosch@gnat.com>
32425 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32426 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32428 2004-06-25 Robert Dewar <dewar@gnat.com>
32430 * gnat_rm.texi: Fix section on component clauses to indicate that the
32431 restriction on byte boundary placement still applies for bit packed
32433 Add comment on stack usage from Initialize_Scalars
32435 * gnat_ugn.texi: Add documentation for -gnatyLnnn
32437 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32438 limiting nesting level.
32440 * usage.adb: Add line for -gnatyLnnn switch
32442 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32443 sem_ch13.adb, exp_aggr.adb: Minor reformatting
32445 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32446 type as well as on the subtype. This corrects a problem in freeze in
32447 setting alignments of atomic types.
32449 * sem_eval.ads: Minor comment typo fixed
32451 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32452 level. Minor reformatting.
32454 * fname.adb (Is_Predefined_File_Name): Require a letter after the
32455 minus sign. This means that file names like a--b.adb will not be
32456 considered predefined.
32458 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32459 record Test new flag and give diagnostic for bad component clause.
32460 (Freeze_Entity): Set alignment of array from component alignment in
32461 cases where this is safe to do.
32463 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32466 * cstand.adb: (Create_Standard): Set alignment of String to 1
32468 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32470 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32471 code in the common constrained array cases.
32473 * a-storio.adb: Change implementation to avoid possible alignment
32474 problems on machines requiring strict alignment (data should be moved
32475 as type Buffer, not type Elmt).
32477 * checks.adb (Apply_Array_Size_Check): Improve these checks by
32478 killing the overflow checks which we really do not need (64-bits is
32481 2004-06-25 Vincent Celier <celier@gnat.com>
32483 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32484 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32485 inconditionally for the main project.
32486 (Recursive_Add_Archives.Add_Archive_Path): New procedure
32487 (Link_Executables.Check_Time_Stamps): New procedure
32488 (Link_Executables.Link_Foreign): New procedure
32489 Changes made to reduce nesting level of this package
32490 (Check): New procedure
32491 (Add_Switches): When not in quiet output, check that a switch is not
32492 the concatenation of several valid switches. If it is, issue a warning.
32493 (Build_Global_Archive): If the global archive is rebuilt, linking need
32495 (Compile_Sources): Rebuilding a library archive does not imply
32496 rebuilding the global archive.
32497 (Build_Global_Archive): New procedure
32498 (Build_Library): New name for Build_Archive, now only for library
32500 (Check_Archive_Builder): New procedure
32501 (Create_Global_Archive_Dependency_File): New procedure
32502 (Gprmake): Call Build_Global_Archive before linking
32503 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32505 (Scan_Arg): Display the Copyright notice when -v is used
32507 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32510 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32512 Add new GNAT LIST qualifier /FILES=
32513 Added qualifier /DIRECTORY= to GNAT METRIC
32514 Added qualifier /FILES= to GNAT METRIC
32515 Added qualifier /FILES to GNAT PRETTY
32517 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32518 to take into account both versions of the switch.
32520 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32521 always be the last switch to the gcc driver. Disable switch storing so
32522 that switches automatically added by the gcc driver are not put in the
32525 * prj.adb (Project_Empty): Take into account changes in components of
32528 * prj.ads (Languages_Processed): New enumaration value All_Languages.
32530 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32531 used. Split Boolean component Ada_Sources_Present in two Boolean
32532 components Ada_Sources_Present and Other_Sources_Present.
32535 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32536 instead of Sources_Present.
32537 (Set_Ada_Paths.Add.Recursive_Add): Ditto
32539 * prj-nmsc.adb: Minor reformatting
32540 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32541 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32542 Check_Ada_Naming_Scheme.
32543 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32546 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32548 Make sure that all cycles where there is at least one "limited with"
32550 (Parse_Single_Project): New Boolean parameter In_Limited
32552 * prj-proc.adb (Recursive_Check): When Process_Languages is
32553 All_Languages, call first Prj.Nmsc.Ada_Check, then
32554 Prj.Nmsc.Other_Languages_Check.
32556 * prj-proc.adb (Process): Use Ada_Sources_Present or
32557 Other_Sources_Present (instead of Sources_Present) depending on
32560 * lang-specs.h: Keep -g and -m switches in the same order, and as the
32563 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32564 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32566 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32569 * lib.ads (Disable_Switch_Storing): New procedure.
32571 * make.adb: Modifications to reduce nesting level of this package.
32572 (Check_Standard_Library): New procedure
32573 (Gnatmake.Check_Mains): New procedure
32574 (Gnatmake.Create_Binder_Mapping_File): New procedure
32575 (Compile_Sources.Compile): Add switch -gnatez as the last option
32576 (Display): Never display -gnatez
32578 * Makefile.generic:
32579 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32581 * gnatcmd.adb (Check_Project): New function
32582 (Process_Link): New procedure to reduce nesting depth
32583 (Check_Files): New procedure to reduce the nesting depth.
32584 For GNAT METRIC, include the inherited sources in extending projects.
32585 (GNATCmd): When GNAT LS is invoked with a project file and no files,
32586 add the list of files from the sources of the project file. If this list
32587 is too long, put it in a temp text files and use switch -files=
32588 (Delete_Temp_Config_Files): Delete the temp text file that contains
32589 a list of source for gnatpp or gnatmetric, if one has been created.
32590 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32591 in the project file is too large, create a temporary text file that
32592 list them and pass it to the tool with "-files=<temp text file>".
32593 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32595 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32596 generated file is in not in Ada.
32598 * gnatls.adb: Remove all parameters And_Save that are no longer used.
32599 (Scan_Ls_Arg): Add processing for -files=
32600 (Usage): Add line for -files=
32602 * g-os_lib.adb (On_Windows): New global constant Boolean flag
32603 (Normalize_Pathname): When on Windows and the path starts with a
32604 directory separator, make sure that the resulting path will start with
32607 * clean.adb (Clean_Archive): New procedure
32608 (Clean_Project): When there is non-Ada code, delete the global archive,
32609 the archive dependency files, the object files and their dependency
32610 files, if they exist.
32611 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32613 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
32615 * sinfo.ads: Fix typo in comment.
32617 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32618 the TSS for remote access-to-subprogram types, since these TSS are
32619 always present once the type has been analyzed.
32620 (RAS_E_Dereference): Same.
32622 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32623 reference raises Bad_Attribute, mark the reference as analyzed so the
32624 node (and any children resulting from rewrites that could have occurred
32625 during the analysis that ultimately failed) is not analyzed again.
32627 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32629 * exp_dist.adb: Minor comment fix.
32631 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32632 type is an anonymous access type, no unchecked deallocation of the
32633 allocated object can occur. If the object is controlled, attach it with
32634 a count of 1. This allows attachment to the Global_Final_List, if
32635 no other relevant list is available.
32636 (Get_Allocator_Final_List): For an anonymous access type that is
32637 the type of a discriminant or record component, the corresponding
32638 finalisation list is the one of the scope of the type.
32640 2004-06-25 Ed Schonberg <schonberg@gnat.com>
32642 * sem_ch3.adb (Replace_Type): When computing the signature of an
32643 inherited subprogram, use the first subtype if the derived type
32644 declaration has no constraint.
32646 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32647 before applying previous optimization. Minor code cleanup.
32649 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32650 placed at the beginning of an unpacked record without explicit
32651 alignment, a slice of it will be aligned and does not need a copy when
32654 2004-06-25 Ed Schonberg <schonberg@gnat.com>
32658 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32659 reference is written with expressions mimicking parameters.
32661 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
32664 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32665 STEP 2a. The constraints of a full type declaration of a derived record
32666 type are checked for conformance with those declared in the
32667 corresponding private extension declaration. The message
32668 "not conformant with previous declaration" is emitted if an error is
32671 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
32673 * g-traceb.ads: Document the need for -E binder switch in the spec.
32675 * g-trasym.ads: Document the need for -E binder switch in the spec.
32677 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
32679 * sem_prag.adb: Add handling of pragma Detect_Blocking.
32681 * snames.h, snames.ads, snames.adb: Add entry for pragma
32684 * s-rident.ads: Change reference to pragma Detect_Blocking.
32686 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32689 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32690 to indicate whether pragma Detect_Blocking is active.
32692 * par-prag.adb: Add entry for pragma Detect_Blocking.
32694 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32695 of not handling WITH.
32696 Note that this replaces the previous update which was incorrect.
32698 2004-06-25 Javier Miranda <miranda@gnat.com>
32700 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32701 use-clauses to have a clean environment.
32703 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32704 the installation of the use-clauses to stablish a clean environment in
32705 case of compilation of a separate unit; otherwise the call to
32706 use_one_package is protected by the barrier Applicable_Use.
32708 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32709 the installation of the use-clauses to stablish a clean environment in
32710 case of compilation of a separate unit.
32711 (End_Use_Clauses): Minor comment cleanup.
32713 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
32715 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32717 2004-06-23 Richard Henderson <rth@redhat.com>
32719 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32721 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32723 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32724 now bool instead of int.
32725 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32726 * trans.c (gnu_switch_label_stack): New function.
32727 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32728 elaboration of renamed entity returns.
32729 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32730 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32731 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32732 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32733 DECL_SIZE_UNIT and simplify variable-sized case.
32734 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32735 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32736 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32737 (build_unit_elab): Disable for now.
32738 * utils.c (mark_visited): New function.
32739 (pushdecl): Walk tree to call it for global decl.
32740 (update_pointer_to): Update all variants of pointer and ref types.
32741 Add arg to COMPONENT_REF.
32742 (convert): Likewise.
32743 Move check for converting between variants lower down.
32744 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32745 (build_allocator): Don't force type of MODIFY_EXPR.
32746 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32747 put_var_into_stack.
32749 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32751 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32752 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32753 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32755 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32756 all callers changed.
32757 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32758 the way that EXIT_STMT finds the loop label.
32759 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32760 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32761 (add_stmt): Use annotate_with_locus insted of setting directly.
32762 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32763 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32764 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32765 (build_vms_descriptor): Add extra args to ARRAY_REF.
32766 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32767 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32769 (build_binary_op): Don't make explicit CONVERT_EXPR.
32770 Add extra rgs to ARRAY_REF.
32772 2004-06-14 Pascal Obry <obry@gnat.com>
32774 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32775 Windows. Fix minor typo.
32777 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32778 which is now supported on Windows. With this implementation using the
32779 Library Project feature is no different on Windows than on UNIX.
32781 2004-06-14 Vincent Celier <celier@gnat.com>
32783 * makegpr.adb (Compile_Sources): Nothing to do when there are no
32786 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
32788 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
32789 found, show the project name and the path of the previously parsed
32792 2004-06-14 Ed Schonberg <schonberg@gnat.com>
32794 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
32795 array, avoid copying the actual before the call.
32797 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
32799 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
32800 Instead, allocate memory on worst-case alignment assumptions, and then
32801 return an aligned address within the allocated zone.
32803 2004-06-14 Robert Dewar <dewar@gnat.com>
32805 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
32806 elab entities in predefined units in No_Run_Time_Mode.
32807 (Gen_Adainit_C): Same fix
32808 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
32809 units in No_Run_Time_Mode
32810 (Gen_Elab_Calls_C): Same fix
32812 * symbols-vms-alpha.adb: Minor reformatting
32814 * g-debpoo.ads: Minor reformatting
32816 * lib.adb (In_Same_Extended_Unit): Version working on node id's
32818 * lib.ads (In_Same_Extended_Unit): Version working on node id's
32820 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
32823 * make.adb: Minor reformatting
32825 * par-ch12.adb: Minor reformatting
32827 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
32829 * prj-strt.adb: Minor reformatting
32831 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
32834 * sem_attr.adb: Minor reformatting
32836 * sem_ch7.adb: Minor reformatting
32838 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
32839 for type in the same unit as the object declaration.
32841 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
32842 static string expressions and not just string literals.
32844 (Set_Warning): Reset restriction warning flag for restriction pragma
32845 Implement pragma Profile_Warnings
32846 Implement pragma Profile (Restricted)
32847 Give obolescent messages for old restrictions and pragmas
32849 * snames.h, snames.ads, snames.adb: Add new entry for pragma
32852 * s-rident.ads: Add declarations for restrictions required by profile
32853 Restricted and profile Ravenscar.
32855 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
32857 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
32858 configuration pragmas.
32860 2004-06-11 Vincent Celier <celier@gnat.com>
32862 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
32863 gnatsym, when symbol policy is Restricted.
32865 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
32866 gnatsym, when symbol policy is Restricted.
32868 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
32869 read the symbol file.
32870 (Finalize): Fail in symbol policy Restricted if a symbol in the original
32871 symbol file is not in the object files. Do not create a new symbol file
32872 when symbol policy is Restricted.
32874 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
32877 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
32879 (Usage): Line for new switch -R
32881 * make.adb (Initialize): When the platform is not VMS, add the
32882 directory where gnatmake is invoked in the front of the path, if
32883 gnatmake is invoked with directory information. Change the Scan_Args
32884 while loop to a for loop.
32885 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
32886 if Depth is equal or greater than the proposed depth, there is nothing
32888 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
32891 * prj.ads: Add new symbol policy Restricted.
32893 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
32894 with the new parameters Check_All_Labels and Case_Location.
32896 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
32897 (Library_Symbol_File needs to be defined).
32899 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
32900 and Case_Location If Check_All_Labels is True, check that all values of
32901 the string type are used, and output warning(s) if they are not.
32903 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
32906 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
32908 * gnat_ugn.texi: Update documentation about the library directory in
32911 * makegpr.adb (Display_Command): In verbose mode, also display the
32912 value of the CPATH env var, when the compiler is gcc.
32913 (Initialize): Change the Scan_Args while loop to a for loop
32914 (Compile_Individual_Sources): Change directory to object directory
32915 before compilations.
32917 * symbols.ads: New symbol policy Restricted.
32919 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
32921 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
32922 is now taken care of internally in the Exception_Propagation package
32923 and does not require clients assistance any more.
32925 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
32926 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
32927 functions. Helpers to maintain a predicate required in the handling of
32928 occurrence transfer between tasks.
32929 This is now handled internally and does not require clients assistance
32930 for the setup/propagate separation anymore.
32931 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
32932 allocation strategy, handle the Setup_And_Not_Propagated predicate and
32935 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
32936 raise_after_setup, now that everything is handled internally within the
32937 setup/propagation engine.
32939 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
32941 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
32942 Add additional conditions for the case of an actual being a simple
32943 name or literal. Improve inlining by preventing the generation
32944 of temporaries with a short lifetime (one use).
32946 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
32949 * einfo.ads: Minor comment updates for Has_Completion and
32950 E_Constant list of flags.
32952 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
32953 and constant redeclarations now set the Has_Completion flag of their
32954 defining identifiers.
32956 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
32957 Inspect_Deferred_Constant_Completion.
32958 Used to detect private deferred constants that have not been completed
32959 either by a constant redeclaration or pragma Import. Emits error message
32960 "constant declaration requires initialization expression".
32962 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
32963 completes a deferred constant.
32965 2004-06-11 Geert Bosch <bosch@gnat.com>
32967 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
32969 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
32970 calculating exponent for scaling denormal numbers.
32971 (Leading_Part): Properly raise Constraint_Error for zero or negative
32973 (Remainder): Properly raise Constraint_Error for zero divisor.
32975 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
32977 * sem_util.adb: Minor reformatting.
32979 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
32980 dereference when accessing the entry parameter record.
32981 (Check_Array_Type): Always check for possible implicit dereference.
32982 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32983 Abort if a pointer is still present (denoting that an implicit
32984 dereference was left in the tree by the front-end).
32986 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
32987 dereference when accessing the entry parameter record.
32988 (Check_Array_Type): Always check for possible implicit dereference.
32989 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
32990 Abort if a pointer is still present (denoting that an implicit
32991 dereference was left in the tree by the front-end).
32993 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
32995 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
32996 message, like the compiler itself does. Easier to parse the output.
32998 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33000 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33001 be base names, and not includes directories.
33003 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33005 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33006 so that dependencies are properly taken into account by make.
33008 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33011 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33012 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33014 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
33016 * Makefile.in (install-gnatlib): install target-specific run-time files.
33018 * Make-lang.in: Remove obsolete targets.
33020 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33022 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33023 specification, to catch misuses of program unit names.
33025 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33026 superfluous conversions in an instance.
33028 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33031 * sem_ch12.adb (Save_References): If operator node has been folded to
33032 enumeration literal, associated_node must be discarded.
33034 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
33036 * s-stchop-vxworks.adb: Add required pragma Convention to
33037 Task_Descriptor because it is updated by a C function.
33039 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
33042 * Makefile.in: Remove target specific SO_OPT on IRIX
33044 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33046 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33047 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33048 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33049 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33050 (STMT_STMT, USE_STMT): New statement codes.
33051 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33052 * ada-tree.h: Reflect above changes.
33053 (struct tree_loop_id): Deleted.
33054 (union lang_tree_node, struct lang_decl, struct lang_type):
33055 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33056 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33057 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33058 (IS_ADA_STMT): New macro.
33059 * decl.c (annotate_decl_with_node): New function.
33060 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33061 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33062 Call add_stmt_with_node to do needed assignments.
33063 Add call to update setjmp buffer directly, not via EXPR_STMT.
33064 (maybe_variable): Argment GNAT_NODE deleted.
33065 * gigi.h (maybe_variable): Likewise.
33066 (make_transform, add_stmt_with_node, set_block_for_group): New.
33067 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33068 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33069 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33070 (set_lineno, set_lineno_from_sloc): Likewise.
33071 (record_code_position, insert_code_for): Likewise.
33072 (gnat_poplevel): Now returns void.
33073 (end_subprog_body): Now takes argument.
33074 * misc.c (cgraph.h, tree-inline.h): New includes.
33075 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33076 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33077 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33078 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33079 (gnat_parse_file): Don't set immediate_size_expand.
33080 Call cgraph functions.
33081 (gnat_expand_expr): Remove most cases.
33082 (record_code_position, insert_code_for): Remove from here.
33083 * trans.c (toplev.h, tree-gimple.h): Now included.
33084 (discard_file_names): Deleted.
33085 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33086 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33087 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33088 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33089 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33090 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33091 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33092 (set_block_for_group, add_stmt_list): Likewise.
33093 (start_stmt_group): Renamed from start_block_stmt.
33094 (end_stmt_group): Likewise, from end_block_stmt.
33095 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33096 (gigi): Don't set discard_file_names or call set_lineno.
33097 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33098 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33099 Numerous changes throughout to reflect new names and complete
33100 function-at-a-time implementation.
33101 (gnat_expand_stmt): Delete or comment out all cases.
33102 (process_inlined_subprograms): Use add_stmt.
33103 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33104 call set_lineno; also remove unneeded block handling.
33105 (process_type): Remove unneeded block handling.
33106 (build_unit_elab): Remove calls to deleted functions.
33107 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33108 (tree-dump.h): Likewise.
33109 (struct ada_binding_level): Add field jmpbuf_decl.
33110 (gnat_define_builtin, gnat_install_builtins): New.
33111 (gnat_gimplify_function, gnat_finalize): Likewise.
33112 (gnat_poplevel): No longer return BLOCK, set it instead.
33113 Remove code dealing with nested functions.
33114 (gnat_init_decl_processing): Also set size_type_node.
33115 Call gnat_install_builtins.
33116 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33117 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33118 Remove special-case for "main".
33119 (end_subprog_body): Add arg and rework for tree-ssa.
33120 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33121 Add case for BOOLEAN_TYPE.
33122 * utils2.c (rtl.h): Now include.
33123 (build_call_raise): Test Debug_Flag_NN directly.
33124 (build_call_alloc_dealloc): Don't use local stack allocation for now.
33125 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33126 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33128 2004-06-07 Robert Dewar <dewar@gnat.com>
33130 * a-direct.ads, einfo.ads: Minor comment updates
33132 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33133 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33134 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33135 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33136 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33138 * s-interr-sigaction.adb: Remove unreferenced variable
33139 (Attached_Interrupts). Minor reformatting.
33140 Avoid use of variable I (replace by J).
33142 * par-ch10.adb: Fix text of one error message
33144 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33145 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33146 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33147 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33148 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33149 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33150 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33151 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33152 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33153 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33154 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33157 2004-06-07 Doug Rupp <rupp@gnat.com>
33159 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33161 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33163 * mlib-tgt-vms-ia64.adb: New file.
33165 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33166 Add mlib-tgt-vms-ia64.adb
33167 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33168 Move to alpha specific ifeq section.
33169 Add VMS specific versions of symbols.adb
33170 Renaming of 5q vms files.
33172 * 5qsystem.ads renamed to system-vms_64.ads.
33174 2004-06-07 Vincent Celier <celier@gnat.com>
33176 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33177 explain that when a time of day corresponding to the non existing hour
33178 on the day switching to DST is specified, Split may return a different
33181 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33184 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33185 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33187 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33189 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33190 the linking options.
33191 (Build_Library.Check_Libs): On VMS, if there is a dependency on
33192 g-trasym.ads, set Gtrasymobj_Needed to True.
33194 * prj-attr.adb: Add new package Metrics for gnatmetric
33196 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33197 canonical case to take into account files with upper case characters on
33199 (Ada_Check): Load the reference symbol file name in the name buffer to
33200 check it, not the symbol file name.
33202 * snames.ads, snames.adb: Add standard name Metrics (name of project
33203 file package for gnatmetric).
33205 * vms_conv.ads: Add Metric to Comment_Type
33207 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33209 * vms_data.ads: Add qualifiers for GNAT METRIC
33211 * makegpr.adb (Link_Executables): Take into account the switches
33212 specified in package Linker of the main project.
33214 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
33216 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33217 the index of the last element is Units.Last, not Units.Table'Last
33218 (which is usually not a valid index within the actually allocated
33219 storage for the table).
33221 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33222 determines whether to generate a call to a checked storage pool
33223 Dereference action.
33224 Generate such a call only for a dereference that either comes from
33225 source, or is the result of rewriting a dereference that comes from
33228 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
33230 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33232 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
33234 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33235 file level, elaborate the stride for inner dimensions in alignment
33238 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33241 2004-06-07 Javier Miranda <miranda@gnat.com>
33243 * exp_ch6.adb: Correct wrong modification in previous patch
33245 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
33247 * g-trasym.ads: Corrected comment to properly reflect level of support
33250 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
33252 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33253 includes case of a variable referenced on the left hand side of an
33254 assignment, therefore remove redundant code. Variables and prefixes of
33255 indexed or selected components are now marked as referenced on left
33256 hand side. Warnings are now properly emitted when variables or prefixes
33257 are assigned but not read.
33259 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33260 left hand side referenced variables. Private access types do not
33261 produce the warning "variable ... is assigned but never read".
33262 Add also additional checks to left hand side referenced variables.
33263 Aliased, renamed objects and access types do not produce the warning
33264 "variable ... is assigned but never read" since other entities may read
33265 the memory location.
33267 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
33269 * Makefile.in: In the powerpc/vxworks-specific section, restore
33270 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33273 2004-06-07 Ed Schonberg <schonberg@gnat.com>
33275 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33276 predefined operators.
33277 Removes spurious type errors from g-trasym-vms.adb.
33279 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33280 distinct from the operator appearing in the source, call appropriate
33281 routine to insert conversions when needed, and complete resolution of
33283 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33284 interpretations for rewritten right operand.
33285 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33286 the other operand is overloaded and the context is a type conversion.
33288 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33290 * ada-tree.def (BLOCK_STMT): Now has two operands.
33293 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33295 * gigi.h: (gnat_poplevel): Now returns a tree.
33297 * trans.c (end_block_stmt): Add arg; all callers changed.
33298 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33299 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33300 (add_stmt): Set TREE_TYPE.
33301 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33302 (gnat_expand_stmt, case BREAK_STMT): New case.
33304 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33306 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
33308 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33309 procedure Set_Stack_Size that is not needed.
33311 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
33313 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33314 used for gnatpp input file and for the files upon which it depends
33316 2004-06-07 Ben Brosgol <brosgol@gnat.com>
33318 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33320 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
33322 * gnatvsn.ads: Bump version numbers appropriately.
33323 Add new build type.
33325 2004-06-07 Pascal Obry <obry@gnat.com>
33327 * gnat_ugn.texi: Improve comments about imported names and link names
33328 on Windows. Add a note about the requirement to use -k gnatdll's option
33329 when working with a DLL which has stripped stdcall symbols (no @nn
33332 2004-05-27 Vincent Celier <celier@gnat.com>
33334 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33335 COMMENTS_LAYOUT=UNTOUCHED
33337 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33338 symbols-vms-alpha.adb
33340 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
33342 * sem.ads: Clarify documentation on checks suppression.
33344 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33346 2004-05-27 Ed Schonberg <schonberg@gnat.com>
33348 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33349 the case of multiple derivations.
33350 (Is_Object_Reference): For a selected component, verify that the prefix
33351 is itself an object and not a value.
33353 * sem_ch12.adb (Same_Instantiated_Constant): New name for
33354 Same_Instantiated_Entity.
33355 (Same_Instantiated_Variable): Subsidiary to
33356 Check_Formal_Package_Instance, to recognize actuals for in-out generic
33357 formals that are obtained from a previous formal package.
33358 (Instantiate_Subprogram_Body): Emit proper error when
33359 generating code and the proper body of a stub is missing.
33361 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33362 has a universal interpretation, do the disambiguation here.
33364 * exp_ch4.adb (Expand_N_Type_Conversion,
33365 Expand_N_Unchecked_Type_Conversion): Special handling when target type
33366 is Address, to avoid typing anomalies when Address is a visible integer
33369 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33370 to determine whether a subprogram should not be marked Pure, even when
33371 declared in a pure package.
33373 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
33375 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33377 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33378 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33379 Update the documentation about the Ravenscar profile, following the
33380 definition found in AI-249.
33382 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33383 setting the Profile (Ravenscar). This must be done in addition to
33384 setting the required restrictions.
33386 * rtsfind.ads: Add the set of operations defined in package
33389 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33392 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
33394 lang-specs.h: Always require -c or -S and always redirect to /dev/null
33395 if -gnatc or -gnats is passed.
33397 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
33399 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33400 a significant reference. Warnings are now properly emitted when a
33401 discriminated type is not referenced.
33403 * lib-xref.adb (Generate_Reference): A deferred constant completion,
33404 record representation clause or record type discriminant does not
33405 produce a reference to its corresponding entity. Warnings are now
33406 properly emitted when deferred constants and record types are not
33409 2004-05-27 Geert Bosch <bosch@gnat.com>
33411 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33412 Fixes ACATS Annex G tests.
33414 2004-05-27 Robert Dewar <dewar@gnat.com>
33416 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33419 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
33421 * s-interr.adb (Server_Task): Take into account case of early return
33422 from sigwait under e.g. linux.
33424 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
33426 * gnat_ugn.texi: Add description for the new gnatpp options:
33427 -rnb - replace the original source without creating its backup copy
33428 -c0 - do not format comments
33430 2004-05-24 Geert Bosch <bosch@gnat.com>
33432 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33433 with 192 bits of precision, sufficient to reduce a double-extended
33434 arguments X with a maximum relative error of T'Machine_Epsilon, for X
33435 in -2.0**32 .. 2.0**32.
33436 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
33437 reduction by the processor, which only uses a 68-bit approximation of
33439 (Tan): Always reduce arguments and compute function either using
33440 the processor's fptan instruction, or by dividing sin and cos as needed.
33442 2004-05-24 Doug Rupp <rupp@gnat.com>
33444 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33445 gcc error on 32/64 bit VMS.
33447 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
33449 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33450 since this is what we get for stack overflows although not documented
33452 Document the issues which may require adjustments to our signal
33455 2004-05-24 Ed Schonberg <schonberg@gnat.com>
33457 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33458 enclosing dynamic scope if the instantiation is within a generic unit.
33460 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33462 * exp_dbug.ads: Fix typo.
33464 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33465 Rename it to its proper name: system-linux-ia64.ads
33466 (stamp-gnatlib1): Remove extra target specific run time files when
33467 setting up the rts directory.
33469 2004-05-24 Javier Miranda <miranda@gnat.com>
33471 * einfo.ads, einfo.adb (Limited_Views): Removed.
33472 (Limited_View): New attribute that replaces the previous one. It is
33473 now a bona fide package with the limited-view list through the
33474 first_entity and first_private attributes.
33476 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33477 limited-private-with clause.
33478 (Install_Limited_Withed_Unit): Install the private declarations of a
33479 limited-private-withed package. Update the installation of the shadow
33480 entities according to the new structure (see Build_Limited_Views)
33481 (Build_Limited_Views): Replace the previous implementation of the
33482 limited view by a package entity that references the first shadow
33483 entity plus the first shadow private entity (required for limited-
33484 private-with clause)
33485 (New_Internal_Shadow_Entity): Code cleanup.
33486 (Remove_Limited_With_Clause): Update the implementation to undo the
33487 new work carried out by Build_Limited_Views.
33488 (Build_Chain): Complete documentation.
33489 Replace Ada0Y by Ada 0Y in comments
33492 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33493 types the level of accessibility depends on the enclosing type
33496 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33497 entities. Complete documentation of previous change.
33499 2004-05-24 Robert Dewar <dewar@gnat.com>
33501 * namet.adb: Minor reformatting
33502 Avoid use of name I (replace by J)
33503 Minor code restructuring
33505 * sem_ch6.adb: Minor reformatting
33507 * lib-writ.adb: Do not set restriction as active if this is a
33508 Restriction_Warning case.
33510 * sem_prag.adb: Reset restriction warning flag if real pragma
33511 restriction encountered.
33513 * s-htable.adb: Minor reformatting
33514 Change rotate count to 3 in Hash (improves hash for small strings)
33516 * 5qsystem.ads: Add comments for type Address (no literals allowed).
33518 * gnat_ugn.texi: Add new section of documentation "Code Generation
33519 Control", which describes the use of -m switches.
33521 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
33523 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33524 through the DECL_INITIAL for renamed variables.
33526 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33528 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33530 2004-05-19 Joel Brobecker <brobecker@gnat.com>
33532 * exp_dbug.ads: Correct comments concerning handling of overloading,
33533 since we no longer use $ anymore.
33535 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
33537 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33538 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33539 with illegal subunits.
33541 2004-05-19 Ed Schonberg <schonberg@gnat.com>
33543 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33544 body with front-end inlining enabled, check whether an inline pragma
33545 appears immediately after the body and applies to it.
33547 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33548 enabled and the pragma appears after the body of the subprogram.
33550 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33552 Part of function-at-a-time conversion
33554 * misc.c (adjust_decl_rtl): Deleted.
33555 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33558 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33559 (add_decl_stmt, add_stmt, block_has_vars): New functions.
33560 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33562 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33563 when making a decl.
33564 (gnat_to_gnu_entity): Likewise.
33565 Use add_stmt to update setjmp buffer.
33566 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33568 No longer call adjust_decl_rtl.
33569 (DECL_INIT_BY_ASSIGN_P): New macro.
33570 (DECL_STMT_VAR): Likewise.
33572 * trans.c (gigi): Call start_block_stmt to make the outermost
33574 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33575 Call start_block_stmt and end_block_stmt temporarily.
33576 Use gnat_expand_stmt instead of expand_expr_stmt.
33577 (add_decl_stmt): New function.
33578 (tree_transform): Call it.
33579 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33580 (end_block_stmt): Set type and NULL_STMT.
33581 (gnat_expand_stmt): Make recursize call instead of calling
33583 (gnat_expand_stmt, case DECL_STMT): New case.
33584 (set_lineno_from_sloc): Do nothing if global.
33585 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33586 (start_block_stmt, add_stmt, end_block_stmt): New functions.
33587 (build_block_stmt): Call them.
33588 (gnat_to_code): Don't expand NULL_STMT.
33589 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33591 (tree_transform): Likewise.
33592 (tree_transform, case N_Null_Statement): Return NULL_STMT.
33593 (gnat_expand_stmt, case NULL_STMT): New case.
33594 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33597 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33600 * utils.c (create_var_decl): Do not call expand_decl or
33602 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33603 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33605 (struct e_stack): Add chain_next to GTY.
33606 (struct binding_level): Deleted.
33607 (struct ada_binding_level): New struct.
33608 (free_block_chain): New.
33609 (global_binding_level, clear_binding_level): Deleted.
33610 (global_bindings_p): Rework to see if no chain.
33611 (kept_level_p, set_block): Deleted.
33612 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33613 new data structure and work directly on BLOCK node.
33614 (gnat_poplevel): Similarly.
33615 (get_decls): Look at BLOCK_VARS.
33616 (insert_block): Work directly on BLOCK node.
33617 (block_has_var): New function.
33618 (pushdecl): Rework for new binding structures.
33619 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33621 (build_subprog_body): Likewise.
33622 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33624 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33626 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33627 (DECL_STMT_VAR): Likewise.
33629 2004-05-17 Robert Dewar <dewar@gnat.com>
33631 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33634 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33635 of restriction synonyums by using
33636 Restrict.Process_Restriction_Synonyms.
33638 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33640 * s-restri.ads (Tasking_Allowed): Correct missing comment
33642 * s-rident.ads: Add entries for restriction synonyms
33644 * ali.adb: Fix some problems with badly formatted ALI files that can
33645 result in infinite loops.
33647 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33648 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33649 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33650 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33651 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33652 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33653 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33654 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33655 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33656 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33657 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33658 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33659 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33660 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33661 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33662 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33663 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33664 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33665 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33666 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33667 to Task_Id (minor cleanup).
33669 2004-05-17 Vincent Celier <celier@gnat.com>
33671 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33672 directory separator.
33674 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33675 project being extended, if Languages is not declared in extending
33678 2004-05-17 Javier Miranda <miranda@gnat.com>
33680 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33681 limited view of a visible sibling.
33683 2004-05-14 Robert Dewar <dewar@gnat.com>
33685 * gnat_ugn.texi: Minor change to -gnatS documentation
33687 * sprint.adb: Remove some instances of Assert (False) and for this
33688 purpose replace them by output of a ??? string.
33690 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33693 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33694 flag processing. This was suppressing required dependencies in
33695 No_Run_Time mode and is not needed since the binder does not generate
33696 references for things in libgnat anyway.
33698 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33701 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
33703 * gnat_ugn.texi: Document AIX-specific issue with initialization of
33706 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33707 action for the case of an actual parameter in an init proc call.
33709 2004-05-14 Ed Schonberg <schonberg@gnat.com>
33711 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33712 subtype, check visible entities in base type.
33714 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33715 actions if the object is a renaming.
33717 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33718 Check_Formal_Package_Instance, to determine more precisely when the
33719 formal and the actual denote the same entity.
33721 2004-05-14 Javier Miranda <miranda@gnat.com>
33723 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33725 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33726 corresponding to a private_with must be removed from visibility; it
33727 will be made visible later, just before we analyze the private part of
33729 (Check_Private_Child_Unit): Allow private_with clauses in public
33731 (Install_Siblings): Make visible the private entities of private-withed
33733 (Install_Withed_Unit): Do not install the private withed unit if we
33734 are compiling a package declaration and the Private_With_OK flag was
33735 not set by the caller. These declarations will be installed later,
33736 just before we analyze the private part of the package.
33738 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33739 during the evaluation of the expression that initializes the object,
33740 decorate it with the expected type to avoid cascade errors.
33743 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33744 subprogram we have to install the private_with clauses after its
33745 specification has been analyzed (as documented in AI-262.TXT).
33747 * sem_ch8.adb (Has_Private_With): New function. Determines if the
33748 current compilation unit has a private with on a given entity.
33749 (Find_Direct_Name): Detect the Beaujolais problem described in
33752 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33753 provides the functionality of the function Is_Ancestor that was
33754 previously available in sem_ch10. It has been renamed to avoid
33757 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33759 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33761 * utils.c (build_vms_descriptor): Use SImode pointers.
33763 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
33765 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33767 2004-05-14 GNAT Script <nobody@gnat.com>
33769 * Make-lang.in: Makefile automatically updated
33771 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
33773 Renaming of target specific files for clarity
33775 * Makefile.in: Rename GNAT target specific files.
33777 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33778 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33779 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33780 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33781 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
33782 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
33783 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
33784 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
33785 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
33786 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
33787 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
33788 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
33789 51osinte.adb, 51osinte.ads, 51system.ads,
33790 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
33791 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
33792 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
33793 56tpopsp.adb, 57system.ads, 58system.ads,
33794 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
33795 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33796 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
33797 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
33798 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
33799 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33800 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
33801 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33802 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33803 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
33804 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
33805 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
33806 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
33807 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
33808 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
33809 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33810 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33811 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33812 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
33813 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
33814 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
33815 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
33816 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
33817 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33818 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
33819 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
33820 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33821 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
33822 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33823 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
33824 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
33825 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
33826 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
33827 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
33828 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
33829 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
33830 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
33831 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
33832 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
33833 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
33835 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
33836 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
33837 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
33838 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
33839 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
33840 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
33841 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
33842 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
33843 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
33844 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
33845 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
33846 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
33847 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
33848 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
33849 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
33850 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
33851 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
33852 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
33853 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
33854 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
33855 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
33856 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
33857 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
33858 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
33859 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
33860 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
33861 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
33862 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
33863 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
33864 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
33865 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
33866 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
33867 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
33868 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
33869 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
33870 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
33871 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
33872 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
33873 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
33874 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
33875 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
33876 s-osinte-vms.ads, s-osinte-vxworks.adb,
33877 s-osinte-vxworks.ads, s-osprim-mingw.adb,
33878 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
33879 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
33880 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
33881 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
33882 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
33883 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
33884 s-stchop-vxworks.adb, s-taprop-dummy.adb,
33885 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
33886 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
33887 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
33888 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
33889 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
33890 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
33891 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
33892 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
33893 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
33894 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
33895 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
33896 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
33897 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
33898 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
33899 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
33900 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
33901 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
33902 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
33903 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
33904 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
33905 system-irix-o32.ads, system-linux-x86_64.ads,
33906 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
33907 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
33908 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
33909 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
33910 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
33911 system-vxworks-mips.ads, system-vxworks-ppc.ads,
33912 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
33915 2004-05-13 Zack Weinberg <zack@codesourcery.com>
33917 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
33919 2004-05-13 Diego Novillo <dnovillo@redhat.com>
33921 Merge from tree-ssa-20020619-branch.
33923 * config-lang.in (boot_language, build_by_default): Set
33925 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
33926 (max_size): Add static chain op for call_expr.
33928 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
33931 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
33933 2004-05-11 Roger Sayle <roger@eyesopen.com>
33935 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
33938 2004-05-10 Doug Rupp <rupp@gnat.com>
33940 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
33943 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
33945 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
33947 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
33948 Fixes undefined symbols in IA64 gnatlib.
33950 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
33952 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
33953 Short_Address). This will be moved to system.auxdec.
33955 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
33957 * sem_util.adb: Replace test for presence of a node that is always
33958 present with a call to Discard_Node.
33960 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
33961 Analyze on the library unit node after generation of distribution stub
33962 constructs. The call was a no-op because Unit_Node has already been
33963 Analyzed, and the tree fragments for the distribution stubs are
33964 analyzed as they are inserted in Exp_Dist.
33965 Update comment regarding to distribution stubs to reflect that we
33966 do not generate stub in separate files anymore.
33968 * einfo.ads: Clarify the fact that a tagged private type has the
33969 E_Record_Type_With_Private Ekind.
33971 * erroutc.adb: Minor reformatting
33973 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
33974 values if line length is increased using -gnatyM (noticed during code
33977 * eval_fat.adb: Minor reformatting
33978 Put spaces around exponentiation operator
33980 2004-05-10 Ed Schonberg <schonberg@gnat.com>
33983 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
33984 has been rewritten as an explicit dereference, retrieve type of
33985 original node to check for possibly unconstrained record type.
33987 2004-05-10 Ed Schonberg <schonberg@gnat.com>
33989 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
33990 overriding, use the operation of the parent unconditionally.
33992 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
33993 operation when either operand is a literal, to avoid further
33996 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
33997 overridden by a previous explicit declaration, mark the previous entity
34000 * sem_disp.adb (Check_Dispatching_Operation): New predicate
34001 Is_Visibly_Controlled, to determine whether a declaration of a
34002 primitive control operation for a derived type overrides an inherited
34003 one. Add warning if the explicit declaration does not override.
34005 2004-05-10 Vincent Celier <celier@gnat.com>
34007 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34008 some cases when the sources are no longer present.
34010 * make.adb (Collect_Arguments): Fail if an external source, not part
34011 of any project need to be compiled, when switch -x has not been
34014 * makeusg.adb: Document new switch -x
34016 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34017 defaulted to False.
34019 * switch-m.adb (Scan_Make_Switches): New switch -x
34021 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34022 gnatmake switch -x.
34024 * gnat_ugn.texi: Document new gnatmake switch -x
34026 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
34028 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34030 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34031 (process_attributes): Likewise.
34033 2004-05-10 Joel Brobecker <brobecker@gnat.com>
34035 * s-inmaop.ads: Fix spelling mistake in one of the comments.
34037 2004-05-10 Robert Dewar <dewar@gnat.com>
34039 * gnat_ugn.texi: Document that for config pragma files, the maximum
34040 line length is always 32767.
34042 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34043 literals is now allowed.
34045 * gnat-style.texi: Remove statement about splitting long lines before
34046 an operator rather than after, since we do not follow this rule at all.
34047 Clarify rule (really lack of rule) for spaces around exponentiation
34049 * sem_elim.adb: Allow concatenation of string literals as well as a
34050 single string literal for pragma arguments.
34052 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34054 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34055 written for append case.
34057 * frontend.adb: Changes to avoid checking max line length in config
34060 * g-os_lib.ads: Minor reformatting
34062 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34063 wrong in any case. Instead use standard value. Noticed during code
34066 * opt.ads (Max_Line_Length): New field, used to implement removal of
34067 limitation on length of lines when scanning config pragma files.
34069 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34070 makeutl.ads, makeutl.adb: Minor reformatting
34072 * scn.adb: Do not check line length while scanning config pragma files
34073 Do not check line length while scanning out license information
34075 * scng.adb: Changes to avoid line length checks while parsing config
34078 2004-05-10 GNAT Script <nobody@gnat.com>
34080 * Make-lang.in: Makefile automatically updated
34082 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
34084 * osint.adb (Find_Program_Name): Fix handling of VMS version
34087 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
34089 * g-os_lib.ads (Invalid_Time): New constant
34091 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34092 return OS_Time instead of time_t to match what is imported by Ada.
34093 Now return -1 if the file doesn't exist, instead of a random value
34095 2004-05-05 Robert Dewar <dewar@gnat.com>
34097 * usage.adb: Add line for -gnatR?s switch
34099 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34101 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34102 and for Match (Data_First, Data_last)
34104 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34105 written when we are dealing with multi-unit files.
34107 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
34109 * Makefile.in: Remove unused targets and variables.
34111 2004-05-05 Vincent Celier <celier@gnat.com>
34113 * switch-m.adb: New gnatmake switch -eI
34115 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34116 of new gnatmake switch -eInnn.
34118 * makegpr.adb: Take into account new parameters Index and Src_Index in
34121 * clean.adb: Implement support for multi-unit sources, including new
34124 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34127 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34128 (Extract_From_Q): New out parameter Index
34129 (Mark, Is_Marked): Subprograms moved to Makeutl
34130 (Switches_Of): New parameter Source_Index
34131 (Add_Switch): New parameter Index
34132 (Check): New parameter Source_Index
34133 (Collect_Arguments): New parameter Source_Index
34134 (Collect_Arguments_And_Compile): New parameter Source_Index
34135 (Compile): New parameter Source_Index
34136 Put subprograms in alphabetical order
34137 Add support for multi-source sources, including in project files.
34139 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34140 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34143 * makeusg.adb: New gnatmake switch -eInnn
34145 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34148 * opt.ads (Main_Index): New variable, defaulted to 0.
34150 * osint.ads, osinte.adb (Add_File): New parameter Index
34151 (Current_Source_Index): New function
34153 * prj.adb: Take into account new components Index and Src_Index
34155 * prj.ads (String_Element): New component Index
34156 (Variable_Value): New component Index
34157 (Array_Element): New component Src_Index
34159 * prj-attr.adb: Indicate that optional index may be specified for
34160 attributes Main, Executable, Spec, Body and some of Switches.
34162 * prj-attr.ads (Attribute_Kind): New values for optional indexes
34163 (Attribute_Record): New component Optional_Index
34165 * prj-com.ads (File_Name_Data): New component Index
34167 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34169 * prj-env.adb (Put): Output optional index
34171 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34172 attributes Spec and Body.
34174 * prj-nmsc.adb: Process optional indexes
34176 * prj-pp.adb: Ouput "at" for optional indexes
34178 * prj-proc.adb: Take into account optional indexes
34180 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34181 Optional_Index. For string literal,
34182 process optional index when Optional_Index is True.
34183 (Parse_Expresion): New Boolean parameter Optional_Index
34185 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34186 (Set_Source_Index_Of): New procedure
34188 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34191 * prj-util.ads (Executable_Of): New parameter Index
34192 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34193 New parameter Src_Index, defaulted to 0.
34195 2004-05-05 Ed Schonberg <schonberg@gnat.com>
34198 * sem_ch3.adb (Access_Definition): If this is an access parameter
34199 whose designated type is imported through a limited_with clause, do
34200 not add the enclosing subprogram to the list of private dependents of
34203 2004-05-05 Ed Schonberg <schonberg@gnat.com>
34206 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34207 a limited_with clause, and the other is its non-limited view.
34209 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
34211 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34213 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34214 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34215 Stand.Boolean_Literals to produce references to entities
34216 Standard_False and Standard_True from compile-time computed boolean
34219 * stand.ads (Boolean_Literals): New variable, provides the entity
34220 values for False and True, for use by the expander.
34222 2004-05-05 Doug Rupp <rupp@gnat.com>
34224 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34225 5vinmaop.adb: Unchecked convert Short_Address vice Address
34227 * adaint.c, raise.c: Caste CRTL function return value
34228 to avoid gcc error on 32/64 bit IVMS.
34230 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34233 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34235 * 5qsystem.ads (Address): Declare as Long_Integer
34236 (Short_Address): Declare as 32 bit subtype of Address
34237 Declare abstract address operations to avoid gratuitous ambiguities.
34239 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
34241 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34242 instead of the old Boolean_Entry_Barriers.
34243 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34245 2004-05-05 GNAT Script <nobody@gnat.com>
34247 * Make-lang.in: Makefile automatically updated
34249 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34251 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34253 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
34256 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34257 alone. Replacing object references by literals is inappropriate in a
34258 so low level context.
34260 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34262 * a-exexpr.adb: Add comments
34264 2004-05-03 Joel Brobecker <brobecker@gnat.com>
34266 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34267 declare the Ancestor_Tags array in Type_Specific_Data with a small size
34268 without risking a bounds check error when accessing one of its
34270 (Type_Specific_Data): Define Ancestor_Tags as a small array.
34271 This prevents us from hitting a limitation during the debug info
34272 generation when using stabs.
34274 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34276 This prevents us from hitting a limitation during the debug info
34277 generation when using stabs.
34279 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
34281 lang-specs.h: Remove -gnatz* from specs.
34283 2004-05-03 Vincent Celier <celier@gnat.com>
34285 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34287 * Make-lang.in, Makefile.in: Add gprmake
34289 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
34291 * sem_aggr.adb: Fix typo in comment.
34293 2004-05-03 Robert Dewar <dewar@gnat.com>
34295 * make.adb: Minor reformatting
34297 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34299 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34300 so that it works when address is not a private type.
34302 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34303 properly with rewritten unchecked conversions. This prevents
34304 order-of-elaboration issues that can otherwise arise.
34305 (Minimum_Size): Don't check size of access types under VMS
34307 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34308 interpretations of integer literals as type System.Address.
34310 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34311 (Is_Descendent_Of): New function
34313 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
34315 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34316 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34317 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34319 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34320 of the old Max_Entry_Queue_Depth.
34322 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34323 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34324 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34326 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34327 New entry for proper handling of Max_Entry_Queue_Depth.
34328 New entry for proper handling of No_Dynamic_Interrupts.
34330 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34331 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34332 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34333 the GNAT specific restriction Max_Entry_Queue_Depth.
34334 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34335 the GNAT specific restriction No_Dynamic_Interrupts.
34337 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34338 instead of the old Boolean_Entry_Barriers.
34339 Use the new restriction No_Dynamic_Attachment instead of the old
34340 No_Dynamic_Interrupts.
34342 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34343 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34345 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34346 of the old Max_Entry_Queue_Depth.
34348 2004-05-03 GNAT Script <nobody@gnat.com>
34350 * Make-lang.in: Makefile automatically updated
34352 2004-04-29 Ed Schonberg <schonberg@gnat.com>
34354 * checks.adb (Enable_Range_Check): If the prefix of an index component
34355 is an access to an unconstrained array, perform check unconditionally.
34357 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34359 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34362 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
34364 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34365 alternate stack setting. There was no support for the tasking cases
34366 and the changes eventually caused a number of side-effect failures in
34367 the non-tasking case too.
34369 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
34371 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34374 2004-04-29 Vincent Celier <celier@gnat.com>
34376 * make.adb (Gnatmake): Increase max size of argument array for
34377 gnatbind for the potential addition of -F.
34378 If there are Stand-Alone Library projects, invoke gnatbind with -F to
34379 be sure that elaboration flags will be checked.
34381 * switch-c.adb: Correct call to Scan_Pos for -gnateI
34383 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
34385 * sem_warn.adb (Check_References): Move '<access-variable> may be
34386 null' warning out of under Warn_On_No_Value_Assigned.
34388 2004-04-29 Ed Falis <falis@gnat.com>
34390 * gnat_ugn.texi: Fixed texi error
34392 2004-04-29 Robert Dewar <dewar@gnat.com>
34394 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34395 abstract operations if they come from predefined files.
34397 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34400 * s-addope.adb: Correct obvious error in mod function
34402 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
34404 * Makefile.in: Add target pairs for powerpc darwin*
34407 * a-intnam-darwin.ads, s-osinte-darwin.adb,
34408 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34410 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34412 * Makefile.in: Add target macro definitions for s390*-linux*.
34413 * system-linux-s390.ads: New file.
34414 * system-linux-s390x.ads: New file.
34416 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
34418 * gnat_ugn.texi: Correct argument to @setfilename.
34420 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34422 * a-exexpr.adb (Unwind_Word): New data type.
34423 (Unwind_Exception): Use it as type of Private1 and Private2.
34425 * raise.c (db_action_for): Fix debug printf.
34427 2004-04-27 Ed Schonberg <schonberg@gnat.com>
34429 * a-wtmoio.ads: Formal type must be a modular type, not a signed
34432 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34434 * decl.c (gnat_to_gnu_entity, case object): Call
34435 __builtin_update_setjmp_buf.
34437 * gigi.h (update_setjmp_buf): Deleted.
34438 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34440 * misc.c: (update_setjmp_buf): Deleted.
34442 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34443 around block of RTL.
34445 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34447 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
34449 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34450 subprogram for which no pragma All_Calls_Remote applies, store the
34451 address of the real subprogram in the underlying record type, so local
34452 dereferences do not go through the PCS.
34454 2004-04-26 Robert Dewar <dewar@gnat.com>
34456 * i-c.ads: Add some type qualifications to avoid ambiguities when
34457 compiling with s-auxdec.ads and a non-private address type.
34459 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
34461 * Makefile.rtl: Fix error in previous check-in:
34462 Add s-addope.o to non tasking object list (rather than tasking object
34465 2004-04-26 Javier Miranda <miranda@gnat.com>
34467 * sem_aggr.adb: Fix typo in comments
34468 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34469 Required to check the null-exclusion attribute.
34471 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34472 case of anonymous access types in record and array components. For a
34473 component definition the level is the same of the enclosing composite
34476 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34477 that are anonymous access types the level of accessibility depends on
34478 the enclosing type declaration. In order to have this information, set
34479 the scope of the anonymous access type to the enclosing record type
34481 (Array_Type_Declaration): In case of components that are anonymous
34482 access types the level of accessibility depends on the enclosing type
34483 declaration. In order to have this information, set the scope of the
34484 anonymous access type to the enclosing array type declaration.
34486 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34489 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34490 renaming of anonymous access-to-constant types allowed if and only if
34491 the renamed object is access-to-constant.
34493 * sem_util.adb (Type_Access_Level): In case of anonymous access types
34494 that are component_definition or discriminants of a nonlimited type,
34495 the level is the same as that of the enclosing component type.
34497 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
34499 * sem_elim.adb: Some minor code reorganization from code reading. Fix
34500 misprint in the function name (File_Name_Match).
34502 2004-04-23 Laurent Guerby <laurent@guerby.net>
34504 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
34507 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34509 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34511 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
34513 * adaint.c (__gnat_try_lock): No longer requires that the parent
34514 directory be writable, the directory itself is enough.
34515 (gnat_is_absolute_path): Change profile, so that the call from
34516 GNAT.OS_Lib can be made more efficient.
34518 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34519 from GNAT.OS_Lib can be made more efficient.
34521 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34522 one copy of the file name. Found by code reading.
34524 2004-04-23 Vincent Celier <celier@gnat.com>
34526 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34527 Correct documentation on gnatmake switches transmitted to the compiler
34529 * ali.ads: Minor comment fix
34531 2004-04-23 Javier Miranda <miranda@gnat.com>
34533 * sem_ch6.adb: (Confirming Types): Code cleanup
34535 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34536 subprogram types: E_Anonymous_Access_Subprogram_Type and
34537 E_Anonymous_Access_Protected_Subprogram_Type.
34539 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
34541 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34542 whether a pragma All_Calls_Remote applies to the subprogram on which
34544 No functional change is introduced by this revision; the new parameter
34545 will be used to allow calls to local RCI subprograms to be optimized
34546 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34547 as is already done in the PolyORB implementation of the DSA.
34549 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34550 whether a pragma All_Calls_Remote applies to the subprogram on which
34552 No functional change is introduced by this revision; the new parameter
34553 will be used to allow calls to local RCI subprograms to be optimized
34554 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34555 as is already done in the PolyORB implementation of the DSA.
34557 2004-04-23 Robert Dewar <dewar@gnat.com>
34559 * Makefile.rtl: Add entry for s-addope.o in run time library list
34560 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34561 * s-addope.ads, s-addope.adb: New files.
34563 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34564 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
34565 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34566 System.Address to be non-private and signed.
34568 * sem_elim.adb: Minor reformatting (fairly extensive)
34569 Some minor code reorganization from code reading
34570 Add a couple of ??? comments
34572 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34574 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
34575 (tree_transform, case N_If_Statement): Remove non-determinism.
34577 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34579 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
34581 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34582 Eliminate' section.
34584 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34585 no longer used as a parameter name for Eliminate pragma).
34587 2004-04-22 Laurent Guerby <laurent@guerby.net>
34589 PR optimization/14984
34590 PR optimization/14985
34591 * trans.c (gigi): Fix non determinism leading to bootstrap
34592 comparison failures.
34594 2004-04-21 Pascal Obry <obry@gnat.com>
34596 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34597 passed to spawnvp() to properly handle program pathname with spaces on
34600 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
34602 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34603 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34604 unlocked in case of exceptions.
34606 2004-04-21 Joel Brobecker <brobecker@gnat.com>
34608 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34609 This function does not exist anymore.
34611 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
34613 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34615 * link.c: Move variables to the __gnat name space.
34617 * Makefile.in: list link.o explicitly when needed.
34619 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34621 2004-04-21 Javier Miranda <miranda@gnat.com>
34623 * einfo.adb (Original_Access_Type): New subprogram
34624 (Set_Original_Access_Type): New subprogram
34625 (Write_Field21_Name): Write the name of the new field
34627 * einfo.ads (Original_Access_Type): New field present in access to
34629 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34630 E_Anonymous_Access_Protected_Subprogram_Type.
34632 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34635 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34636 to anonymous access to subprogram types.
34638 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34639 to subprogram types.
34641 * sem_ch3.adb (Access_Definition): Complete decoration of entities
34642 corresponding to anonymous access to subprogram types.
34643 (Analyze_Component_Declaration): Add new actual to the call to
34644 subprogram replace_anonymous_access_to_protected_subprogram.
34645 (Array_Type_Declaration): Add new actual to the call to subprogram
34646 replace_anonymous_access_to_protected_subprogram.
34647 (Process_Discriminants): Add new actual to the call to subprogram
34648 replace_anonymous_access_to_protected_subprogram.
34649 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34651 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34654 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34655 access to subprogram types.
34657 * sem_util.adb (Has_Declarations): Addition of package_specification
34660 2004-04-21 Ed Schonberg <schonberg@gnat.com>
34662 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34663 inlined flags to renamed entity only if in current unit.
34665 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
34667 * s-parint.ads: Add DSA implementation marker.
34669 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34670 value of System.Partition_Interface.DSA_Implementation to determine
34671 what version of the distributed systems annex is available (no
34672 implementation, GLADE, or PolyORB).
34674 2004-04-21 Joel Brobecker <brobecker@gnat.com>
34676 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34678 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34680 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34681 with new type if alias sets differ.
34682 Fixes ACATS c41103b.
34684 2004-04-21 Vincent Celier <celier@gnat.com>
34686 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34687 Add array Lang_Args for the language specific compiling argument
34690 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34692 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
34694 * gnat_rm.texi: Update the descripton of the Eliminate pragma
34695 according to the recent changes in the format of the parameters of the
34696 pragma (replacing Homonym_Number with Source_Location).
34698 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
34700 * 5isystem.ads: Removed, unused.
34702 * gnat_rm.texi: Redo 1.13 change.
34704 2004-04-19 Robert Dewar <dewar@gnat.com>
34706 * s-stoele.ads: Clean up definition of Storage_Offset (the new
34707 definition is cleaner, avoids the kludge of explicit Standard operator
34708 references, and also is consistent with a visible System.Address with
34709 no visible operations.
34711 * s-geveop.adb: Add declarations to avoid assumption of visible
34712 operations on type System.Address (since these might not be available
34713 if Address is a non-private type for which the operations
34714 are made abstract).
34716 * sem_eval.adb: Minor reformatting
34718 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34719 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34720 reformatting (new function spec format).
34722 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34723 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34724 s-caun64.adb: Add declarations to avoid assumption of visible
34725 operations on type System.Address (since these might not be available
34726 if Address is a non-private type for which the operations are made
34729 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34731 * exp_intr.adb: Minor comment update
34733 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34735 * 5omastop.adb: Add declarations to avoid assumption of visible
34736 operations on type System.Address (since these might not be available
34737 if Address is a non-private type for which the operations
34738 are made abstract).
34740 2004-04-19 Vincent Celier <celier@gnat.com>
34742 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34744 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34747 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34749 Call Check with Process_Languages.
34750 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34751 with Process_Languages.
34752 (Recursive_Check): New Boolean parameter Process_Languages. Call
34753 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34756 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34758 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34759 parameter Ada_Main, defaulted to True.
34760 Check for Ada specific characteristics only when Ada_Main is True.
34762 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34764 * prj.adb: (Project_Empty): Add new Project_Data components.
34766 * prj.ads: New types and tables for non Ada languages.
34767 (Project_Data): New components Languages, Impl_Suffixes,
34768 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34769 Include_Path, Include_Data_Set.
34771 * prj-env.ads, prj-env.adb: Minor reformatting
34773 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34774 Put subprograms in alphabetical order
34776 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34777 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34780 * mlib-prj.adb: Back out modification in last version, as they are
34782 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
34784 * make.adb: (Mains): Moved to package Makeutl
34785 (Linker_Opts): Moved to package Makeutl
34786 (Is_External_Assignment): Moved to package Makeutl
34787 (Test_If_Relative_Path): Moved to package Makeutl
34788 (Gnatmake): Move sorting of linker options to function
34789 Makeutl.Linker_Options_Switches.
34791 * makeutl.ads, makeutl.adb: New files.
34793 * Makefile.in: Add makeutl.o to the object files for gnatmake
34795 * makeusg.adb: Add line for new switch -eL.
34797 * gnatls.adb (Image): New function.
34798 (Output_Unit): If in verbose mode, output the list of restrictions
34799 specified by pragmas Restrictions.
34801 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
34804 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
34805 needed, to put it in the range 1970 (included) - 2026 (excluded).
34806 (Time_Of): Do not shift Unix_Min_Year (1970).
34807 Shift the date by multiple of 56 years, if needed, to put it in the
34808 range 1970 (included) - 2026 (excluded).
34810 * adaint.h, adaint.c (__gnat_set_executable): New function.
34812 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34814 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
34815 and pop GC context.
34816 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
34817 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
34818 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
34819 (tree_transform, case N_Code_Statement): Likewise.
34820 (gnat_expand_stmt, case LABEL_STMT): Don't look at
34821 LABEL_STMT_FIRST_IN_EH.
34822 (gnat_expand_stmt, case ASM_STMT): New case.
34824 * utils2.c (build_unary_op): Properly set TREE_READONLY of
34825 UNCONSTRAINED_ARRAY_REF.
34827 * utils.c (poplevel): Temporarily push/pop GC context around inline
34828 function expansion.
34830 * decl.c (maybe_variable): Properly set TREE_READONLY of
34831 UNCONSTRAINED_ARRAY_REF.
34832 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
34834 * ada-tree.def: (ASM_STMT): New.
34836 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
34837 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
34838 ASM_STMT_INPUT): New.
34839 (ASM_STMT_CLOBBER): Likewise.
34841 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
34843 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
34844 general rcheck mechanism to raise Program_Error for E.4(18), instead
34845 of a custom raiser in System.Partition_Interface.
34846 Part of general cleanup work before PolyORB integration.
34848 * snames.ads, snames.adb: Add new runtime library entities and names
34851 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34853 (Build_Subprogram_Id): New subprogram provided by exp_dist
34854 Code reorganisation in preparation for PolyORB integration.
34856 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
34858 (Build_Subprogram_Id): New subprogram provided by exp_dist
34860 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
34861 actual parameter types for call to dereference of an
34862 access-to-subprogram type.
34864 * rtsfind.ads: Add new runtime library entities and names for PolyORB
34867 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
34868 instead, which has the same behaviour here since we never pass it a
34871 * link.c (run_path_option, Solaris case): Use -Wl, as for other
34874 * Makefile.in: adjust object file lists for gnatlink and gnatmake
34875 to account for new dependency upon Interfaces.C.Strings + link.o
34876 For x86 FreeBSD, use 86numaux.
34878 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
34879 from Mlib.Tgt to Mlib.
34881 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
34882 target-independent.
34884 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
34885 target-specific versions of this subprogram, now implemented as a
34886 target-independent function in Mlib.
34888 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
34889 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
34890 (Linker_Library_Path_Option): Remove target-specific versions of this
34891 subprogram, now implemented as a target-independent function in Mlib.
34893 * atree.adb: (Allocate_Initialize_Node): New subprogram.
34894 Factors out node table slots allocation.
34895 (Fix_Parents): New subprogram.
34896 Encapsulate the pattern of fixing up parent pointers for syntactic
34897 children of a rewritten node.
34898 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
34899 (Rewrite): Use New_Copy when creating saved copy of original node.
34900 (Replace): Use Copy_Node to copy nodes.
34902 2004-04-19 Javier Miranda <miranda@gnat.com>
34904 * sprint.adb (Sprint_Node_Actual): Give support to the new
34905 Access_To_Subprogram node available in Access_Definition nodes. In
34906 addition, give support to the AI-231 node fields: null-exclusion,
34907 all-present, constant-present.
34909 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
34911 * sinfo.ads, sinfo.adb:
34912 New field Access_To_Subprogram_Definition in Access_Definition nodes
34914 * sem_ch6.adb (Process_Formals): Move here the code that creates and
34915 decorates internal subtype declaration corresponding to the
34916 null-excluding formal. This code was previously in Set_Actual_Subtypes.
34917 In addition, carry out some code cleanup on this code. In case of
34918 access to protected subprogram call
34919 Replace_Anonymous_Access_To_Protected_Subprogram.
34920 (Set_Actual_Subtypes): Code cleanup.
34922 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
34923 Find_Type in case of anonymous access renamings. Add warning in case of
34924 null-excluding attribute used in anonymous access renaming.
34926 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34929 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
34931 (Access_Definition): In case of anonymous access to subprograms call
34932 the corresponding semantic routine to decorate the node.
34933 (Access_Subprogram_Declaration): Addition of some comments indicating
34934 some code that probably should be added here. Detected by comparison
34935 with the access_definition subprogram.
34936 (Analyze_Component_Declaration): In case of access to protected
34937 subprogram call Replace_Anonymous_Access_To_Protected.
34938 (Array_Type_Declaration): In case of access to protected subprogram call
34939 Replace_Anonymous_Access_To_Protected_Subprogram.
34940 (Process_Discriminants): In case of access to protected subprogram call
34941 Replace_Anonymous_Access_To_Protected_Subprogram.
34943 * par.adb (P_Access_Definition): New formal that indicates if the
34944 null-exclusion part was present.
34945 (P_Access_Type_Definition): New formal that indicates if the caller has
34946 already parsed the null-excluding part.
34948 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
34949 (P_Identifier_Declarations): Code cleanup and give support to renamings
34950 of anonymous access to subprogram types.
34951 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
34952 (P_Array_Type_Definition): Give support to AI-254.
34953 (P_Component_Items): Give support to AI-254.
34954 (P_Access_Definition): New formal that indicates if the header was
34955 already parsed by the caller.
34956 (P_Access_Type_Definition): New formal that indicates if the caller has
34957 already parsed the null-excluding part.
34959 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
34960 call to P_Access_Definition.
34962 2004-04-19 Geert Bosch <bosch@gnat.com>
34964 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
34965 the delicate semantics of floating-point to integer conversion.
34966 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
34968 * eval_fat.adb (Machine_Mantissa): Moved to spec.
34969 (Machine_Radix): New function.
34971 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
34973 (Machine_Radix): New function also for use in conversion checks.
34975 2004-04-19 Ed Schonberg <schonberg@gnat.com>
34977 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
34979 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
34980 to decorate the access-to-protected subprogram and the equivalent type.
34982 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
34983 to anonymous access to subprogram types.
34985 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
34986 constant-folding, for legality checks in contexts that require an RM
34989 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
34990 temporary but stack checking is not enabled, increment serial number
34991 to so that symbol generation is consistent with and without stack
34994 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
34995 independent on whether stack checking is enabled, caller must check
34996 the corresponding flag.
34998 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35000 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35001 parent if it has discriminants.
35002 (Build_Derived_Private_Type): Constructed full view does
35003 not come from source.
35004 (Process_Discriminants): Default discriminants on a tagged type are
35005 legal if this is the internal completion of a private untagged
35008 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35009 no constraint checks, because it corresponds to an existing object.
35011 * sem_prag.adb (Process_Convention): Pragma applies
35012 only to subprograms in the same declarative part, i.e. the same unit,
35013 not the same scope.
35015 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35016 ignore type mismatch on a numeric conversion if expression comes from
35019 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
35021 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35022 Homonym_Number parameter, add processing for Source_Location parameter
35024 (Check_Eliminated): Remove the check for homonym numbers, add the check
35025 for source location traces.
35027 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35028 with Arg_Source_Location corresponding to the changes in the format of
35031 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35032 Eliminate pragma corresponding to the changes in the format of the
35033 pragma: Homonym_Number is replaced with Source_Location, two ways of
35034 distinguishing homonyms are mutially-exclusive.
35036 2004-04-19 Joel Brobecker <brobecker@gnat.com>
35038 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35040 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35041 No_Dollar_In_Label, no longer necessary, as it is always True.
35042 (Strip_Suffixes): Likewise.
35044 2004-04-19 Gary Dismukes <dismukes@gnat.com>
35046 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35047 modulus for compatibility with size clause on targets with 16-bit
35050 * layout.adb (Discrimify): In the case of private types, set Vtyp to
35051 full type to fix type mismatches on calls to size functions for
35052 discriminant-dependent array components.
35054 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
35056 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35059 2004-04-19 Pascal Obry <obry@gnat.com>
35061 * mdll-utl.adb (Locate): New version is idempotent.
35063 2004-04-17 Laurent Guerby <laurent@guerby.net>
35065 PR ada/14988 (partial)
35066 * impunit.adb: Fix typo.
35068 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
35070 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35071 and install-rts-cert targets. Remove all gnatlib and gnattools
35072 targets and all other rts-* targets (moved to libada). Remove (now)
35073 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35074 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35076 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35078 * trans.c (tree_transform): Shortcut returning error_mark_node for
35079 statements in annotate_only_mode.
35080 (tree_transform, case N_Label, case N_Return_Statement,
35081 N_Goto_Statement): Make statement tree instead of generating code.
35082 (tree_transform, case N_Assignment_Statement): No longer check
35083 type_annotate_only.
35084 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35086 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35088 (gnat_to_gnu): Collect any RTL generated and deal with it.
35089 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35090 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35091 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35093 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35095 * ada-tree.def (EXPR_STMT): Fix typo in name.
35096 (BLOCK_STMT, IF_STMT): New nodes.
35098 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35099 LABEL_STMT_FIRST_IN_EH): New macros.
35100 (RETURN_STMT_EXPR): Likewise.
35102 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35103 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35105 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
35107 * atree.ads: Correct documentation on extended nodes.
35109 * link.c: Set run_path_option for FreeBSD.
35111 2004-04-08 Vincent Celier <celier@gnat.com>
35113 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35114 one of the ALI file, do not link with DEC lib.
35116 * par.adb Remove the last two characters ("%s" or "%b") when checking
35117 if a language defined unit may be recompiled.
35119 2004-04-08 Ed Schonberg <schonberg@gnat.com>
35121 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35122 removal of abstract operation leaves no possible interpretation for
35125 * sem_eval.adb (Eval_Qualified_Expression): Use
35126 Set_Raises_Constraint_Error on node when needed, so that it does not
35127 get optimized away by subsequent optimizations.
35129 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35130 operands even when they are not wrapped in a type conversion.
35132 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
35134 * sem_prag.adb (Set_Exported): Warn about making static as result of
35135 export only when the export is coming from source. This may be not
35136 be true e.g. on VMS where we expand export pragmas for exception codes
35137 together with imported or exported exceptions, and we don't want the
35138 user to be warned about something he didn't write.
35140 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
35142 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35143 duplication between normal entities and those declared as renamings.
35144 No functional change.
35146 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35147 inline functions returning an unconstrained result.
35149 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
35151 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35152 conform to what other front-ends do.
35154 2004-04-08 Doug Rupp <rupp@gnat.com>
35156 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35159 2004-04-06 Pascal Obry <obry@gnat.com>
35161 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35163 * osint.adb (Program_Name): Do not look past a directory separator.
35165 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
35167 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35169 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35170 requirement for preserving a copy of the original assignment node.
35172 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35174 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
35176 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35179 2004-04-06 Ed Schonberg <schonberg@gnat.com>
35181 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35182 operator calls in functional notation, and apply
35183 Universal_Interpretation to operands, not to their type.
35185 2004-04-06 Robert Dewar <dewar@gnat.com>
35187 * 5wdirval.adb: Minor reformatting
35189 2004-04-06 Ed Falis <falis@gnat.com>
35191 * gnat_rm.texi: Improve a reference to the GCC manual
35193 2004-04-05 Vincent Celier <celier@gnat.com>
35195 * adaint.h, adaint.c: Add function __gnat_named_file_length
35197 * impunit.adb: Add Ada.Directories to the list
35199 * Makefile.in: Add VMS and Windows versions of
35200 Ada.Directories.Validity package body.
35202 * Makefile.rtl: Add a-direct and a-dirval
35204 * mlib-tgt.ads: Minor comment update.
35206 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35207 a-direct.ads, a-direct.adb: New files.
35209 2004-04-05 Vincent Celier <celier@gnat.com>
35212 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35213 just to the compiler.
35215 2004-04-05 Robert Dewar <dewar@gnat.com>
35217 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35218 returned string is 1.
35220 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35222 * eval_fat.ads: Minor reformatting
35224 * g-curexc.ads: Document that lower bound of returned string values
35227 * gnatlink.adb: Add ??? comment for previous change
35228 (need to document why this is VMS specific)
35230 * s-stoele.ads: Minor reformatting
35232 * tbuild.ads: Minor reformatting throughout (new function specs)
35234 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35237 * scng.adb: Minor reformatting
35239 2004-04-05 Geert Bosch <bosch@gnat.com>
35241 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35242 (Leading_Part): Still perform truncation to machine number if the
35243 specified radix_digits is greater or equal to machine_mantissa.
35245 2004-04-05 Javier Miranda <miranda@gnat.com>
35247 * par-ch3.adb: Complete documentation of previous change
35248 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35249 (aliased must appear before constant).
35251 * par-ch4.adb: Complete documentation of previous change.
35253 * par-ch6.adb: Complete documentation of previous change.
35255 * sinfo.ads: Fix typo in commment.
35257 2004-04-05 Ed Schonberg <schonberg@gnat.com>
35259 * sem_ch3.adb (Inherit_Components): If derived type is private and has
35260 stored discriminants, use its discriminants to constrain parent type,
35261 as is done for non-private derived record types.
35263 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35264 Ada 2005 AI-310: an abstract non-dispatching operation is not a
35265 candidate interpretation in an overloaded call.
35267 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35268 expression is Null and target type is not an access type (e.g. a
35269 non-private address type).
35271 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
35273 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35274 statement whose right-hand side is an inlined call, save a copy of the
35275 original assignment subtree to preserve enough consistency for
35276 Analyze_Assignment to proceed.
35278 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35279 complete assignment subtree which is now unnecessary, as the expansion
35280 of inlined call has been improved to preserve a consistent assignment
35281 tree. Note_Possible_Modification must be called only
35282 after checks have been applied, or else unnecessary checks will
35285 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35286 of explicit dereferences that do not Come_From_Source:
35287 - be selective on cases where we must go back to the dereferenced
35288 pointer (an assignment to an implicit dereference must not be
35289 recorded as modifying the pointer);
35290 - do not rely on Original_Node being present (Analyze_Assignment
35291 calls Note_Possible_Modification on a copied tree).
35293 * sem_warn.adb (Check_References): When an unset reference to a pointer
35294 that is never assigned is encountered, prefer '<pointer> may be null'
35295 warning over '<pointer> is never assigned a value'.
35297 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
35299 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35302 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
35304 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35305 libexc. We currently don't reference anything in this library and
35306 linking it in triggers linker warnings we don't want to see.
35308 * init.c: Update comments.
35310 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35312 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35313 * utils.c (create_field_decl): Likewise.
35314 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35316 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
35318 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35319 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35320 Add info directory entry and category.
35322 2004-04-02 Jan Hubicka <jh@suse.cz>
35324 * utils.c: Include function.h
35325 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35327 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35330 * Make-lang.in: Clean up generation of documentation
35332 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35334 * xgnatug.adb: Removed, replaced by xgnatugn.adb
35336 * xgnatugn.adb: Replaces xgnatug.adb
35338 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35340 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35342 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35343 gnat_ug_wnt.texi: Removed.
35345 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35347 * utils2.c: Update copyright notice.
35349 2004-04-01 Robert Dewar <dewar@gnat.com>
35351 * checks.adb: Minor reformatting throughout
35352 Note that prev checkin added RM reference to alignment warning
35354 2004-04-01 Ed Schonberg <schonberg@gnat.com>
35356 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35357 non-static when building aggregate for bit-packed array.
35359 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35360 function call that is itself the actual in a procedure call, build
35363 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35364 a string literal, create a temporary for it, constant folding only
35365 handles scalars here.
35367 2004-04-01 Vincent Celier <celier@gnat.com>
35369 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35370 Error_Msg_SP): New empty procedures to instantiate the Scanner.
35371 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35373 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35374 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35375 and get the checksum.
35377 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35379 Increase the Marking_Label at the end of the Multiple_Main_Loop,
35380 instead of at the beginning.
35382 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35384 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35387 * osint.ads (Multi_Unit_Index_Character): New Character global variable
35389 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35392 * par.adb: Remove test on file name to detect language defined units.
35393 Add test on unit name, after parsing, to detect language defined units
35394 that are not compiled with -gnatg (except System.RPC and its children)
35396 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35397 following units without style checking.
35399 * switch-c.adb: Change -gnatC to -gnateI
35401 * usage.adb: Document new switch -gnateInnn
35403 * scng.adb (Accumulate_Token_Checksum): New procedure
35404 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35405 word or literal number.
35406 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35409 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
35412 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35413 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35414 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35415 5vtpopde.adb: Add missing 'constant' keywords.
35417 2004-04-01 Javier Miranda <miranda@gnat.com>
35419 * par-ch4.adb: (P_Allocator): Code cleanup
35421 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35424 * sinfo.ads: Complete documentation of previous change
35426 2004-04-01 Pascal Obry <obry@gnat.com>
35428 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35429 only on VMS. This special handling was done because an old GNU/ld bug
35430 on Windows which has been fixed.
35432 2004-04-01 GNAT Script <nobody@gnat.com>
35434 * Make-lang.in: Makefile automatically updated
35436 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35438 * decl.c (gnat_to_gnu_entity, make_type_from_size):
35439 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35440 * trans.c (tree_transform, convert_with_check): Likewise.
35441 * utils.c (gnat_signed_or_unsigned_type): Likewise.
35442 (build_vms_descriptor, unchecked_convert): Likewise.
35443 * utils2.c (nonbinary_modular_operation): Likewise.
35445 2004-03-29 Javier Miranda <miranda@gnat.com>
35447 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35448 (Install_Null_Excluding_Check): Local subprogram that determines whether
35449 an access node requires a runtime access check and if so inserts the
35450 appropriate run-time check.
35451 (Apply_Access_Check): Call Install_Null_Excluding check if required
35452 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35454 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35456 * einfo.ads: Fix typo in comment
35458 * exp_ch3.adb (Build_Assignment): Generate conversion to the
35459 null-excluding type to force the corresponding run-time check.
35460 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35461 type to force the corresponding run-time check.
35463 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35464 the null-excluding type to force the corresponding run-time check.
35466 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35467 case of access types unless they have the null-excluding attribute.
35469 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35472 * exp_util.ads: Fix typo in comment
35474 * par.adb (P_Null_Exclusion): New subprogram
35475 (P_Subtype_Indication): New formal that indicates if the null-excluding
35476 part has been scanned-out and it was present
35478 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35480 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35481 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35482 type to force the corresponding run-time check
35483 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35485 (Resolve_Array_Aggregate): Carry out some static checks
35486 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35488 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35489 attribute must be set only if specified by means of the null-excluding
35490 part. In addition, we must also propagate the access-constant attribute
35492 (Access_Subprogram_Declaration, Access_Type_Declaration,
35493 Analyze_Component_Declaration, Analyze_Object_Declaration,
35494 Array_Type_Declaration, Process_Discriminants,
35495 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35496 and carry out some static checks.
35497 (Build_Derived_Access_Type): Set the null-excluding attribute
35498 (Derived_Type_Declaration, Process_Subtype): Carry out some static
35501 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35503 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35505 * sem_ch6.adb (Process_Formals): Carry out some static checks.
35506 (Set_Actual_Subtypes): Generate null-excluding subtype if the
35507 null-excluding part was present; it is not required to be done here in
35508 case of anonymous access types.
35509 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35512 * sem_res.adb (Resolve_Actuals): Carry out some static check
35513 (Resolve_Null): Allow null in anonymous access
35515 * sinfo.adb: New subprogram Null_Exclusion_Present
35516 All_Present and Constant_Present available on access_definition nodes
35518 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35519 object_declaration, derived_type_definition, component_definition,
35520 discriminant_specification, access_to_object_definition,
35521 access_function_definition, allocator, access_procedure_definition,
35522 access_definition, parameter_specification, All_Present and
35523 Constant_Present flags available on access_definition nodes.
35525 2004-03-29 Robert Dewar <dewar@gnat.com>
35527 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35528 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35529 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35530 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35531 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35532 sem_prag.adb: Updates to handle multiple units/file
35534 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35536 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35537 sem_util.adb: Minor reformatting
35539 * sem_ch12.adb: Add comment for previous change
35541 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
35543 * osint.adb (Executable_Prefix): Set Exec_Name to the current
35544 executable name when not initialized. Otherwise, use its current value.
35546 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35547 initialize it to another executable name than the current one. This
35548 allows to configure paths for an executable name (gnatmake) different
35549 from the current one (gnatdist).
35551 2004-03-29 Ed Schonberg <schonberg@gnat.com>
35553 * exp_ch6.adb (Expand_Call): A call to a function declared in the
35554 current unit cannot be inlined if it appears in the body of a withed
35555 unit, to avoid order of elaboration problems in gigi.
35557 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35558 information for protected (wrapper) operation as well, to simplify gdb
35561 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35562 protected body, indicate that the entity for the generated spec comes
35563 from source, to ensure that references are properly generated for it.
35564 (Build_Body_To_Inline): Do not inline a function that returns a
35567 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35568 apply convention to homonyms that are declared explicitly.
35570 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35571 that renames an equality operator and the operands are overloaded,
35572 resolve them with the declared formal types, before rewriting as an
35575 2004-03-29 GNAT Script <nobody@gnat.com>
35577 * Make-lang.in: Makefile automatically updated
35579 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
35581 * memtrack.adb: Log realloc calls, which are treated as free followed
35584 2004-03-25 Vincent Celier <celier@gnat.com>
35586 * prj-makr.adb (Process_Directories): Detect when a file contains
35587 several units. Do not include such files in the config pragmas or
35588 in the naming scheme.
35590 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35591 Resolve links only when not in Trusted_Mode.
35592 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35593 Do not resolve links for the display names.
35595 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35596 resolve links when computing the display names.
35598 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
35600 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35601 attribute reference does not denote a subtype, it can be any
35602 expression that has a classwide type, potentially after an implicit
35603 dereference. In particular, the prefix can be a view conversion for
35604 a classwide type (for which Is_Object_Reference holds), but it can
35605 also be a value conversion for an access-to-classwide type. In the
35606 latter case, there is an implicit dereference, and the original node
35607 for the prefix does not verify Is_Object_Reference.
35609 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35610 conversion of a discriminant-dependent component of a mutable object
35613 2004-03-25 Ed Schonberg <schonberg@gnat.com>
35615 * freeze.adb (Freeze_Entity): When an inherited subprogram is
35616 inherited, has convention C, and has unconstrained array parameters,
35617 place the corresponding warning on the derived type declaration rather
35618 than the original subprogram.
35620 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35621 indication on renaming declaration, if formal has a box and actual
35624 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35625 determine whether to generate an implicit or explicit reference to
35626 the renamed entity.
35628 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35629 subprogram renaming comes from a defaulted formal subprogram in an
35632 2004-03-25 Gary Dismukes <dismukes@gnat.com>
35634 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35635 value expressions to ensure that calls within a component definition
35636 will be checked (since those are evaluated during the record type's
35639 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
35641 * s-tpobop.adb: Code clean up:
35642 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35644 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35646 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
35648 * Makefile.in: Clean up in the ravenscar run time.
35650 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35652 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35653 of No_Strict_Aliasing to build_pointer_type_for_mode.
35654 * utils.c (update_pointer_to): Walk pointer and ref chains.
35656 2004-03-22 Cyrille Comar <comar@act-europe.fr>
35658 * ali.ads: Fix Comment about Dynamic_Elab.
35660 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35661 Has_RACW, Is_Generic, etc.)
35662 (Output_Object, Gnatls): Take into account ALI files not attached to
35665 2004-03-22 Vincent Celier <celier@gnat.com>
35667 * gprep.adb: Change all String_Access to Name_Id
35668 (Is_ASCII_Letter): new function
35669 (Double_File_Name_Buffer): New procedure
35670 (Preprocess_Infile_Name): New procedure
35671 (Process_Files): New procedure
35672 (Gnatprep): Check if output and input are existing directories.
35673 Call Process_Files to do the real job.
35675 2004-03-22 Robert Dewar <dewar@gnat.com>
35677 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35678 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35680 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
35682 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35683 case when the source contains only comments.
35685 2004-03-22 Ed Schonberg <schonberg@gnat.com>
35687 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35688 declaration for a child subprogram body that acts as a spec, indicate
35689 that the entity in the declaration needs debugging information.
35691 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35692 full view if the subtype is created for a constrained record component;
35693 gigi has enough information to construct the record, and there is no
35694 place in the tree for the declaration.
35696 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35697 serial number for the dummy body that is built for analysis, to avoid
35698 inconsistencies in the generation of internal names when compiling
35701 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
35703 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35706 2004-03-22 GNAT Script <nobody@gnat.com>
35708 * Make-lang.in: Makefile automatically updated
35710 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35712 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35713 * trans.c (tree_transform, emit_index_check): Likewise.
35714 * utils.c (build_template): Likewise.
35715 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35716 (maybe_unconstrained_array, unchecked_convert): Likewise.
35717 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35718 (build_unary_op): Likewise.
35719 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35720 (fill_vms_descriptor): Likewise.
35721 (build_call_alloc_dealloc): Likewise.
35723 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35725 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
35728 * gnat_ug.texi: Add info directory category and entry.
35729 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35730 gnat_ug_wnt.texi: Regenerate.
35732 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
35734 * ada-tree.h: Update copyright notice.
35735 Minor reformatting.
35737 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
35739 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35740 as regular exception objects and not as mere integers representing the
35741 condition code. The latter approach required some dynamics to mask off
35742 severity bits, which did not fit well into the GCC table based model.
35743 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35744 exception data objects. We don't it and it would conflict with the other
35745 external symbol we have to generate for such exceptions.
35747 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35748 the special code for VMS exceptions, since these are now represented
35749 as regular exceptions objects.
35751 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35753 * decl.c (debug_no_type_hash): Remove.
35754 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35755 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35757 2004-03-19 Laurent Guerby <laurent@guerby.net>
35759 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
35760 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
35762 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35764 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35765 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35766 (TYPE_RM_SIZE_INT): Directly use type.values.
35767 (TREE_LOOP_ID): Clean up check.
35768 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35769 TYPE_VALUES, not TYPE_FIELDS.
35770 * trans.c (convert_with_check): Delay access of bounds of basetype
35771 until sure is numeric.
35773 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
35775 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35778 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35779 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35780 Specific.Set instead of direct call to e.g pthread_setspecific.
35782 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
35784 * adaint.c: Update comments.
35786 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
35787 GNATLIB_SHARED for FreeBSD.
35789 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
35791 * init.c [VxWorks]: Do not fix the stack size for the environment task.
35792 When needed (stack checking) the stack size is retrieved
35793 from the VxWorks kernel.
35795 * Makefile.in: Flag -nostdinc is required when building the run time
35796 for avoiding looking for files in the base compiler.
35797 Add the VxWorks specific version of the package body for
35798 System.Stack_checking.Operations (5zstchop.adb).
35800 * Make-lang.in: Add the object file for
35801 System.Stack_Checking.Operations.
35803 * Makefile.rtl: Add object file for the package
35804 System.Stack_Checking.Operations.
35806 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
35808 * s-stache.ads, s-stache.adb: Move the operations related to stack
35809 checking from this package to package System.Stack_Checking.Operations.
35810 This way, stack checking operations are only linked in the final
35811 executable when using the -fstack-check flag.
35813 2004-03-18 Doug Rupp <rupp@gnat.com>
35815 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
35818 * 5qsystem.ads, 5xcrtl.ads: New files.
35820 2004-03-18 Vincent Celier <celier@gnat.com>
35822 * prj.adb (Reset): Reset hash table Files_Htable
35824 * prj-env.adb (Source_Paths, Object_Paths): New tables.
35825 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
35826 the procedures Add_To_Path_File.
35827 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
35828 making sure that each directory is present only once and, for object
35829 dirs, when a directory already present is added, the duplicate is
35830 removed and the directory is always put as the last in the table.
35831 Write the path files at the end of these accumulations.
35833 * prj-nmsc.adb (Record_Source): Add source file name in hash table
35834 Files_Htable for all sources.
35836 * prj-proc.adb (Process): Remove restrictions between not directly
35837 related extending projects.
35839 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
35841 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
35842 (Find_Sources): Minor speed optimization.
35844 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
35845 parameter Trusted_Mode.
35847 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
35849 * scn.adb (Determine_License): Take into account a degenerated case
35850 when the source contains only comments.
35852 2004-03-18 Ed Schonberg <schonberg@gnat.com>
35854 * sem_warn.adb (Check_References): For a warning on a selected
35855 component that does not come from source, locate an uninitialized
35856 component of the record type to produce a more precise error message.
35858 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
35860 * 3zsoccon.ads: Fix multicast options.
35862 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
35865 2004-03-15 Robert Dewar <dewar@gnat.com>
35867 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
35868 pragma used for a private type.
35870 * lib-xref.adb (Generate_Reference): Do not generate warning if
35871 reference is in a different unit from the pragma Unreferenced.
35873 * 5vtpopde.adb: Minor reformatting
35874 Fix casing of To_Task_ID
35876 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
35877 flag if we have an unchecked conversion to an access type in the same
35880 2004-03-15 Geert Bosch <bosch@gnat.com>
35882 * a-ngcoty.adb (Modulus): In alternate formula for large real or
35883 imaginary parts, use Double precision throughout.
35885 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
35886 we want to be able to compile run-time with -gnata for testing, but
35887 this may also be instantiated in user code that is compiled with -gnata.
35889 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
35891 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
35892 codes. Having a separate type for this is useful to enforce consistency
35893 throughout the various run-time units.
35894 (Exception_Data): Use Exception_Code for Import_Code.
35896 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
35897 Natural and Integer in various places.
35898 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
35899 with the severity bits masked off.
35900 (Register_VMS_Exception): Handle the additional exception data pointer
35903 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
35904 component, now reflected by an exported accessor.
35905 (is_handled_by): New routine to compute whether the propagated
35906 occurrence matches some handler choice specification. Extracted out of
35907 get_action_description_for, and expanded to take care of the VMS
35909 (get_action_description_for): Use is_handled_by instead of an explicit
35910 complex condition to decide if the current choice at hand catches the
35911 propagated occurrence.
35913 * raise.h (Exception_Code): New type for C.
35915 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
35916 System.Standard_Library.Exception_Code, to allow references from the
35917 pragma import/export expander.
35919 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
35920 New accessors to allow easy access to GNAT exception data
35922 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
35923 redundant Handled_By_Others component, helper for the personality
35924 routine which will now be able to call the appropriate exception data
35927 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
35928 component of Standard_Exception_Type to be the closest possible to
35929 Exception_Code in System.Standard_Library, that we cannot get at this
35930 point. Expand a ??? comment to notify that this type node should
35931 probably be rewritten later on.
35933 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
35934 registration call to include a pointer to the exception object in the
35937 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
35938 instead of int and explicit bitmasks.
35940 2004-03-15 Vincent Celier <celier@gnat.com>
35942 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
35943 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
35945 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
35946 longer needed now that it is in the spec of
35947 System.Tasking.Task_Attributes.
35949 * adaint.h, adaint.c: (__gnat_create_output_file): New function
35951 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
35953 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
35955 * make.adb (Gnatmake): Do not check the executable suffix; it is being
35956 taken care of in Scan_Make_Arg.
35957 (Scan_Make_Arg): Add the executable suffix only if the argument
35958 following -o, in canonical case, does not end with the executable
35959 suffix. When in verbose mode and executable file name does not end
35960 with executable suffix, output the executable name, in canonical case.
35962 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
35963 to avoid warnings when instantiating Ada.Task_Attributes.
35966 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
35967 in the correct order.
35969 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
35970 redirect standard output and error to a file for the invocation of the
35971 compiler, then read the file.
35973 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
35974 directory, instead of the Value.
35975 (Find_Source_Dirs): Remove useless code & comments.
35977 2004-03-15 Ed Schonberg <schonberg@gnat.com>
35979 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
35980 tagged type is inherited, and the parent operation is not frozen yet,
35981 force generation of a freeze node for the inherited operation, so the
35982 corresponding dispatch entry is properly initialized.
35983 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
35984 when looking for user-defined equality operation.
35986 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
35987 boolean when locating primitive equality of tagged component.
35989 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
35990 bit-aligned field and the right-hand side a string literal, introduce
35991 a temporary before expanding assignment into a loop.
35993 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
35994 priority in full, to ensure that any expanded subepxressions of it are
35995 elaborated in the scope of the init_proc.
35997 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
35998 after object declaration, skipping over code that may have been
35999 generated for validity checks.
36001 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36002 discriminants, ignore the known discriminants of its full view, if
36003 any, to check legality.
36005 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36006 component if type has unknown discriminants.
36007 (Analyze_Private_Extension_Declaration): Discriminant constraint is
36008 null if type has unknown discriminants.
36010 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36011 for end label when present.
36013 * s-fileio.adb (Open): When called with a C_Stream, use given name for
36014 temporary file, rather than an empty string.
36016 2004-03-15 Ed Falis <falis@gnat.com>
36018 * s-thread.adb: Removed, no longer used.
36020 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36022 * decl.c (target.h): Now include.
36023 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36024 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36025 (validate_size): For POINTER_TYPE, get smallest size permitted on
36028 * fe.h: Sort Einfo decls and add Set_Mechanism.
36030 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36031 (ada/decl.o): Depends on target.h.
36033 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36034 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36036 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
36038 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36040 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36041 Insert_Dereference_Action when rewriting an implicit dereference into
36042 an explicit one, this will be taken care of during expansion of the
36043 explicit dereference.
36044 (Expand_N_Slice): Same. Always do the rewriting, even for the case
36045 of non-packed slices, since the dereference action generated by
36046 expansion of the explicit dereference is needed in any case.
36047 (Expand_N_Selected_Component): When rewriting an implicit dereference,
36048 analyze and resolve the rewritten explicit dereference so it is seen
36050 (Insert_Dereference_Action): This procedure is now called only for the
36051 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36052 dereferences that do not come from source (including explicit
36053 dereferences resulting from rewriting implicit ones), but do not
36054 recursively insert a check for the dereference nodes contained within
36056 (Insert_Dereference_Action): Clarify and correct comment.
36058 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
36061 Move language detection to the top level.
36062 * config-lang.in: Build by default.
36064 2004-03-05 Robert Dewar <dewar@gnat.com>
36066 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36068 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36069 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36070 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36071 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36072 unchecked conversion to spec to avoid warnings.
36074 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36077 * 7stpopsp.adb: Correct casing in To_Task_ID call
36079 * a-strsea.ads, a-strsea.adb: Minor reformatting
36081 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36083 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36084 Adjust Max_Msg_Length to be clearly large enough.
36086 * fe.h: Define In_Same_Source_Unit
36088 * osint.adb: Add pragma Warnings Off to suppress warnings
36089 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36092 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36094 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36096 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36098 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36100 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36102 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36103 node. We now do generate them for gcc back end.
36105 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36108 * sinput-c.adb: Fix bad name in header.
36109 Add pragma Warnings Off to suppress aliasing warning.
36111 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36113 * snames.h, snames.ads, snames.adb: Add entry for pragma
36114 No_Strict_Aliasing.
36116 2004-03-05 Vincent Celier <celier@gnat.com>
36118 * prj-com.ads: Add hash table Files_Htable to check when a file name
36119 is already a source of another project.
36121 * prj-nmsc.adb (Record_Source): Before recording a new source, check
36122 if its file name is not already a source of another project. Report an
36125 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36126 source file name, call gnatpp with all the sources of the main project.
36128 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36131 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36132 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36133 /RUNTIME_SYSTEM=, converted to --RTS=
36134 /NOTABS, converted to -notabs
36136 2004-03-05 Pascal Obry <obry@gnat.com>
36138 * make.adb: Minor reformatting.
36140 2004-03-05 Ed Schonberg <schonberg@gnat.com>
36142 Part of implemention of AI-262.
36143 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36145 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36148 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36149 when component type is a partially constrained class-wide subtype.
36150 (Constrain_Discriminated_Type): If parent type has unknown
36151 discriminants, a constraint is illegal, even if full view has
36153 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36154 with unknown discriminants whose full view is a discriminated record.
36156 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36157 flag, to handle properly derivations of tagged types with unknown
36159 (Analyze_Package_Spec, Analyze_Package_Body): Install
36160 Private_With_Clauses before analyzing private part or body.
36162 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36163 Has_Discriminants can be true for a given type (documentation).
36165 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
36167 * s-restri.ads: Fix license (GPL->GMGPL).
36169 * s-tassta.adb: Minor reformatting.
36171 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36172 by calls to Exit_One_ATC_Level, since additional clean up is performed
36175 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36176 by calls to Exit_One_ATC_Level, since additional clean up is performed
36179 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36181 * trans.c: Reflect GCC changes to fix bootstrap problem.
36182 Add warning for suspicious aliasing unchecked conversion.
36184 2004-03-05 GNAT Script <nobody@gnat.com>
36186 * Make-lang.in: Makefile automatically updated
36188 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
36190 * ali.adb (Read_Instantiation_Instance): Do not modify the
36191 current_file_num when reading information about instantiations, since
36192 this corrupts files in later references.
36194 2004-03-02 Vincent Celier <celier@gnat.com>
36196 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36197 before checking if it is read-only.
36199 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36200 of SRC_DIRS and eliminate duplicates.
36202 * gprcmd.adb: Replace command "path" with command "path_sep" to return
36203 the path separator.
36204 (Usage): Document path_sep
36206 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36207 C++ compiler. No need for a script.
36208 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36209 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36212 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36213 where there are Ada sources.
36214 (Set_Ada_Paths): Only add to the include path the source dirs of project
36216 (Add_To_Path): Add the Display_Values of the directories, not their
36219 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36222 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36224 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36225 Value is canonicalized.
36226 (Language_Independent_Check): Do not copy Value to Display_Value when
36227 canonicalizing Value.
36229 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36230 path to find limited with cycles.
36231 (Parse_Single_Project): Use canonical cased path to find the end of a
36234 2004-03-02 Ed Schonberg <schonberg@gnat.com>
36236 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36237 and not a child unit.
36239 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36240 appear in a with_clause.
36242 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36243 only happen in type_annotate mode, do not try to elaborate it.
36245 * exp_util.adb (Force_Evaluation): If expression is a selected
36246 component on the left of an assignment, use a renaming rather than a
36247 temporary to remove side effects.
36249 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36250 inlined instance body, which is analyzed before the end of the
36253 2004-03-02 Robert Dewar <dewar@gnat.com>
36255 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36256 sem_ch4.adb: Use new feature for substitution of keywords in VMS
36258 * errout.ads, errout.adb: Implement new circuit for substitution of
36261 * sem_case.adb (Analyze_Choices): Place message properly when case is
36262 a subtype reference rather than an explicit range.
36264 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36266 2004-03-02 Doug Rupp <rupp@gnat.com>
36268 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36270 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
36272 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36274 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36276 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36279 2004-02-25 Robert Dewar <dewar@gnat.com>
36281 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36282 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36283 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36284 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36285 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36286 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36287 the defining instance of the type to avoid aliasing problems.
36288 Fix copyright header. Fix bad comments in package header.
36290 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36292 2004-02-25 Ed Schonberg <schonberg@gnat.com>
36294 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36295 rewritten as references when aliased through an address clause.
36297 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36298 whether call can be interpreted as an indirect call to the result of a
36299 parameterless function call returning an access subprogram.
36301 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
36304 * exp_ch7.adb (Make_Clean): Remove generation of calls to
36305 Unlock[_Entries], since this is now done by Service_Entries directly.
36307 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36309 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36310 Requeue_Call for better code readability. Change spec and update calls:
36311 PO_Service_Entries now unlock the PO on exit.
36312 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36313 PO_Service_Entries.
36315 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36317 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36319 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
36321 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36322 protected subprogram call and analyzing the result of such expanding
36323 in case when the called protected subprogram is eliminated.
36325 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36328 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
36330 * Makefile.in: Clean ups.
36332 2004-02-23 Ed Schonberg <schonberg@gnat.com>
36334 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36335 protected operations if original subprogram is flagged as eliminated.
36336 (Expand_N_Subprogram_Body): For a protected operation, create
36337 discriminals for next operation before checking whether the operation
36340 * exp_ch9.adb (Expand_N_Protected_Body,
36341 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36342 for internal protected operations if the original subprogram is
36345 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36346 declared in a single protected object.
36348 2004-02-23 Vincent Celier <celier@gnat.com>
36350 * prj-attr.adb: Make attribute Builder'Executable an associative array,
36351 case insensitive if file names are case insensitive, instead of a
36352 standard associative array.
36354 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36355 them as case insensitive on platforms where the file names are case
36358 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36359 project file has already been parsed that canonical path are compared.
36361 2004-02-23 Robert Dewar <dewar@gnat.com>
36363 * sinput-c.ads: Correct bad unit title in header
36365 * freeze.adb: Minor reformatting
36367 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36369 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36370 nonaddressable COMPONENT_REF that is removing padding that we are
36371 taking the address of, take the address of the padded record instead
36372 if item is variable size.
36374 2004-02-20 Robert Dewar <dewar@gnat.com>
36376 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36378 2004-02-20 Ed Schonberg <schonberg@gnat.com>
36380 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36381 itype references for the constrained designated type of a component
36382 whose base type is already frozen.
36384 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
36386 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36387 avoid GCC warnings.
36389 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
36391 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36392 identifier for a phantom package that rewrites the formal package
36393 declaration with a box. The Add semantic decorations for the defining
36394 identifier from the original node (that represents the formal package).
36396 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
36398 * Make-lang.in (ada/stamp-sdefault): Use the top level
36401 2004-02-19 Richard Henderson <rth@redhat.com>
36403 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36405 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
36407 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36408 Scan_ALI can be used for multiple ALI files without reinitializing
36411 2004-02-18 Robert Dewar <dewar@gnat.com>
36413 * debug.adb: Minor reformatting.
36415 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36417 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36418 to zero if there is an address clause.
36420 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
36422 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36424 2004-02-18 Gary Dismukes <dismukes@gnat.com>
36426 * layout.adb (Layout_Component_List): Revise generation of call to
36427 discriminant-checking function to pass selections of all of the type's
36428 discriminants rather than just the variant-controlling discriminant.
36430 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
36432 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36433 fail in the current setup and triggers spurious system error messages.
36434 Pretend it occurred and failed instead.
36436 2004-02-18 Vincent Celier <celier@gnat.com>
36438 * bld.adb: Mark FLDFLAGS as saved
36439 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36440 it is not the root project. Put each directory to be
36441 extended between double quotes to prevent it to be expanded on Windows.
36442 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36443 the project file. Set them back to their initial values if they have not
36444 been set in the project file.
36446 * gprcmd.adb: (Gprdebug, Debug): New global variables
36447 (Display_Command): New procedure
36448 (Usage): Document new command "linkopts"
36449 Call Display_Command when env var GPRDEBUG has the value "TRUE"
36450 Implement new command "linkopts"
36451 Remove quotes that may be around arguments for "extend"
36452 Always call Normalize_Pathname with arguments formatted for the platform
36454 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36455 Change @echo to @$(display) in target clean to be able to clean silently
36457 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36459 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36462 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36463 = Extending_All when current project is an extending all project.
36465 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36466 set to True only for LINK command, after Unix switch -o.
36467 (Process_Arguments): Set Output_File_Expected to True for LINK command
36468 after Unix switch -o. When Output_File_Expected is True, never add an
36469 extension to a file name.
36471 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36472 option file name, only to the --for-linker= switch.
36473 (Option_File_Name): If option file name do not end with ".opt", append
36476 2004-02-18 GNAT Script <nobody@gnat.com>
36478 * Make-lang.in: Makefile automatically updated
36480 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
36482 * Make-lang.in (stamp-sdefault): Do not depend on
36485 2004-02-12 Zack Weinberg <zack@codesourcery.com>
36487 * config-lang.in: Disable Ada by default until probe logic for
36488 a bootstrap Ada compiler can be moved to the top level configure
36491 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
36493 * decl.c (components_to_record): Don't claim that the internal fields
36494 we make to hold the variant parts are semantically addressable, because
36497 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36498 adjust the comment describing the modular type form when we can use it.
36499 (Install_PAT): Account for the Esiz renaming.
36501 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36502 sc_onstack context indication before raising the exception to which
36503 the signal is mapped. Allows better handling of later signals possibly
36504 triggered by the resumed user code if the exception is handled.
36506 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
36508 * 5zinit.adb: Removed, no longer used.
36510 2004-02-12 Robert Dewar <dewar@gnat.com>
36512 * ali.adb: Remove separating space between parameters on R line. Makes
36513 format consistent with format used by the binder for Set_Globals call.
36515 * atree.ads, atree.adb: Minor reformatting (new function header format)
36517 * bindgen.adb: Add Run-Time Globals documentation section containing
36518 detailed documentation of the globals passed from the binder file to
36521 * gnatls.adb: Minor reformatting
36523 * init.c (__gnat_set_globals): Add note pointing to documentation in
36526 * lib-writ.ads, lib-writ.adb: Remove separating space between
36527 parameters on R line.
36528 Makes format consistent with format used by the binder for Set_Globals
36531 * osint.ads: Add 2004 to copyright notice
36534 * snames.ads: Correct capitalization of FIFO_Within_Priorities
36535 Noticed during code reading, documentation issue only
36537 * usage.adb: Remove junk line for obsolete C switch
36538 Noticed during code reading
36540 2004-02-12 Vincent Celier <celier@gnat.com>
36542 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36543 extend for each directory, so that multiple /** directories are
36544 extended individually.
36545 (Recursive_Process): Set the default for LANGUAGES to ada
36547 * gprcmd.adb: Define new command "ignore", to do nothing.
36548 Implement new comment "path".
36550 * Makefile.generic: Suppress output when SILENT is set
36551 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36552 used, so that the correct compiler is invoked.
36553 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36554 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36556 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
36558 * Makefile.in: Clean ups and remove obsolete targets.
36560 2004-02-12 Ed Schonberg <schonberg@gnat.com>
36562 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36563 predicate declared in exp_util.
36565 * exp_util.adb: Add comments.
36567 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36568 visibility before compiling context of the subunit.
36570 * sem_res.adb (Check_Parameterless_Call): If the context expects a
36571 value but the name is a procedure, do not attempt to analyze as a call,
36572 in order to obtain more telling diagnostics.
36574 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36575 'Access on parameterless function calls.
36576 (Normalize_Actuals): For a parameterless function call with missing
36577 actuals, defer diagnostic until resolution of enclosing call.
36579 * sem_util.adb (Wrong_Type): If the context type is an access to
36580 subprogram and the expression is a procedure name, suggest a missing
36583 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
36584 Nathanael Nerode <neroden@gcc.gnu.org>
36588 Merge with libada-branch:
36589 * config-lang.in: Build libada only when ada is built.
36591 2004-02-09 Ed Schonberg <schonberg@gnat.com>
36593 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36594 for a tagged type, verify that both formals have the same type.
36596 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36597 temporary when the formal is an in-parameter and the actual a possibly
36600 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36601 when expansion is disabled, to ensure proper name capture with
36602 overloaded literals. Condition can be of any boolean type, resolve
36605 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36606 renaming is for a formal subprogram with a default operator name, and
36607 there is a usable operator that is visible at the point of
36610 2004-02-09 Robert Dewar <dewar@gnat.com>
36612 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36613 rewrite to ignore errors in ali files, intended to allow tools downward
36614 compatibility with new versions of ali files.
36616 * ali.ads: Add new parameter Ignore_Errors
36618 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36619 duplicating the error message giving the file with restrictions.
36621 * debug.adb: Add debug flag I for gnatbind
36623 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36624 operators for the case where the operator is a defining operator.
36626 * exp_ch3.adb: Minor reformatting (new function spec format).
36628 * exp_ch4.adb: Add comment for previous change, and make minor
36629 adjustment to loop to always check for improper loop termination.
36630 Minor reformatting throughout (new function spec format).
36632 * gnatbind.adb: Implement -di debug flag for gnatbind
36634 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36636 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36638 * lib-load.adb: Fix bad assertion.
36639 Found by testing and code reading.
36640 Minor reformatting.
36642 * lib-load.ads: Minor reformatting.
36644 * lib-writ.adb: There is only one R line now.
36646 * lib-writ.ads: Add documentation on making downward compatible changes
36647 to ali files so old tools work with new ali files.
36648 There is only one R line now.
36649 Add documentation on format incompatibilities (with special GPS note)
36651 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36653 * par-load.adb: Minor reformatting
36655 * sem_ch8.adb: Fix to error message from last update
36656 Minor reformatting and restructuring of code from last update
36658 * par-prag.adb, snames.adb, snames.ads, snames.h,
36659 sem_prag.adb: Implement pragma Profile.
36661 * stylesw.adb: Implement -gnatyN switch to turn off all style check
36664 * usage.adb: Add line for -gnatyN switch
36666 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36668 2004-02-09 Albert Lee <lee@gnat.com>
36670 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36672 2004-02-09 Ed Schonberg <schonberg@gnat.com>
36674 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36677 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36678 is nested in an instance that is not frozen yet, to avoid
36679 order-of-elaboration problems in gigi.
36681 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36682 body the attribute is legal.
36684 2004-02-09 Robert Dewar <dewar@gnat.com>
36686 * s-rident.ads: Minor comment correction
36688 * targparm.adb: Remove dependence on uintp completely. There was
36689 always a bug in Make in that it called Targparm before initializing
36690 the Uint package. The old code appeared to get away with this, but
36691 the new code did not! This caused an assertion error in gnatmake.
36693 * targparm.ads: Fix bad comment, restriction pragmas with parameters
36694 are indeed fully supported.
36696 2004-02-06 Alan Modra <amodra@bigpond.net.au>
36698 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36700 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
36702 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36703 with targetm.calls.promote_prototypes.
36705 2004-02-04 Robert Dewar <dewar@gnat.com>
36707 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36708 ali.ads, gprcmd.adb: Minor reformatting
36710 * bindgen.adb: Output restrictions string for new style restrictions
36713 * impunit.adb: Add s-rident.ads (System.Rident) and
36714 s-restri (System.Restrictions)
36716 * lib-writ.adb: Fix bug in writing restrictions string (last few
36719 * s-restri.ads, s-restri.adb: Change name Restrictions to
36720 Run_Time_Restrictions to avoid conflict with package name.
36721 Add circuit to read and acquire run time restrictions.
36723 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
36725 * restrict.ads, restrict.adb: Use the new restriction
36726 No_Task_Attributes_Package instead of the old No_Task_Attributes.
36728 * sem_prag.adb: No_Task_Attributes is a synonym of
36729 No_Task_Attributes_Package.
36731 * snames.ads, snames.adb: New entry for proper handling of
36732 No_Task_Attributes.
36734 * s-rident.ads: Adding restriction No_Task_Attributes_Package
36735 (AI-00249) that supersedes the GNAT specific restriction
36736 No_Task_Attributes.
36738 2004-02-04 Ed Schonberg <schonberg@gnat.com>
36741 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36742 body, an identifier may be wrapped in an unchecked conversion.
36744 2004-02-04 Vincent Celier <celier@gnat.com>
36746 * lib-writ.ads: Comment update for the W lines
36748 * bld.adb: (Expression): An empty string list is static
36750 * fname-uf.adb: Minor comment update
36752 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36754 * gnatbind.adb: Initialize Cumulative_Restrictions with the
36755 restrictions on the target.
36757 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
36759 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36762 2004-02-02 Arnaud Charlet <charlet@gnat.com>
36764 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36766 2004-02-02 Vincent Celier <celier@gnat.com>
36768 * gprcmd.adb (Check_Args): If condition is false, print the invoked
36769 comment before the usage.
36770 Gprcmd: Fail when command is not recognized.
36771 (Usage): Document command "prefix"
36773 * g-md5.adb (Digest): Process last block.
36774 (Update): Do not process last block. Store remaining characters and
36777 * g-md5.ads (Update): Document that several call to update are
36778 equivalent to one call with the concatenated string.
36779 (Context): Add fields to allow new Update behaviour.
36781 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
36782 defaulted to False.
36783 When May_Fail is True and no existing file can be found, return No_File.
36785 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
36788 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
36789 spec file name instead on the W line.
36791 2004-02-02 Robert Dewar <dewar@gnat.com>
36793 * ali.adb: Read and acquire info from new format restrictions lines
36795 * bcheck.adb: Add circuits for checking restrictions with parameters
36797 * bindgen.adb: Output dummy restrictions data
36798 To be changed later
36800 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36801 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
36802 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
36803 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
36804 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
36806 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
36807 the warning message on access to possibly uninitialized variable S)
36808 Minor changes for new restrictions handling.
36810 * gnatbind.adb: Minor reformatting
36811 Minor changes for new restrictions handling
36812 Move circuit for -r processing here from bcheck (cleaner)
36814 * gnatcmd.adb, gnatlink.adb: Minor reformatting
36816 * lib-writ.adb: Output new format restrictions lines
36818 * lib-writ.ads: Document new R format lines for new restrictions
36821 * s-restri.ads/adb: New files
36823 * Makefile.rtl: Add entry for s-restri.ads/adb
36825 * par-ch3.adb: Fix bad error messages starting with upper case letter
36828 * restrict.adb: Major rewrite throughout for new restrictions handling
36829 Major point is to handle restrictions with parameters
36831 * restrict.ads: Major changes in interface to handle restrictions with
36832 parameters. Also generally simplifies setting of restrictions.
36834 * snames.ads/adb: New entry for proper handling of No_Requeue
36836 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
36837 restriction counting.
36838 Other minor changes for new restrictions handling
36840 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
36841 Restriction_Warnings now allows full parameter notation
36842 Major rewrite of Restrictions for new restrictions handling
36844 2004-02-02 Javier Miranda <miranda@gnat.com>
36846 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
36847 syntax rule for object renaming declarations.
36848 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
36849 component definitions.
36851 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
36853 (Array_Type_Declaration): Give support to access components. In addition
36854 it was also modified to reflect the name of the object in anonymous
36855 array types. The old code did not take into account that it is possible
36856 to have an unconstrained anonymous array with an initial value.
36857 (Check_Or_Process_Discriminants): Allow access discriminant in
36859 (Process_Discriminants): Allow access discriminant in non-limited types
36860 Initialize the new Access_Definition field in N_Object_Renaming_Decl
36861 node. Change Ada0Y to Ada 0Y in comments
36863 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
36864 equality operators.
36865 Change Ada0Y to Ada 0Y in comments
36867 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
36868 renamings Change Ada0Y to Ada 0Y in comments
36870 * sem_type.adb (Find_Unique_Type): Give support to the equality
36871 operators for universal access types
36872 Change Ada0Y to Ada 0Y in comments
36874 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
36876 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
36878 (N_Object_Renaming_Declaration): Addition of Access_Definition field
36879 Change Ada0Y to Ada 0Y in comments
36881 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
36882 component definition and object renaming nodes
36883 Change Ada0Y to Ada 0Y in comments
36885 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
36887 * restrict.adb: Use the new restriction identifier
36888 No_Requeue_Statements instead of the old No_Requeue for defining the
36889 restricted profile.
36891 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
36892 No_Requeue_Statements.
36894 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
36895 that supersedes the GNAT specific restriction No_Requeue. The later is
36896 kept for backward compatibility.
36898 2004-02-02 Ed Schonberg <schonberg@gnat.com>
36900 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
36901 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
36902 pragma and fix incorrect ones.
36904 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
36905 warning if the pragma is redundant.
36907 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
36909 * 5staprop.adb: Add missing 'constant' keywords.
36911 * Makefile.in: use consistent value for SYMLIB on
36912 platforms where libaddr2line is supported.
36914 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36916 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
36919 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
36921 * init.c (__gnat_install_handler): Setup an alternate stack for signal
36922 handlers in the environment thread. This allows proper propagation of
36923 an exception on stack overflows in this thread even when the builtin
36924 ABI stack-checking scheme is used without support for a stack reserve
36927 * utils.c (create_field_decl): Augment the head comment about bitfield
36928 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
36929 here, because the former is not accurate enough at this point.
36930 Let finish_record_type decide instead.
36931 Don't make a bitfield if the field is to be addressable.
36932 Always set a size for the field if the record is packed, to ensure the
36933 checks for bitfield creation are triggered.
36934 (finish_record_type): During last pass over the fields, clear
36935 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
36936 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
36937 from DECL_BIT_FIELD.
36939 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
36941 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
36942 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
36943 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
36945 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36947 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
36949 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
36950 (ZCX_By_Default): Likewise.
36951 (Front_End_ZCX_Support): Likewise.
36953 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
36954 (Initialize_Lock): Mark Level unreferenced.
36955 (Sleep): Mark Reason unreferenced.
36956 (Timed_Sleep): Likewise.
36957 (Wakeup): Likewise.
36958 (Exit_Task): Use Result.
36959 (Check_No_Locks): Mark Self_ID unreferenced.
36961 * 5gtasinf.adb (New_Sproc): Make Attr constant.
36962 (Bound_Thread_Attributes): Make Sproc constant.
36963 (New_Bound_Thread_Attributes): Likewise.
36965 2004-01-26 Ed Schonberg <schonberg@gnat.com>
36967 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
36968 one-dimensional array an slice assignments, when component type is
36971 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
36972 component type is controlled, and control_actions are in effect, use
36973 TSS procedure rather than generating inline code.
36975 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
36976 arrays with controlled components.
36978 2004-01-26 Vincent Celier <celier@gnat.com>
36980 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
36981 command line for the non VMS case.
36983 * gnatlink.adb (Process_Binder_File): When building object file, if
36984 GNU linker is used, put all object paths between quotes, to prevent ld
36985 error when there are unusual characters (such as '!') in the paths.
36987 * Makefile.generic: When there are sources in Ada and the main is in
36988 C/C++, invoke gnatmake with -B, instead of -z.
36990 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
36991 from VMS_Conversion.
36992 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
36993 specification of argument file on the command line.
36995 2004-01-26 Bernard Banner <banner@gnat.com>
36997 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
36999 2004-01-26 Ed Schonberg <schonberg@gnat.com>
37001 * snames.adb: Update copyright notice.
37002 Add info on slice assignment for controlled arrays.
37004 2004-01-23 Robert Dewar <dewar@gnat.com>
37006 * exp_aggr.adb: Minor reformatting
37008 * exp_ch9.adb: Minor code clean up
37010 Fix bad character in comment
37013 * targparm.adb (Get_Target_Parameters): Give clean abort error on
37014 unexpected end of file, along with more detailed message.
37016 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37018 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37021 * decl.c (copy_alias_set): New function.
37022 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37024 2004-01-23 Doug Rupp <rupp@gnat.com>
37026 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37027 lib$${file} in case subsequent character is not a separator.
37029 2004-01-23 Vincent Celier <celier@gnat.com>
37031 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37032 when the GCC version is at least 3.
37034 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37035 Remove all "Opt.", to prepare for opt split
37037 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37038 Extends_All. Set to True when the project parsed is an extending all
37039 project. Fails for importing an extending all project only when the
37040 imported project is an extending all project.
37041 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37042 depending on the value of Extends_All returned.
37044 * prj-proc.adb (Process): Check that no project shares its object
37045 directory with a project that extends it, directly or indirectly,
37046 including a virtual project.
37047 Check that no project extended by another project shares its object
37048 directory with another also extended project.
37050 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37051 Kind = N_With_Clause
37053 * prj-tree.ads: Minor reformatting
37054 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37056 2004-01-23 Ed Schonberg <schonberg@gnat.com>
37058 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37059 applies to a type with an incomplete view, use full view in Name of
37060 clause, for consistency with uses of Get_Attribute_Definition_Clause.
37062 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
37064 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37065 SCHED_RR, since other values are not supported by this policy.
37066 (Initialize): Move initialization of mutex attribute to package
37067 elaboration, to prevent early access to this variable.
37069 * Makefile.in: Remove mention of Makefile.adalib, unused.
37071 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37072 1ssecsta.ads: Removed, unused.
37074 2004-01-21 Javier Miranda <miranda@gnat.com>
37076 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37077 entity if already built in the current scope.
37079 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37080 reminder in internal scopes. Required for nested limited aggregates.
37082 2004-01-21 Doug Rupp <rupp@gnat.com>
37084 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37085 VMS. Replace all occurences of libgnat- and libgnarl- with
37086 libgnat$(hyphen) and libgnarl$(hyphen).
37087 Fixed shared library build problem on VMS.
37089 2004-01-21 Robert Dewar <dewar@gnat.com>
37091 * mlib-prj.adb: Minor reformatting
37093 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
37095 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37096 'constant' keywords for declaration of pointers that are not modified.
37098 * exp_pakd.adb: Fix English in comment.
37100 2004-01-21 Ed Schonberg <schonberg@gnat.com>
37103 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37104 copy all attributes of the parent, including the foreign language
37107 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
37110 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37111 for 'delay until' statement.
37113 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37115 * Make-lang.in: Replace $(docdir) with doc.
37116 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37117 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37118 to use consistent MAKEINFO rule.
37119 (ada.man, ada.srcman): Dummy entry.
37120 (ADA_INFOFILES): Define.
37121 (ada.info, ada.srcinfo): New rules.
37123 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
37125 * utils.c: Update copyright notice, missed in previous change.
37127 2004-01-19 Vincent Celier <celier@gnat.com>
37129 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37130 args if Bind is True. Set First_ALI, if not already done.
37131 (Build_Library): For Stand Alone Libraries, extract from one ALI file
37132 an eventual --RTS switch, for gnatbind, and all backend switches +
37133 --RTS, for linking.
37135 2004-01-19 Robert Dewar <dewar@gnat.com>
37137 * sem_attr.adb, memtrack.adb: Minor reformatting
37139 2004-01-19 Ed Schonberg <schonberg@gnat.com>
37141 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37142 that rename enumeration literals. This is properly done in sem_eval.
37144 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37145 to functions that rename enumeration literals.
37147 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37148 functions that rename enumeration literals.
37150 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
37152 * Make-lang.in (utils.o): Depend on target.h.
37153 * utils.c: Include target.h.
37154 (process_attributes): Use targetm.have_named_sections instead
37155 of ASM_OUTPUT_SECTION_NAME.
37157 2004-01-16 Andreas Jaeger <aj@suse.de>
37159 * Makefile.in: Add $(DESTDIR).
37161 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
37163 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37164 also when not defining if a Size clause applies. That information is
37167 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
37169 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37170 symbolic links for the shared gnat run time when needed.
37172 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
37174 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37175 for writing, and terminate with an error message if not.
37177 2004-01-15 Ed Schonberg <schonberg@gnat.com>
37179 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37180 warning on an access to subprogram in an instance, when the target
37181 type is declared in the same generic unit.
37182 (Eval_Attribute): If 'access is known to fail accessibility check,
37183 rewrite as a raise statement.
37185 2004-01-15 GNAT Script <nobody@gnat.com>
37187 * Make-lang.in: Makefile automatically updated
37189 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
37191 * Make-lang.in (ada.srcextra): Dummy entry.
37193 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
37195 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37197 2004-01-13 Ed Schonberg <schonberg@gnat.com>
37199 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37200 components that are initialized with aggregates.
37202 2004-01-13 Vincent Celier <celier@gnat.com>
37204 * gnatlink.adb (Process_Binder_File): To find directory of shared
37205 libgcc, if "gcc-lib" is not a subdirectory, look for the last
37206 subdirectory "lib" in the path of the shared libgnat or libgnarl.
37208 * make.adb (Gnatmake): If GCC version is at least 3, link with
37209 -shared-libgcc, when there is at least one shared library project.
37211 * opt.ads (GCC_Version): New integer constant.
37213 * adaint.c (get_gcc_version): New function.
37215 2004-01-13 Robert Dewar <dewar@gnat.com>
37217 * sem_dist.adb, sem_res.adb, sem_util.adb,
37218 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37219 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37221 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
37223 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37224 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37227 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
37229 * misc.c: Remove trailing spaces.
37230 Update copyright notice missed in previous change.
37233 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37236 * Makefile.generic: Update copyright.
37237 Add license notice.
37239 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37240 of prefix/share/make.
37242 * Makefile.prolog: Update copyright.
37243 Add license notice.
37245 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
37247 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37248 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37249 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37252 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37255 2004-01-12 Javier Miranda <miranda@gnat.com>
37257 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37258 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37259 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37260 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37261 Component_Definition node.
37263 2004-01-12 Ed Falis <falis@gnat.com>
37265 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37267 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
37269 * link.c: Change default libgnat kind to STATIC for FreeBSD.
37271 2004-01-12 Bernard Banner <banner@gnat.com>
37273 * Makefile.in: map 86numaux to a-numaux for x86_64
37275 2004-01-12 Ed Schonberg <schonberg@gnat.com>
37277 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37278 generated to rename a generic actual, go to the actual itself, the
37279 subtype is not a user-visible entity.
37281 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37282 part is a private subtype, reset the visibility of its full view, if
37283 any, to be consistent.
37286 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37287 to use a generic package G as a formal package for another generic
37290 2004-01-12 Robert Dewar <dewar@gnat.com>
37292 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37294 * usage.adb: Remove mention of obsolete -gnatwb switch
37295 Noticed during code reading
37297 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
37299 * 1ssecsta.adb: Minor changes for -gnatwa warnings
37301 2004-01-12 GNAT Script <nobody@gnat.com>
37303 * Make-lang.in: Makefile automatically updated
37305 2004-01-09 Mark Mitchell <mark@codesourcery.com>
37307 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37309 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37311 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37313 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
37315 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37316 Update comment and copyright date.
37317 * stamp-xgnatug: Delete.
37319 2004-01-05 Robert Dewar <dewar@gnat.com>
37321 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37322 be modified by the binder generated main program if the -D switch is
37325 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37326 imported functions (since now we expect this to be done for imported
37329 * 5vtaprop.adb: Add several ??? for sections requiring more comments
37330 Minor reformatting throughout
37332 * 5zinit.adb: Minor reformatting
37333 Add 2004 to copyright date
37334 Minor changes to avoid -gnatwa warnings
37335 Correct some instances of using OR instead of OR ELSE (noted while
37336 doing reformatting)
37338 * sprint.adb: Minor updates to avoid -gnatwa warnings
37340 * s-secsta.ads, s-secsta.adb:
37341 (SS_Get_Max): New function to obtain high water mark for ss stack
37342 Default_Secondary_Stack is not a constant since it may be modified by
37343 the binder generated main program if the -D switch is used.
37345 * switch-b.adb: New -Dnnn switch for binder
37348 Make -gnatg imply all warnings currently in -gnatwa
37350 * vms_conv.adb: Minor reformatting
37351 Add 2004 to copyright notice
37352 Add 2004 to printed copyright notice
37354 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37355 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37356 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37357 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37358 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37359 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37360 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37361 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37362 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37363 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37364 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37365 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37366 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37367 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37368 checks.adb, clean.adb, cstand.adb, einfo.ads,
37369 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37370 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37371 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37372 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37373 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37374 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37375 Minor reformatting and code clean ups.
37376 Minor changes to prevent -gnatwa warnings
37378 * ali.adb: Minor reformatting and cleanup of code
37379 Acquire new SS indication of secondary stack use from ali files
37381 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37382 (since now we expect this to be done for imported functions)
37384 * bindgen.adb: Generate call to modify default secondary stack size if
37387 * bindusg.adb: Add line for new -D switch
37389 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37390 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37391 Add circuitry for both records and arrays to avoid gigi
37392 processing if the type involved has non-bit-aligned components
37394 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37395 N_String_Literal node always references an E_String_Literal_Subtype
37396 entity. This may not be true in the future.
37397 (Possible_Bit_Aligned_Component): Move processing of
37398 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37400 * exp_ch6.adb (Expand_Thread_Body): Pick up
37401 Default_Secondary_Stack_Size as variable so that we get value modified
37402 by possible -Dnnn binder parameter.
37404 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37405 (Type_May_Have_Bit_Aligned_Components): New function.
37407 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37408 (Type_May_Have_Bit_Aligned_Components): New function.
37410 * fe.h: (Set_Identifier_Casing): Fix prototype.
37411 Add declaration for Sem_Elim.Eliminate_Error_Msg.
37412 Minor reformatting.
37414 * freeze.adb (Freeze_Entity): Add RM reference to error message about
37415 importing constant atomic/volatile objects.
37416 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37417 unless explicit Pure_Function pragma given, to avoid insidious bug of
37418 call to non-pure imported function getting eliminated.
37420 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37421 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37422 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37423 Add 2004 to printed copyright notice
37425 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37428 * Makefile.rtl: Add entry for g-sestin.o
37429 g-sestin.ads: New file.
37431 * mdll.adb: Minor changes to avoid -gnatwa warnings
37433 * mlib-tgt.adb: Minor reformatting
37435 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37436 New switch Sec_Stack_Used (GNAT, GNATBIND)
37437 Make Default_Secondary_Stack_Size a variable instead of a constant,
37438 so that it can be modified by the new -Dnnn bind switch.
37440 * rtsfind.adb (Load_Fail): Give full error message in configurable
37441 run-time mode if all_errors mode is set. This was not done in the case
37442 of a file not found, which was an oversight.
37443 Note if secondary stack unit is used by compiler.
37445 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37446 ineffective elaborate all pragmas on non-visible packages (this
37447 happened when a renamed subprogram was called). Now the elaborate all
37448 always goes on the package containing the renaming rather than the one
37449 containing the renamed subprogram.
37451 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37452 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37454 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37455 has an Etype that references an E_String_Literal.
37456 (Eval_String_Literal): Avoid assumption that N_String_Literal node
37457 always references an E_String_Literal_Subtype entity. This may not
37458 be true in the future.
37460 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37463 * sem_res.adb (Resolve): Specialize msg for function name used in proc
37466 2004-01-05 Ed Falis <falis@gnat.com>
37468 * g-debuti.adb: Replaced direct boolean operator with short-circuit
37471 2004-01-05 Vincent Celier <celier@gnat.com>
37473 * bld.adb: Minor comment updates
37474 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37477 * make.adb (Gnatmake): Special process for files to compile/check when
37478 -B is specified. Fail when there are only foreign mains in attribute
37479 Main of the project file and -B is not specified. Do not skip bind/link
37480 steps when -B is specified.
37482 * makeusg.adb: Document new switch -B
37484 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37486 * switch-m.adb: (Scan_Make_Switches): Process -B switch
37488 * vms_data.ads: Add new GNAT PRETTY qualifier
37489 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37491 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37493 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37496 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37497 Set_Identifier_Casing.
37499 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37500 has size that overflows.
37502 2004-01-05 Gary Dismukes <dismukes@gnat.com>
37504 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37505 -gnatwa warning on static condition.
37507 2004-01-05 Doug Rupp <rupp@gnat.com>
37509 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37511 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
37513 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37514 all attributes, including read-only attribute.
37516 2004-01-05 Pascal Obry <obry@gnat.com>
37518 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37519 library naming scheme.
37521 * mlib-prj.adb (Build_Library): Generate different names for the static
37522 or dynamic version of the GNAT runtime. This is needed to support the
37523 new shared library naming scheme.
37524 (Process_Binder_File): Add detection of shared library in binder file
37525 based on the new naming scheme.
37527 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37528 scheme for the shared runtime libraries.
37531 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37533 (install-gnatlib): Do not create symlinks for shared libraries.
37534 (gnatlib-shared-default): Idem.
37535 (gnatlib-shared-dual-win32): New target. Not used for now as the
37536 auto-import feature does not support arrays/records.
37537 (gnatlib-shared-win32): Do not create copy for the shared libraries.
37538 (gnatlib-shared-vms): Fix shared runtime libraries names.
37540 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37541 dependent runtime shared library name.
37543 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
37545 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37548 2004-01-05 Ed Schonberg <schonberg@gnat.com>
37550 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37551 protected objects when allocator has a subtype indication, not a
37552 qualified expression. Note that qualified expressions may have to be
37553 checked when limited aggregates are implemented.
37555 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37556 pure, emit warning.
37557 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37558 subprogram is imported, remove warning.
37560 2004-01-05 Geert Bosch <bosch@gnat.com>
37562 * s-poosiz.adb: Update copyright notice.
37563 (Allocate): Use Task_Lock to protect against concurrent access.
37564 (Deallocate): Likewise.
37566 2004-01-05 Joel Brobecker <brobecker@gnat.com>
37568 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37571 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
37573 * gnat_ug.texi: Force a CVS commit by updating copyright.
37574 * gnat_ug_vxw.texi: Regenerate.
37575 * gnat_ug_wnt.texi: Regenerate.
37576 * gnat_ug_vms.texi: Regenerate.
37577 * gnat_ug_unx.texi: Regenerate.
37579 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
37581 * trans.c: Remove uses of "register" specifier in
37582 declarations of local variables.
37584 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
37586 * stamp-xgnatug: New stamp file.
37587 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
37588 (ada/doctools/xgnatug): Add $(build_exeext).
37589 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37590 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37592 2003-12-17 Ed Falis <falis@gnat.com>
37594 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37597 * a-exextr.adb: Add context clause for
37598 Ada.Exceptions.Last_Chance_Handler.
37600 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
37602 * cstand.adb (Create_Standard): Change the way how the declaration of
37603 the Duration type is created (making it the same way as it is for all
37604 the other standard types).
37606 2003-12-17 Robert Dewar <dewar@gnat.com>
37608 * s-crtl.ads: Fix header format
37609 Change Pure to Preelaborate
37611 2003-12-17 Ed Schonberg <schonberg@gnat.com>
37613 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37614 the expression type only if it is declared in the current unit.
37616 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37617 are universal and already analyzed, as can occur in constrained
37618 subcomponents that depend on discriminants, when one constraint is a
37621 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37622 type Any_Fixed is legal as the argument of a conversion, if only one
37623 fixed-point type is in context.
37625 2003-12-17 GNAT Script <nobody@gnat.com>
37627 * Make-lang.in: Makefile automatically updated
37629 2003-12-15 Robert Dewar <dewar@gnat.com>
37631 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37634 2003-12-15 Vincent Celier <celier@gnat.com>
37636 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37637 (Gnatchop): Do not set failure status when reporting the number of
37640 2003-12-15 Doug Rupp <rupp@gnat.com>
37642 * s-ctrl.ads: New file.
37644 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37646 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37647 (GNATBIND_OBJS): Add ada/s-crtl.o.
37649 * Makefile.in [VMS]: Clean up ifeq rules.
37651 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37652 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37653 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37654 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37655 s-tasdeb.adb: Update copyright.
37656 Import System.CRTL.
37657 Make minor modifications to use System.CRTL declared functions instead
37658 of importing locally.
37660 2003-12-15 GNAT Script <nobody@gnat.com>
37662 * Make-lang.in: Makefile automatically updated
37664 2003-12-11 Ed Falis <falis@gnat.com>
37666 * 5zinit.adb: Clean up.
37668 * 5zintman.adb (Notify_Exception): replaced case statement with a call
37669 to __gnat_map_signal, imported from init.c to support
37670 signal -> exception mappings that depend on the vxWorks version.
37673 Created and exported __gnat_map_signal to support signal -> exception
37674 mapping that is dependent on the VxWorks version.
37675 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37677 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
37679 * 5wosinte.ads: Link with -mthreads switch.
37681 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
37683 * init.c (__gnat_install_handler [NetBSD]): Set
37684 __gnat_handler_installed, as done on all other platforms.
37685 Remove duplicated code.
37687 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
37689 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37691 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
37693 * sinfo.ads: Fix inconsistent example code in comment.
37695 2003-12-11 Robert Dewar <dewar@gnat.com>
37697 * a-tiinau.adb: Add a couple of comments
37699 * sem_ch3.adb: Minor reformatting
37702 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37703 Minor reformatting throughout
37705 2003-12-11 Ed Schonberg <schonberg@gnat.com>
37707 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37708 bounds of a loop, create a separate block in order to generate proper
37709 cleanup actions to prevent memory leaks.
37711 * sem_res.adb (Resolve_Call): After a call to
37712 Establish_Transient_Scope, the call may be rewritten and relocated, in
37713 which case no further processing is needed.
37715 * sem_util.adb: (Wrong_Type): Refine previous fix.
37716 Fixes ACATS regressions.
37719 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37722 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
37724 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37725 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37728 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37731 2003-12-08 Robert Dewar <dewar@gnat.com>
37733 * 7sintman.adb: Minor reformatting
37735 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37736 standard linker options to get standard libraries linked. We now plan
37737 to provide dummy versions of these libraries to match the appropriate
37738 configurable run-time (e.g. if a library is not needed at all, provide
37739 a dummy empty library).
37741 * targparm.ads: Configurable_Run_Time mode no longer affects linker
37742 options (-L parameters and standard libraries). What we plan to do is
37743 to provide dummy libraries where the libraries are not required.
37745 * gnatbind.adb: Minor comment improvement
37747 2003-12-08 Javier Miranda <miranda@gnat.com>
37749 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37750 aggregate in the parent. Otherwise constants with limited aggregates
37751 are not supported. Add new formal to pass the component type (Ctype).
37752 It is required to call the corresponding IP subprogram in case of
37753 default initialized components.
37754 (Gen_Assign): In case of default-initialized component, generate a
37755 call to the IP subprogram associated with the component.
37756 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37757 of aggregate with default initialized components.
37758 (Has_Default_Init_Comps): Improve implementation to recursively check
37759 all the present expressions.
37761 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37762 to indicate that the initialization call corresponds to a
37763 default-initialized component of an aggregate.
37764 In case of default initialized aggregate with tasks this parameter is
37765 used to generate a null string (this is just a workaround that must be
37766 improved later). In case of discriminants, this parameter is used to
37767 generate a selected component node that gives access to the discriminant
37770 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37771 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37772 allocated aggregates with default-initialized components.
37774 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37775 the box notation is used in positional aggregates.
37777 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
37779 * lib.ads: Fix typo in comment
37781 2003-12-08 Vincent Celier <celier@gnat.com>
37783 * prj.adb (Project_Empty): New component Unkept_Comments
37784 (Scan): Remove procedure; moved to Prj.Err.
37786 * prj.ads (Project_Data): New Boolean component Unkept_Comments
37787 (Scan): Remove procedure; moved to Prj.Err.
37789 * prj-dect.adb: Manage comments for the different declarations.
37791 * prj-part.adb (With_Record): New component Node
37792 (Parse): New Boolean parameter Store_Comments, defaulted to False.
37793 Set the scanner to return ends of line and comments as tokens, if
37794 Store_Comments is True.
37795 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
37796 comments are associated with these nodes. Store the node IDs in the
37798 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
37800 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
37801 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
37802 current project. Call Tree.Restore afterwards. Set the various nodes
37803 for comment storage (Next_End, End_Of_Line, Previous_Line,
37806 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
37807 defaulted to False.
37809 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
37810 to False. When Truncated is True, truncate the string, never go to the
37812 (Write_End_Of_Line_Comment): New procedure
37813 (Print): Process comments for nodes N_With_Clause,
37814 N_Package_Declaration, N_String_Type_Declaration,
37815 N_Attribute_Declaration, N_Typed_Variable_Declaration,
37816 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
37817 Process nodes N_Comment.
37819 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
37820 without comments and there are some comments, set the flag
37821 Unkept_Comments to True.
37822 (Scan): If there are comments, set the flag Unkept_Comments to True and
37823 clear the comments.
37824 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
37825 (Next_End_Nodes: New table
37826 (Comment_Zones_Of): New function
37827 (Scan): New procedure; moved from Prj. Accumulate comments in the
37828 Comments table and set end of line comments, comments after, after end
37830 (Add_Comments): New procedure
37831 (Save, Restore, Seset_State): New procedures
37832 (There_Are_Unkept_Comments): New function
37833 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
37834 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
37836 (First_Comment_After, First_Comment_After_End): New functions
37837 (First_Comment_Before, First_Comment_Before_End): New functions
37838 (Next_Comment): New function
37839 (End_Of_Line_Comment, Follows_Empty_Line,
37840 Is_Followed_By_Empty_Line): New functions
37841 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
37842 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
37843 (Set_Next_Comment): New procedure
37844 (Default_Project_Node): Associate comment before if the node can store
37847 * scans.ads (Token_Type): New enumeration value Tok_Comment
37848 (Comment_Id): New global variable
37850 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
37851 defaulted to False.
37852 (Scan): Store position of start of comment. If comments are tokens, set
37853 Comment_Id and set Token to Tok_Comment when scanning a comment.
37854 (Set_Comment_As_Token): New procedure
37856 * sinput-p.adb: Update Copyright notice
37857 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
37858 that no longer exists.
37860 2003-12-08 Javier Miranda <miranda@gnat.com>
37862 * sem_aggr.adb: Add dependence on Exp_Tss package
37863 Correct typo in comment
37864 (Resolve_Aggregate): In case of array aggregates set the estimated
37865 type of the aggregate before calling resolve. This is needed to know
37866 the name of the corresponding IP in case of limited array aggregates.
37867 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
37868 in case of default initialized array components.
37870 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
37871 types. Required to give support to limited aggregates in generic
37874 2003-12-08 Ed Schonberg <schonberg@gnat.com>
37876 * sem_ch3.adb (Check_Initialization): For legality purposes, an
37877 inlined body functions like an instantiation.
37878 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
37879 until bounds are analyzed, to diagnose premature use of type.
37881 * sem_util.adb (Wrong_Type): Improve error message when the type of
37882 the expression is used prematurely.
37884 2003-12-08 GNAT Script <nobody@gnat.com>
37886 * Make-lang.in: Makefile automatically updated
37888 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
37890 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
37891 they are automatically generated by Make-lang.in and cause nothing but
37892 maintenance troubles.
37894 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
37896 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
37897 version of this unit).
37899 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
37901 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
37902 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
37903 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
37904 the body of System.Interrupt_Management common to several targets.
37905 Update copyright notice when appropriate.
37907 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
37910 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
37911 to ensure that the kernel fills in the interrupted context structure
37912 before calling a signal handler, which is necessary to be able to
37913 unwind past it. Update the copyright notice.
37915 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
37917 * a-elchha.ads: New file.
37919 * a-elchha.adb: New default last chance handler. Contents taken from
37920 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
37922 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
37923 is moved to a-elchha.adb to provide a target-independent default last
37926 * Makefile.rtl: Add a-elchha.o
37928 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
37930 2003-12-05 Ed Schonberg <schonberg@gnat.com>
37932 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
37933 declared in an instance, do not inline the call if the instance is not
37934 frozen yet, to prevent order of elaboration problems.
37936 * sem_prag.adb: Add comments for previous fix.
37938 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
37940 * g-table.adb: Use the right variable in Set_Item.
37941 Update copyright notice.
37943 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
37945 * Makefile.in: Remove unused rules.
37947 2003-12-05 Vincent Celier <celier@gnat.com>
37949 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
37950 -nostdlib. Not needed here after all.
37952 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
37955 * adaint.h, adaint.c, g-os_lib.ads:
37956 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
37957 on some platforms (including FreeBSD), it is a 64 bit value.
37958 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
37960 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
37962 * gnatvsn.ads (Library_Version): Now contain only the relevant
37964 (Verbose_Library_Version): New constant.
37966 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
37967 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
37968 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
37970 * gnatlbr.adb: Clean up: replace Library_Version by
37971 Verbose_Library_Version.
37973 * make.adb, lib-writ.adb, exp_attr.adb:
37974 Clean up: replace Library_Version by Verbose_Library_Version.
37976 * 5lintman.adb: Removed.
37979 Update and simplify computation of LIBRARY_VERSION.
37980 Fix computation of GSMATCH_VERSION.
37981 5lintman.adb is no longer used: replaced by 7sintman.adb.
37983 2003-12-03 Robert Dewar <dewar@gnat.com>
37986 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
37987 name. Modified to consider small non-bit-packed arrays as troublesome
37988 and in need of component-by-component assigment expansion.
37990 2003-12-03 Vincent Celier <celier@gnat.com>
37992 * lang-specs.h: Process nostdlib as nostdinc
37994 * back_end.adb: Update Copyright notice
37995 (Scan_Compiler_Arguments): Process -nostdlib directly.
37997 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
38000 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38001 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38002 included in HIE_NONE_TARGET_PAIRS.
38004 2003-12-03 Ed Schonberg <schonberg@gnat.com>
38007 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38008 is legal in an instance, because legality is cheched in the template.
38011 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38012 appplied to an unchecked conversion of a formal parameter.
38015 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38018 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
38020 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38021 routines. The second one is new functionality to deal with backtracing
38022 through signal handlers.
38023 (unwind): Split into the two separate subroutines above.
38024 Update the documentation, and deal properly with sizeof (REG) different
38025 from sizeof (void*).
38027 2003-12-01 Nicolas Setton <setton@act-europe.fr>
38029 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38030 so that the debugger can reliably access the value of the parameter,
38031 and therefore is able to display the exception name when an exception
38032 breakpoint is reached.
38034 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
38036 * fmap.adb: Fix typo in warning message.
38038 * g-socket.ads, g-socket.adb: Make Free a visible instance of
38039 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38041 2003-12-01 Vincent Celier <celier@gnat.com>
38043 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38045 (Build_Library): Get the switches only if Default_Switches is declared
38048 2003-12-01 Ed Schonberg <schonberg@gnat.com>
38050 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38051 actuals that are indexed components, reanalyze actual to ensure that
38052 packed array references are properly expanded.
38054 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38055 attempted assignment to a discriminant.
38057 2003-12-01 Robert Dewar <dewar@gnat.com>
38059 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38062 * switch-c.adb: Minor reformatting of comments
38064 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38066 * Makefile.in: Clean ups.
38068 2003-12-01 GNAT Script <nobody@gnat.com>
38070 * Make-lang.in: Makefile automatically updated
38072 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38074 * 5wsystem.ads: Disable zero cost exception, not ready yet.
38076 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
38078 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38079 to force serialization.
38081 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
38083 * g-socket.ads, g-socket.adb:
38084 Clarify documentation of function Stream. Introduce a Free procedure
38085 to release the returned Stream once it becomes unused.
38087 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38089 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
38091 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38092 since NT 4 cannot handle timeout values that are too large,
38093 e.g. DWORD'Last - 1.
38095 2003-11-26 Ed Schonberg <schonberg@gnat.com>
38098 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38099 in procedure calls and whose expansion must be deferred.
38101 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38105 (Build_Derived_Array_Type): Create operator for unconstrained type
38106 if ancestor is unconstrained.
38108 2003-11-26 Vincent Celier <celier@gnat.com>
38110 * make.adb (Project_Object_Directory): New global variable
38111 (Change_To_Object_Directory): New procedure
38112 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38113 of Change_Dir directly. Do not change working directory to object
38114 directory of main project after each compilation.
38115 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38117 Change to object directory of main project before binding step.
38118 (Initialize): Initialize Project_Object_Directory to No_Project
38121 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38122 binding a Stand-Alone Library.
38124 * output.adb: Update Copyright notice
38125 (Write_Char): Output buffer when full
38127 2003-11-26 Robert Dewar <dewar@gnat.com>
38129 * sem_ch13.adb: (Check_Size): Reset size if size is too small
38132 (Check_Size): Fix documentation to include bit-packed array case
38134 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38136 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38138 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38140 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
38143 * utils.c (init_gigi_decls): Change name of built-in setjmp to
38144 __builtin_setjmp, since this is apparently needed by recent
38147 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38149 * adadecode.c: Only include ctype.h if not IN_GCC.
38150 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38152 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
38155 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38156 signals and interrupts.
38158 * 5zintman.ads: New File.
38160 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38161 add exception signals to the set of unmasked signals.
38164 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38165 between signals and interrupts.
38166 Add to Unblocked_Signal_Mask the set of signals that are in
38170 Adding a check to see whether the Interrupt_ID we want to unmask is in
38171 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38172 reason is that the index type of the Keep_Unmasked array is not always
38173 Interrupt_ID; it may be a subtype of Interrupt_ID.
38175 2003-11-24 Gary Dismukes <dismukes@gnat.com>
38178 (Remove_Side_Effects): Condition constantness of object created for a
38179 an unchecked type conversion on the constantness of the expression
38180 to ensure the correct value for 'Constrained when passing components
38181 of view-converted class-wide objects.
38183 2003-11-24 Robert Dewar <dewar@gnat.com>
38185 * par-load.adb (Load): Improve handling of misspelled and missing units
38186 Removes several cases of compilation abandoned messages
38188 * lib.adb: (Remove_Unit): New procedure
38190 * lib.ads: (Remove_Unit): New procedure
38192 * lib-load.adb: Minor reformatting
38194 2003-11-24 Vincent Celier <celier@gnat.com>
38197 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38198 (Marking_Label): Label to mark processed source files. Incremented for
38200 (Gnatmake): Increase Marking_Labet for each executable
38201 (Is_Marked): Compare against marking label
38202 (Mark): Mark with marking label
38204 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
38207 Move the declaration of the TSD for System.Threads to System.Soft_Links.
38210 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38211 (rts-cert): build a single relocatable object for the run-time lib.
38214 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
38217 Use gnatls rather than gcc to obtain the location of GNAT RTL for
38220 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
38222 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38223 can not use it as before (that is, as a variable) when dumping it into
38224 the tree file. Add a local variable to store the result of this
38225 function and to be used as the string to be written into the tree.
38227 * scn.adb (Initialize_Scanner): Add comments explaining the recent
38230 * sinput.adb (Source_First, Source_Last): In case of
38231 Internal_Source_File, replace returning attributes of
38232 Internal_Source_Ptr (which is wrong) with returning attributes of
38235 2003-11-24 Ed Schonberg <schonberg@gnat.com>
38238 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38239 used for implicit concatenation operators.
38243 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38244 task bodies that are in the scope of a Suppress pragma.
38245 (Check_A Call): Use the flag to prevent spurious elaboration checks.
38247 * sinfo.ads, sinfo.adb:
38248 New flag No_Elaboration_Check on function/procedure calls, to properly
38249 suppress checks on calls in task bodies that are within a local suppress
38253 (Expand_Concatenate_Other): Use the proper integer type for the
38254 expression for the upper bound, to avoid universal_integer computations
38257 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
38259 * .cvsignore: Delete.
38261 2003-11-21 Andreas Schwab <schwab@suse.de>
38263 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38265 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
38267 * 5wsystem.ads: Enable zero cost exception.
38269 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
38271 * 5ztiitho.adb: Remove an unreferenced variable.
38273 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
38275 * adaint.c: For FreeBSD, use mkstemp.
38277 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
38279 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38281 2003-11-21 Robert Dewar <dewar@gnat.com>
38283 * bld.adb: Remove useless USE of gnatvsn
38285 * gnatchop.adb: Minor reformatting
38286 Clean up version handling to be more consistent
38288 * gnatxref.adb: Minor reformatting
38290 * gprcmd.adb: Minor reformatting
38291 Fix output of copyright to be more consistent with other tools
38293 2003-11-21 Vincent Celier <celier@gnat.com>
38295 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38297 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
38299 * atree.adb (Initialize): Add initializations for global variables
38300 used in New_Copy_Tree.
38302 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38303 Internal_Source_File as the actual).
38304 Put the set of statements creating Any_Character before the set of
38305 statements creating Any_Array to have Any_Character fully initialized
38306 when it is used in creating Any_Array.
38308 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38309 not call Scan in case if the actual is Internal_Source_File
38310 Add 2003 to copyright note.
38312 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38313 processing Internal_Source_File.
38315 * types.ads: Add the constant Internal_Source_File representing the
38316 source buffer for artificial source-code-like strings created within
38317 the compiler (the definition of Source_File_Index is changed).
38319 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
38321 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38322 56system.ads: New file, FreeBSD version.
38324 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
38326 * Make-lang.in (ada.extraclean): Delete.
38328 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
38330 * gnatmem.adb: Clean up verbose output.
38332 * gprcmd.adb: Change copyright to FSF.
38334 2003-11-19 Vincent Celier <celier@gnat.com>
38336 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38337 and Version (ignored).
38339 * symbols.ads: (Policy): New type
38340 (Initialize): New parameter Reference, Symbol_Policy and
38342 Remove parameter Force.
38343 Minor reformatting.
38345 * snames.ads, snames.adbadb: New standard names
38346 Library_Reference_Symbol_File and Library_Symbol_Policy
38349 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38353 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38355 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38357 * prj.adb: (Project_Empty): New component Symbol_Data
38359 * prj.ads: (Policy, Symbol_Record): New types
38360 (Project_Data): New component Symbol_Data
38363 New attributes Library_Symbol_File, Library_Symbol_Policy and
38364 Library_Reference_Symbol_File.
38367 (Ada_Check): When project is a Stand-Alone library project, process
38368 attribute Library_Symbol_File, Library_Symbol_Policy and
38369 Library_Reference_Symbol_File.
38371 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38372 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38373 5sml-tgt.adb (Build_Dynamic_Library): New parameter
38374 Symbol_Data (ignored).
38376 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38377 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38378 functions Option_File_Name and Version_String. Set new options of
38379 gnatsym related to symbol file, symbol policy and reference symbol
38383 Extensive modifications to take into account the reference symbol file,
38384 the symbol policy, the library version and to put in the symbol file the
38385 minor and major IDs.
38387 * bld.adb (Process_Declarative_Items): Put second argument of
38388 gprcmd to_absolute between single quotes, to avoid problems with
38391 * bld-io.adb: Update Copyright notice.
38392 (Flush): Remove last character of a line, if it is a back slash, to
38393 avoid make problems.
38396 Implement new scheme with reference symbol file and symbol policy.
38398 * g-os_lib.ads: (Is_Directory): Clarify comment
38400 2003-11-19 Robert Dewar <dewar@gnat.com>
38402 * atree.adb: Move New_Copy_Tree global variables to head of package
38404 * errout.adb: Minor reformatting
38406 2003-11-19 Javier Miranda <miranda@gnat.com>
38408 * sem_ch4.adb: (Diagnose_Call): Improve error message.
38409 Add reference to Ada0Y (AI-50217)
38411 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38412 sem_util.adb: Add reference to AI-50217
38414 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38416 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38418 * sem_aggr.adb: Complete documentation of AI-287 changes
38420 * par-ch4.adb: Document previous changes.
38422 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38423 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38426 * exp_aggr.adb: Add references to AI-287 in previous changes
38428 2003-11-19 Ed Schonberg <schonberg@gnat.com>
38431 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38432 in the rewriting is the result of an inlined call.
38434 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38435 parameter is a type conversion, use original node to construct the
38436 post-call assignment, because expression may have been rewritten, e.g.
38437 if it is a packed array.
38440 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38441 body, just as it is in an instance.
38442 Categorization routines
38444 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38445 Instantiate_Object): Set proper sloc reference for message on missing
38448 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
38450 * Makefile.in: Add FreeBSD libgnat pairs.
38452 * usage.adb: Fix typo in usage message.
38454 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
38456 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38457 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38458 pragma Thread_Body.
38459 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38461 * s-thread.adb: This file is now a dummy implementation of
38464 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
38466 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38468 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
38470 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38471 instanciation references in the parent type description.
38473 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38475 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38477 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38478 TYPE_PRECISION directly from esize.
38480 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
38483 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38485 * init.c: Initialization routines for FreeBSD
38487 * link.c: Link info for FreeBSD
38489 * sysdep.c: Add the case of FreeBSD
38491 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
38493 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38494 already called in System.Threads.
38496 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38497 environment task, as it has been moved to System.Threads.Initialization.
38499 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
38501 * adaint.c (__gnatlib_install_locks): Only reference
38502 __gnat_install_locks on VMS, since other platforms can avoid using
38503 --enable-threads=gnat
38505 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38507 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38509 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38510 TYPE_PACKED_ARRAY_TYPE_P.
38511 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38513 Part of PR ada/12806
38514 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38515 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38517 2003-11-17 Vincent Celier <celier@gnat.com>
38519 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38521 Do not set exit status to Failure when Warning is True.
38522 (Gnatchop): Make errors "no compilation units found" and
38523 "no source files written" warnings only.
38525 * make.adb (Gnatmake): When using a project file, set
38526 Look_In_Primary_Dir to False.
38527 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38528 and Local_Configuration_Pragmas in the project where they are declared
38529 not an extending project which might have inherited them.
38531 * osint.adb (Locate_File): If Name is already an absolute path, do not
38532 look for a directory.
38534 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38535 -gnats (Check_Syntax) is used, issue only a warning, not an error.
38537 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38538 in objects of type Variable_Value.
38540 * prj.ads: (Variable_Value): New component Project
38542 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38543 is in a project extended by Project.
38545 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38546 Project of Variable_Values to this new parameter value.
38547 (Expression): Set component Project of Variable_Values.
38548 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38549 Set the component Project in array elements.
38551 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
38553 * errout.adb: (Initialize): Add initialization for error nodes.
38555 * sem_ch12.adb (Initialize): Add missing initializations for
38556 Exchanged_Views and Hidden_Entities.
38558 2003-11-17 Ed Schonberg <schonberg@gnat.com>
38560 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38561 already instantiated tree for use in subsequent inlining.
38562 (Analyze_Associations, Instantiate_Formal_Subprogram,
38563 Instantiate_Object): improve error message for mismatch in
38566 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38567 instantiations of subprograms declared in instances.
38569 2003-11-17 Javier Miranda <miranda@gnat.com>
38571 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38572 executed only under the Extensions_Allowed flag.
38574 2003-11-17 Robert Dewar <dewar@gnat.com>
38576 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38578 (Address_Image): Fix bug of returning 0x instead of 0x0
38579 Minor reformatting (function specs).
38581 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38582 (missed case of 33-63)
38584 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38586 * s-thread.adb: Add comments for pragma Restriction
38588 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38589 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38591 2003-11-17 Ed Falis <falis@gnat.com>
38593 * s-thread.adb: Added No_Tasking restriction for this implementation.
38595 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
38597 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38598 instanciation references in the parent type description.
38600 2003-11-17 GNAT Script <nobody@gnat.com>
38602 * Make-lang.in: Makefile automatically updated
38604 2003-11-16 Jason Merrill <jason@redhat.com>
38606 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38607 and TAGS files that include them for each front end.
38609 2003-11-14 Andreas Jaeger <aj@suse.de>
38611 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
38612 is the canonical version.
38613 * misc.c (gnat_handle_option): Likewise.
38615 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38617 * 5nsystem.ads: New file for x86_64-linux-gnu.
38619 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
38621 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
38623 * comperr.adb: Fix logic in previous change.
38625 2003-11-13 Vincent Celier <celier@gnat.com>
38627 * 5bml-tgt.adb (Build_Dynamic_Library): Use
38628 Osint.Include_Dir_Default_Prefix instead of
38629 Sdefault.Include_Dir_Default_Name.
38631 * gnatlbr.adb: Update Copyright notice
38632 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38633 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38634 instead of Sdefault.Object_Dir_Default_Name
38637 (Process_Binder_File): Never suppress the option following -Xlinker
38640 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38641 Sdefault.Object_Dir_Default_Name.
38643 * osint.ads, osint.adb:
38644 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38645 Minor reformatting.
38647 * vms_conv.ads: Minor reformating
38648 Remove GNAT STANDARD and GNAT PSTA
38651 Allow GNAT MAKE to have several files on the command line.
38652 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38653 Sdefault.Object_Dir_Default_Name.
38655 Remove data for GNAT STANDARD
38658 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38659 Remove data for GNAT STANDARD
38660 Remove options and documentation for -gnatwb/-gnatwB: these warning
38661 options no longer exist.
38663 2003-11-13 Ed Falis <falis@gnat.com>
38665 * 5zthrini.adb: (Init_RTS): Made visible
38668 (Register): Removed unnecessary call to taskVarGet that checked whether
38669 an ATSD was already set as a task var for the argument thread.
38672 Updated comment to reflect that this is a VxWorks version
38673 Added context clause for System.Threads.Initialization
38674 Added call to System.Threads.Initialization.Init_RTS
38676 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
38679 (Init_RTS): New procedure, for the initialization of the run-time lib.
38682 Remove dependancy on System.Init, so that this file can be used in the
38683 AE653 sequential run-time lib.
38685 2003-11-13 Robert Dewar <dewar@gnat.com>
38687 * bindgen.adb: Minor reformatting
38689 2003-11-13 Ed Schonberg <schonberg@gnat.com>
38692 (Apply_Discriminant_Check): Do no apply check if target type is derived
38693 from source type with no applicable constraint.
38696 (Ensure_System_Dependency): Do not apply the style checks that may have
38697 been specified for the main unit.
38700 (Find_Selected_Component): Further improvement in error message, with
38704 (Resolve): Handle properly the case of an illegal overloaded protected
38707 2003-11-13 Javier Miranda <miranda@gnat.com>
38710 (Has_Default_Init_Comps): New function to check the presence of
38711 default initialization in an aggregate.
38712 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38713 extension aggregate of a limited record. In addition, a new formal
38714 was added to do not initialize the record controller (if any) during
38715 this recursive expansion of ancestors.
38716 (Init_Controller): Add support for limited record components.
38717 (Expand_Record_Aggregate): In case of default initialized components
38718 convert the aggregate into a set of assignments.
38720 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38721 describing the new syntax.
38722 Nothing else needed to be done because this subprogram delegates part of
38723 its work to P_Precord_Or_Array_Component_Association.
38724 (P_Record_Or_Array_Component_Association): Give support to the new
38725 syntax for default initialization of components.
38728 (Resolve_Aggregate): Relax the strictness of the frontend in case of
38729 limited aggregates.
38730 (Resolve_Record_Aggregate): Give support to default initialized
38732 (Get_Value): In case of default initialized components, duplicate
38733 the corresponding default expression (from the record type
38734 declaration). In case of default initialization in the *others*
38735 choice, do not check that all components have the same type.
38736 (Resolve_Extension_Aggregate): Give support to limited extension
38740 (Check_Initialization): Relax the strictness of the front-end in case
38741 of aggregate and extension aggregates. This test is now done in
38742 Get_Value in a per-component manner.
38744 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38745 expression corresponds to a limited aggregate. This test is now done
38748 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38751 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38752 present in an N_Component_Association node
38754 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
38756 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38757 type-conformant entry only if they are homographs.
38759 2003-11-13 GNAT Script <nobody@gnat.com>
38761 * Make-lang.in: Makefile automatically updated
38763 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38765 * adadecode.c: Use <> form of include for ctype.h.
38766 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38768 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38770 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38771 Works around PR middle-end/6552.
38773 2003-11-10 Ed Falis <falis@gnat.com>
38775 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38777 * 5zinit.adb: (Install_Handler): Moved back to spec
38778 (Install_Signal_Handlers): Deleted
38780 * 5zthrini.adb: Added context clause for System.Storage_Elements
38781 (Register): Only handles creation of taskVar; initialization moved to
38783 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
38784 Added declaration of environment task secondary stack and
38787 * s-thread.adb: Implement bodies for thread body processing
38790 Added comment identifying supported targets for pragma Thread_Body.
38792 2003-11-10 Pascal Obry <obry@gnat.com>
38794 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
38798 (Open): Properly check for string length before copying into the buffer.
38799 Raises Name_Error if buffer is too small. Note that this was a potential
38802 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
38804 * bindgen.adb, comperr.adb: Code clean ups.
38805 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
38807 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
38809 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
38811 2003-11-10 Vincent Celier <celier@gnat.com>
38814 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
38817 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
38819 * prj.adb: (Project_Empty): Add new boolean component Virtual
38821 * prj.ads: (Virtual_Prefix): New constant string
38822 (Project_Data): New boolean component Virtual
38824 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
38825 a library project is extended by a virtual extending project.
38828 Modifications throughout to implement extending-all project, including:
38829 (Virtual_Hash, Processed_Hash): New hash tables
38830 (Create_Virtual_Extending_Project): New procedure
38831 (Look_For_Virtual_Projects_For): New procedure
38834 (Process): After checking the projects, if main project is an
38835 extending-all project, set the object directory of all virtual extending
38836 project to the object directory of the main project.
38837 Adjust error message when a virtual extending project has the same
38838 object directory as an project being extended.
38839 (Recursive_Process): If name starts with the virtual prefix, set Virtual
38840 to True in the project data.
38843 (Default_Project_Node): Add new boolean component Extending_All
38844 (Is_Extending_All): New function
38845 (Set_Is_Extending_All): New procedure
38847 * prj-tree.ads: (Is_Extending_All): New function
38848 (Set_Is_Extending_All): New procedure
38849 (Project_Node_Record): New boolean component Extending_All
38851 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
38854 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
38856 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
38857 "gprcmd prefix" to define it.
38859 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
38861 * einfo.ads: Fix a typo and remove an extraneous word in comments.
38864 (Create_Dummy_Package_Unit): Set the scope of the entity for the
38865 created dummy package to Standard_Standard, not to itself, to
38866 defend other parts of the front-end against encoutering a cycle in
38870 (Analyze_With_Clause): When setting the entities for the successive
38871 N_Expanded_Names that constitute the name of a child unit, do not
38872 attempt to go further than Standard_Standard in the chain of scopes.
38873 This case arises from the placeholder units created by
38874 Create_Dummy_Package_Unit in the case of a with_clause for a
38875 nonexistent child unit.
38877 2003-11-10 Ed Schonberg <schonberg@gnat.com>
38880 (Expand_Thread_Body): Place subprogram on scope stack, so that new
38881 declarations are given the proper scope.
38884 (Check_Expr_Constants): Reject an expression that contains a constant
38885 created during expansion, and that appears after the object to which
38886 the address clause applies.
38888 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
38889 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
38890 that uses 'Range of a function call with controlled components, so
38891 that the function result can be finalized before starting the loop.
38894 (Find_Selected_Component): Improve error message when prefix is
38895 an implicit dereference of an incomplete type.
38897 2003-11-10 Robert Dewar <dewar@gnat.com>
38899 * opt.ads: New Print_Standard flag for -gnatS switch
38901 * sem_ch13.adb: Remove some additional checks for unaligned arrays
38903 * cstand.adb (Create_Standard): Print out package standard if -gnatS
38906 * debug.adb: Update doc for -gnatds to discuss relationship with new
38909 * sinfo.adb: Add new field Entity_Or_Associated_Node
38911 * sinfo.ads: Add new field Entity_Or_Associated_Node
38912 Update documentation for Associated_Node and Entity fields to clarify
38913 relationship and usage.
38916 (Write_Id): Properly process Associated_Node field in generic template
38919 Recognize new -gnatS switch for printing package Standard
38920 This replaces gnatpsta
38923 Add line for new -gnatS switch for printing package Standard
38924 This replaces gnatpsta
38926 2003-11-10 Andreas Jaeger <aj@suse.de>
38928 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
38931 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38933 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
38936 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38938 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
38941 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
38943 * sysdep.c: Add handling of cygwin.
38945 2003-11-10 GNAT Script <nobody@gnat.com>
38947 * Make-lang.in: Makefile automatically updated
38949 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
38952 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
38953 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
38954 Replace GNAT_ROOT by GCC_ROOT.
38956 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
38958 2003-11-06 Zack Weinberg <zack@codesourcery.com>
38960 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
38961 and update for changed meaning of GET_MODE_BITSIZE.
38963 2003-11-04 Doug Rupp <rupp@gnat.com>
38965 * sysdep.c: Problem discovered during IA64 VMS port.
38966 [VMS] #include <unixio.h> to get proper prototypes.
38969 Issues discovered/problems fixed during IA64 VMS port.
38970 [VMS] #define _POSIX_EXIT for proper semantics.
38971 [VMS] #include <unixio.h> for proper prototypes.
38972 [VMS] (fork): #define IA64 version.
38973 (__gnat_os_exit): Remove unnecessary VMS specific code.
38975 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38977 Part of PR ada/12806
38978 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
38982 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
38985 * targtyps.c, decl.c, misc.c,
38986 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
38987 routines to work around change in FP sizing semantics in GCC.
38990 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
38992 * gigi.h: (enumerate_modes): New function.
38994 * Make-lang.in: (ada/misc.o): Add real.h.
38996 * misc.c: (enumerate_modes): New function.
38998 2003-11-04 Robert Dewar <dewar@gnat.com>
39000 * 3vtrasym.adb: Minor reformatting
39001 Use terminology encoded/decoded name, rather than C++ specific notion
39002 of mangling (this is the terminology used throughout GNAT).
39004 * einfo.h: Regenerated
39006 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39009 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39011 * par-prag.adb: Add dummy entry for Thread_Body pragma
39014 Add entries for System.Threads entities for thread body processing
39017 (Analyze_Pragma, Access attributes): Check these are not applied to a
39018 thread body, since this is not permitted
39020 * sem_prag.adb: Add processing for Thread_Body pragma.
39024 (Resolve_Call): Check for incorrect attempt to call a thread body
39025 procedure with a direct call.
39027 * snames.ads, snames.adb: Add entry for Thread_Body pragma
39028 Add names associated with thread body expansion
39030 * snames.h: Add entry for Thread_Body pragma
39032 * s-thread.adb: Add entries for thread body processing
39033 These are dummy bodies so far
39035 * s-thread.ads: Add documentation on thread body handling.
39036 Add entries for thread body processing.
39038 2003-11-04 Javier Miranda <miranda@gnat.com>
39041 (Build_Limited_Views): Return after posting an error in case of limited
39042 with_clause on subprograms, generics, instances or generic renamings
39043 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39044 on subprograms, generics, instances or generic renamings
39046 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
39048 * raise.c (setup_to_install): Correct mistake in last revision; two
39049 arguments out of order.
39051 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39052 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39053 notice, missed in previous change.
39054 Remove trailing blanks and other style errors introduced in previous
39057 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
39059 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39060 rid of the wrapper for a LJM type, ensuring we don't do that if the
39061 field is addressable. This avoids potential low level type view
39062 mismatches later on, for instance in a by-reference argument passing
39065 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39067 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39068 aligned at byte boundary.
39070 2003-11-04 Joel Brobecker <brobecker@gnat.com>
39072 * decl.c (components_to_record): Do not delete the empty variants from
39073 the end of the union type.
39075 2003-11-04 Ed Schonberg <schonberg@gnat.com>
39077 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39078 operation for a derived type, an explicit declaration may use a local
39079 subtype of Boolean.
39081 2003-11-04 Vincent Celier <celier@gnat.com>
39083 * make.adb (Gnatmake): Allow main sources on the command line with a
39084 library project when it is only for compilation (no binding or
39087 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39089 * Makefile.in: Remove many duplicate variables.
39091 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
39093 * Make-lang.in (dvi): Move targets to $(docobjdir).
39094 (gnat_ug_vms.dvi): Simplify rule and adjust target.
39095 (gnat_ug_wnt.dvi): Likewise.
39096 (gnat_ug_unx.dvi): Likewise.
39097 (gnat_ug_vxw.dvi): Likewise.
39098 (gnat_rm.dvi): Likewise.
39099 (gnat-style.dvi): Likewise.
39101 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39103 * gigi.h: Missed commit from update for C90.
39105 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39107 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39109 2003-10-31 Andreas Schwab <schwab@suse.de>
39111 * raise.c (get_action_description_for): Fix typo in last change.
39113 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
39116 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39117 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39119 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
39121 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39122 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39123 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39124 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39125 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39127 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
39130 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39131 numbers when symbol name is too long.
39133 2003-10-30 Ed Falis <falis@gnat.com>
39135 * g-signal.ads, g-signal.adb: New files
39137 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39139 * Makefile.rtl: Introduce GNAT.Signals
39141 2003-10-30 Robert Dewar <dewar@gnat.com>
39143 * freeze.adb: Minor reformatting
39145 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39147 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39148 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39149 New handling of Id_Check parameter to improve recognition of keywords
39150 used as identifiers.
39151 Update copyright notice to include 2003
39153 2003-10-29 Robert Dewar <dewar@gnat.com>
39155 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39156 sem_ch10.adb: Minor reformatting
39158 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39159 (Expand_Assign_Record): Test right hand side for bit unaligned as well
39161 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
39163 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39164 Support for TBK$SYMBOLIZE-based symbolic traceback.
39166 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
39169 Revert previous change, that did not work well when pragma No_Run_Time
39170 was used in conjunction with a run-time other than ZFP.
39172 2003-10-29 Vincent Celier <celier@gnat.com>
39175 (Gnatmake): When there are no Ada mains in attribute Main, disable the
39176 bind and link steps only is switch -z is not used.
39178 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
39180 * Makefile.generic: Remove duplicated setting of CC.
39182 * Makefile.prolog: Set CC to gcc by default, to override make's
39185 * einfo.h: Regenerated.
39187 2003-10-29 Ed Schonberg <schonberg@gnat.com>
39189 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39190 current body, after compiling subunit.
39192 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39193 when in deleted code, because gigi needs properly ordered freeze
39194 actions to annotate types.
39196 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39197 prevent the premature freezing of record type that contains
39198 subcomponents with a private type that does not yet have a completion.
39200 2003-10-29 Javier Miranda <miranda@gnat.com>
39203 (Analyze_Package_Instantiation): Check that instances can not be used in
39204 limited with_clauses.
39207 (Analyze_Package_Renaming): Check that limited withed packages cannot
39208 be renamed. Improve text on error messages related to limited
39211 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39213 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39214 Update copyright notice.
39216 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39217 (Install_Limited_Context_Clauses): New subprogram that isolates all the
39218 checks required for limited context_clauses and installs the limited
39220 (Install_Limited_Withed_Unit): Complete its documentation.
39221 (Analyze_Context): Check that limited with_clauses are only allowed in
39223 (Install_Context): Call Install_Limited_Context_Clauses after the
39224 parents have been installed.
39225 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39226 package as 'From_With_Type'; this mark indicates that the limited view
39227 is installed. Used to check bad usages of limited with_clauses.
39228 (Build_Limited_Views): Do not add shadow entities to the scope's list
39229 of entities. Do not add real entities to the Non_Limited_Views chain.
39230 Improve error notification.
39231 (Remove_Context_Clauses): Remove context clauses in two phases:
39232 limited views first and regular views later (to maintain the
39234 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39235 its visible entities.
39237 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
39239 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39240 with any type that Is_Fixed_Point_Type.
39242 * sinfo.ads: Fix documentation for Associated_Node attribute.
39244 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
39246 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39247 both '-gnatc' and '-gnatt' are specified.
39249 * atree.adb (Initialize): Add initialization for Node_Count (set to
39252 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39254 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39255 do not consider as Pure.
39257 Part of implementation of function-at-a-time:
39259 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39260 (tree_transform): Add new argument to build_component_ref.
39261 (tree_transform, case N_Assignment_Statement): Make and return an
39263 (tree_transform): If result IS_STMT, set flags and return it.
39264 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39266 * utils2.c (build_simple_component_ref, build_component_ref): Add new
39268 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39269 (build_allocator): Likewise.
39271 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39272 Add new arg to build_component_ref.
39273 (maybe_unconstrained_array, unchecked_convert): Likewise.
39275 * ada-tree.def (EXPR_STMT): New code.
39277 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39279 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39280 build_component_ref calls.
39282 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39284 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39285 (build_component_ref): Add new argument, NO_FOLD_P.
39287 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
39289 * Makefile.generic: Add missing substitution on object_deps handling.
39292 * Make-lang.in (check-ada): Enable ACATS test suite.
39294 2003-10-27 Robert Dewar <dewar@gnat.com>
39297 (Freeze_Array_Type): We do not need an initialization routine for types
39298 derived from String or Wide_String. They should be treated the same
39299 as String and Wide_String themselves. This caused problems with the
39300 use of Initialize_Scalars.
39303 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39304 composites. This allows use of component clauses that are not byte
39308 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39309 is an attempt to pack an array of atomic objects.
39311 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39313 2003-10-27 Pascal Obry <obry@gnat.com>
39316 (Basename): Check for drive letters in a pathname only on DOS based OS.
39318 2003-10-27 Vincent Celier <celier@gnat.com>
39321 (Gnatmake): When unable to change dir to the object dir, display the
39322 content of the parent dir of the obj dir, to try to understand why this
39325 2003-10-27 GNAT Script <nobody@gnat.com>
39327 * Make-lang.in: Makefile automatically updated
39329 2003-10-27 Ed Schonberg <schonberg@gnat.com>
39332 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39333 should not be done in Save/Restore_Scope_Stack, because it is performed
39337 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39338 whether use clauses should be removed/restored.
39341 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39342 whether use clauses should be removed/restored.
39344 2003-10-26 Andreas Jaeger <aj@suse.de>
39346 * Makefile.in: Remove duplicated lines.
39348 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39350 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39351 minimize the differences with ACT tree.
39353 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39354 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39355 Gnatvsn.Gnat_Static_Version_String to reduce differences between
39358 2003-10-24 Pascal Obry <obry@gnat.com>
39361 * adadecode.c (ostrcpy): New function.
39362 (__gnat_decode): Use ostrcpy of strcpy.
39363 (has_prefix): Set first parameter a const.
39364 (has_suffix): Set first parameter a const.
39365 Update copyright notice. Fix source name in header.
39366 Removes a trailing space.
39368 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
39371 Remove the test against being in No_Run_Time_Mode before generating a
39372 call to Register_Tag. It is redundant with the test against the
39373 availability of the function Register_Tag.
39375 2003-10-24 Vincent Celier <celier@gnat.com>
39377 * g-catiio.adb: (Month_Name): Correct spelling of February
39379 * make.adb: (Mains): New package
39380 (Initialize): Call Mains.Delete
39381 (Gnatmake): Check that each main on the command line is a source of a
39382 project file and, if there are several mains, each of them is a source
39383 of the same project file.
39384 (Gnatmake): When a foreign language is specified in attribute Languages,
39385 no main is specified on the command line and attribute Mains is not
39386 empty, only build the Ada main. If there is no Ada main, just compile
39387 the Ada sources and their closure.
39388 (Gnatmake): If a main is specified on the command line with directory
39389 information, check that the source exists and, if it does, that the path
39390 is the actual path of a source of a project.
39393 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39394 Full_Path is True, return the full path instead of the simple file name.
39395 (Project_Of): New function
39398 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39399 defaulted to False.
39400 (Project_Of): New function
39402 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39404 * Makefile.generic:
39405 Ensure objects of main project are always checked and rebuilt if needed.
39406 Set CC to gcc by default.
39407 Prepare new handling of link by creating a global archive (not activated
39410 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39411 stringt.h: Update copyright notice. Remove trailing blanks.
39412 Fix source name in header.
39414 2003-10-24 Robert Dewar <dewar@gnat.com>
39416 * sem_ch12.adb: Minor reformatting
39419 Minor reformatting (including new function return style throughout)
39422 Minor reformatting (including new function return style throughout)
39424 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39426 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39427 stringt.h: Update copyright notice. Remove trailing blanks.
39428 Fix source name in header.
39430 2003-10-24 GNAT Script <nobody@gnat.com>
39432 * Make-lang.in: Makefile automatically updated
39434 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
39436 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39437 stringt.h: Convert to ISO C90 declarations and definitions.
39439 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
39442 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39443 External_Tag attribute definition clauses.
39445 2003-10-23 Ed Schonberg <schonberg@gnat.com>
39448 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39449 child unit, generate a fully qualified name to avoid spurious errors
39450 when the context contains renamings of different child units with
39451 the same simple name.
39453 * exp_dbug.ads: Add documentation on name qualification for renamings
39456 2003-10-23 Robert Dewar <dewar@gnat.com>
39458 * g-regpat.ads, g-regpat.adb: Minor reformatting
39460 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
39462 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39464 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39466 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39469 * urealp.h: (Machine): Update to proper definition.
39471 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
39473 * init.c, adaint.c: Minor reformatting.
39475 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
39477 * adaint.c (w32_epoch_offset): Define static const at file level.
39478 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39479 rather than t_create, t_access in call to GetFileTime. Use union
39480 to convert between FILETIME and unsigned long long.
39481 (__gnat_file_time_name): Test for invalid file handle.
39482 (__gnat_set_filetime_name): Support win32 targets using
39483 w32api SetFileTime.
39485 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
39487 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39489 * ctrl_c.c (__gnat_int_handler): Remove declaration.
39491 * decl.c (creat_concat_name): Const-ify prefix.
39493 * adaint.c: Include ctype.h if __MINGW32__.
39494 (__gnat_readlink): Mark arguments as possibly unused.
39495 (__gnat_symlink): Likewise.
39496 (__gnat_is_symbolic_link): Likewise.
39497 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
39499 (__gnat_file_time_name): Don't declare struct stat statbuf when
39501 (__gnat_is_absolute_path): Add parenthesis around condition of
39502 'if' statement to avoid warning.
39503 (__gnat_plist_init): Specify void as parameter.
39504 (plist_enter): Likewise.
39505 (plist_leave): Likewise.
39506 (remove_handle): Make static. Initialize prev.
39508 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39511 * Makefile.in: Disable build of gnatpsta.
39512 * cstreams.c (__gnat_full_name): Minor improvements and clean up
39513 of previous change.
39515 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39517 * tracebak.c (MAX): Avoid redefinition warning.
39519 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39520 Change msg to const char *.
39521 (__gnat_install_handler): Remove ss, unused.
39522 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39524 * cstreams.c (__gnat_full_name): Declare p only when used.
39525 (__gnat_full_name) [sgi] Return buffer.
39527 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39529 * mingw32.h: New file.
39530 * gnat_wrapper.adb: New file.
39532 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
39534 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39535 string match a pre compiled regular expression (the corresponding
39536 version of the function working on a raw regular expression)
39537 Fix typos in various comments
39538 Update copyright notice in spec
39540 2003-10-21 Gary Dismukes <dismukes@gnat.com>
39543 (Component_Needs_Simple_Initialization): Return False when the type is a
39544 packed bit array. Revise spec comments to document this case.
39547 (Expand_Pragma_Import): Set any expression on the imported object to
39548 empty to avoid initializing imported objects (in particular this
39549 covers the case of zero-initialization of bit arrays).
39550 Update copyright notice.
39552 2003-10-21 Ed Schonberg <schonberg@gnat.com>
39555 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39556 a subunit is missing.
39557 (Instantiate_Subprogram_Body): If body of function is missing, set type
39558 of return expression explicitly in dummy body, to prevent cascaded
39559 errors when a subunit is missing.
39563 (Access_Subprogram_Declaration): Verify that return type is valid.
39567 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39572 (Corresponding_Discriminant): If the scope of the discriminant is a
39573 private type without discriminant, use its full view.
39576 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
39578 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39579 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39580 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39581 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39582 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39583 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39584 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39585 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39586 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39587 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39588 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39589 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39590 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39591 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39592 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39593 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39594 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39595 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39596 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39597 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39598 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39599 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39600 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39601 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39602 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39603 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39604 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39605 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39606 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39607 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39608 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39609 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39610 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39611 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39612 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39613 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39614 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39615 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39616 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39617 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39618 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39619 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39620 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39621 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39622 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39623 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39624 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39625 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39626 vms_conv.ads, vms_conv.adb, vms_data.ads,
39627 vxaddr2line.adb: Files added. Merge with ACT tree.
39629 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39630 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39631 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39632 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39633 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39634 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39635 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39636 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39637 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39638 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39640 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39641 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39642 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39643 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39644 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39645 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39646 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39647 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39648 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39649 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39650 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39651 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39652 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39653 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39654 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39655 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39656 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39657 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39658 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39659 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39660 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39661 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39662 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39663 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39664 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39665 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39666 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39667 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39668 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39669 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39670 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39671 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39672 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39673 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39674 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39675 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39676 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39677 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39678 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39679 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39680 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39681 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39682 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39683 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39684 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39685 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39686 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39687 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39688 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39689 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39690 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39691 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39692 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39693 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39694 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39695 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39696 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39697 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39698 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39699 checks.adb, checks.ads, cio.c, comperr.adb,
39700 comperr.ads, csets.adb, cstand.adb, cstreams.c,
39701 debug_a.adb, debug_a.ads, debug.adb, decl.c,
39702 einfo.adb, einfo.ads, errout.adb, errout.ads,
39703 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39704 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39705 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39706 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39707 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39708 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39709 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39710 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39711 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39712 fe.h, fmap.adb, fmap.ads, fname.adb,
39713 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39714 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39715 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39716 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39717 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39718 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39719 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39720 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39721 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39722 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39723 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39724 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39725 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39726 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39727 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39728 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39729 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39730 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39731 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39732 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39733 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39734 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39735 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39736 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39737 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39738 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39739 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39740 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39741 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39742 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39743 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39744 layout.adb, lib.adb, lib.ads, lib-list.adb,
39745 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39746 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39747 link.c, live.adb, make.adb, make.ads,
39748 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39749 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39750 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39751 misc.c, mkdir.c, mlib.adb, mlib.ads,
39752 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39753 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39754 namet.adb, namet.ads, namet.h, nlists.ads,
39755 nlists.h, nmake.adt, opt.adb, opt.ads,
39756 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39757 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39758 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39759 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39760 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39761 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39762 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39763 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39764 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39765 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39766 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39767 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39768 prj-util.adb, prj-util.ads, raise.c, raise.h,
39769 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39770 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39771 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39772 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39773 scans.ads, scn.adb, scn.ads, s-crc32.adb,
39774 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39775 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39776 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39777 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39778 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39779 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39780 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39781 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
39782 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
39783 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
39784 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
39785 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
39786 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
39787 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
39788 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
39789 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
39790 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
39791 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
39792 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
39793 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
39794 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
39795 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
39796 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
39797 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
39798 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
39799 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
39800 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
39801 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
39802 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
39803 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
39804 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
39805 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
39806 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
39807 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
39808 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
39809 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
39810 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
39811 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
39812 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
39813 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
39814 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
39815 stringt.adb, stringt.ads, stringt.h, style.ads,
39816 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
39817 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
39818 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
39819 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
39820 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
39821 table.adb, table.ads, targparm.adb, targparm.ads,
39822 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
39823 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
39824 ttypes.ads, types.ads, types.h, uintp.adb,
39825 uintp.ads, uintp.h, uname.adb, urealp.adb,
39826 urealp.ads, urealp.h, usage.adb, utils2.c,
39827 utils.c, validsw.adb, validsw.ads, widechar.adb,
39828 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
39829 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
39830 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
39831 gnatvsn.ads: Merge with ACT tree.
39833 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
39835 2003-10-20 Mark Mitchell <mark@codesourcery.com>
39837 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
39838 (gnat_ug_vmx.info): Likewise.
39839 (gnat_ug_vxw.info): Likewise.
39840 (gnat_ug_wnt.info): Likewise.
39841 (gnat_rm.info): Likewise.
39842 (gnat-style.info): Likewise.
39844 * Make-lang.in (ada.install-info): Remove target.
39845 (info): New target.
39846 (install-info): Likewise.
39847 (gnat_ug_unx.info): Simplify rule.
39848 (gnat_ug_vmx.info): Likewise.
39849 (gnat_ug_vxw.info): Likewise.
39850 (gnat_ug_wnt.info): Likewise.
39851 (gnat_rm.info): Likewise.
39852 (gnat-style.info): Likewise.
39854 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
39856 * Make-lang.in: Replace uses of $(target_alias) with
39857 $(target_noncanonical).
39858 * ada/Makefile.in: Remove unused mention of $(target_alias).
39860 2003-10-06 Mark Mitchell <mark@codesourcery.com>
39862 * Make-lang.in (ada.info): Replace with ...
39864 (ada.dvi): Replace with ...
39867 2003-09-29 Zack Weinberg <zack@codesourcery.com>
39869 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
39870 initialize dconstp5 and dconstmp5.
39872 2003-09-28 Richard Henderson <rth@redhat.com>
39874 * trans.c (tree_transform): Update call to expand_asm_operands.
39876 2003-09-21 Richard Henderson <rth@redhat.com>
39878 * trans.c, utils.c: Revert.
39880 2003-09-21 Richard Henderson <rth@redhat.com>
39882 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
39885 2003-09-04 Michael Matz <matz@suse.de>
39887 * misc.c: Include "target.h".
39888 * Make-lang.in (misc.o): Add dependency on target.h.
39890 2003-09-03 DJ Delorie <dj@redhat.com>
39892 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
39895 2003-08-30 Zack Weinberg <zack@codesourcery.com>
39897 * Makefile.in: Update substitutions to match changes to
39898 configure. Use include directives instead of @-insertions
39899 to read in host and target fragments. Add a rule to
39900 regenerate ada/Makefile.
39902 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
39904 * lang-options.h: Remove.
39905 * lang.opt: Add help text.
39907 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
39909 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
39912 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
39914 * misc.c (gnat_handle_option): Don't handle filenames.
39916 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
39918 * Make-lang.in: Replace PWD with PWD_COMMAND.
39919 * Makefile.adalib: Likewise.
39920 * Makefile.in: Likewise.
39922 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
39924 * misc.c (gnat_argv): Revert last change.
39925 (gnat_handle_option, gnat_init_options): Copy arguments.
39927 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
39929 * misc.c (gnat_argv): Make const.
39931 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
39933 * misc.c (save_argc, save_argv): Keep non-static!
39935 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
39937 * misc.c (save_argc, save_argv): Make static.
39938 (gnat_init_options): New prototype.
39939 (gnat_init_options): Update.
39941 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
39943 * gnat_ug.texi: Remove unlikely characters from @vars.
39944 * gnat_ug_vms.texi: Regenerate.
39946 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
39948 * misc.c (record_code_position): Adjust emit_note call.
39950 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
39952 * misc.c (gnat_handle_option): Don't check for missing arguments.
39954 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
39956 * utils.c (end_subprog_body): Adjust expand_function_end call.
39958 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
39960 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
39963 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
39965 * lang.opt: Declare Ada.
39966 * misc.c (gnat_init_options): Update.
39968 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
39970 * utils.c (begin_subprog_body): Adjust init_function_start call.
39972 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
39974 * Make-lang.in: Update to use options.c and options.h.
39975 * misc.c: Include options.h not aoptions.h.
39976 (gnat_handle_option): Abort on unrecognized switch.
39977 (gnat_init_options): Request Ada switches.
39979 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
39981 * lang.opt: Add -Wall.
39982 * misc.c (gnat_handle_option): Handle it.
39984 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
39986 * misc.c (gnat_handle_option): Fix warnings.
39988 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
39990 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
39992 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
39994 * Make-lang.in: Update to handle command-line options.
39995 * lang.opt: New file.
39996 * misc.c: Include aoptions.h.
39997 (cl_options_count, cl_options): Remove.
39998 (gnat_handle_option): New.
39999 (gnat_decode_option): Remove.
40000 (LANG_HOOKS_DECODE_OPTION): Remove.
40001 (LANG_HOOKS_HANDLE_OPTION): Override.
40003 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
40005 * init.c, misc.c, trans.c, utils.c: Remove dead code.
40007 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
40009 * Makefile.in: Replace "host_canonical" with "host" for autoconf
40012 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
40014 * Make-lang.in: Update.
40015 * misc.c: Include opts.h. Define cl_options_count and cl_options.
40017 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
40019 * misc.c (gnat_init_options): Update.
40021 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40023 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40024 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40025 __attribute__ ((__unused__)).
40027 2003-06-05 Jan Hubicka <jh@suse.cz>
40029 * Make-lang.in: Add support for stageprofile and stagefeedback
40031 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40033 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40034 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40036 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
40038 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40039 Remove non-VMS directive.
40040 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40042 (Examples of gnatls Usage): Remove VMS alternative.
40044 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
40047 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40048 and turn ZCX_By_Default back to False since the underlying support
40049 is not quite there yet.
40051 2003-06-01 Andreas Jaeger <aj@suse.de>
40053 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40054 and ROUND_TYPE_SIZE_UNIT.
40056 2003-05-22 Geert Bosch <bosch@gnat.com>
40058 * gnat_rm.texi : Remove reference to Ada Core Technologies.
40060 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
40062 * trans.c (tree_transform): Use location_t and input_location
40064 (build_unit_elab): Likewise.
40065 * utils.c (create_label_decl): Likewise.
40067 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
40069 * trans.c (tree_transform, build_unit_elab,
40070 set_lineno): Rename lineno to input_line.
40071 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40072 end_subprog_body): Likewise.
40073 * utils2.c (build_call_raise): Likewise.
40075 2003-05-01 Laurent Guerby <guerby@acm.org>
40078 * 5iosinte.ads: Increase pthread_cond_t size to match recent
40079 LinuxThread and NPTL version, merge from ACT.
40081 2003-04-28 Zack Weinberg <zack@codesourcery.com>
40083 * utils.c (convert): No need to clear TREE_CST_RTL.
40085 2003-04-23 Geert Bosch <bosch@gnat.com>
40087 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40088 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40089 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40090 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40091 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40092 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40093 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40094 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40095 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40096 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40097 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40098 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40099 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40100 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40101 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40102 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40103 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40104 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40105 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40106 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40107 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40108 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40109 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40110 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40111 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40112 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40113 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40114 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40115 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40116 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40117 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40118 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40119 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40120 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40121 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40122 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40123 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40124 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40125 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40126 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40127 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40128 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40129 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40130 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40131 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40132 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40133 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40134 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40135 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40136 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40137 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40138 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40139 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40140 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40141 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40142 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40143 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40144 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40145 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40146 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40147 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40148 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40149 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40150 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40151 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40152 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40153 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40154 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40155 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40156 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40157 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40158 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40159 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40160 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40161 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40162 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40163 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40164 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40165 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40166 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40167 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40168 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40169 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40170 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40171 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40172 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40173 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40174 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40175 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40176 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40177 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40178 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40179 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40180 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40181 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40182 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40183 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40184 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40185 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40186 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40187 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40188 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40189 ali.adb, ali.ads, alloc.ads, argv.c,
40190 atree.adb, atree.ads, atree.h, aux-io.c,
40191 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40192 binde.adb, binde.ads, binderr.adb, binderr.ads,
40193 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40194 butil.adb, butil.ads, cal.c, calendar.ads,
40195 casing.adb, casing.ads, ceinfo.adb, checks.adb,
40196 checks.ads, cio.c, comperr.adb, comperr.ads,
40197 config-lang.in, csets.adb, csets.ads, csinfo.adb,
40198 cstand.adb, cstand.ads, cuintp.c, debug.adb,
40199 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40200 dec-io.ads, dec.ads, deftarg.c, directio.ads,
40201 einfo.adb, einfo.ads, elists.adb, elists.ads,
40202 elists.h, errno.c, errout.adb, errout.ads,
40203 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40204 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40205 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40206 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40207 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40208 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40209 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40210 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40211 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40212 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40213 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40214 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40215 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40216 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40217 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40218 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40219 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40220 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40221 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40222 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40223 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40224 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40225 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40226 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40227 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40228 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40229 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40230 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40231 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40232 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40233 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40234 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40235 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40236 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40237 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40238 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40239 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40240 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40241 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40242 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40243 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40244 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40245 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40246 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40247 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40248 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40249 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40250 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40251 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40252 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40253 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40254 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40255 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40256 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40257 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40258 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40259 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40260 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40261 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40262 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40263 lib.adb, lib.ads, live.adb, live.ads,
40264 machcode.ads, make.adb, make.ads, makeusg.adb,
40265 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40266 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40267 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40268 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40269 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40270 mlib.ads, namet.adb, namet.ads, nlists.adb,
40271 nlists.ads, opt.adb, opt.ads, osint-b.adb,
40272 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40273 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40274 osint.ads, output.adb, output.ads, par-ch10.adb,
40275 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40276 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40277 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40278 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40279 par-tchk.adb, par-util.adb, par.adb, par.ads,
40280 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40281 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40282 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40283 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40284 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40285 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40286 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40287 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40288 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40289 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40290 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40291 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40292 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40293 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40294 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40295 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40296 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40297 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40298 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40299 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40300 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40301 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40302 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40303 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40304 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40305 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40306 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40307 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40308 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40309 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40310 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40311 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40312 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40313 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40314 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40315 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40316 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40317 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40318 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40319 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40320 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40321 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40322 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40323 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40324 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40325 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40326 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40327 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40328 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40329 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40330 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40331 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40332 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40333 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40334 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40335 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40336 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40337 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40338 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40339 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40340 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40341 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40342 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40343 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40344 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40345 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40346 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40347 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40348 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40349 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40350 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40351 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40352 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40353 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40354 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40355 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40356 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40357 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40358 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40359 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40360 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40361 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40362 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40363 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40364 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40365 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40366 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40367 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40368 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40369 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40370 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40371 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40372 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40373 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40374 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40375 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40376 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40377 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40378 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40379 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40380 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40381 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40382 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40383 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40384 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40385 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40386 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40387 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40388 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40389 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40390 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40391 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40392 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40393 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40394 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40395 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40396 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40397 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40398 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40399 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40400 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40401 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40402 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40403 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40404 snames.ads, sprint.adb, sprint.ads, stand.adb,
40405 stand.ads, stringt.adb, stringt.ads, style.adb,
40406 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40407 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40408 switch-m.ads, switch.adb, switch.ads, system.ads,
40409 table.adb, table.ads, targparm.adb, targparm.ads,
40410 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40411 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40412 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40413 ttypef.ads, ttypes.ads, types.adb, types.ads,
40414 uintp.adb, uintp.ads, uname.adb, uname.ads,
40415 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40416 usage.adb, usage.ads, validsw.adb, validsw.ads,
40417 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40418 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40419 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40420 formatting and other trivial changes from ACT.
40422 2003-04-12 Zack Weinberg <zack@codesourcery.com>
40424 * gigi.h, utils2.c (build_constructor):
40425 Rename gnat_build_constructor. Use build_constructor.
40426 * decl.c (gnat_to_gnu_entity)
40427 * trans.c (tree_transform, pos_to_constructor, extract_values)
40428 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40429 (unchecked_convert)
40430 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40431 (fill_vms_descriptor):
40434 2003-04-06 Zack Weinberg <zack@codesourcery.com>
40436 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40437 * misc.c (gnat_tree_size): New function.
40438 (LANG_HOOKS_TREE_SIZE): Override.
40440 2003-04-03 Jason Merrill <jason@redhat.com>
40442 * misc.c (gnat_adjust_rli): #if 0.
40444 2003-03-31 Geert Bosch <bosch@gnat.com>
40447 * link.c : Fix misspelled "const" keyword
40449 2003-03-23 Mark Mitchell <mark@codesourcery.com>
40452 * utils2.c: Adjust calls to put_var_into_stack.
40454 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
40456 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40458 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
40460 * misc.c (gnat_init): Update for new prototype.
40462 2003-03-05 Olivier Hainque <hainque@gnat.com>
40465 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40466 warning, and fix return type for the IN_RTS && !SJLJ case.
40468 2003-03-04 Tom Tromey <tromey@redhat.com>
40470 * Make-lang.in (ada.tags): New target.
40472 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
40475 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40476 wrapper, which name remains constant whatever underlying GCC
40479 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40480 the stable interface needed for a-except.
40482 2003-03-02 Andreas Jaeger <aj@suse.de>
40484 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40485 gnat_ug_wnt.texi: Regenerate.
40487 2003-03-02 Laurent Guerby <guerby@acm.org>
40489 * Makefile.in (install-gnatlib): Match previous change there
40492 2003-02-28 Andreas Schwab <schwab@suse.de>
40494 * Make-lang.in (install-gnatlib): Change to ada directory before
40495 running make instead of using ada/Makefile directly.
40497 2003-02-18 Ben Elliston <bje@redhat.com>
40499 Part of PR ada/9406
40500 * gnat_ug.texi (Binder output file): Grammar fix.
40502 2003-02-18 Ben Elliston <bje@redhat.com>
40505 * 5qtaprop.adb (Sleep): Fix typo in comment.
40507 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
40509 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40510 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40511 gnat_ug_wnt.texi: Regenerate.
40513 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40515 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40516 be created if necessary.
40517 (ada.install-common): Let $(DESTDIR)$(bindir) be created
40518 if necessary. Remove erroneous and redundant gnatchop
40519 installation commands. Test for gnatdll before attempting
40521 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40522 and gnatdll from all plausible locations.
40524 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
40526 * utils2.c (build_unary_op): Don't check flag_volatile.
40527 * gnat_ug.texi: Remove -fvolatile from example.
40528 * gnat_ug_vxw.texi: Likewise.
40530 2003-01-29 Laurent Guerby <guerby@acm.org>
40533 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40534 * Makefile.in: match previous change.
40535 * Make-lang.in: match previous change.
40537 2003-01-29 Joel Sherrill <joel@OARcorp.com>
40539 * 5rosinte.ads: Add SIGXCPU.
40540 * 5rtpopsp.adb: New file.
40541 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40542 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40543 specific file 5rtpopsp.adb.
40544 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
40545 is likely needed for all newlib targets.
40546 * init.c: Add RTEMS specific version of __gnat_initialize().
40548 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40550 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40552 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40554 * init.c (__gnat_error_handler): Make msg const.
40556 * gmem.c (convert_addresses): Move declaration ...
40557 * adaint.h: ... here.
40558 * adaint.c (convert_addresses): Adapt addrs type to match
40561 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40563 2003-01-24 Andreas Schwab <schwab@suse.de>
40565 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40566 size_t to avoid warning.
40568 2003-01-21 Zack Weinberg <zack@codesourcery.com>
40570 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
40572 2003-01-09 Geoffrey Keating <geoffk@apple.com>
40574 * gnat_rm.texi: Remove RCS version number.
40576 * ada-tree.h (union lang_tree_node): Add chain_next option.
40578 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40580 * Make-lang.in (ada.install-info, ada.install-common,
40581 ada.uninstall): Prepend $(DESTDIR) to the destination
40582 directory in all (un)installation commands.
40583 * Makefile.in (install-gnatlib, install-rts): Ditto.
40585 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
40587 * gnat_rm.texi, gnat_ug.texi: Use @copying.
40588 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40589 gnat_ug_wnt.texi: Regenerate.
40591 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
40593 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
40595 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40596 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40597 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40598 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40599 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40600 $(srcdir)/doc/include/gcc-common.texi.
40602 2002-12-15 Geert Bosch <bosch@gnat.com>
40604 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40606 2002-12-14 Geert Bosch <bosch@gnat.com>
40609 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40610 case of a body created for a Renaming_As_Body, on which
40611 conformance checks are not performed.
40613 2002-11-30 Zack Weinberg <zack@codesourcery.com>
40615 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40616 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40617 not already included.
40618 * Make-lang.in: Update dependencies.
40620 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
40621 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
40622 solution to buffer overflow bug on GNU/Linux.
40624 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
40628 * bindgen.adb: Remove all references to Public_Version.
40629 * comperr.adb: Remove all references to Public_Version and
40630 GNATPRO_Version; correct bug reporting instructions.
40631 * comperr.ads: Change to match bug box.
40632 * gnatvsn.ads: Remove all references to Public version and
40635 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
40638 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40642 * config-lang.in: Remove diff_excludes.
40644 2002-11-05 Graham Stott <graham.stott@btinternet.com>
40647 * trans.c (gnu_pending_elaboration_lists): New GC root.
40648 (build_unit_elab): Use..
40650 2002-10-30 Geert Bosch <bosch@gnat.com>
40653 * misc.c : Include optabs.h
40655 * Make-lang.in (misc.o): Add dependency on optabs.h
40657 2002-10-29 Geert Bosch <bosch@gnat.com>
40660 * Make-lang.in (gnatbind): Depend on CONFIG_H
40662 2002-10-29 Geert bosch <bosch@gnat.com>
40665 * misc.c: Unrevert misc.c (1.13)
40667 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
40669 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40670 maintainership comments.
40672 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
40675 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40676 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40677 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40678 7staprop.adb: Correct statements in comments about
40679 maintainership of GNAT.
40682 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40683 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40684 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40685 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40686 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40687 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40688 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
40689 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40690 comments about maintainership of GNAT.
40692 PR ada/6919 (forward port of patch for PR ada/5904)
40693 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40694 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40695 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40696 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40697 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40698 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40699 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40700 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40701 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40702 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40703 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40704 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40705 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40706 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40707 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40708 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40709 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40710 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40711 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40712 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40713 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40714 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40715 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40716 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40717 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40718 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40719 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40720 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40721 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40722 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40723 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40724 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40725 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40726 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40727 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40728 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40729 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40730 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40731 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40732 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40733 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40734 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40735 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40736 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40737 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40738 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40739 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40740 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40741 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40742 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40743 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40744 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40745 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40746 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40747 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40748 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40749 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40750 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40751 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40752 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40753 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40754 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40755 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40756 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40757 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40758 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40759 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40760 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40761 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40762 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40763 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40764 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40765 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40766 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40767 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40768 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40769 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40770 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40771 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40772 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40773 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40774 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40775 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40776 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40777 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40778 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40779 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40780 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40781 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
40782 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
40783 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
40784 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
40785 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
40786 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
40787 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
40788 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
40789 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
40790 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
40791 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
40792 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
40793 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
40794 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
40795 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
40796 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
40797 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
40798 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
40799 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
40800 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
40801 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
40802 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
40803 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
40804 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
40805 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
40806 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
40807 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
40808 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
40809 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
40810 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
40811 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
40812 par-endh.adb par-labl.adb par-load.adb par-prag.adb
40813 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
40814 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
40815 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
40816 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
40817 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
40818 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
40819 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
40820 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
40821 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
40822 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
40823 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
40824 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
40825 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
40826 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
40827 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
40828 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
40829 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
40830 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
40831 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
40832 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
40833 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
40834 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
40835 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
40836 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
40837 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
40838 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
40839 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
40840 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
40841 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
40842 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
40843 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
40844 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
40845 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
40846 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
40847 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
40848 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
40849 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
40850 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
40851 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
40852 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
40853 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
40854 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
40855 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
40856 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
40857 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
40858 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
40859 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
40860 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
40861 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
40862 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
40863 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
40864 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
40865 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
40866 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
40867 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
40868 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
40869 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
40870 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
40871 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
40872 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
40873 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
40874 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
40875 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
40876 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
40877 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
40878 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
40879 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
40880 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
40881 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
40882 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
40883 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
40884 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
40885 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
40886 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
40887 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
40888 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
40889 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
40890 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
40891 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
40892 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
40893 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
40894 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
40895 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
40896 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
40897 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
40898 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
40899 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
40900 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
40901 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
40902 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
40903 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
40904 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
40905 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
40906 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
40907 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
40908 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
40909 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
40910 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
40911 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
40912 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
40913 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
40914 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
40915 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
40916 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
40917 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
40918 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
40919 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
40920 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
40921 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
40922 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
40923 stringt.ads stringt.h style.adb style.ads stylesw.adb
40924 stylesw.ads switch.adb switch.ads sysdep.c system.ads
40925 table.adb table.ads targparm.adb targparm.ads targtyps.c
40926 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
40927 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
40928 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
40929 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
40930 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
40931 usage.ads utils.c utils2.c validsw.adb validsw.ads
40932 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
40933 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
40934 xtreeprs.adb: Correct statements in comments about maintainership
40937 2002-09-23 Zack Weinberg <zack@codesourcery.com>
40939 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
40940 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
40941 * gnatvsn.ads: Gnat_Version_String is now a function.
40942 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
40943 copy the C version_string into a String and return it.
40944 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
40945 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
40946 Remove pragma Ident (Gnat_Version_String). If this was the
40947 sole use of package Gnatvsn, remove the with statement too.
40948 * gnat1drv.adb: Tweak -gnatv output.
40950 2002-09-17 Richard Henderson <rth@redhat.com>
40952 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
40953 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
40954 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
40955 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
40956 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
40957 and real_2expN instead of a loop.
40958 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
40959 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
40961 2002-08-25 Andre Leis <a.leis@gmx.net>
40962 David Billinghurst <David.Billinghurst@riotinto.com>
40964 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
40966 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40968 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
40969 Remove $(CONFIG_H) dependency.
40971 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
40973 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
40975 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
40977 * adadecode.c (ada_demangle): Use xstrdup in lieu of
40979 * misc.c (gnat_decode_option): Likewise.
40981 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
40983 * make.adb (Add_Switch): Make Generic_Position a procedure. The
40984 function approach did not work well because of a side effect (the
40985 function call could reallocate the table which was being indexed
40986 using its result). Fixes ada/4851. [RESURRECTED]
40988 2002-07-01 Roger Sayle <roger@eyesopen.com>
40990 * ada/utils.c (builtin_function): Accept an additional parameter.
40992 2002-06-28 Andreas Jaeger <aj@suse.de>
40995 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
40998 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41000 * Makefile.in (SHELL): Set to @SHELL@.
41002 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41004 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41005 array size calculation.
41007 2002-06-04 Andreas Jaeger <aj@suse.de>
41009 * Make-lang.in (gnatbind): Readd rule that has been lost in last
41012 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
41014 Merge from pch-branch:
41016 * config-lang.in (gtfiles): Add ada-tree.h.
41017 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41018 (SET_TYPE_MODULUS): New.
41019 (SET_TYPE_INDEX): New.
41020 (SET_TYPE_DIGITS_VALUE): New.
41021 (SET_TYPE_RM_SIZE): New.
41022 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41023 (SET_TYPE_ADA_SIZE): New.
41024 (SET_TYPE_ACTUAL_BOUNDS): New.
41025 (SET_DECL_CONST_CORRESPONDING_VAR): New.
41026 (SET_DECL_ORIGINAL_FIELD): New.
41027 (TREE_LOOP_ID): Correct typo.
41028 * decl.c: Use new macros.
41029 * utils.c: Include debug.h, use new macros.
41030 * utils2.c: Use new macros.
41032 * ada-tree.h: Update all macros for new tree description.
41033 (struct tree_loop_id): New.
41034 (union lang_tree_node): New.
41035 (struct lang_decl): New.
41036 (struct lang_type): New.
41037 * misc.c (gnat_mark_tree): Delete.
41038 (LANG_HOOKS_MARK_TREE): Delete.
41039 * trans.c (tree_transform): No longer any need to cast
41042 * utils.c (struct language_function): New dummy structure.
41044 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41045 (misc.o): Likewise.
41046 (utils.o): Likewise; also gtype-ada.h.
41047 * Make-lang.in (gnat1): Add dependency on s-gtype.
41048 (gnatbind): Add dependency on $(CONFIG_H).
41049 * utils.c: Correct last #include.
41050 (stuct e_stack): Remove unnecessary 'static'.
41051 (mark_e_stack): Remove unused prototype.
41053 * scn-nlit.adb: Remove whitespace after version number to
41054 keep lines under 80 chars.
41055 * snames.adb: Likewise.
41056 * treepr.ads: Likewise.
41058 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41059 (misc.o): Likewise.
41060 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41061 * config-lang.in (gtfiles): New.
41062 * decl.c: Use gengtype for roots.
41063 * gigi.h: Use gengtype for roots.
41064 * trans.c: Use gengtype for roots.
41065 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
41067 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
41069 * misc.c (gnat_init): Adjust setting of internal_error_function.
41071 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
41073 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41074 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41075 gnat_ug_wnt.texi: Regenerate.
41077 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
41079 * 5ntaprop.adb (with System.OS_Primitives): Remove.
41081 * cstreams.c (max_path_len): Move from here ...
41082 * adaint.c (__gnat_max_path_len): ... to here.
41083 * adaint.c (__gnat_max_path_len): Declare.
41084 * g-dirope.adb (Max_Path): Adjust.
41085 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41086 * i-cstrea.ads (max_path_len): Adjust.
41087 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41088 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41090 * Makefile.in, Make-lang.in: Documentation is now built in
41091 Make-lang.in. Store Info and generated Texinfo files in the
41093 * gnat_ug.texi: Remove CVS keywords, correct version number.
41094 Set file name correctly.
41096 * gnat_ug_*.texi: Add.
41097 * .cvsignore: Ignore generated Texinfo files.
41099 2002-05-30 Zack Weinberg <zack@codesourcery.com>
41101 * ada.h: Add MI guard macro.
41102 (SUBTYPE): Define constants with an anonymous enum, not static
41104 (IN): Cast constants to appropriate type before use.
41106 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
41108 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41111 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41113 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41114 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41115 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41116 (ALL_ADA_CFLAGS): Likewise.
41117 (ADA_INCLUDES): Likewise.
41118 Adapt for new working dir.
41119 (GNATBIND): Use Makefile.in version.
41120 (.SUFFIXES): Copy from Makefile.in.
41121 (ada-warn): Define.
41122 (.adb.o, .ads.o): Copy from Makefile.in.
41123 Added $(OUTPUT_OPTION).
41124 (GNAT1_C_OBJS): Moved from Makefile.in.
41125 Prefix with ada subdir.
41126 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41127 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41128 Adapt for new working dir.
41129 (EXTRA_GNATBIND_OBJS): Likewise.
41130 (ADA_BACKEND): Moved from Makefile.in.
41131 Renamed to avoid conflict with global BACKEND.
41133 (TARGET_ADA_SRCS): Moved from Makefile.in.
41134 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41136 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41137 (ada_extra_files): Moved from Makefile.in.
41138 Prefix with ada subdir.
41139 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41140 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41141 (ada/nmake.ads): Likewise.
41142 (update-sources): Moved from Makefile.in.
41143 Prefix with ada subdir.
41144 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41145 (ADA_TREE_H): Likewise.
41146 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41147 (ada/memtrack.o): Likewise.
41148 (ada/adadecode.o): Likewise.
41149 Update dependencies.
41150 (ada/adaint.o): New.
41151 (ada/argv.o): Moved from Makefile.in.
41152 Prefix with ada subdir.
41153 Update dependencies.
41154 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41155 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41156 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41157 Prefix with ada subdir.
41158 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41159 (GNAT DEPENDENCIES): Regenerate.
41160 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41161 toplevel Makefile.in.
41162 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41163 (TARGET_ADA_SRCS): Removed.
41164 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41165 (GNATBIND_OBJS): Likewise.
41166 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41167 (BACKEND): Removed.
41168 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41169 (TREE_H): Likewise.
41170 (ada_extra_files): Likewise.
41171 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41172 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41173 (update-sources): Likewise.
41174 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41175 (ADA_TREE_H): Likewise.
41176 (adadecoce.o): Likewise.
41177 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41178 (GNAT DEPENDENCIES): Likewise.
41180 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41182 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41183 * Makefile.in: Likewise.
41185 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41187 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41188 Restore $(CONFIG_H) and prefix.o dependencies.
41189 (ada.stage[1-4]): Depend on stage?-start.
41191 * Makefile.in (b_gnatb.c): Depend on interfac.o.
41193 2002-05-02 Jim Wilson <wilson@redhat.com>
41195 * utils.c (finish_record_type): Change record_size to record_type.
41197 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
41199 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41200 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41201 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41203 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
41205 * misc.c (gnat_parse_file): Update.
41207 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
41209 * misc.c (gnat_init): Don't set lang_attribute_common.
41211 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
41213 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41215 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
41217 * gnat_ug.texi: New file.
41219 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
41220 instead of gfdl.texi
41222 * xgnatug.adb, ug_words: New files.
41224 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
41225 gnat_rm and gnat-style manuals.
41227 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
41229 * gigi.h (incomplete_type_error): Remove.
41230 * utils.c (incomplete_type_error): Remove.
41232 2002-04-16 Mark Mitchell <mark@codesourcery.com>
41234 * trans.c (tree_transform): Add has_scope argument to
41235 expand_start_stmt_expr.
41237 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41239 * gigi.h (truthvalue_conversion): Rename.
41240 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41241 * trans.c (tree_transform): Update.
41242 * utils2.c (truthvalue_conversion): Rename, update.
41243 (build_binary_op, build_unary_op): Update.
41245 2002-04-04 Laurent Guerby <guerby@acm.org>
41247 * make.adb: Implement -margs, remove restriction about file name placement.
41248 * makeusg.adb: Documentation update.
41249 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41250 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41252 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41254 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41255 (builtin_function): Similarly.
41257 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41259 * decl.c (gnat_to_gnu_entity): Update.
41260 * gigi.h (mark_addressable): Rename.
41261 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41262 * trans.c (tree_transform): Update.
41263 * utils.c (create_var_decl): Update.
41264 * util2.c (build_binary_op, build_unary_op,
41265 fill_vms_descriptor): Update.
41266 (mark_addressable): Rename, update.
41268 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41270 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41272 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41273 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41274 * trans.c (tree_transform, convert_with_check): Update.
41275 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41278 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
41280 * gigi.h (finish_incomplete_decl): Rename.
41281 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41282 * utils.c (gnat_init_decl_processing): Don't set hook.
41283 (finish_incomplete_decl): Rename.
41285 2002-03-29 Andreas Schwab <schwab@suse.de>
41287 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41290 2001-03-28 Robert Dewar <dewar@gnat.com>
41293 (Remove_Checks): New procedure
41296 (Remove_Checks): New procedure
41299 Use new Duplicate_Subexpr functions
41300 (Duplicate_Subexpr_No_Checks): New procedure
41301 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41302 (Duplicate_Subexpr): Restore original form (checks duplicated)
41303 (Duplicate_Subexpr): Call Remove_Checks
41306 (Duplicate_Subexpr_No_Checks): New procedure
41307 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41308 Add 2002 to copyright notice
41310 * sem_util.adb: Use new Duplicate_Subexpr functions
41313 (Eval_Indexed_Component): This is the place to call
41314 Constant_Array_Ref and to replace the value. We simply merge
41315 the code of this function in here, since it is now no longer
41316 used elsewhere. This fixes the problem of the back end not
41317 realizing we were clever enough to see that this was
41319 (Expr_Val): Remove call to Constant_Array_Ref
41320 (Expr_Rep_Val): Remove call to Constant_Array_Ref
41322 (Constant_Array_Ref): Deal with string literals (patch
41323 suggested by Zack Weinberg on the gcc list)
41325 2001-03-28 Ed Schonberg <schonber@gnat.com>
41327 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41328 Duplicate_Subexpr_Move_Checks.
41330 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41331 Duplicate_Subexpr_Move_Checks.
41333 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41334 value of array exists before retrieving it (it may a private
41335 protected component in a function).
41337 2002-03-28 Geert Bosch <bosch@gnat.com>
41339 * prj-pp.adb : New file.
41341 * prj-pp.ads : New file.
41343 2002-03-28 Andreas Jaeger <aj@suse.de>
41345 * Makefile.in (stamp-sdefault): Fix path for Makefile.
41347 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
41349 * misc.c (gnat_expand_expr): Move prototype.
41351 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41353 * misc.c (insert_default_attributes): Remove.
41355 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41357 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41358 (gnat_init): Don't set hook.
41359 (gnat_expand_expr): Fix prototype.
41361 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41363 * misc.c (ggc_p): Remove.
41365 2002-03-27 Geert Bosch <bosch@gnat.com>
41367 * prj-makr.ads, prj-makr.adb : New files.
41369 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
41371 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41372 (lang_mark_tree): Make static, rename.
41374 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
41376 * misc.c (maybe_build_cleanup): Remove.
41378 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
41380 * gigi.h (yyparse): Remove.
41382 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
41384 From Ben Brosgol <brosgol@gnat.com>
41385 * gnat_rm.texi: Sync with ACT version.
41387 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
41389 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41390 (gnat_init): Remove old hook.
41392 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
41394 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41395 (yyparse): Rename gnat_parse_file.
41397 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
41399 Delete all lines containing "$Revision:".
41400 * xeinfo.adb: Don't look for revision numbers.
41401 * xnmake.adb: Likewise.
41402 * xsinfo.adb: Likewise.
41403 * xsnames.adb: Likewise.
41404 * xtreeprs.adb: Likewise.
41406 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41408 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41409 gnat_tree_code_name): Delete.
41410 (tree_code_type, tree_code_length, tree_code_name): Define.
41411 (gnat_init): Don't try to copy into the various tree_code
41414 2002-03-11 Richard Henderson <rth@redhat.com>
41416 * Makefile.in (.NOTPARALLEL): Add fake tag.
41418 2002-03-07 Geert Bosch <bosch@gnat.com>
41420 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41421 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41422 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
41423 switch-m.adb, switch-m.ads : New files.
41425 2002-03-07 Geert Bosch <bosch@gnat.com>
41427 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41428 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41429 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41430 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41431 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41432 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41433 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41434 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41435 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41436 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41437 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41438 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41439 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41440 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41441 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41442 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41443 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41444 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41445 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41446 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41447 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41448 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41449 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41450 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41451 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41452 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41453 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41454 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41455 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41456 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41457 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41458 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41459 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41460 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41461 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41462 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41463 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41464 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41465 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41466 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41467 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41468 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41469 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41470 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41471 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41472 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41473 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41474 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41475 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41476 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41477 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41478 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41479 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41480 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41481 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41482 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41483 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41484 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41485 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41486 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41487 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41488 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41489 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41490 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41491 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41492 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41493 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41494 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41495 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41496 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41497 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41498 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41499 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41500 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41501 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41502 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41503 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41504 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41505 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41506 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41507 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41508 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41509 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41510 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41511 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41512 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41513 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41514 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41515 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41516 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41517 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41518 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41519 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41520 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41521 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41522 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41523 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41525 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41526 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41527 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41528 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41530 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41531 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41533 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41534 to mdll-fil.ad[bs] and mdll-util.ad[bs]
41536 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41537 from mdllfile.ad[bs] and mdlltool.ad[bs]
41539 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41541 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41542 lieu of explicit sizeof/sizeof.
41544 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
41546 * misc.c (copy_lang_decl): Remove.
41548 2002-02-27 Zack Weinberg <zack@codesourcery.com>
41550 * misc.c: Delete traditional-mode-related code copied from the
41551 C front end but not used, or used only to permit the compiler
41554 2002-02-07 Richard Henderson <rth@redhat.com>
41556 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41557 * adaint.h (__gnat_to_gm_time): Update prototype.
41559 2002-01-30 Richard Henderson <rth@redhat.com>
41561 * trans.c (tree_transform) [N_Loop_Statement]: Use
41562 expand_exit_loop_top_cond.
41564 2001-12-23 Richard Henderson <rth@redhat.com>
41566 * utils.c (end_subprog_body): Push GC context around
41567 rest_of_compilation for nested functions.
41569 2001-12-23 Richard Henderson <rth@redhat.com>
41571 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41573 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
41575 * gnat-style.texi (Declarations and Types): Remove ancient style
41576 rule which was mandated by code generation issues.
41578 * gnat-style.texi (header): Add @dircategory, @direntry.
41579 (title page): Remove date.
41580 (general) Add @./@: where approriate, and two spaces after the
41581 full stop at the end of a sentence. Use @samp markup when
41582 referring concrete lexical entities (keywords, attribute names
41583 etc.), and @syntax for ARM grammar elements. Use @r for English
41584 text in comments. Use @emph for emphasis. Change "if-statements"
41585 etc. to "if statements" (without @samp). Break long lines. Make
41586 casing of section names consistent.
41587 (Identifiers): Use @samp markup for variable names.
41588 (Comments): Use @samp markup for comment characters. Line-end
41589 comments may follow any Ada code, not just statements. Fix
41590 misspelling of "Integer" as "integer".
41591 (Loop statements): Do not use variable name "I", use "J".
41592 (Subprogram Declarations): Document alignment.
41593 (Subprogram Bodies, Block statements): Document empty line before
41596 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
41598 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41599 function approach did not work well because of a side effect (the
41600 function call could reallocate the table which was being indexed
41601 using its result). Fixes ada/4851.
41603 2001-12-19 Robert Dewar <dewar@gnat.com>
41605 * bindgen.adb: Minor reformatting
41607 * cstand.adb: Minor reformatting
41609 * fmap.adb: Minor reformatting
41610 Change name from Add for Add_To_File_Map (Add is much too generic)
41611 Change Path_Name_Of to Mapped_Path_Name
41612 Change File_Name_Of to Mapped_File_Name
41613 Fix copyright dates in header
41616 Change name from Add for Add_To_File_Map (Add is much too generic)
41617 Change Path_Name_Of to Mapped_Path_Name
41618 Change File_Name_Of to Mapped_File_Name
41619 Fix copyright dates in header
41621 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
41622 Add use clause for Fmap.
41624 * make.adb: Minor reformatting
41626 * osint.adb: Minor reformatting. Change of names in Fmap.
41627 Add use clause for Fmap.
41629 * prj-env.adb: Minor reformatting
41631 * prj-env.ads: Minor reformatting
41633 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
41634 error found (there were odd exceptions to this general rule in
41635 -gnatec/-gnatem processing)
41637 2001-12-19 Olivier Hainque <hainque@gnat.com>
41639 * raise.c (__gnat_eh_personality): Exception handling personality
41640 routine for Ada. Still in rough state, inspired from the C++ version
41641 and still containing a bunch of debugging artifacts.
41642 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
41643 inspired from the C++ library.
41645 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
41646 exception handling integration.
41648 2001-12-19 Arnaud Charlet <charlet@gnat.com>
41650 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41651 (HIE_SOURCES): Add s-secsta.ad{s,b}.
41652 (HIE_OBJS): Add s-fat*.o
41653 (RAVEN_SOURCES): Remove files that are no longer required. Add
41654 interrupt handling files.
41655 (RAVEN_MOD): Removed, no longer needed.
41657 2001-12-19 Robert Dewar <dewar@gnat.com>
41659 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41660 Add 2001 to copyright date
41662 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
41663 need to force universal inlining for these cases.
41665 2001-12-19 Arnaud Charlet <charlet@gnat.com>
41667 * s-taprob.adb: Minor clean ups so that this unit can be used in
41670 * exp_ch7.adb: Allow use of secondary stack in HI mode.
41671 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
41673 2001-12-19 Vincent Celier <celier@gnat.com>
41675 * prj-tree.ads (Project_Node_Record): Add comments for components
41676 Pkg_Id and Case_Insensitive.
41678 2001-12-19 Pascal Obry <obry@gnat.com>
41680 * g-socket.adb: Minor reformatting. Found while reading code.
41682 2001-12-19 Robert Dewar <dewar@gnat.com>
41684 * prj-tree.ads: Minor reformatting
41686 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
41688 * config-lang.in (diff_excludes): Remove.
41690 2001-12-17 Ed Schonberg <schonber@gnat.com>
41692 * sem_res.adb (Resolve_Selected_Component): do not generate a
41693 discriminant check if the selected component is a component of
41694 the argument of an initialization procedure.
41696 * trans.c (tree_transform, case of arithmetic operators): If result
41697 type is private, the gnu_type is the base type of the full view,
41698 given that the full view itself may be a subtype.
41700 2001-12-17 Robert Dewar <dewar@gnat.com>
41702 * sem_res.adb: Minor reformatting
41704 * trans.c (tree_transform, case N_Real_Literal): Add missing third
41705 parameter in call to Machine (unknown horrible effects from this
41708 * urealp.h: Add definition of Round_Even for call to Machine
41709 Add third parameter for Machine
41711 2001-12-17 Ed Schonberg <schonber@gnat.com>
41713 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
41714 predefined units in No_Run_Time mode.
41716 2001-12-17 Richard Kenner <kenner@gnat.com>
41718 * misc.c (insn-codes.h): Now include.
41720 2001-12-17 Olivier Hainque <hainque@gnat.com>
41722 * a-except.adb: Preparation work for future integration of the GCC 3
41723 exception handling mechanism
41724 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41725 to factorize previous code sequences and make them externally callable,
41726 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41727 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41728 Use the new notification routines.
41730 2001-12-17 Emmanuel Briot <briot@gnat.com>
41732 * prj-tree.ads (First_Choice_Of): Document the when others case
41734 2001-12-17 Arnaud Charlet <charlet@gnat.com>
41736 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
41737 HI-E mode, in order to support Ravenscar profile properly.
41739 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
41740 mode on 32 bits targets.
41742 2001-12-17 Vincent Celier <celier@gnat.com>
41744 * fmap.adb: Initial version.
41746 * fmap.ads: Initial version.
41748 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41749 If search is successfully done, add to mapping.
41751 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
41754 (Gnatmake): Add new local variable Mapping_File_Name.
41755 Create mapping file when using project file(s).
41756 Delete mapping file before exiting.
41758 * opt.ads (Mapping_File_Name): New variable
41760 * osint.adb (Find_File): Use path name found in mapping, if any.
41762 * prj-env.adb (Create_Mapping_File): New procedure
41764 * prj-env.ads (Create_Mapping_File): New procedure.
41766 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
41769 * usage.adb: Add entry for new switch -gnatem.
41771 * Makefile.in: Add dependencies for fmap.o.
41773 2001-12-17 Ed Schonberg <schonber@gnat.com>
41775 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
41776 is a package instantiation rewritten as a package body.
41777 (Install_Withed_Unit): Undo previous change, now redundant.
41779 2001-12-17 Gary Dismuke <dismukes@gnat.com>
41782 (Compute_Length): Move conversion to Unsigned to callers.
41783 (Get_Max_Size): Convert Len expression to Unsigned after calls to
41784 Compute_Length and Determine_Range.
41785 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
41786 Compute_Length and Determine_Range.
41787 Above changes fix problem with length computation for supernull arrays
41788 where Max (Len, 0) wasn't getting applied due to the Unsigned
41789 conversion used by Compute_Length.
41791 2001-12-17 Arnaud Charlet <charlet@gnat.com>
41794 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
41795 System.Secondary_Stack.
41796 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
41798 Remove unused entity RE_Exception_Data.
41800 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
41802 * rident.ads (No_Secondary_Stack): New restriction.
41804 2001-12-17 Joel Brobecker <brobecke@gnat.com>
41806 * gnat_rm.texi: Fix minor typos. Found while reading the section
41807 regarding "Bit_Order Clauses" that was sent to a customer.
41808 Very interesting documentation!
41810 2001-12-17 Robert Dewar <dewar@gnat.com>
41812 * sem_case.adb (Choice_Image): Avoid creating improper character
41813 literal names by using the routine Set_Character_Literal_Name. This
41814 fixes bombs in certain error message cases.
41816 2001-12-17 Arnaud Charlet <charlet@gnat.com>
41818 * a-reatim.adb: Minor reformatting.
41820 2001-12-17 Ed Schonberg <schonber@gnat.com>
41822 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
41823 case where the formal is an extension of another formal in the current
41824 unit or in a parent generic unit.
41826 2001-12-17 Arnaud Charlet <charlet@gnat.com>
41828 * s-tposen.adb: Update comments. Minor reformatting.
41829 Minor code clean up.
41831 * s-tarest.adb: Update comments. Minor code reorganization.
41833 2001-12-17 Gary Dismukes <dismukes@gnat.com>
41835 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
41838 2001-12-17 Robert Dewa <dewar@gnat.com>
41840 * exp_attr.adb: Minor reformatting
41842 2001-12-17 Ed Schonberg <schonber@gnat.com>
41844 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
41845 derivations nested within a child unit: verify that the parent
41846 type is declared in an outer scope.
41848 2001-12-17 Robert Dewar <dewar@gnat.com>
41850 * sem_ch12.adb: Minor reformatting
41852 2001-12-17 Ed Schonberg <schonber@gnat.com>
41854 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
41855 warning if current unit is a predefined one, from which bodies may
41858 2001-12-17 Robert Dewar <dewar@gnat.com>
41860 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
41861 Fix header format. Add 2001 to copyright date.
41863 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
41864 which caused CE during compilation if checks were enabled.
41866 2001-12-17 Vincent Celier <celier@gnat.com>
41869 (Switches_Of): New function
41870 (Test_If_Relative_Path): New procedure
41871 (Add_Switches): Use new function Switches_Of
41872 (Collect_Arguments_And_Compile): Use new function Switches_Of.
41873 When using a project file, test if there are any relative
41874 search path. Fail if there are any.
41875 (Gnatmake): Only add switches for the primary directory when not using
41876 a project file. When using a project file, change directory to the
41877 object directory of the main project file. When using a project file,
41878 test if there are any relative search path. Fail if there are any.
41879 When using a project file, fail if specified executable is relative
41880 path with directory information, and prepend executable, if not
41881 specified as an absolute path, with the exec directory. Make sure
41882 that only one -o switch is transmitted to the linker.
41884 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
41887 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
41888 when using a non standard naming scheme.
41889 (Check_Ada_Naming_Scheme): Make sure that error messages
41890 do not raise exceptions.
41891 (Is_Illegal_Append): Return True if there is no dot in the suffix.
41892 (Language_Independent_Check): Check the exec directory.
41894 * prj.adb (Project_Empty): Add new component Exec_Directory
41897 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
41898 (Project_Data): Add component Exec_Directory
41900 * snames.adb: Updated to match snames.ads revision 1.215
41902 * snames.ads: Added Exec_Dir
41904 2001-12-17 Robert Dewar <dewar@gnat.com>
41906 * make.adb: Minor reformatting
41908 * prj-nmsc.adb: Minor reformatting
41910 * snames.adb: Updated to match snames.ads
41912 * snames.ads: Alphebetize entries for project file
41914 2001-12-17 Ed Schonberg <schonber@gnat.com>
41916 * trans.c (process_freeze_entity): Do nothing if the entity is a
41917 subprogram that was already elaborated.
41919 2001-12-17 Richard Kenner <kenner@gnat.com>
41921 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
41922 and Esize if object is referenced via pointer.
41924 2001-12-17 Ed Schonberg <schonber@gnat.com>
41926 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
41927 is discrete before analyzing choices.
41929 2001-12-17 Joel Brobecker <brobecke@gnat.com>
41931 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
41932 containing the name of the Ada Main Program. This string is mainly
41933 intended for the debugger.
41934 (Gen_Output_File_C): Do the equivalent change when generating a C file.
41936 2001-12-17 Robert Dewar <dewar@gnat.com>
41938 * ali.adb: Set new Dummy_Entry field in dependency entry
41940 * ali.ads: Add Dummy_Entry field to source dependency table
41942 * bcheck.adb (Check_Consistency): Ignore dummy D lines
41944 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
41946 * lib-writ.ads: Document dummy D lines for missing files.
41948 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
41950 2001-12-17 Robert Dewar <dewar@gnat.com>
41952 * ali.adb: Type reference does not reset current file.
41954 * ali.adb: Recognize and scan renaming reference
41956 * ali.ads: Add spec for storing renaming references.
41958 * lib-xref.ads: Add documentation for handling of renaming references
41960 * lib-xref.adb: Implement output of renaming reference.
41963 (Determine_Range): Document local variables
41964 (Determine_Range): Make sure Hbound is initialized. It looks as though
41965 there could be a real problem here with an uninitialized reference
41966 to Hbound, but no actual example of failure has been found.
41968 2001-12-17 Laurent Pautet <pautet@gnat.com>
41971 Fix comment of Shutdown_Socket and Close_Socket. These functions
41972 should not fail silently because if they are called twice, this
41973 probably means that there is a race condition in the user program.
41974 Anyway, this behaviour is consistent with the rest of this unit.
41975 When an error occurs, an exception is raised with the error message
41976 as exception message.
41978 2001-12-17 Robert Dewar <dewar@gnat.com>
41980 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
41981 that it happens before modification of Sloc values for -gnatD.
41983 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
41984 so that it happens before modification of Sloc values for -gnatD.
41986 * switch.adb: Minor reformatting
41988 2001-12-15 Richard Henderson <rth@redhat.com>
41990 * sem_ch7.adb: Wrap comment.
41992 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
41994 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
41995 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
41996 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
41997 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
41998 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
41999 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42000 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42001 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42002 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42003 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42004 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42005 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42006 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42007 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42008 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42009 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42010 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42011 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42012 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42013 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42014 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42015 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42016 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42017 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42020 2001-12-14 Vincent Celier <celier@gnat.com>
42022 * osint.adb(Create_Debug_File): When an object file is specified,
42023 put the .dg file in the same directory as the object file.
42025 2001-12-14 Robert Dewar <dewar@gnat.com>
42027 * osint.adb: Minor reformatting
42029 * lib-xref.adb (Output_Instantiation): New procedure to generate
42030 instantiation references.
42032 * lib-xref.ads: Add documentation of handling of generic references.
42034 * ali.adb (Read_Instantiation_Ref): New procedure to read
42035 instantiation references
42037 * ali.ads: Add spec for storing instantiation references
42039 * bindusg.adb: Minor reformatting
42041 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42043 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42045 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42047 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42051 Add 2001 to copyright date
42052 Add entry for Latin-5 (Cyrillic ISO-8859-5)
42054 2001-12-14 Matt Gingell <gingell@gnat.com>
42056 * adaint.c: mktemp is a macro on Lynx and can not be used as an
42059 2001-12-14 Richard Kenner <kenner@gnat.com>
42061 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42062 if operand is CONSTRUCTOR.
42064 2001-12-14 Ed Schonberg <schonber@gnat.com>
42066 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42067 before emiting check on right-hand side, so that exception information
42070 2001-12-14 Richard Kenner <kenner@gnat.com>
42072 * utils.c (create_var_decl): Throw away initializing expression
42073 if just annotating types and non-constant.
42075 2001-12-14 Vincent Celier <celier@gnat.com>
42077 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42080 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42082 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42084 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42086 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42088 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42090 * ChangeLog: Remove piece of diff output.
42092 2001-12-14 Geert Bosch <bosch@gnat.com>
42094 * config-lang.in: Update copyright notice
42096 * layout.adb: Remove commented out code.
42098 * mdllfile.ads: Update copyright notice. Fix header format.
42100 * sem_case.ads: Likewise.
42102 * sem_ch3.adb: Minor reformatting.
42104 2001-12-12 Geert Bosch <bosch@gnat.com>
42106 * freeze.ads: Update copyright date.
42108 * g-comlin.ads: Minor reformatting.
42110 * gnat-style.texi: Fix typo.
42112 2001-12-12 Geert Bosch <bosch@gnat.com>
42114 * einfo.h: Regenerate.
42116 2001-12-12 Ed Schonberg <schonber@gnat.com>
42118 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42119 on known node types, rather than untyped fields. Further cleanups.
42121 2001-12-12 Robert Dewar <dewar@gnat.com>
42124 (Save_Entity_Descendant): Minor comment update.
42125 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42126 of an N_Attribute_Reference node. As per note below, this does not
42127 eliminate need for Associated_Node in attribute ref nodes.
42128 (Associated_Node): Documentation explicitly mentions attribute
42129 reference nodes, since this field is used in such nodes.
42131 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42133 2001-12-12 Robert Dewar <dewar@gnat.com>
42135 * s-stalib.adb: Add more comments on with statements being needed
42137 * par-ch12.adb: Minor reformatting
42139 * prj-dect.ads: Fix copyright header
42141 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42142 inputs fit in 32 bits, but the result still overflows.
42144 * s-fatgen.ads: Minor comment improvement
42146 2001-12-12 Ed Schonberg <schonber@gnat.com>
42148 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42149 formal derived type, look for an inherited component from the full
42150 view of the parent, if any.
42152 2001-12-12 Robert Dewar <dewar@gnat.com>
42154 * checks.ads (Apply_Alignment_Check): New procedure.
42156 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42157 ensure that the alignment of objects with address clauses is
42158 appropriate, and raise PE if not.
42160 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42161 Exp_Pakd.Known_Aligned_Enough
42163 * mdllfile.ads: Minor reformatting
42165 * mlib-fil.ads: Minor reformatting
42167 2001-12-12 Ed Schonberg <schonber@gnat.com>
42169 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42170 fix to any component reference if enclosing record has non-standard
42173 2001-12-12 Vincent Celier <celier@gnat.com>
42175 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42178 2001-12-12 Ed Schonberg <schonber@gnat.com>
42180 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42183 2001-12-12 Robert Dewar <dewar@gnat.com>
42185 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42187 2001-12-12 Emmanuel Briot <briot@gnat.com>
42189 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42190 and it adds dependencies to system.io.
42192 2001-12-12 Pascal Obry <obry@gnat.com>
42194 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42197 2001-12-11 Ed Schonberg <schonber@gnat.com>
42199 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42200 that is the parent of other generics, the instance body replaces the
42201 instance node. Retrieve the instance of the spec, which is the one
42202 that is visible in clients and within the body.
42204 2001-12-11 Vincent Celier <celier@gnat.com>
42206 * gnatmain.adb: Initial version.
42208 * gnatmain.ads: Initial version.
42210 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42212 * snames.adb: Updated to match snames.ads.
42214 * snames.ads: Added Gnatstub.
42216 2001-12-11 Vincent Celier <celier@gnat.com>
42218 * prj-attr.adb (Initialization_Data): Change name from
42219 Initialisation_Data.
42221 2001-12-11 Emmanuel Briot <briot@gnat.com>
42223 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42224 + and * applied to backslashed expressions like \r.
42226 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
42228 * g-os_lib.ads: String_List type added, Argument_List type is now
42229 subtype of String_List.
42231 2001-12-11 Robert Dewar <dewar@gnat.com>
42233 * g-os_lib.ads: Change copyright to FSF
42234 Add comments for String_List type
42236 2001-12-11 Vincent Celier <celier@gnat.com>
42238 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42239 string to the buffer).
42241 2001-12-11 Ed Schonberg <schonber@gnat.com>
42243 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42246 * sem_attr.adb: Simplify previous fix for Address.
42247 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42248 to avoid anomalies where the bound of the type appears to raise
42251 2001-12-11 Robert Dewar <dewar@gnat.com>
42253 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42256 2001-12-11 Ed Schonber <schonber@gnat.com>
42258 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42259 renamed unit before checking for recursive instantiations.
42261 2001-12-11 Emmanuel Briot <briot@gnat.com>
42263 * prj.ads: Add comments for some of the fields.
42265 2001-12-11 Robert Dewar <dewar@gnat.com>
42267 * lib-xref.adb (Output_Refs): Don't output type references outside
42268 the main unit if they are not otherwise referenced.
42270 2001-12-11 Ed Schonberg <schonber@gnat.com>
42272 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42273 code and diagnose additional illegal uses
42275 * sem_util.adb (Is_Object_Reference): An indexed component is an
42276 object only if the prefix is.
42278 2001-12-11 Vincent Celier <celier@gnat.com>
42280 * g-diopit.adb: Initial version.
42282 * g-diopit.ads: Initial version.
42285 (Expand_Path): Avoid use of Unbounded_String
42286 (Find, Wildcard_Iterator): Moved to child package Iteration
42288 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42290 2001-12-11 Robert Dewar <dewar@gnat.com>
42292 * sem_attr.adb: Minor reformatting
42294 2001-12-11 Ed Schonberg <schonber@gnat.com>
42296 * sem_ch3.adb: Clarify some ???.
42298 2001-12-11 Robert Dewar <dewar@gnat.com>
42300 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42301 Exp_Pakd.Known_Aligned_Enough
42303 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42304 version is moved to Exp_Ch13.
42306 2001-12-11 Robert Dewar <dewar@gnat.com>
42308 * einfo.ads: Minor reformatting
42310 * exp_ch5.adb: Add comment for previous.change
42312 * ali.adb: New interface for extended typeref stuff.
42314 * ali.ads: New interface for typeref stuff.
42316 * checks.adb (Apply_Alignment_Check): New procedure.
42318 * debug.adb: Add -gnatdM for modified ALI output
42320 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42322 * lib-xref.adb: Extend generation of <..> notation to cover
42323 subtype/object types. Note that this is a complete rewrite,
42324 getting rid of the very nasty quadratic algorithm previously
42325 used for derived type output.
42327 * lib-xref.ads: Extend description of <..> notation to cover
42328 subtype/object types. Uses {..} for these other cases.
42329 Also use (..) for pointer types.
42331 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42333 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
42334 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42336 2001-12-11 Vincent Celier <celier@gnat.com>
42339 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42340 Changed /BIND_ONLY to /ACTIONS=BIND
42341 Changed /LINK_ONLY to /ACTIONS=LINK
42343 2001-12-11 Ed Schonberg <schonber@gnat.com>
42345 * sem_ch8.adb (Find_Selected_Component): improved search for a
42346 candidate package in case of error.
42348 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42349 chain back on scope stack before reinstalling use clauses.
42351 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42352 is enabled, do not kill the code for the condition, to preserve
42355 2001-12-11 Robert Dewar <dewar@gnat.com>
42357 * checks.adb (Insert_Valid_Check): Apply validity check to expression
42358 of conversion, not to result of conversion.
42360 2001-12-11 Ed Schonberg <schonber@gnat.com>
42362 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42363 before freezing parent. If the declarations are mutually recursive,
42364 an access to the current record type may be frozen before the
42365 derivation is complete.
42367 2001-12-05 Vincent Celier <celier@gnat.com>
42369 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42370 -c /COMPILE_ONLY, -l /LINK_ONLY
42373 (Bind_Only): New Flag
42374 (Link_Only): New flag
42376 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42379 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42382 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42383 (Gnatmake): Set the step flags. Only perform a step if the
42384 corresponding step flag is True.
42385 (Scan_Make_Arg): Reset the bind and link step flags when -u
42386 or -gnatc has been specified.
42388 2001-12-05 Ed Schonberg <schonber@gnat.com>
42390 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42391 get bounds from right operand.
42393 * sem_eval.adb: Minor reformatting
42395 * exp_util.adb (Make_Literal_Range): use bound of literal rather
42396 than Index'First, its lower bound may be different from 1.
42398 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42401 2001-12-05 Vincent Celier <celier@gnat.com>
42403 * prj-nmsc.adb Minor reformatting
42405 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42406 set and libraries are not supported.
42408 2001-12-05 Ed Schonberg <schonber@gnat.com>
42410 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42411 private view explicitly, so the back-end can treat as a global
42414 2001-12-05 Ed Schonberg <schonber@gnat.com>
42416 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42417 unit, always replace instance node with new body, for ASIS use.
42419 2001-12-05 Vincent Celier <celier@gnat.com>
42421 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42422 libraries are not supported and both attributes Library_Name and
42423 Library_Dir are specified.
42425 * prj-proc.adb (Expression): Set location of Result to location of
42428 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42429 (prj-nmsc is now importing MLib.Tgt)
42431 * prj-proc.adb: Put the change indicated above that was forgotten.
42433 2001-12-05 Robert Dewar <dewar@gnat.com>
42435 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42437 2001-12-05 Ed Schonberg <schonber@gnat.com>
42439 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42440 constraint, introduce explicit subtype declaration and derive from it.
42442 * sem_ch3.adb: Minor reformatting
42444 2001-12-05 Robert Dewar <dewar@gnat.com>
42446 * checks.adb (Determine_Range): Increase cache size for checks.
42449 * exp_ch6.adb: Minor reformatting
42450 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42451 a parameter whose root type is System.Address, since treating such
42452 subprograms as pure in the code generator is almost surely a mistake
42453 that will lead to unexpected results.
42455 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
42456 change handling of conversions.
42458 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42460 2001-12-05 Ed Schonberg <schonber@gnat.com>
42462 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42463 aggregate with static wrong size, attach generated Raise node to
42466 2001-12-05 Robert Dewar <dewar@gnat.com>
42468 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
42469 Fixes compilation abandoned bomb in B24009B.
42471 2001-12-05 Ed Schonberg <schonber@gnat.com>
42474 Document use of Associated_Node on Selected_Components.
42475 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42476 to clarify use of untyped descendant fields.
42478 2001-12-05 Robert Dewar <dewar@gnat.com>
42480 * prj-dect.ads: Add ??? comment
42481 Add 2001 to copyright notice (was not done in after all)
42483 * prj-part.adb: Minor reformatting. Reword one awkward error message.
42485 * prj.ads: Minor reformatting throughout, and add some ??? comments
42487 * snames.ads: Minor reformatting
42489 2001-12-05 Geert Bosch <bosch@gnat.com>
42491 * snames.adb: Autoupdate
42493 2001-12-05 Vincent Celier <celier@gnat.com>
42495 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
42497 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
42499 * prj-env.adb: Minor comment changes (modifying -> extends).
42501 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
42503 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
42506 * prj.adb (Initialize): Change Modifying to Extends.
42508 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
42510 * prj.ads: Minor comment change (Modifying -> extending).
42512 * snames.ads: Change modifying to extends.
42514 2001-12-05 Robert Dewar <dewar@gnat.com>
42516 * sem_warn.adb: Remove stuff for conditionals, we are not going to
42519 * sem_warn.ads: Remove stuff for conditionals, we are not going to
42520 do this after all. Add 2001 to copyright notice
42522 2001-12-04 Geert Bosch <bosch@gnat.com>
42524 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
42526 2001-12-04 Robert Dewar <dewar@gnat.com>
42528 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42529 location if we already have errors. Stops some cases of cascaded
42532 * errout.adb: Improve comment.
42534 2001-12-04 Robert Dewar <dewar@gnat.com>
42537 (Analyze_Formal_Type_Definition): Defend against Error.
42538 (Analyze_Formal_Subprogram): Defend against Error.
42540 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
42541 remove following semicolon if present. Removes cascaded error.
42543 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
42546 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42547 exceptions equals 0.
42548 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42549 Fixes PIWG E tests (which have to be run with -gnatL).
42551 2001-12-04 Robert Dewar <dewar@gnat.com>
42553 * einfo.ads: Minor reformatting
42555 2001-12-04 Ed Schonberg <schonber@gnat.com>
42557 * einfo.ads: Block_Node points to the identifier of the block, not to
42558 the block node itself, to preserve the link when the block is
42559 rewritten, e.g. within an if-statement with a static condition.
42561 * inline.adb (Cleanup_Scopes): recover block statement from block
42562 entity using new meaning of Block_Node.
42564 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
42565 identifier of block node, rather than to node itself.
42567 2001-12-04 Gary Dismukes <dismukes@gnat.com>
42570 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42571 (Discrimify): Go back to setting the Etypes of the selected component
42572 because the Vname component does not exist at this point and will
42573 fail name resolution. Also set Analyzed.
42574 Remove with and use of Sem_Res.
42576 2001-12-04 Arnaud Charlet <charlet@gnat.com>
42578 * Makefile.in: (HIE_SOURCES): add s-fat*.
42580 2001-12-04 Robert Dewar <dewar@gnat.com>
42583 (Compile_Time_Known_Attribute): New procedure.
42584 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42585 proper range check.
42587 2001-12-04 Ed Schonberg <schonber@gnat.com>
42589 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
42590 processing discriminants to diagnose illegal default values.
42592 2001-12-04 Ed Schonberg <schonber@gnat.com>
42594 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42595 access discriminant within a type extension that constrains its
42596 parent discriminants.
42598 2001-12-04 Ed Schonberg <schonber@gnat.com>
42600 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
42601 is malformed, use instance of Any_Id to allow analysis to proceed.
42603 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
42604 type definition is illegal.
42605 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42608 2001-12-04 Ed Schonberg <schonber@gnat.com>
42610 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
42613 2001-12-04 Robert Dewar <dewar@gnat.com>
42615 * errout.adb: Minor reformatting
42617 2001-12-04 Robert Dewar <dewar@gnat.com>
42619 * exp_util.adb: Minor reformatting from last change
42621 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42622 which is a rewriting of an expression, traverse the original
42623 expression to remove warnings that may have been posted on it.
42625 2001-12-04 Ed Schonberg <schonber@gnat.com>
42627 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
42628 record that has other packed components.
42630 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
42632 * adaint.c: Minor cleanups.
42634 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
42636 * adaint.c: Do not use utime.h on vxworks.
42638 2001-12-04 Arnaud Charlet <charlet@gnat.com>
42640 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
42641 more confusion than it solves.
42643 2001-12-04 Geert bosch <bosch@gnat.com>
42645 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42647 2001-12-04 Geert Bosch <bosch@gnat.com>
42649 * Makefile.in (update-sources): New target.
42650 For use by gcc_release script.
42652 2001-12-04 Ed Schonberg <schonber@gnat.com>
42654 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
42655 a configuration pragma, it is now legal wherever a pragma can appear.
42657 2001-12-04 Zack Weinberg <zack@codesourcery.com>
42659 * Makefile.in: Don't set ALL. Delete @cross_defines@,
42660 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
42661 is now @CROSS@ -DIN_GCC; update comment.
42663 2001-12-04 Robert Dewar <dewar@gnat.com>
42665 * einfo.adb (Has_Pragma_Pure_Function): New flag.
42666 Fix problem that stopped ceinfo from working
42668 * einfo.ads (Has_Pragma_Pure_Function): New flag.
42670 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42672 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
42675 (File_Time_Stamp): New procedure.
42676 (Preserve_Mode): New boolean.
42677 (Write_Unit): Pass time stamp.
42678 Implement -p switch (preserve time stamps).
42680 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
42682 * gnatchop.adb: Do usage info for -p switch
42684 * adaint.h (__gnat_set_file_time_name): New function
42686 * adaint.c (__gnat_set_file_time_name): Implement
42688 * adaint.h: Fix typo
42690 2001-12-03 Robert Dewar <dewar@gnat.com>
42692 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
42693 have Associated_Node.
42695 2001-12-03 Robert Dewar <dewar@gnat.com>
42697 * prj-proc.adb: Minor reformatting
42699 * make.adb: Minor reformatting
42701 2001-12-03 Geert Bosch <bosch@gnat.com>
42703 * make.adb: Minor reformatting.
42705 2001-12-03 Robert Dewar <dewar@gnat.com>
42707 * sem_ch12.adb: Minor reformatting
42709 2001-12-03 Ed Schonberg <schonber@gnat.com>
42711 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42712 push Standard on the stack before analyzing the instance body,
42713 in order to have a clean visibility environment.
42715 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
42717 2001-12-03 Ed Schonberg <schonber@gnat.com>
42719 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
42720 instantiation of a body that contains an inlined body.
42722 2001-12-03 Ed Schonberg <schonber@gnat.com>
42725 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42726 to prevent freezing within formal packages.
42727 (Freeze_Subprogram_Body): If body comes from another instance that
42728 appeared before its own body, place freeze node at end of current
42729 declarative part, to prevent a back-end crash.
42730 (Inline_Instance_Body): Handle properly a package instance within
42731 a subprogram instance that is a child unit.
42733 2001-12-01 Graham Stott <grahams@redhat.com>
42735 * Makefile.in (misc.o): Add missing $(srcdir) prefix
42736 and add optabs.h dependency.
42738 * misc.c: Include optabs.h
42739 (gnat_tree_code_type): Make static and const.
42740 (gnat_tree_code_length): Likewise.
42741 (gnat_tree_code_name): Likewise.
42742 (update_setjmp_buf): Obtain operands mode from insn_data.
42744 2001-11-29 Richard Henderson <rth@redhat.com>
42746 * init.c: Remove obsolete dwarf2 frame.h section.
42748 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
42750 * Make-lang.in (ada.generated-manpages): New dummy target.
42752 2001-11-29 Ed Schonberg <schonber@gnat.com>
42754 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42755 into Command, an array conversion is illegal here. Uncovered by
42758 2001-11-28 Geert Bosch <bosch@gnat.com>
42760 * init.c: Minor whitespace changes.
42762 2001-11-28 Doug Rupp <rupp@gnat.com>
42764 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
42767 2001-11-28 Zack Weinberg <zack@codesourcery.com>
42769 * misc.c (gnat_expand_constant): Move declaration above
42770 definition of lang_hooks.
42771 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42772 (gnat_init): lang_expand_constant no longer exists.
42774 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
42775 always have vprintf.
42776 (gnat_init): Always call set_internal_error_function.
42778 2001-11-27 Andreas Jaeger <aj@suse.de>
42780 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
42782 2001-11-27 Laurent Guerby <guerby@acm.org>
42784 * Makefile.in: Regenerate Ada dependencies.
42786 2001-11-26 Richard Henderson <rth@redhat.com>
42788 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
42789 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
42790 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
42792 2001-11-25 Laurent Guerby <guerby@acm.org>
42794 * sysdep.c (rts_get_*): Fix style.
42796 2001-11-19 Laurent Guerby <guerby@acm.org>
42798 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
42799 since it is of no apparent use and cause warnings.
42801 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
42803 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
42805 (gnat_init): Don't return NULL.
42806 (finish_parse): Remove.
42808 2001-11-17 Laurent Guerby <guerby@acm.org>
42810 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
42811 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
42812 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
42813 * lang-spec.h: Add missing struct field to silence warnings.
42814 * sysdep.c (rts_get_*): Provide K&R prototype.
42815 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
42816 * traceback.c (Unlock_Task, Lock_Task): Likewise.
42817 * tracebak.c (__gnat_backtrace): Remove unused variable.
42818 * utils.c (end_subprog_body): Move to K&R style.
42820 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
42822 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
42824 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
42826 * misc.c (gnat_init): Change prototype. Include the
42827 functionality of the old init_parse and init_decl_processing.
42828 (gnat_init_decl_processing): New prototype.
42829 (init_parse): Remove.
42830 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
42832 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42834 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
42835 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
42836 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
42837 set_yydebug): Remove.
42839 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
42841 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
42842 (struct lang_hooks): Constify.
42843 (language_string, lang_identify): Remove.
42844 * utils.c (init_decl_processing): Update.
42846 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
42848 * misc.c: Include langhooks-def.h.
42849 * Makefile.in: Update.
42851 2001-10-30 Robert Dewar <dewar@gnat.com>
42854 (Check_Identifier): Rewrite circuit to be compatible with use of letters
42855 in the upper half of ASCII.
42856 (Check_Identifier): Minor reformatting
42858 2001-10-30 Geert Bosch <bosch@gnat.com>
42860 * (Associated_Node, Set_Associated_Node): Do not check for
42863 2001-10-30 Robert Dewar <dewar@gnat.com>
42865 * a-reatim.ads: Minor reformatting
42867 2001-10-30 Robert Dewar <dewar@gnat.com>
42869 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
42870 undocumented declarations.
42872 2001-10-30 Pascal Obry <obry@gnat.com>
42874 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
42875 to the binder and linker.
42878 * mdll.ads: Fix layout. Update copyright notice.
42880 * mdll.adb: Fix layout. Update copyright notice.
42882 2001-10-30 Robert Dewar <dewar@gnat.com>
42884 * usage.adb: Minor fix to output for -gnaty.
42886 2001-10-30 Ed Schonberg <schonber@gnat.com>
42888 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
42889 to accommodate all its possible values.
42891 * a-reatim.adb (Split): Special-case handling of Time_Span_First
42892 and of small absolute values of T.
42894 2001-10-30 Richard Kenner <kenner@gnat.com>
42896 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
42897 set_mem_attributes since not needed and wrong if RESULT if a REG;
42898 fixes ACATS failures.
42900 2001-10-30 Geert Bosch <bosch@gnat.com>
42902 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
42903 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
42905 2001-10-30 Robert Dewar <dewar@gnat.com>
42907 * bindusg.adb: Undocument -f switch.
42909 * gnatcmd.adb: Remove /FULL_ELABORATION.
42911 * opt.ads (Force_RM_Elaboration_Order): Document that this is
42914 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
42916 * gnatbind.adb: Minor update of warning msg.
42918 2001-10-30 Vincent Celier <celier@gnat.com>
42920 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
42921 for project file switches (-P (/PROJECT_FILE=),
42922 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
42925 2001-10-30 Geert Bosch <bosch@gnat.com>
42927 * decl.c: Minor whitespace fixes.
42929 2001-10-30 Richard Kenner <kenner@gnat.com>
42931 * utils2.c (build_allocator): Test for SIZE overflow in array case too
42933 2001-10-30 Geert Bosch <bosch@gnat.com>
42935 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
42936 Found due to GCC 3.0 warning of using uninitialized value.
42939 (Get_Max_Size): Use variant record for tracking value/expression.
42940 Makes logic clearer and prevents warnings for uninitialized variables.
42941 (Layout_Array_Type): Use variant record for tracking value/expression.
42942 Makes logic clearer and prevents warnings for uninitialized variables.
42944 2001-10-30 Robert Dewar <dewar@gnat.com>
42946 * lib.adb: Minor reformatting
42948 * s-taprop.ads: Minor reformatting
42950 2001-10-29 Laurent Guerby <guerby@acm.org>
42953 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
42955 (_gnat_error_handler): Make MSG const.
42957 2001-10-29 Richard Kenner <kenner@gnat.com>
42959 * sysdep.c: Fix localtime_r problem on LynxOS.
42960 Also remove #elif to avoid warnings.
42962 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
42965 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
42967 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
42969 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
42970 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
42971 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
42972 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
42973 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
42974 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
42975 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
42976 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
42977 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
42978 types.ads, urealp.adb: Fix spelling errors.
42980 2001-10-27 Laurent Guerby <guerby@acm.org>
42982 * trans.c (gigi): Fix non determinism leading to bootstrap
42983 comparison failures for debugging information.
42985 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
42987 * gnat_rm.texi: Use @./@: where appropriate.
42989 2001-10-26 Robert Dewar <dewar@gnat.com>
42991 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
42993 2001-10-26 Richard Kenner <kenner@gnat.com>
42995 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
42997 2001-10-26 Richard Kenner <kenner@gnat.com>
42999 * decl.c (validate_size): Modify message for bad size to avoid
43000 implication that compiler is modifying the size.
43002 2001-10-26 Robert Dewar <dewar@gnat.com>
43004 * prj-util.adb: Minor reformatting. Fix bad header format.
43006 2001-10-26 Robert Dewar <dewar@gnat.com>
43008 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43010 * sinfo.ads: Clarify use of Associated_Node (documentation only).
43012 * sem_ch12.adb: Change Node4 to Associated_Node. Change
43013 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43014 much more narrowly in places where needed. These are cleanups.
43016 2001-10-26 Joel Brobecker <brobecke@gnat.com>
43018 * 5zosinte.ads (null_pthread): new constant.
43021 (Initialize_TCB): Initialize thread ID to null, to be able to verify
43022 later that this field has been set.
43023 (Finalize_TCB): ditto.
43024 (Suspend_Task): Verify that the thread ID is not null before using it.
43025 (Resume_Task): ditto.
43028 (Resume_All_Tasks): Lock the tasks list before using it.
43029 (Suspend_All_Tasks): ditto.
43031 2001-10-26 Richard Kenner <kenner@gnat.com>
43033 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43034 Make constant variant of designated type for Is_Access_Constant.
43035 Call update_pointer_to with main variant.
43037 * trans.c (process_freeze_entity, process_type):
43038 Call update_pointer_to on main variant.
43040 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43041 If main variant, update all other variants.
43043 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43046 2001-10-26 Robert Dewar <dewar@gnat.com>
43048 * prj-util.adb: Minor reformatting
43050 2001-10-26 Robert Dewar <dewar@gnat.com>
43052 * prj-util.adb: Minor reformatting
43054 2001-10-26 Robert Dewar <dewar@gnat.com>
43056 * prj-attr.adb: Minor reformatting throughout
43058 2001-10-26 Robert Dewar <dewar@gnat.com>
43060 * prj-attr.ads: Minor reformatting
43061 Add ??? comment (this whole spec has almost no comments)
43063 2001-10-26 Vincent Celier <celier@gnat.com>
43065 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43066 ("//") that precede the drive letter on Interix.
43068 2001-10-26 Geert Bosch <bosch@gnat.com>
43070 * gnat_rm.texi: Add GNAT Reference Manual.
43072 2001-10-25 Robert Dewar <dewar@gnat.com>
43074 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43075 is Error. Similar change for other renaming cases.
43077 2001-10-25 Robert Dewar <dewar@gnat.com>
43079 * s-atacco.ads: Add pragma Inline_Always for functions.
43080 Fix header format. Add copyright 2001
43082 2001-10-25 Ed Schonberg <schonber@gnat.com>
43084 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43085 return Error rather than Empty so that analysis can proceed.
43087 2001-10-25 Ed Schonberg <schonber@gnat.com>
43089 * sem_util.adb (Enter_Name): better handling of cascaded error
43090 messages when a unit appears in its own context.
43092 2001-10-25 Ed Schonberg <schonber@gnat.com>
43094 * sem_util.adb (Defining_Entity): in case of error, attach created
43095 entity to specification, so that semantic analysis can proceed.
43097 2001-10-25 Robert Dewar <dewar@gnat.com>
43100 (Defining_Entity): Deal with Error.
43101 (Process_End_Label): Deal with bad end label for.
43103 2001-10-25 Ed Schonberg <schonber@gnat.com>
43105 * sem_elab.adb (Check_A_Call): refine message when call is in an
43106 instance but callee is not declared in the generic unit.
43108 2001-10-25 Ed Schonberg <schonber@gnat.com>
43110 * sem_elab.adb (Check_A_Call): check for renaming before finding the
43111 enclosing unit, which may already be different from the calling unit.
43113 2001-10-25 Geert Bosch <bosch@gnat.com>
43115 * 4gintnam.ads: fix header format.
43117 2001-10-25 Ed Schonberg <schonber@gnat.com>
43119 * sem_res.adb (Resolve_Call): if the call is actually an indexing
43120 operation on the result of a parameterless call, perform elaboration
43121 check after the node has been properly rewritten.
43123 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43124 inlined within the generic tree, the defining identifier is not a
43127 2001-10-25 Ed Schonberg <schonber@gnat.com>
43129 * sem_res.adb (Resolve): special-case resolution of Null in an
43130 instance or an inlined body to avoid view conflicts.
43132 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43133 compatibility by retrieving the access type of the generic copy.
43135 2001-10-25 Robert Dewar <dewar@gnat.com>
43138 (Analyze_Number_Declaration): Handle error expression.
43139 (Signed_Integer_Type_Declaration): Handle error bound.
43140 (Analyze_Subtype_Indication): Handle error range.
43142 * sem_util.adb (Get_Index_Bounds): Check for Error.
43144 2001-10-25 Robert Dewar <dewar@gnat.com>
43146 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43147 in no run time mode.
43149 2001-10-25 Pascal Obry <obry@gnat.com>
43151 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43152 mode case for ALLOC case.
43154 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43155 all platforms. Improvement of last change.
43157 2001-10-25 Robert Dewar <dewar@gnat.com>
43159 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43161 2001-10-25 Geert Bosch <bosch@gnat.com>
43163 * osint.adb (Is_Relative): Remove duplicate.
43165 2001-10-25 Pascal Obry <obry@gnat.com>
43167 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43168 pathnames in UNIX and DOS style with drive letter.
43169 (Is_Relative): new routine.
43171 * osint.adb: Minor reformatting
43173 * osint.adb (Is_Relative): implementation using
43174 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43176 2001-10-25 Pascal Obry <obry@gnat.com>
43178 * g-dirope.adb (Basename): correctly compute offset between the
43179 original Path and the translated one.
43181 * g-dirope.adb: (Base_Name): add some comments.
43183 2001-10-25 Robert Dewar <dewar@gnat.com>
43185 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43186 in HIE mode, avoids compilation abandoned message
43188 * exp_imgv.adb: Correct typo in previous change
43190 * exp_imgv.adb: Correct typo in previous change (not my day!)
43192 2001-10-25 Robert Dewar <dewar@gnat.com>
43194 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43196 2001-10-25 Pascal Obry <obry@gnat.com>
43198 * g-awk.ads: Move all pragma inlines next to the routine
43199 declarations. This is more uniform with other GNAT spec.
43201 2001-10-22 Geert Bosch <bosch@gnat.com>
43203 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43205 2001-10-19 Geert Bosch <bosch@gnat.com>
43207 * Makefile.in (tools, gnattools): Remove gnatmem.
43209 2001-10-17 Richard Henderson <rth@redhat.com>
43211 * Makefile.in (misc.o): Depend on langhooks.h.
43212 * misc.c: Include it.
43213 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43214 (LANG_HOOKS_DECODE_OPTION): New.
43215 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43217 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
43219 * trans.c (tree_transform): Adjust to recent change in
43220 expand_asm_operands to implement named asm operands.
43222 2001-10-11 Ed Schonberg <schonber@gnat.com>
43224 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43225 renaming of discriminant for mutable record type.
43227 2001-10-11 Robert Dewar <dewar@gnat.com>
43229 * validsw.adb: Properly save -gnatVn status.
43231 2001-10-11 Robert Dewar <dewar@gnat.com>
43233 * usage.adb: Add lines for V switch.
43235 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43236 (/VALIDITY_CHECKING).
43238 2001-10-11 Ed Schonberg <schonber@gnat.com>
43240 * sem_type.adb (Add_One_Interp): an operator for a type declared in
43241 an extension of System is known to be visible.
43243 2001-10-11 Ed Schonberg <schonber@gnat.com>
43245 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43246 properly. Fixes regression on ACATS C34005G.
43248 2001-10-11 Robert Dewar <dewar@gnat.com>
43250 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43251 loop in generic instance, since this is likely not very useful.
43253 2001-10-11 Robert Dewar <dewar@gnat.com>
43255 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43256 the error message for high integrity mode.
43258 * rtsfind.adb (RTE): Give message if we try to find an entity that
43259 is not available in high integrity mode.
43262 (OK_To_Use_In_HIE_Mode): New array.
43263 (RTE): May return Empty in high integrity mode.
43265 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43266 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43268 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43269 unit if not inlined always and in no runtime mode. Fixes problem
43270 caused by new Rtsfind changes.
43272 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43275 * rtsfind.adb (RTE): Make sure we do not try to load unit after
43276 giving message for entity not available in high integrity mode.
43278 2001-10-11 Pascal Obry <obry@gnat.com>
43280 * impunit.adb: Add GNAT.CRC32.
43282 2001-10-11 Ed Schonberg <schonber@gnat.com>
43284 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43285 properly the case where one universal operand in a non-static
43286 exponentiation of a real literal.
43288 2001-10-11 Ed Schonberg <schonber@gnat.com>
43290 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43291 clause, return the gobal finalization list, for lack of anthing else.
43293 2001-10-11 Ed Schonberg <schonber@gnat.com>
43295 * exp_ch7.adb (Make_Transient_Block): if statement is within
43296 exception handler, always use new transient scope to place Clean
43299 2001-10-11 Pascal Obry <obry@gnat.com>
43302 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43303 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43304 (GNATLS_RTL_OBJS): add g-crc32.o
43305 (GNATMAKE_RTL_OBJS): add g-crc32.o
43308 (CRC_Match): new function.
43309 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43310 instead of the previous simple checksum algorithm.
43311 (Time_Stamp_Mismatch): use CRC_Match for comparison.
43312 (Set_Source_Table): idem.
43315 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43316 instead of simple checksum.
43317 (CRC_Match): new function.
43318 (CRC_Error): new constant.
43320 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43321 a CRC now and not a simple checksum. A CRC uses lower-case hex
43322 letters, fixes ambiguity in parsing.
43324 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43325 is what this variable will store.
43327 * bcheck.adb: Change reference to chechsum in comments by CRC.
43328 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43329 rename All_Checksum_Match to All_CRC_Match. Change due to API
43330 renaming since now GNAT does not use a simple checksum but a
43331 CRC using GNAT.CRC32.
43333 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43334 now and not anymore a simple checksum.
43336 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43339 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43342 (Restore_Scan_State): rename Checksum to CRC.
43343 (Save_Scan_State): idem.
43347 (Checksum): rename to CRC.
43348 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43350 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43351 GNAT.CRC32). Update copyright notice.
43353 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43354 GNAT.CRC32). Update copyright notice.
43357 (Accumulate_Checksum): removed.
43358 (Update): new procedure. Add a wide-character into the CRC.
43361 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43362 (Load_File): fix initialization of S (change Source_Checksum to
43365 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43366 Source_CRC in S initialization.
43368 * sinput.adb (Source_Checksum): renamed to Source_CRC.
43370 * sinput.ads (Source_Checksum): renamed to Source_CRC.
43371 Update comments for the CRC.
43373 * types.adb (Hex): Use lowercase for the letter part.
43375 * types.ads (Get_Hex_String): Returns the hexadecimal representation
43376 for a word. This is currently used only for CRC. In previous version,
43377 the checksum was using a representation with all letter being
43378 upper-case. With the new implementation (using CRC) we do not remove
43379 the 32th bit of the CRC, so we can have an upper-case starting letter
43380 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43381 It is ambigous since the CRC was optional and could be followed by
43382 options like EB, EE. So now this routines uses lower-case letter for
43383 the hexadecimal representation. Strange enough only lower case letters
43384 where checked in Scan_ALI (even if this was not a possible case).
43386 * gnatvsn.ads (Library_Version): changed to 3.15a.
43388 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43391 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43394 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43395 Add 2001 to copyright notice
43396 (Accumulate_Checksum): Modify to use System.CRC32.
43398 * ali-util.ads: Redo changes of previous revision to continue to use
43399 the word Checksum. Add 2001 to copyright notice.
43401 * ali.adb: Undo some of previous changes, not needed.
43402 Keep the change for lower case letters in the checksum.
43404 * ali.ads: Undo previous change not needed.
43406 * bcheck.adb: Undo most of previous change, not needed.
43407 But do use Checksums_Match for checksum comparison.
43409 * gnatls.adb: Undo most of previous change, not needed.
43410 But do use Checksums_Match for comparing checksums.
43412 * lib-load.adb: Undo previous change, not needed.
43414 * lib-writ.adb: Undo previous change, not needed.
43416 * lib-writ.ads: Document that checksums use lower case,
43417 not upper case letters.
43419 * scans.adb: Undo previous change, not needed
43421 * scans.ads: Undo previous change, not needed.
43423 * scn-nlit.adb: Undo previous changes, not needed.
43425 * scn-slit.adb: Undo previous change, not needed. Fix header format.
43428 (Accumulate_Checksum): Use System.CRC32.
43429 (Initialize_Checksum): New procedure.
43430 Remove other changes of previous revision.
43432 * sinput-p.adb: Undo previous change, not needed.
43434 * sinput.adb: Undo previous change, not needed.
43436 * sinput-l.adb: Undo previous change, not needed.
43438 * sinput.ads: Undo previous change, not needed. Keep only comment
43439 on new checksum algorithm
43441 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43442 Also remove a-tags and a-stream from GNAT sources.
43444 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
43446 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43448 2001-10-11 Geert Bosch <bosch@gnat.com>
43450 * einfo.h: Regenerate.
43452 * nmake.ads: Regenerate.
43454 * nmake.adb: Regenerate.
43456 * sinfo.h: Regenerate.
43458 * treeprs.adb: Regenerate.
43460 2001-10-10 Geert Bosch <bosch@gnat.com>
43462 * gnat-style.texi: New file describing coding guidelines for Ada.
43464 2001-10-10 Ed Schonberg <schonber@gnat.com>
43466 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
43469 2001-10-10 Geert Bosch <bosch@gnat.com>
43471 * snames.ads: Add new names for project facility.
43473 * snames.adb: Update to reflect snames.ads changes.
43475 * snames.h: Update to reflect snames.ads changes.
43477 2001-10-10 Vincent Celier <celier@gnat.com>
43480 (Add_Switches): reflect the changes for the switches attributes
43481 Default_Switches indexed by the programming language,
43482 Switches indexed by the file name.
43483 (Collect_Arguments_And_Compile): Idem.
43484 Reflect the attribute name changes.
43487 (Initialisation_Data): Change the names of some packages and
43489 (Initialize): process case insensitive associative arrays.
43492 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
43495 (Parse_Attribute_Declaration): For case insensitive associative
43496 arrays, set the index string to lower case.
43499 Reflect the changes of the project attributes.
43502 Replace Check_Naming_Scheme by Ada_Check and
43503 Language_Independent_Check.
43506 Replaced Check_Naming_Scheme by 2 procedures:
43507 Ada_Check and Language_Independent_Check.
43510 (Process_Declarative_Items): For case-insensitive associative
43511 arrays, set the index string to lower case.
43512 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43513 Prj.Nmsc.Check_Naming_Scheme.
43516 (Case_Insensitive): New function
43517 (Set_Case_Insensitive): New procedure
43520 (Case_Insensitive): New function
43521 (Set_Case_Insensitive): New procedure
43522 (Project_Node_Record): New flag Case_Insensitive.
43525 (Value_Of): new function to get the string value of a single
43526 string variable or attribute.
43529 (Value_Of): new function to get the string value of a single
43530 string variable or attribute.
43533 (Ada_Default_Spec_Suffix): New function
43534 (Ada_Default_Impl_Suffix): New function
43535 Change definitions of several constants to reflect
43536 new components of record types.
43539 (Naming_Data): Change several components to reflect new
43540 elements of naming schemes.
43541 (Project_Data): New flags Sources_Present and
43542 Language_Independent_Checked.
43543 (Ada_Default_Spec_Suffix): New function.
43544 (Ada_Default_Impl_Suffix): New function.
43547 Modification of predefined names for project manager: added
43548 Implementation, Specification_Exceptions, Implementation_Exceptions,
43549 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43550 Default_Switches, _Languages, Builder, Cross_Reference,
43551 Finder. Removed Body_Part, Specification_Append, Body_Append,
43552 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43555 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43558 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43559 not that it is Nil_Variable_Value.
43561 * prj.ads: Add ??? for uncommented declarations
43563 2001-10-10 Ed Schonberg <schonber@gnat.com>
43565 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43566 constant, do not indicate possible modification, so that gigi can
43567 treat it as a bona fide constant.
43569 2001-10-10 Robert Dewar <dewar@gnat.com>
43571 * sem_prag.adb: Add processing for pragma External.
43573 * snames.ads: Add entry for pragma External.
43575 * par-prag.adb: Add pragma External.
43577 * snames.adb: Updated to match snames.ads.
43579 2001-10-10 Ed Schonberg <schonber@gnat.com>
43581 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43582 a dynamic task if the allocator appears in an indexed assignment
43583 or selected component assignment.
43585 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43586 For a dynamic task in an assignment statement, use target of
43587 assignment to generate meaningful name.
43589 2001-10-10 Ed Schonberg <schonber@gnat.com>
43591 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
43594 * einfo.ads: Body_Entity is also defined for generic package.
43595 Documentation change only
43597 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43598 others_choice for a discriminated component initialization,
43599 convert discriminant references into the corresponding discriminals.
43601 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43602 only if original type is private and expression has to be wrapped
43606 (Apply_Constraint_Check): Do not perform length check
43607 if expression is an aggregate with only an others_choice.
43608 (Length_N_Cond): two references to the same in_parameter
43609 (typically the discriminal in an init_proc) denote the same value.
43610 Two useful optimization uncovered by bugfixes above.
43612 2001-10-10 Robert Dewar <dewar@gnat.com>
43614 * xeinfo.adb: Change int to char in translation of enumeration types.
43615 This fixes a problem in the C representation of component alignment.
43616 Add 2001 to copyright notice
43618 2001-10-10 Richard Kenner <kenner@gnat.com>
43620 * decl.c: (validate_size): Do check size of object of integral type
43621 if it is a packed array type.
43623 2001-10-10 Richard Kenner <kenner@gnat.com>
43625 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
43626 VAR_DECL for constant if not Is_Public but -O0.
43628 2001-10-10 Richard Kenner <kenner@gnat.com>
43630 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43632 2001-10-10 Geert Bosch <bosch@gnat.com>
43634 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
43635 use '/' as switch character, allowing for absolute file names.
43637 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
43639 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43642 2001-10-08 Geert Bosch <bosch@gnat.com>
43644 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43645 Automatically build utilities when files need to be regenerated.
43647 2001-10-08 Geert Bosch <bosch@gnat.com>
43649 * xsnames.adb: New utility for updating snames.ads and snames.adb
43651 2001-10-08 Zack Weinberg <zack@codesourcery.com>
43653 * Make-lang.in (ADAFLAGS): Add -W -Wall.
43654 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43655 (gnat1): Also depend on attribs.o.
43656 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43657 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43658 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43659 (ADAFLAGS): Add -W -Wall.
43660 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43663 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43664 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43665 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43666 Use $(ADAC), not $(CC), as compilation command.
43668 (gnattools): Depend directly on tools to build, don't use
43670 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43672 * einfo.h, sinfo.h: New files (autogenerated).
43674 2001-10-08 Richard Henderson <rth@redhat.com>
43676 * comperr.adb (Abort_In_Progress): New.
43677 (Compiler_Abort): Use it to prevent recursion.
43679 2001-10-08 Robert Dewar <dewar@gnat.com>
43681 * atree.adb: Set Error_Posted in Error node, helps error recovery.
43683 * par-endh.adb (Output_End_Expected): We should also not test
43684 Error_Posted on the Error node, since now it is always set.
43686 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
43687 to help error recovery. Part of general work on 9407-004.
43689 * par.adb: Add ??? for misuse of error
43692 (Resolve): Defend against Error, fixes 9407-003.
43693 (Resolve_Discrete_Subtype_Indication): Defend against Error.
43695 * sinfo.ads (N_Error): Now has Etype field (which will be set
43696 to Any_Type to help error recovery).
43698 2001-10-08 Richard Kenner <kenner@gnat.com>
43700 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43701 Consistently set MEM attributes from expression; fixes
43702 bootstrap failure on x86.
43704 2001-10-08 Geert Bosch <bosch@gnat.com>
43706 * 5oosinte.adb: Add 2001 to copyright notice.
43708 2001-10-08 Geert Bosch <bosch@gnat.com>
43710 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43712 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43714 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
43716 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43718 2001-10-05 Geert Bosch <bosch@gnat.com>
43720 * adaint.h: Small formatting fix.
43722 2001-10-04 Geert Bosch <bosch@gnat.com>
43724 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43725 Arg is int, not FILE *, in dummy version of functions.
43727 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43728 Arg is int, not FILE *.
43730 2001-10-04 Geert Bosch <bosch@gnat.com>
43732 * 3lsoccon.ads: Added file, missed with initial check ins.
43734 * 4lintnam.ads: Fix header format.
43735 Change Linux to GNU/Linux.
43737 * 5iosinte.adb: Change Linux to GNU/Linux.
43739 * 5iosinte.ads: Change Linux to GNU/Linux.
43741 * 5itaprop.adb: Change Linux to GNU/Linux.
43743 * 5itaspri.ads: Change Linux to GNU/Linux.
43744 Update copyright notice.
43746 * 5lintman.adb: Change Linux to GNU/Linux.
43748 * 5lml-tgt.adb: Change Linux to GNU/Linux.
43750 * 5losinte.ads: Change Linux to GNU/Linux.
43752 * 5lsystem.ads: Change Linux to GNU/Linux.
43754 * 5qosinte.adb: Change Linux to GNU/Linux.
43756 * 5qosinte.ads: Change Linux to GNU/Linux.
43758 * 5qparame.ads: Change Linux to GNU/Linux.
43760 * 5qtaprop.adb: Change Linux to GNU/Linux.
43762 * 5qtaspri.ads: Change Linux to GNU/Linux.
43763 Add 2001 to copyright notice.
43765 * 5vintman.ads: Change Linux to GNU/Linux.
43766 Fix header format. Add 2001 to copyright notice.
43768 * g-soccon.ads: Change Linux to GNU/Linux.
43770 * g-trasym.ads: Change Linux to GNU/Linux.
43771 Add 2001 to copyright notice.
43773 * memtrack.adb: Change Linux to GNU/Linux.
43775 * s-intman.ads: Change Linux to GNU/Linux.
43776 Add 2001 to copyright notice. Fix header format.
43778 * s-stache.adb: Change Linux to GNU/Linux.
43780 * adaint.c: Change Linux to GNU/Linux.
43782 * cio.c: Change Linux to GNU/Linux.
43784 * cstreams.c: Change Linux to GNU/Linux.
43786 * init.c: Change Linux to GNU/Linux.
43788 * gmem.c: Change Linux to GNU/Linux.
43790 * tracebak.c: Change Linux to GNU/Linux.
43793 2001-10-02 Geert Bosch <bosch@gnat.com>
43795 * misc.c (insert_default_attributes): Add dummy version.