1 2009-04-07 Robert Dewar <dewar@adacore.com>
4 Remove Assume_Valid parameter from In_Subrange_Of calls
7 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
8 (Is_In_Range): Remove incorrect use of Assume_Valid
9 (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
12 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
13 (Is_In_Range): Documentation cleanup
14 (Is_Out_Of_Range): Documentation cleanup
17 Add documentation for Assume_No_Invalid_Values pragma
19 * sem_ch12.adb: Minor reformatting
21 * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
23 * sem_prag.adb: Improve error message.
25 * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
26 LF/CR no longer recognized as line terminator
28 * switch.ads: Minor documentation improvement
30 * vms_data.ads: Minor reformatting
32 2009-04-07 Robert Dewar <dewar@adacore.com>
34 * checks.adb (Determine_Range): Add Assume_Valid parameter
36 * checks.ads (Determine_Range): Add Assume_Valid parameter
38 * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
39 Is_Null_Loop to suppress warnings in a loop body.
42 (Rewrite_Comparison): Major rewrite to accomodate invalid values
45 (Expand_N_Loop_Statement): Delete loop known not to execute
48 (Assume_No_Invalid_Values): Now set to False, and as documented, this
49 fully enables the proper handling of invalid values.
52 New calling sequence for Is_In_Range
55 (Analyze_Iteration_Scheme): Accomodate possible invalid values
56 in determining if a loop range is null.
59 (Is_In_Range): Add Assume_Valid parameter
60 (Is_Out_Of_Range): Add Assume_Valid_Parameter
61 (Compile_Time_Compare): Major rewrite to accomodate invalid values and
62 also to do more accurate and complete range analysis, catching more
66 (Is_In_Range): Add Assume_Valid parameter
67 (Is_Out_Of_Range): Add Assume_Valid_Parameter
70 New calling sequence for Is_In_Range
73 (Suppress_Loop_Warnings): New flag
76 (Is_Null_Loop): Update documentation
77 (Suppress_Loop_Warnings): New flag
79 * gnat_ugn.texi: Document -gnatB switch
81 2009-04-07 Arnaud Charlet <charlet@adacore.com>
83 * gnatvsn.ads: Bump version number.
85 2009-04-07 Thomas Quinot <quinot@adacore.com>
87 * exp_ch3.adb: Minor rewording (comments)
89 2009-04-07 Robert Dewar <dewar@adacore.com>
91 * exp_disp.adb: Minor reformatting
93 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
95 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
97 * gcc-interface/trans.c (lvalue_required_p): Likewise.
99 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
101 * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
102 Do not convert the result. Remove obsolete comment.
104 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
106 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
108 (Subprogram_Body_to_gnu): Fix pasto.
110 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
112 * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
113 (void_type_decl_node): Remove.
114 (init_gigi_decls): Likewise.
115 (gnat_install_builtins): Declare.
116 (record_builtin_type): Likewise.
117 (create_type_stub_decl): Likewise.
118 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
119 (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
121 <E_Array_Subtype>: Use the index types, not only their name, in the
122 record giving the names of the bounds, if any.
123 For a packed array type, make it artificial only if the base type
124 was artificial as well. Remove redundant statement.
125 (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
127 Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
128 (rest_of_type_decl_compilation_no_defer): Likewise.
129 * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
130 * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
131 and use create_type_stub_decl to build it.
132 (gnat_pushdecl): Rewrite condition.
133 (gnat_install_builtins): Remove bogus declaration.
134 (record_builtin_type): New function.
135 (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
137 (create_type_stub_decl): New function.
138 (create_type_decl): Assert that the type is not dummy. If the type
139 hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
140 (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
141 (build_vms_descriptor): Likewise.
142 (init_gigi_decls): Delete and move bulk of code to...
143 * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type.
144 (emit_range_check): Add gnat_node parameter.
145 (emit_index_check): Likewise.
146 (emit_check): Likewise.
147 (build_unary_op_trapv): Likewise.
148 (build_binary_op_trapv): Likewise.
149 (convert_with_check): Likewise.
150 (Attribute_to_gnu): Adjust calls for above changes.
151 (call_to_gnu): Likewise.
152 (gnat_to_gnu): Likewise.
153 (assoc_to_constructor): Likewise.
154 (pos_to_constructor): Likewise.
155 (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
156 (process_type): Do not create TYPE_DECL for dummy types.
158 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
160 * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
161 * gcc-interface/trans.c: Fix formatting throughout. Fix comments.
162 * gcc-interface/utils.c: Fix comments.
164 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
166 * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
168 (gnat_to_gnu_type): Move around.
169 (get_unpadded_type): Likewise.
170 * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
173 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
175 * gcc-interface/trans.c (check_for_eliminated_entity): New function.
176 (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
177 (call_to_gnu): Invoke it instead of manually checking.
179 2009-04-04 Eric Botcazou <ebotcazou@adacore.com>
181 * gcc-interface/utils.c (finish_record_type): Force structural equality
182 checks if the record type is discriminated.
184 2009-03-31 Eric Botcazou <ebotcazou@adacore.com>
186 * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
187 * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
188 * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
189 * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
190 * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
191 * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
192 * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
194 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
196 * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
197 of TREE_CONSTANT_OVERFLOW.
199 2009-03-30 Joseph Myers <joseph@codesourcery.com>
201 PR rtl-optimization/323
202 * gcc-interface/misc.c (gnat_post_options): Set
203 flag_excess_precision_cmdline. Give an error for
204 -fexcess-precision=standard for processors where the option is
207 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
210 * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
213 2009-03-11 Olivier Hainque <hainque@adacore.com>
215 * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
216 checks processing, remove unintended TREE_TYPE walk on index type.
218 2009-03-01 Eric Botcazou <ebotcazou@adacore.com>
221 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
222 call make_packable_type on fat pointer types.
223 <E_Array_Subtype>: Likewise.
224 <E_Record_Subtype>: Call make_packable_type on all record types
225 except for fat pointer types.
226 (make_packable_type): Likewise.
227 (gnat_to_gnu_field): Likewise.
229 2009-02-28 Eric Botcazou <ebotcazou@adacore.com>
231 * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
232 EH_MECHANISM change made on 2007-12-06.
234 2009-02-26 Andreas Schwab <schwab@suse.de>
237 * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
238 * gcc-interface/Makefile.in: Change all uses of $(srcdir),
239 $(fsrcdir) and $(fsrcpfx) to add ada subdir.
241 (target_cpu_default): Substitute.
243 2009-02-25 Laurent GUERBY <laurent@guerby.net>
246 * a-teioed.adb (Expand): Fix Result overflow.
248 2009-02-25 Laurent GUERBY <laurent@guerby.net>
250 * gcc-interface/Makefile.in: Fix multilib handling for
253 2009-02-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
255 * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
257 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
259 * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
261 2009-02-16 Eric Botcazou <ebotcazou@adacore.com>
263 * gcc-interface/deftarg.c: Remove.
265 2009-02-10 Olivier Hainque <hainque@adacore.com>
266 Eric Botcazou <ebotcazou@adacore.com>
268 * gcc-interface/decl.c (enum alias_set_op): New enumeration.
269 (copy_alias_set): Rename into...
270 (relate_alias_sets): ...this. Add third parameter OP. Retrieve the
271 underlying array of unconstrained arrays for the new type as well.
272 If the old and new alias sets don't conflict, make one a subset of
273 the other as per the OP parameter.
274 (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
275 <E_Record_Type>: Do not copy the alias set for derived types.
276 For all types, make the alias set of derived types a superset of
277 that of their parent type.
278 (make_aligning_type): Adjust calls to copy_alias_set.
279 (make_packable_type): Likewise.
280 * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
281 Check for alias set conflict instead of strict equality to issue the
284 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
286 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
287 Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
288 (copy_alias_set): Assert that arrays have the same aliasing settings.
289 (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
291 2009-02-08 Eric Botcazou <ebotcazou@adacore.com>
293 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
294 Set TYPE_NONALIASED_COMPONENT on the array type.
296 2009-01-31 Laurent GUERBY <laurent@guerby.net>
298 * gcc-interface/Makefile.in: Fix mipsel linux handling.
300 2009-01-16 Jakub Jelinek <jakub@redhat.com>
302 * gcc-interface/Makefile.in: Fix multilib handling for
305 2009-01-12 Eric Botcazou <ebotcazou@adacore.com>
307 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
308 only useless conversions around renamed objects.
310 2009-01-11 Eric Botcazou <ebotcazou@adacore.com>
312 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
313 the _Tag field before any discriminants in the field list.
314 (components_to_record): Remove obsolete comment.
316 2008-12-09 Jakub Jelinek <jakub@redhat.com>
319 * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
320 * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
323 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
326 * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
328 2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
331 * g-comver.adb (Ver_Len_Max): Fix inconsistency.
333 2008-11-27 Eric Botcazou <ebotcazou@adacore.com>
335 * gcc-interface/decl.c: Fix various nits.
337 2008-11-20 Eric Botcazou <ebotcazou@adacore.com>
339 * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
341 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
344 * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
345 special-case boolean types. Propagate the name.
346 * gcc-interface/targtyps.c: Tweak comment.
348 2008-11-15 Geert Bosch <bosch@adacore.com>
350 * gcc-interface/trans.c (emit_check): Put back a final save_expr
351 to prevent exponential expansion during gimplification.
353 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
355 * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
357 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
359 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
360 initialized to a static constant to be statically allocated even if
361 they are of a padding type, provided the original type also has
364 2008-11-15 Laurent Guerby <laurent@guerby.net>
367 * gcc-interface/Makefile.in: Add multilib handling for x86_64
369 * system-darwin-x86_64.ads: New file.
371 2008-11-13 Olivier Hainque <hainque@adacore.com>
373 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
374 Turn Ada Pure on subprograms back into GCC CONST when eh constructs
375 are explicit to the middle-end. Tidy.
377 2008-11-09 Eric Botcazou <ebotcazou@adacore.com>
379 * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
380 (MINUS_NOMOD_EXPR): Likewise.
381 * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
383 <PLUS_NOMOD_EXPR>: New case.
384 <MINUS_NOMOD_EXPR>: Likewise.
385 * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
386 assignment statement instead of using an increment operator.
388 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
390 * system-irix-n64.ads: New file.
391 * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
394 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
397 * system-solaris-x86_64.ads: New file.
398 * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
400 2008-11-07 Bechir Zalila <bechir.zalila@gmail.com>
401 Eric Botcazou <ebotcazou@adacore.com>
404 * lib.ads: (Enable_Switch_Storing): Declare.
405 * lib.adb: (Enable_Switch_Storing): New procedure.
406 * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
407 * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
408 (Display): Never display -gnatea
409 * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
411 2008-11-07 Thomas Quinot <quinot@adacore.com>
413 * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
414 for empty range in original base type, not converted result type.
416 2008-11-07 Geert Bosch <bosch@adacore.com>
418 * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
419 and result for call to __gnat_mulv64.
421 2008-11-07 Eric Botcazou <ebotcazou@adacore.com>
423 * gcc-interface/trans.c: Fix formatting nits.
425 2008-11-07 Geert Bosch <bosch@adacore.com>
427 * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
428 overflow check for constant result.
430 2008-11-07 Geert Bosch <bosch@adacore.com>
432 * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
433 overflow check for addition/subtraction if neither operand is constant.
435 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
437 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
438 files for the target-dependent part of the runtime.
439 (SPARC/Linux): Likewise.
441 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
443 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
444 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
447 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
449 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
452 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
455 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
456 Generate a call to memmove for an assignment between overlapping
459 2008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
462 * gcc-interface/Makefile.in: Add multilib handling for
463 s390-linux and s390x-linux.
465 2008-10-24 Jakub Jelinek <jakub@redhat.com>
467 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
468 check-acats-subtargets and check-gnat-subtargets.
469 (check_acats_targets): New variable.
470 (check-acats-subtargets, check-acats%): New targets.
471 (check-acats): If -j is used and CHAPTERS is empty, run the testing
472 in multiple make goals, possibly parallel, and afterwards run
473 dg-extract-results.sh to merge the sum and log files.
475 2008-10-17 Geert Bosch <bosch@adacore.com>
477 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
478 to use only a single check instead of three, and avoid unnecessary
480 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
481 creating more opportunities for optimizations.
483 2008-10-13 Jakub Jelinek <jakub@redhat.com>
486 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
489 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
491 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
492 dealing with volatileness to after code dealing with renaming.
494 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
496 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
497 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
499 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
501 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
502 (unchecked_convert): Use it to disable problematic folding with
503 VIEW_CONVERT_EXPR in the general case. Always disable it for the
504 special VIEW_CONVERT_EXPR built for integral types and cope with
505 its addressability issues by preserving the first conversion.
507 2008-10-01 Andreas Schwab <schwab@suse.de>
509 * system-linux-ppc64.ads: New file.
510 * gcc-interface/Makefile.in: Add multilib handling for
513 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
515 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
516 to that of ptr_mode instead of word_mode.
518 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
521 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
523 2008-09-25 Samuel Tardieu <sam@rfc1149.net>
526 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
527 instead of deprecated FILE_WRITE_PROPERTIES.
529 2008-09-22 Olivier Hainque <hainque@adacore.com>
531 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
532 are never assigned, volatile entities are not constant for code
535 2008-09-21 Laurent Guerby <laurent@guerby.net>
538 * gcc-interface/Makefile.in: Add multilib handling for x86_64
540 * system-linux-sparcv9.ads: New file.
542 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
544 * exp_dbug.ads: Document new convention for the XVZ variable.
545 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
546 debug info if necessary for the type padding the component type.
547 <E_Array_Subtype>: Likewise.
548 (maybe_pad_type): Emit the XVZ variable in units.
549 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
550 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
551 on statements generated to initialize the parameter attributes cache.
552 Set the source line of the end label of the body on the special return
553 statement built for a procedure with copy-in copy-out parameters.
555 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
558 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
559 inlined external functions if they contain a nested function not
562 2008-09-18 Jan Hubicka <jh@suse.cz>
564 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
565 (end_subprog_body): Do not set DECL_INLINE.
567 2008-09-17 Pascal Rigaux <pixel@mandriva.com>
570 * gnat_ugn.texi: Use proper format in direntry.
572 2008-09-15 Eric Botcazou <ebotcazou@adacore.com>
574 * gcc-interface/trans.c (gigi): Declare the name of the compilation
575 unit as the first global name.
577 2008-09-14 Jan Hubicka <jh@suse.cz>
579 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
581 2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
583 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
584 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
585 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
586 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
587 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
588 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
589 gcc-interface/gigi.h, gcc-interface/trans.c,
590 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
591 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
592 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
593 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
594 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
595 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
596 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
597 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
599 * gnathtml.pl: Fix typos.
601 2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
603 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
604 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
605 layer. RTEMS binds to OS provided adapter routines so there are
606 no modifications to s-osinte-rtems.adb.
608 2008-09-09 Arnaud Charlet <charlet@adacore.com>
609 Joel Sherrill <joel.sherrill@oarcorp.com>
611 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
613 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
615 * s-interr-hwint.adb: New file.
617 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
618 needed by s-interr-hwint.adb.
620 * s-osinte-vxworks-kernel.adb: New file.
622 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
624 * s-stchop-rtems.adb: Add file missed in early commit. Already
625 referenced in gcc-interface/Makefile.in.
627 2008-08-30 Thomas Quinot <quinot@adacore.com>
629 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
630 be built even without a separate libada directory.
632 2008-08-22 Arnaud Charlet <charlet@adacore.com>
634 * lib-xref.ads: Fix typo in subprogram reference definition.
636 2008-08-22 Robert Dewar <dewar@adacore.com>
638 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
641 * g-trasym.adb: Ditto
643 * s-utf_32.adb (Get_Category): Fix obvious typo
645 * s-wwdcha.adb: Minor code reorganization
648 2008-08-22 Robert Dewar <dewar@adacore.com>
650 * checks.adb (Determine_Range): Deal with values that might be invalid
652 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
653 configuration switches.
655 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
657 * sem_prag.adb: Implement pragma Assume_No_Default_Values
659 * snames.adb, snames.ads, snames.h:
660 Add entries for pragma Assume_No_Invalid_Values
662 * switch-c.adb: Add processing for -gnatB switch
664 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
666 2008-08-22 Javier Miranda <miranda@adacore.com>
668 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
669 init procedure all the expanded code associated with the spec of
670 task types and protected types.
672 2008-08-22 Gary Dismukes <dismukes@adacore.com>
674 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
675 component expression copies rather than directly setting Etype and
676 Is_Static_Expression.
678 2008-08-22 Gary Dismukes <dismukes@adacore.com>
680 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
681 private types to allow for types derived from a private type with
682 preelaborable initialization, but return False for a private extension
683 (unless it has the pragma).
685 2008-08-22 Robert Dewar <dewar@adacore.com>
687 * opt.ads: Minor code reorganization (put entries in alpha order)
689 2008-08-22 Pascal Obry <obry@adacore.com>
691 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
694 2008-08-22 Geert Bosch <bosch@adacore.com>
696 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
697 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
699 2008-08-22 Doug Rupp <rupp@adacore.com>
701 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
705 (__gnat_set_features): New function.
706 (__gnat_features_set): New tracking variable.
707 (__gl_no_malloc_64): New feature global variable
709 2008-08-22 Ed Schonberg <schonberg@adacore.com>
711 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
712 use_type_clause in an instance.
714 2008-08-22 Bob Duff <duff@adacore.com>
716 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
718 2008-08-22 Robert Dewar <dewar@adacore.com>
720 * exp_ch6.adb: Minor reformatting
722 * exp_ch7.adb: Minor reformatting
724 * exp_ch7.ads: Put routines in proper alpha order
726 * exp_dist.adb: Minor reformatting
728 2008-08-22 Vincent Celier <celier@adacore.com>
730 * prj.ads: Minor comment update
732 2008-08-22 Robert Dewar <dewar@adacore.com>
734 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
736 2008-08-22 Ed Schonberg <schonberg@adacore.com>
739 (Base_Init_Proc): For a protected subtype, use the base type of the
740 corresponding record to locate the propoer initialization procedure.
742 2008-08-22 Robert Dewar <dewar@adacore.com>
745 (In_Subrange_Of): New calling sequence
746 (Determine_Range): Prepare for new processing using base type
749 (Compile_Time_Compare): Use new calling sequence
752 (Compile_Time_Compare): Use new calling sequence
755 (Compile_Time_Compare): New calling sequence allows dealing with
757 (In_Subrange_Of): Ditto
760 (Compile_Time_Compare): New calling sequence allows dealing with
762 (In_Subrange_Of): Ditto
764 2008-08-22 Pascal Obry <obry@adacore.com>
766 * adaint.c: Fix possible race condition on win32_wait().
768 2008-08-22 Bob Duff <duff@adacore.com>
770 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
771 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
772 exp_intr.adb, exp_ch3.adb: Rename:
773 Exp_Ch7.Controlled_Type => Needs_Finalization
774 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
775 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
777 (Has_Some_Controlled_Component): Fix bug in array case.
779 2008-08-22 Robert Dewar <dewar@adacore.com>
781 * sem_ch8.adb: Minor reformatting
783 2008-08-22 Kevin Pouget <pouget@adacore.com>
785 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
786 Shared_Var_Close procedure specifications from package spec to package body.
788 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
789 RE_Shared_Var_WOpen entries.
791 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
792 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
794 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
796 * init.c: adjust EH support code on Alpha/Tru64 as well.
798 * raise-gcc.c: Add back a couple of comments.
800 2008-08-22 Ed Schonberg <schonberg@adacore.com>
802 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
803 involved and the return type is class-wide, use the type of the expression
804 for the generated access type. Suppress useless discriminant checks on the
807 2008-08-22 Bob Duff <duff@adacore.com>
809 * exp_ch7.adb: Minor comment fix
811 * exp_ch6.ads: Minor comment fix
813 2008-08-22 Thomas Quinot <quinot@adacore.com>
815 * sem_ch8.adb: Minor reformatting
816 Minor code reorganization (introduce subprogram to factor duplicated
819 2008-08-22 Sergey Rybin <rybin@adacore.com>
821 * gnat_ugn.texi: Change the description of gnatcheck default rule
824 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
826 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
827 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
828 do not adjust the PC anymore.
829 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
830 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
832 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
833 instead of _Unwind_GetIP.
835 2008-08-22 Gary Dismukes <dismukes@adacore.com>
837 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
838 with a range is transformed into a positional aggregate, any copied
839 component literals should be marked Is_Static_Expression.
841 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
842 not being known at at compile time when Configurable_Run_Time_Mode is
845 2008-08-22 Robert Dewar <dewar@adacore.com>
848 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
849 Read or Input attribute.
851 2008-08-22 Ed Schonberg <schonberg@adacore.com>
853 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
854 clauses in related units is redundant, if one of the units is a package
855 instantiation, use its instance_spec to determine which unit is the
856 ancestor of the other.
858 2008-08-22 Javier Miranda <miranda@adacore.com>
860 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
861 attributes add missing support to handle designated types that come
862 from the limited view.
864 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
866 2008-08-22 Sergey Rybin <rybin@adacore.com>
868 * vms_data.ads: Add entry for new gnatcheck -mNNN option
870 * gnat_ugn.texi: Add description for gnatcheck option '-m'
872 2008-08-22 Sergey Rybin <rybin@adacore.com>
874 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
875 acoording to the latest changes in the metric rule interface
877 2008-08-22 Vincent Celier <celier@adacore.com>
879 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
880 (Check): Check if the file names registered in the ALI file for the
881 spec, the body and each of the subunits are the ones expected.
883 2008-08-22 Robert Dewar <dewar@adacore.com>
885 * g-catiio.adb: Code cleanup.
887 2008-08-20 Vincent Celier <celier@adacore.com>
889 * make.adb (Gnatmake): Remove extra space in version line
892 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
893 as the name may already have been entered in the table by the Project
896 2008-08-20 Jose Ruiz <ruiz@adacore.com>
898 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
899 weak symbols so we use the version provided by MaRTE when available.
901 2008-08-20 Emmanuel Briot <briot@adacore.com>
903 * g-catiio.ads, g-catiio.adb:
904 (Value): Avoid an unnecessary system call to Clock in most cases.
905 This call is only needed when only the time is provided in the string,
906 and ignored in all other cases. This is more efficient.
908 2008-08-20 Eric Botcazou <ebotcazou@adacore.com>
910 * raise-gcc.c: Fix formatting nits.
912 2008-08-20 Robert Dewar <dewar@adacore.com>
915 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
916 non-existing component clause.
918 * exp_ch5.adb: Minor reformatting
920 * g-comlin.adb: Minor reformatting
922 * make.adb: Minor reformatting
924 * prj-proc.adb: Minor reformatting
926 * stylesw.ads: Minor reformatting
928 2008-08-20 Vincent Celier <celier@adacore.com>
930 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
931 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
932 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
933 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
934 and a switch is not recognized by gnatmake.
935 (Gnatmake): Implement new scheme for gnatmake switches and global
936 compilation switches.
937 (Switches_Of): Try successively Switches (<file name>),
938 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
940 2008-08-20 Ed Schonberg <schonberg@adacore.com>
942 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
943 implement style check that overriding operations are explicitly marked
946 * style.ads (Missing_Overriding): new procedure that provides interface
949 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
950 that the declaration or body of overriding operations carries an
951 explicit overriding indicator.
954 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
955 explicit indicator should be present.
957 * sem_ch6.adb (Verify_Overriding_Indicator,
958 Check_Overriding_Indicator): If operation is overriding, check whether
959 declaration and/or body of subprogram should be present
961 2008-08-20 Vincent Celier <celier@adacore.com>
963 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
964 gprbuild when casing is MixedCase, whatever the casing of the letters
967 2008-08-20 Gary Dismukes <dismukes@adacore.com>
969 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
970 creating dummy init proc.
971 (Requires_Init_Proc): Return False in the case No_Default_Initialization
972 is in force and the type does not have associated default
973 initialization. Move test of Is_Public (with tests of restrictions
974 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
975 for default initialization.
977 2008-08-20 Jerome Lambourg <lambourg@adacore.com>
979 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
980 of any alias or prefix but having attached parameters (as \"-O2\").
982 2008-08-20 Robert Dewar <dewar@adacore.com>
984 * s-fileio.adb: Minor reformatting
986 2008-08-20 Thomas Quinot <quinot@adacore.com>
988 * exp_strm.adb (Build_Elementary_Input_Call,
989 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
990 selects the stream attribute routines for long float types.
992 2008-08-20 Vincent Celier <celier@adacore.com>
994 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
996 * prj.ads (Array_Data): Add a component Location
998 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1001 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1002 argument for ASIS and navigation use.
1004 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1006 * einfo.ads: Add comment.
1008 2008-08-20 Bob Duff <duff@adacore.com>
1010 * sem_eval.ads: Minor comment fix.
1012 2008-08-20 Bob Duff <duff@adacore.com>
1014 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1015 folding. We were folding things like "False and then ...", but not
1016 "X and then ..." where X is a constant whose value is known at compile
1019 2008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
1021 * exp_ch5.adb (Controlled_Type): New routine.
1022 (Expand_N_Extended_Return_Statement): When generating a move of the
1023 final list in extended return statements, check the type of the
1024 function and in the case of double expanded return statements, the type
1025 of the returned object.
1026 (Expand_Simple_Function_Return): Perform an interface conversion when
1027 the type of the returned object is an interface and the context is an
1028 extended return statement.
1030 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1032 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1033 and the full view is visible, set flag on full view as well.
1035 2008-08-20 Thomas Quinot <quinot@adacore.com>
1037 * g-comlin.adb: Minor reformatting
1038 Minor code reorganization.
1040 * freeze.adb: Minor reformatting
1042 2008-08-20 Vincent Celier <celier@adacore.com>
1044 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1045 source of another project.
1047 2008-08-20 Pascal Obry <obry@adacore.com>
1049 * s-os_lib.ads: Minor reformatting.
1051 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1053 * gnatvsn.ads: Minor reformatting.
1055 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1057 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1058 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1059 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1060 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1061 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1062 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1063 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1064 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1065 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1066 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1067 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1068 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1069 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1070 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1071 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1072 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1073 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1074 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1075 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1076 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1077 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1078 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1079 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1080 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1081 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1082 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1083 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1084 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1085 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1086 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1087 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1088 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1089 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1090 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1091 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1092 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1093 s-poosiz.adb, link.c: Fix copyright notice.
1095 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1097 * g-comlin.ads: Update comments.
1099 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1101 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1103 2008-08-20 Gary Dismukes <dismukes@adacore.com>
1106 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1107 Make_Implicit_Exception_Handler when rewriting an exception handler with
1108 a choice parameter, and pass the handler's Sloc instead of that of the
1109 handled sequence of statements. Make_Implicit_Exception_Handler sets the
1110 Sloc to No_Location (unless debugging generated code), which we don't
1111 want for the case of a user handler.
1113 2008-08-20 Robert Dewar <dewar@adacore.com>
1115 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
1118 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1119 now labeled as info msgs, not warnings.
1121 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1123 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1125 * a-textio.adb: Remove redundant test.
1127 * a-witeio.adb: Minor code reorganization
1128 Remove redundant test found working on another issue
1130 * a-ztexio.adb: Minor code reorganization
1131 Remove redundant test found working on another issue
1133 2008-08-20 Thomas Quinot <quinot@adacore.com>
1135 * s-fileio.adb (Open) Use C helper function to determine whether a
1136 given errno value corresponds to a "file not found" error.
1138 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1140 2008-08-20 Jose Ruiz <ruiz@adacore.com>
1142 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1143 to get access to the per-task errno variable.
1144 (__set_errno for MaRTE): Do not redefine this function here since it is
1145 already defined in MaRTE.
1147 2008-08-20 Tristan Gingold <gingold@adacore.com>
1149 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1151 2008-08-20 Robert Dewar <dewar@adacore.com>
1153 * freeze.adb: Minor reformatting
1155 * g-comlin.adb: Minor reformatting
1157 * g-socket.adb: Minor reformatting
1159 * g-socthi-mingw.adb: Minor reformatting
1161 * g-stheme.adb: Minor reformatting
1163 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1165 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1166 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1167 confusion between partial and full views of an ancestor of the context
1168 type when the parent is a private extension declared in a parent unit,
1169 and full views are available for the context type.
1171 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1172 Robert Dewar <dewar@adacore.com>
1175 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1177 Move comment in the right place.
1178 * g-comver.adb (Version): Look for a zero-termination in
1179 addition to a closing parenthesis.
1181 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1183 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1184 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1185 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1186 Is_Package_Or_Generic_Package instead of hand-crafted tests.
1188 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1191 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1194 2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1196 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1198 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1200 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1201 for back-copy statements in lieu of that of the actual.
1203 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1206 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
1207 setjmp test consistently. Adjust for new behavior of flag_stack_check.
1208 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
1209 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
1211 2008-08-13 Samuel Tardieu <sam@rfc1149.net>
1214 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1215 * sem_attr.adb (Check_Type): The current instance of a protected
1216 object is not a type name.
1217 (Analyze_Access_Attribute): Accept instances of protected objects.
1218 (Analyze_Attribute, Attribute_Address clause): Ditto.
1219 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1220 the prefix as being the current instance if needed.
1222 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1224 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1225 Remove duplicate s-win32.o. Add s-winext.o.
1227 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1229 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1230 with SOSC.SOCK__STREAM.
1231 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1234 2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1236 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1237 * gsocket.h, socket.c: Update to support RTEMS.
1238 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1240 2008-08-10 Samuel Tardieu <sam@rfc1149.net>
1241 Robert Dewar <dewar@adacore.com>
1243 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1244 left argument even when right argument is 0.
1245 (Expand_N_Op_Mod): Ditto when right argument is 1.
1246 (Expand_N_Op_Multiply): Ditto when any argument is 0.
1247 (Expand_N_Op_Rem): Ditto when right argument is 1.
1249 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1251 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1254 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1256 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1257 from Freeze_Entity. Used to generate cross-reference information for
1258 types declared in generic packages.
1260 2008-08-08 Thomas Quinot <quinot@adacore.com>
1262 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1265 2008-08-08 Thomas Quinot <quinot@adacore.com>
1268 On Windows, include <errno.h> and redefine only selected errno values
1269 from their <winsock2.h> definitions.
1271 * s-osinte-freebsd.ads: Minor reformatting
1273 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1275 * g-soccon.ads: New file.
1277 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1278 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1279 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1280 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1281 unit, to allow building software that depends on this internal unit
1282 with both older and newer compilers.
1284 2008-08-08 Robert Dewar <dewar@adacore.com>
1286 * s-strxdr.adb: Minor reformatting
1288 2008-08-08 Bob Duff <duff@adacore.com>
1290 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1291 checking for integer operations (including division by zero)", which
1292 is wrong -- divide by zero is not part of overflow checking.
1293 Also added misc clarification about what check-suppression means.
1295 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1297 2008-08-08 Jerome Lambourg <lambourg@adacore.com>
1299 * g-comlin.adb (Add_Switch): Handle addition of switches at the
1300 begining of the command line.
1301 (Append, Add): Renaming of Append to Add as this now allows addition
1302 at the begining of the list.
1304 * g-comlin.ads (Add_Switch): Handle addition of switches at the
1305 begining of the command line.
1307 2008-08-08 Thomas Quinot <quinot@adacore.com>
1310 (Name): Document application scope (only legacy PC serial ports on
1313 2008-08-08 Thomas Quinot <quinot@adacore.com>
1315 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1316 previous change, not needed after all.
1318 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1320 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1321 exclusion indicator is present
1323 2008-08-08 Robert Dewar <dewar@adacore.com>
1325 * g-comlin.adb: Minor code reorganization
1328 * g-comlin.ads: Minor reformatting
1330 * s-fileio.adb: Minor reformatting
1332 * sem_attr.adb: Minor code reorganization (use Nkind_In)
1335 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
1337 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1338 with s-oscons-tmplt.i.
1340 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
1342 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1344 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1346 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1349 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1350 of a formal parameter of an incomplete type. Improve error message for
1351 other improper uses of incomplete types.
1353 2008-08-06 Robert Dewar <dewar@adacore.com>
1355 * gnat_ugn.texi: Clarify -gnato documentation
1357 2008-08-06 Thomas Quinot <quinot@adacore.com>
1359 * gcc-interface/Makefile.in,
1360 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1361 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1362 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1363 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1364 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1365 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1366 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1367 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1368 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1369 Remove GNAT.Sockets.Constants. This internal package is replaced by
1370 System.OS_Constants.
1372 2008-08-06 Thomas Quinot <quinot@adacore.com>
1374 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1375 Remove obsolete targets referencing gen-soccon
1376 When generating s-oscons.ads, use a file name that includes the
1377 THREAD_KIND, to ensure that the (potentially different) version from a
1378 previous build with a different threads flavour does not get reused.
1380 2008-08-06 Thomas Quinot <quinot@adacore.com>
1382 * sem_res.adb: Minor reformatting
1384 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1385 only when the operating system reports a non-existing file or directory
1386 (ENOENT), otherwise raise Name_Error.
1388 * exp_ch11.adb: Minor reformatting
1390 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1392 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1393 incomplete, add the access_to_subprogram type to the list of private
1394 dependents only if the incomplete type will be completed in the current
1396 (Build_Discriminant_Constraints): If the type of the discriminant is
1397 access_to_variable, reject a constraint that is access_to_constant.
1399 2008-08-06 Thomas Quinot <quinot@adacore.com>
1401 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1402 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1403 g-sttsne-dummy.ads: New files.
1405 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1406 with pragma Unimplemented_Unit for sockets packages on Nucleus.
1408 2008-08-06 Pascal Obry <obry@adacore.com>
1410 * adaint.c: Another fix for ACL support on Windows.
1412 2008-08-06 Javier Miranda <miranda@adacore.com>
1414 * exp_disp (Expand_Interface_Actuals): Adds missing support for
1415 expansion of calls to subprograms using selected components.
1417 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1419 * sem_res.adb (Resolve_Call): Use base type to determine whether a
1420 dereference is needed because a subtype of an access_to_subprogram is
1421 simply an access-subtype
1423 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
1425 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1426 parameters, always specify the expected separator.
1428 2008-08-06 Thomas Quinot <quinot@adacore.com>
1430 * xnmake.adb: Use new XUtil package for platform independent text
1433 2008-08-06 Vincent Celier <celier@adacore.com>
1435 * gnat_ugn.texi: Document compiler switch -gnateG
1437 2008-08-06 Quentin Ochem <ochem@adacore.com>
1439 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1440 in the case of an empty pattern size.
1441 (Compute_Result): Do not do any computation in the case of an empty
1443 (Report_Result): Fixed computation of the overflow guard.
1445 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1447 * g-awk.adb (Finalize): Do not use directly objects of the type in the
1448 finalization routine to prevent elaboration order anomalies in new
1449 finalization scheme.
1451 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1453 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1454 declaration for the same type.
1456 2008-08-06 Thomas Quinot <quinot@adacore.com>
1458 * sem.adb: Minor rewording (comment)
1460 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
1462 * g-comlin.adb (Define_Switch, Get_Switches): New.
1463 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1464 ungrouping switches.
1465 (For_Each_Simple_Switch): Allow more control over parameters handling.
1466 This generic method now allows ungrouping of switches with parameters
1467 and switches with more than one letter after the prefix.
1468 (Set_Command_Line): Take care of switches that are prefixed with a
1469 switch handling parameters without delimiter (-gnatya and -gnaty3 for
1471 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1472 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1474 (Start, Alias_Switches, Group_Switches): Take care of parameters
1475 possibly present inside a group.
1477 * g-comlin.ads (Define_Switch): New method used to define a list of
1478 expected switches, that are necessary for correctly ungrouping switches
1479 with more that one character after the prefix.
1480 (Get_Switches): Method that builds a getopt string from the list of
1481 switches as set previously by Define_Switch.
1482 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1483 status of the operation. Also allow the removal of switches with
1485 (Command_Line_Configuration_Record): Maintain a list of expected
1488 2008-08-06 Doug Rupp <rupp@adacore.com>
1490 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1491 TARGET_MALLOC64 clear.
1493 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1494 if TARGET_MALLOC64 clear.
1496 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1497 (TARGET_MALLC64): New macro. Default to clear.
1499 2008-08-06 Doug Rupp <rupp@adacore.com>
1501 * gcc-interface/utils2.c (snames.h) Include
1502 (TARGET_ABI_OPEN_VMS): Initialize.
1503 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1506 2008-08-06 Ed Schonberg <schonberg@adacore.com>
1508 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1509 null exclusion in a discriminant declaration
1511 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1512 indicators when type is not an access type.
1514 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1515 indicators when type is not an access type.
1517 2008-08-06 Javier Miranda <miranda@adacore.com>
1519 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1520 with the target interface before expanding the code of the interface
1523 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1526 (Freeze_Entity): A deferred constant does not violate the restriction
1527 No_Default_Initialization,
1529 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1530 can carry a null exclusion indicator, and on which an error may be
1531 posted if the indicator is redundant.
1533 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1534 does not apply to a subtype mark that already excludes null.
1536 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1537 exclusion does not apply to a subtype mark that already excludes null.
1539 2008-08-05 Thomas Quinot <quinot@adacore.com>
1541 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1543 2008-08-05 Doug Rupp <rupp@adacore.com>
1545 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1547 2008-08-05 Thomas Quinot <quinot@adacore.com>
1549 * gsocket.h: Make this file includable in a Nucleus environment, which
1550 does not support sockets.
1552 * socket.c: Remove Nucleus-specific hack.
1554 2008-08-05 Pascal Obry <obry@adacore.com>
1556 * adaint.c: Remove support for readable attribute on vxworks and nucleus
1558 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1561 (Analyze_Attribute, case 'Result): handle properly the case where some
1562 operand of the expression in a post-condition generates a transient
1565 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1566 right-hand side when it is an anonymous access_to_subprogram, to force
1567 static accessibility check when needed.
1569 2008-08-05 Sergey Rybin <rybin@adacore.com>
1571 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1572 rule according to the change in the rule option.
1573 Add documentation for -gnatw.b/-gnatw.B
1575 2008-08-05 Robert Dewar <dewar@adacore.com>
1577 * ug_words: Add entries for -gnatw.b/-gnatw.B
1579 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1581 2008-08-05 Vincent Celier <celier@adacore.com>
1583 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1586 * a-ztdeio.adb: Ditto.
1588 2008-08-05 Pascal Obry <obry@adacore.com>
1590 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1593 2008-08-05 Vincent Celier <celier@adacore.com>
1596 (Wide_String_To_String): Returns a String with the same 'First as its
1598 (Wide_Wide_String_To_String): Ditto
1601 (Wide_String_To_String): Document that the lowest index of the returned
1602 String is equal to S'First.
1604 2008-08-05 Thomas Quinot <quinot@adacore.com>
1606 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1608 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1611 2008-08-05 Robert Dewar <dewar@adacore.com>
1613 * opt.ads (Warn_On_Biased_Representation): New flag
1616 (Analyze_Attribute_Definition_Clause): Issue warning when biased
1617 representation is required.
1618 (Minimum_Size): Don't allow biasing if enum rep clause case
1621 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1622 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1624 * usage.adb: Add lines for -gnatw.b/B switches
1626 2008-08-05 Pascal Obry <obry@adacore.com>
1628 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1630 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1632 2008-08-05 Thomas Quinot <quinot@adacore.com>
1634 * socket.c: Minor reformatting.
1636 2008-08-05 Robert Dewar <dewar@adacore.com>
1638 * sem_ch3.adb: Minor reformatting
1640 * prj-nmsc.adb: Minor reformatting
1642 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1644 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
1645 visibility check on the component type if the simple test fails.
1647 2008-08-05 Jose Ruiz <ruiz@adacore.com>
1649 * init.c (__gnat_install_handler for linux): If we are building the
1650 Xenomai run time then we need to do two additional things: avoid
1651 memory swapping and transform the Linux environment task into a native
1654 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
1655 time): Use interface to Xenomai native skin and avoid linux-specific
1656 way of setting CPU affinity.
1657 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
1659 2008-08-05 Bob Duff <duff@adacore.com>
1661 * checks.ads: Minor comment fix
1663 2008-08-05 Thomas Quinot <quinot@adacore.com>
1665 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
1666 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
1669 2008-08-05 Robert Dewar <dewar@adacore.com>
1671 * mlib.adb: Minor code reorganization
1674 * make.adb: Minor reformatting
1676 * prj-attr.ads: Minor reformatting
1678 * s-os_lib.adb: Minor reformatting
1680 * s-fileio.adb: Minor code reorganization
1683 * prj.ads: Minor reformatting
1685 2008-08-05 Bob Duff <duff@adacore.com>
1687 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
1688 unresolved initial value of "null", because it causes implicitly
1689 generated "=" operators to be ambiguous, and because this type should
1690 not be passed to gigi.
1692 2008-08-05 Vincent Celier <celier@adacore.com>
1694 * mlib.adb: Update comments.
1696 * make.adb (Switches_Of): Check for Switches (others), before checking
1697 for Default_Switches ("Ada").
1698 (Gnatmake): Use Builder'Switches (others) in preference to
1699 Builder'Default_Switches ("Ada") if there are several mains.
1702 (Add_Attribute): Add component Others_Allowed in Attribute_Record
1706 Add markers to indicates that attributes Switches allow others as index
1707 (Others_Allowed_For): New Boolean function, returning True for
1708 attributes with the mark.
1709 (Initialize): Recognize optional letter 'O' as the marker for
1710 associative array attributes where others is allowed as the index.
1713 (Others_Allowed_For): New Boolean function
1714 (Attribute_Record): New Boolean component Others_Allowed
1717 (Parse_Attribute_Declaration): For associative array attribute where
1718 others is allowed as the index, allow others as an index.
1721 (Process_Binder): Skip associative array attributes with index others
1722 (Process_Compiler): Ditto
1725 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
1726 index is All_Other_Names.
1729 (All_Other_Names): New constant
1732 (Process_Declarative_Items): Skip associative array attribute when index
1733 is reserved word "others".
1735 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
1737 * gen-oscons.c: Adapt for VMS where termios.h is not available.
1739 2008-08-05 Thomas Quinot <quinot@adacore.com>
1741 * a-rttiev.adb: Minor reformatting (comments)
1743 * gen-soccon.c: Rename to gen-oscons.c
1745 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
1746 GNAT.Sockets.Constants.
1747 Add new constants for GNAT.Serial_Communications and System.File_IO.
1749 2008-08-05 Javier Miranda <miranda@adacore.com>
1751 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
1752 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
1753 implementation of this routine has been simplified.
1755 2008-08-05 Pascal Obry <obry@adacore.com>
1757 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
1758 Set_Read_Only Win32 implementation.
1760 2008-08-05 Thomas Quinot <quinot@adacore.com>
1762 * exp_strm.adb: Minor reformatting (comments)
1764 * sem_ch12.adb: Minor reformatting.
1766 2008-08-05 Robert Dewar <dewar@adacore.com>
1768 * sem_ch3.adb: Minor reformatting
1770 * checks.adb: Minor reformatting
1772 2008-08-05 Thomas Quinot <quinot@adacore.com>
1774 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
1775 restriction on Prefix.
1777 2008-08-05 Jerome Lambourg <lambourg@adacore.com>
1779 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
1780 methods needed to handle switch sections when building a command line.
1781 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
1782 Current_Section): New public methods or methods modified to handle
1783 building command lines with sections.
1784 (Set_Command_Line): Take into account sections when analysing a switch
1786 (Start): Sort the switches by sections before iterating the command line
1789 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
1790 Is_New_Section, Current_Section): New methods or methods modified to
1791 handle building command lines with sections.
1793 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1795 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
1796 discriminants, indicate that the corresponding object declaration has
1797 no initialization, to prevent spurious warnings when the access type is
1800 2008-08-05 Ed Schonberg <schonberg@adacore.com>
1802 * sem_res.adb (Resolve_Call): If this is a call to the predefined
1803 Abort_Task, warn if the call appears within a protected operation.
1805 2008-08-04 Robert Dewar <dewar@adacore.com>
1807 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
1809 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1812 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
1813 anonymous access to protected subprogram that is the return type of the
1814 specification of a subprogram body.
1817 (Analyze_Subprogram_Body): if the return type is an anonymous access to
1818 subprogram, freeze it now to prevent access anomalies in the back-end.
1820 * exp_ch9.adb: Minor code cleanup.
1821 Make sure that new declarations are inserted into the tree before
1822 analysis (from code reading).
1824 2008-08-04 Robert Dewar <dewar@adacore.com>
1827 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
1830 2008-08-04 Thomas Quinot <quinot@adacore.com>
1832 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
1834 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1836 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
1838 2008-08-04 Javier Miranda <miranda@adacore.com>
1840 * sem_prag.adb (Process_Convention): Add missing support for
1841 N_Private_Extension_Declaration nodes.
1843 2008-08-04 Robert Dewar <dewar@adacore.com>
1845 * exp_ch4.adb: Minor reformatting
1847 2008-08-04 Pascal Obry <obry@adacore.com>
1849 * adaint.h: Add missing prototype.
1851 * adaint.c: Refine support for Windows file attributes.
1853 2008-08-04 Robert Dewar <dewar@adacore.com>
1856 (Valid_Conversion): Catch case of designated types having different
1857 sizes, even though they statically match.
1859 2008-08-04 Javier Miranda <miranda@adacore.com>
1861 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
1862 added in previous patch to handle access to subprograms.
1864 2008-08-04 Robert Dewar <dewar@adacore.com>
1867 (Freeze_Entity): Only check No_Default_Initialization restriction for
1868 constructs that come from source
1870 2008-08-04 Thomas Quinot <quinot@adacore.com>
1872 * exp_ch6.adb: Minor comment fix.
1874 * sem_ch4.adb: Minor reformatting.
1876 2008-08-04 Robert Dewar <dewar@adacore.com>
1878 * sem_res.adb: (Large_Storage_Type): Improve previous change.
1880 2008-08-04 Pascal Obry <obry@adacore.com>
1882 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
1885 2008-08-04 Javier Miranda <miranda@adacore.com>
1887 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
1888 for N_Formal_Object_Declaration nodes. Adding kludge required by
1889 First_Formal to provide its functionality with access to functions.
1890 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
1891 for anonymous access types returned by functions.
1893 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
1894 conversion of null-excluding access types (required only once to force
1895 the generation of the required runtime check).
1897 * sem_type.adb (Covers): minor reformating
1899 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
1900 with internally generated nodes. Avoid generating the error inside init
1903 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
1904 (Resolve_Null): Generate the null-excluding check in case of assignment
1905 to a null-excluding object.
1906 (Valid_Conversion): Add missing support for anonymous access to
1909 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
1910 anonymous access types whose designated type is an itype. This case
1911 occurs with anonymous access to protected subprograms types.
1912 (Analyze_Return_Type): Add missing support for anonymous access to
1913 protected subprogram.
1915 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
1916 subprograms addition of missing check on matching convention. Required
1917 to properly handle access to protected subprogram types.
1919 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
1920 null excluding access types.
1922 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1924 * sem_ch12.adb: Add comments
1926 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
1927 access type and the allocator is not initialized, warn rather than
1930 2008-08-04 Robert Dewar <dewar@adacore.com>
1932 * exp_ch4.adb: Minor reformatting
1934 * exp_dist.adb: Minor reformatting
1936 * g-comlin.adb: Minor reformatting
1938 2008-08-04 Gary Dismukes <dismukes@adacore.com>
1940 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
1941 target to the type of the aggregate in the case where the target object
1944 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
1945 result type is class-wide and inherently limited, and the expression
1946 has a specific type, create a return object of the specific type, for
1947 more efficient handling of returns of build-in-place aggregates (avoids
1948 conversions of the class-wide return object to the specific type on
1949 component assignments).
1951 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
1952 about a type mismatch for a class-wide function with a return object
1953 having a specific type when the object declaration doesn't come from
1954 source. Such an object can result from the expansion of a simple return.
1956 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
1958 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
1960 * gcc-interface/Makefile.in: Use 64bit-specific system files when
1961 compiling for 64bit windows.
1963 2008-08-04 Jerome Lambourg <lambourg@adacore.com>
1965 * g-comlin.adb (Group_Switches): Preserve the switch order when
1966 grouping and allow switch grouping of switches with more than one
1967 character extension (e.g. gnatw.x).
1968 (Args_From_Expanded): Remove this now obsolete method.
1970 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1972 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
1973 chain at once, to ensure that type is properly decorated for back-end,
1974 when allocator appears within a loop.
1976 2008-08-04 Kevin Pouget <pouget@adacore.com>
1978 * snames.h, snames.adb, snames.ads:
1979 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
1981 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
1982 Build_To_Any_Call and Build_TypeCode_Call procedures.
1984 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
1986 * rtsfind.ads: Add corresponding names.
1988 * tbuild.adb: Update prefix restrictions to allow '_' character.
1990 2008-08-04 Doug Rupp <rupp@adacore.com>
1992 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
1993 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
1994 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
1995 use it. Calculate pointer range overflow using 64bit types.
1997 2008-08-04 Ed Schonberg <schonberg@adacore.com>
1999 * sem_ch3.adb (Access_Definition): A formal object declaration is a
2000 legal context for an anonymous access to subprogram.
2002 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2003 indirect call, report success to the caller to include possible
2006 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2008 of the extended return is an anonymous access_to_subprogram type.
2011 (Resolve_Call): Insert a dereference if the type of the subprogram is an
2012 access_to_subprogram and the context requires its return type, and a
2013 dereference has not been introduced previously.
2015 2008-08-04 Arnaud Charlet <charlet@adacore.com>
2017 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2018 gnatcheck support in GPS.
2020 2008-08-04 Vincent Celier <celier@adacore.com>
2022 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2025 2008-08-04 Vincent Celier <celier@adacore.com>
2027 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2028 variable, but don't check the resulting value as it has no impact on
2032 (Generate_Processed_File): New Boolean flag, set to True in the compiler
2033 when switch -gnateG is used.
2036 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2037 when the source is modified by the preprocessor and there is no
2038 preprocessing errors.
2040 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
2043 (Load_File): Output the result of preprocessing if the source text was
2046 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
2048 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
2050 * ug_words: Add VMS equivalent for -gnateG
2053 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2055 2008-08-04 Doug Rupp <rupp@adacore.com>
2057 * gcc-interface/utils2.c:
2058 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2059 in 32bit descriptor.
2061 2008-08-04 Robert Dewar <dewar@adacore.com>
2063 * par-ch10.adb: Minor reformatting
2065 * i-cobol.adb: Minor reformatting.
2067 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2069 * sem_ch3.adb (Access_Definition): Create an itype reference for an
2070 anonymous access return type of a regular function that is not a
2073 2008-08-04 Vincent Celier <celier@adacore.com>
2075 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
2077 * snames.adb: New standard name Global_Compilation_Switches
2079 * snames.ads: New standard name Global_Compilation_Switches
2081 * make.adb: Correct spelling error in comment
2083 2008-08-04 Arnaud Charlet <charlet@adacore.com>
2085 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2088 2008-08-04 Thomas Quinot <quinot@adacore.com>
2090 * sem_ch10.adb: Minor comment fix.
2092 2008-08-04 Robert Dewar <dewar@adacore.com>
2094 * restrict.adb: Improved messages for restriction warnings
2096 * restrict.ads: Improved messages for restriction messages
2098 * s-rident.ads (Profile_Name): Add No_Profile
2100 2008-08-04 Robert Dewar <dewar@adacore.com>
2102 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2104 2008-08-04 Robert Dewar <dewar@adacore.com>
2106 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2108 2008-08-04 Vincent Celier <celier@adacore.com>
2111 (Copy_Package_Declarations): When inheriting package Naming from a
2112 project being extended, do not inherit source exception names.
2114 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2116 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2117 list of declaration to find previous subprogram, do not go to the
2118 original node of a generic unit.
2120 2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
2122 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2123 New case. Convert BOOLEAN_TYPE operation to the default integer type.
2125 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2127 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2128 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2129 and adjust for above renaming.
2130 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2131 gnu_expr_alt_type parameter. Convert the expression to it instead
2132 of changing its type in place.
2133 (build_function_stub): Adjust call to above function.
2135 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2137 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2138 code. Do not get full definition of deferred constants with address
2139 clause for a use. Do not ignore deferred constant definitions with
2140 address clause. Ignore constant definitions already marked with the
2142 <object>: Remove obsolete comment. For a deferred constant with
2143 address clause, get the initializer from the full view.
2144 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2145 Rework and remove obsolete comment.
2146 <N_Object_Declaration>: For a deferred constant with address clause,
2147 mark the full view with the error node.
2148 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2151 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
2153 * rtsfind.ads: Add block IO versions of stream routines for Strings.
2155 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2156 sem_prag.adb, snames.adb, snames.ads, snames.h,
2157 par-prag.adb: Undo previous stream related changes.
2159 * s-rident.ads: Add new restriction No_Stream_Optimizations.
2161 * s-ststop.ads, s-ststop.adb: Comment reformatting.
2162 Define enumeration type to designate different IO mechanisms.
2163 Enchance generic package Stream_Ops_Internal to include an
2164 implementation of Input and Output.
2166 * exp_attr.adb (Find_Stream_Subprogram): If restriction
2167 No_Stream_Optimization is active, choose the default byte IO
2168 implementations of stream attributes for Strings.
2169 Otherwise use the corresponding block IO version.
2171 2008-08-01 Olivier Hainque <hainque@adacore.com>
2173 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2174 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2176 2008-08-01 Robert Dewar <dewar@adacore.com>
2178 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2179 convert plain identifier into defining identifier.
2181 2008-08-01 Robert Dewar <dewar@adacore.com>
2183 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2186 * lib-xref.adb: Add error defense.
2188 2008-08-01 Bob Duff <duff@adacore.com>
2190 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2192 2008-08-01 Gary Dismukes <dismukes@adacore.com>
2194 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2195 correct accessibility levels. In the "when others" case, retrieve the
2196 access level of the Etype of Prev rather than Prev_Orig, because the
2197 original exression has not always been analyzed.
2199 2008-08-01 Robert Dewar <dewar@adacore.com>
2201 * prj-nmsc.adb: Minor reformatting
2203 * sem_ch4.adb: Minor reformatting
2204 Minor code reorganization
2206 * prj.ads: Minor reformatting
2208 * s-os_lib.adb: Minor reformatting
2210 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2213 * scans.ads: Minor reformatting.
2215 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2216 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2219 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2221 * sem_ch12.adb: Minor comment reformatting
2223 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2226 2008-08-01 Robert Dewar <dewar@adacore.com>
2228 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2231 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2233 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2234 converted is a real literal and the target type has static bounds,
2235 perform the conversion exactly to prevent floating-point anomalies on
2238 2008-08-01 Vincent Celier <celier@adacore.com>
2240 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2242 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2244 * prj.adb (Object_Exist_For): Use Object_Generated, not
2245 Objects_Generated that is removed and was never modified anyway.
2248 (Path_Syntax_Kind): New enumeration type
2249 (Language_Config): New component Path_Syntax, defaulted to Host.
2250 Components PIC_Option and Objects_Generated removed, as they are not
2253 * snames.adb: New standard name Path_Syntax
2255 * snames.ads: New standard name Path_Syntax
2257 2008-08-01 Vincent Celier <celier@adacore.com>
2260 (Adalib_Path): New variable to store the path of the adalib directory
2261 when procedure Specify_Adalib_Dir is called.
2262 (Lib_Directory): If Adalib_Path is not null, return its value
2263 (Specify_Adalib_Dir): New procedure
2265 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2267 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2270 (Check_Precondition_Postcondition): If not generating code, analyze the
2271 expression in a postcondition that appears in a subprogram body, so that
2272 it is properly decorated for ASIS use.
2274 2008-08-01 Gary Dismukes <dismukes@adacore.com>
2276 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2277 Orig_Prev to Prev in the case where the actual is N_Function_Call or
2278 N_Identifier. This was interfering with other cases that are rewritten
2279 as N_Identifier, such as allocators, resulting in passing of the wrong
2280 accessibility level, and based on testing this code is apparently no
2281 longer needed at all.
2283 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2285 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2286 procedure call whose prefix
2287 is a parameterless function call that returns an access_to_procedure.
2289 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2291 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2292 for RTX. Adding a suffix that is incremented at each iteration.
2294 2008-08-01 Robert Dewar <dewar@adacore.com>
2296 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2299 2008-08-01 Jerome Lambourg <lambourg@adacore.com>
2301 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2302 paths, which are authorized by Windows but can lead to errors when used
2305 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2307 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2308 a pending instantiation for the body of a subprogram that is to be
2312 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2314 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2315 create a pending instance for its body, so that calls to the subprogram
2316 can be inlined by the back-end.
2318 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2320 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2323 2008-08-01 Robert Dewar <dewar@adacore.com>
2325 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2327 2008-08-01 Doug Rupp <rupp@adacore.com>
2329 * gnat_rm.texi: Document new mechanism Short_Descriptor.
2331 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2334 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2335 mechanism and Short_Descriptor mechanism values.
2337 * snames.adb (preset_names): Add short_descriptor entry.
2339 * snames.ads: Add Name_Short_Descriptor.
2341 * types.h: Add new By_Short_Descriptor mechanism values.
2343 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2344 mechanism and Short_Descriptor mechanism values.
2346 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2348 (Descriptor_Codes): Modify range for new mechanism values.
2350 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2353 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2354 (gnat_to_gnu_param): Handle By_Short_Descriptor.
2356 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2357 (build_vms_descriptor32): New prototype.
2358 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2360 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2361 argument in call fill_vms_descriptor.
2363 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2364 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2365 (build_vms_descriptor): Renamed from build_vms_descriptor64.
2366 (convert_vms_descriptor32): New function.
2367 (convert_vms_descriptor64): New function.
2368 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2371 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2374 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2376 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2377 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2380 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2382 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2383 current directory so only fully qualified names are allowed.
2385 2008-08-01 Robert Dewar <dewar@adacore.com>
2388 Minor editing, remove uncomfortable use of semicolon
2390 * s-ststop.adb: Add some ??? comments
2392 * sem_ch10.adb: Minor reformatting
2395 Minor comment fixes, some pragmas were not properly
2396 categorized in the comments, documentation change only
2398 * xref_lib.adb: Minor reformatting
2400 * sinput.adb: Minor reformatting
2402 * gnatchop.adb: Minor reformatting
2404 * sem_util.ads: Minor reformatting.
2406 * opt.ads: Minor documentation fix
2408 * scng.adb: Minor reformatting
2410 * prj-part.adb: Update comments
2412 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2414 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2415 tagged synchronized type, use corresponding record type.
2417 2008-08-01 Doug Rupp <rupp@adacore.com>
2419 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2420 dummy transfer address for debugging.
2422 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2424 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2426 2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
2428 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2429 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2431 2008-07-31 Pascal Obry <obry@adacore.com>
2433 * prj-nmsc.adb: Keep Object and Exec directory casing.
2435 2008-07-31 Jose Ruiz <ruiz@adacore.com>
2437 * system-rtx-rtss.ads
2438 Change the default stack size. It is important to set the commit part.
2441 (Initialize): Get the clock resolution.
2442 (RT_Resolution): Return the clock resolution that is indicated by the
2445 * s-parame-vxworks.adb
2446 Document that this body is used for RTX in RTSS (kernel) mode.
2448 * gcc-interface/Makefile.in
2449 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2450 s-parame-vxworks.adb body in order to have reasonable stack sizes in
2451 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2452 cannot ask for too big values.
2454 2008-07-31 Robert Dewar <dewar@adacore.com>
2456 * exp_aggr.adb: Minor reformatting
2458 * makeutl.adb: Minor reformatting
2460 * prj-env.adb: Minor reformatting
2462 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2464 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2465 tagged type is completed by a concurrent type.
2467 2008-07-31 Gary Dismukes <dismukes@adacore.com>
2470 (Resolve_Record_Aggregate): Bypass error that a type without
2471 components must have a "null record" aggregate when compiling for Ada
2472 2005, since it's legal to give an aggregate of form (others => <>)
2475 2008-07-31 Javier Miranda <miranda@adacore.com>
2477 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2478 handle synchronized types. Required to handle well the object.operation
2479 notation applied to synchronized types.
2481 2008-07-31 Quentin Ochem <ochem@adacore.com>
2483 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2484 anymore - just used internally.
2485 Added handling of very small tasks - when the theoretical size is
2486 already full at the point of the call.
2487 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2488 not need to be added to the result.
2490 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2492 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2493 corresponding spec is a primitive wrapper. Update comment.
2495 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2497 * bindgen.adb Comment reformatting. Update the list of run-time globals.
2498 (Gen_Adainit_Ada): Add the declaration, import and value set for
2499 configuration flag Canonical_Streams.
2500 (Gen_Adainit_C): Add the declaration and initial value of external
2501 symbol __gl_canonical_streams.
2503 * init.c: Update the list of global values computed by the binder.
2505 * opt.ads: Add flag Canonical_Streams.
2507 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2508 semantically handled pragmas.
2510 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2511 (Analyze_Pragma): Add case for pragma Canonical_Streams.
2513 * snames.adb: Add character value for name Canonical_Streams.
2516 Add Name_Canonical_Streams to the list of configuration pragmas.
2517 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2519 * snames.h: Add a definition for Pragma_Canonical_Streams.
2522 Add a flag and import to seize the value of external symbol
2523 __gl_canonical_streams. Update comment and initial value of constant
2526 * gnat_rm.texi: Add section of pragma Canonical_Streams.
2529 Add pragma Canonical_Streams to the list of configuration pragmas.
2531 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2533 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2534 has the form A.B.C and B is a unit renaming, analyze its compilation
2535 unit and add a with_clause on A.b to the context.
2537 2008-07-31 Vincent Celier <celier@adacore.com>
2539 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2540 return the empty string, instead of raising Constraint_Error.
2542 2008-07-31 Gary Dismukes <dismukes@adacore.com>
2544 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2546 * checks.adb (Apply_Accessibility_Check): Insert the check on
2550 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2551 to new parameter Insert_Node on call to Apply_Accessibility_Check.
2552 Necessary to distinguish the insertion node because the dereferenced
2553 formal may come from a rename, but the check must be inserted in
2554 front of the attribute.
2557 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2558 call to Apply_Accessibility_Check.
2559 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2560 on call to Apply_Accessibility_Check.
2563 2008-07-31 Javier Miranda <miranda@adacore.com>
2565 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2566 types when the candidate type is a synchronized type.
2568 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2569 types, and complete management of synchronized types adding missing
2570 code to handle formal that is a synchronized type.
2572 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2573 are not available and cause the compiler to blowup. Found compiling
2574 test with switch -gnatc
2576 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2577 Has_Correct_Formal_Mode plus code cleanup.
2579 2008-07-31 Bob Duff <duff@adacore.com>
2581 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2582 recognized as two end-of-lines, but it should be just one.
2584 2008-07-31 Thomas Quinot <quinot@adacore.com>
2586 * exp_ch9.adb: Minor reformatting
2588 * tbuild.ads: Fix several occurrences of incorrectly referring to
2589 Name_Find as Find_Name.
2591 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2593 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2594 and the context is an object declaration with non-static bounds, treat
2595 the aggregate as non-static.
2597 2008-07-31 Vincent Celier <celier@adacore.com>
2599 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2600 Move back spec of Parse_Single_Project to body, as it is not called
2601 outside of package Prj.Part.
2602 (Project_Data): Remove components Linker_Name, Linker_Path and
2603 Minimum_Linker_Options as they are no longer set.
2604 Remove function There_Are_Ada_Sources from package Prj and move code
2605 in the only place it was used, in Prj.Env.Set_Ada_Paths.
2607 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2609 * mlib-utl.ads: Fix typo.
2611 2008-07-31 Robert Dewar <dewar@adacore.com>
2613 * sem_ch12.adb: Minor reformatting
2615 2008-07-31 Sergey Rybin <rybin@adacore.com>
2617 * gnat_ugn.texi: Change the description of the
2618 Overly_Nested_Control_Structures: now the rule always requires a
2619 positive parameter for '+R' option
2621 2008-07-31 Thomas Quinot <quinot@adacore.com>
2623 * g-pehage.adb: Minor reformatting
2625 2008-07-31 Pascal Obry <obry@adacore.com>
2627 * s-finimp.ads: Minor reformatting.
2629 2008-07-31 Vincent Celier <celier@adacore.com>
2631 * s-regexp.ads: Minor comment fix
2633 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2635 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
2636 so that we can compile this file successfully with -gnatc.
2638 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
2640 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
2641 of the type when looking for stream subprograms for type String,
2642 Wide_String and Wide_Wide_String.
2644 * s-ststop.adb: Change the initialization expression of constant
2647 2008-07-31 Geert Bosch <bosch@adacore.com>
2650 New file implementing __gnat_mulv64 signed integer multiplication with
2653 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
2655 * gcc-interface/gigi.h:
2656 (standard_types): Add ADT_mulv64_decl
2657 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
2659 * gcc-interface/utils.c:
2660 (init_gigi_decls): Add initialization of mulv64_decl
2662 * gcc-interface/trans.c:
2663 (build_unary_op_trapv): New function
2664 (build_binary_op_trapv): New function
2665 (gnat_to_gnu): Use the above functions instead of
2666 build_{unary,binary}_op
2668 * gcc-interface/Makefile.in
2669 (LIBGNAT_SRCS): Add arit64.c
2670 (LIBGNAT_OBJS): Add arit64.o
2672 2008-07-31 Vincent Celier <celier@adacore.com>
2674 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
2675 Linker'Default_Switches are declared. Warn if they are declared.
2677 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2679 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2680 Insert_Actions to place the pointer declaration in the code, rather
2681 than Insert_Before_And_Analyze, so that insertions of temporaries are
2682 kept in the proper order when transient scopes are present.
2685 2008-07-31 Robert Dewar <dewar@adacore.com>
2687 * einfo.adb (Spec_PPC): Now defined for generic subprograms
2689 * einfo.ads (Spec_PPC): Now defined for generic subprograms
2691 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
2694 2008-07-31 Vincent Celier <celier@adacore.com>
2696 * s-os_lib.adb: Minor comment fix
2698 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2700 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
2701 transfer pre/postconditions from generic copy to original tree, so that
2702 they will appear in each instance.
2703 (Process_PPCs): Do not transform postconditions into a procedure in a
2704 generic context, to prevent double expansion of check pragmas.
2706 * sem_attr.adb: In an instance, the prefix of the 'result attribute
2707 can be the renaming of the
2708 current instance, so check validity of the name accordingly.
2710 2008-07-31 Robert Dewar <dewar@adacore.com>
2712 * mlib-utl.ads: Minor reformatting
2714 2008-07-31 Ed Schonberg <schonberg@adacore.com>
2716 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
2717 from context. This attribute must be usable in Ada95 mode.
2718 The attribute can appear in the body of a function marked
2719 Inline_Always, but in this case the postocondition is not enforced.
2721 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
2722 of an inlined call pre- and postconditions are legal
2724 2008-07-31 Vincent Celier <celier@adacore.com>
2726 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
2727 were for gprmake only
2729 2008-07-31 Robert Dewar <dewar@adacore.com>
2731 * gnat_ugn.texi: Update -gnatN documentation.
2733 * gnat_rm.texi: Add note about pre/postcondition
2734 pragmas not checked in conjunction with front-end inlining.
2736 2008-07-31 Robert Dewar <dewar@adacore.com>
2738 * g-pehage.adb, g-pehage.ads: Minor reformatting
2740 2008-07-31 Arnaud Charlet <charlet@adacore.com>
2742 * mlib-utl.ads, prj-makr.ads: Add comments.
2744 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2746 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
2747 [WINDOWS]: Add s-winext.o.
2749 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
2752 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
2753 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
2754 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
2755 Set precision to 1 for subtype of BOOLEAN_TYPE.
2756 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
2757 (make_type_from_size): Deal with BOOLEAN_TYPE.
2758 * gcc-interface/misc.c (gnat_print_type): Likewise.
2759 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
2760 Set boolean_type_node as its translation in the table, as well
2761 as boolean_false_node for False and boolean_true_node for True.
2762 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
2763 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
2764 (create_param_decl): Deal with BOOLEAN_TYPE.
2765 (build_vms_descriptor): Likewise.
2766 (build_vms_descriptor64): Likewise.
2767 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
2769 2008-07-30 Robert Dewar <dewar@adacore.com>
2771 * exp_ch9.adb: Minor reformatting
2773 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
2774 if no primitive operation is found.
2776 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
2778 * sem_ch8.adb: Minor reformatting
2780 2008-07-30 Laurent Pautet <pautet@adacore.com>
2783 Remove a limitation on the length of the words handled by the minimal
2784 perfect hash function generator.
2787 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
2790 2008-07-30 Robert Dewar <dewar@adacore.com>
2792 * gnatlink.adb: Minor reformatting
2794 2008-07-30 Thomas Quinot <quinot@adacore.com>
2796 * rtsfind.adb (Check_RPC): Check version consistency even when not
2797 generating RCI stubs. Provide more detailed error message in case of
2800 2008-07-30 Ed Schonberg <schonberg@adacore.com>
2802 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
2803 as a actual in an instance, check for a missing attribute to prevent
2804 program_error on an illegal program.
2806 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
2807 error if primitive is not found, so that exception can be handled
2808 elsewhere on illegal programs.
2810 2008-07-30 Robert Dewar <dewar@adacore.com>
2812 * uintp.adb (UI_GCD): Fix potential overflow
2814 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2816 * einfo.adb: Flag245 is now used.
2817 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
2818 check to include functions.
2819 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2820 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
2822 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
2823 to the list of displayed flags.
2825 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
2826 Wrapped_Entity. These two flags are now present in functions.
2827 New flag Is_Private_Primitive.
2828 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
2831 (Build_Wrapper_Bodies): New subprogram.
2832 (Build_Wrapper_Body): The spec and body have been moved to in
2833 Build_Wrapper_ Bodies. Code cleanup.
2834 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
2835 Wrappers are now generated for primitives declared between the private
2836 and full view of a concurrent type that implements an interface.
2837 (Build_Wrapper_Specs): New subprogram.
2838 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
2839 creation mechanism with a call to Build_Wrapper_Bodies.
2840 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
2841 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
2842 (Expand_N_Task_Body): Replace the wrapper body creation
2843 mechanism with a call to Build_Wrapper_Bodies.
2844 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
2845 creation mechanism with a call to Build_Wrapper_Specs.
2846 (Is_Private_Primitive_Subprogram): New subprogram.
2847 (Overriding_Possible): Code cleanup.
2848 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
2850 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
2852 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
2853 (Process_Full_View): Build wrapper specs for all primitives
2854 that belong to a private view completed by a concurrent type
2855 implementing an interface.
2857 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
2859 concurrent type with a private view that implements an interface, try to
2860 find the proper spec.
2861 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
2862 primitive if the type of its first parameter is a non-generic tagged
2864 (Analyze_Subprogram_Specification): Code reformatting.
2865 (Disambiguate_Spec): New routine.
2866 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
2867 (Is_Private_Concurrent_Primitive): New routine.
2870 (Find_Corresponding_Spec): Add a formal to control the output of errors.
2872 2008-07-30 Doug Rupp <rupp@adacore.com>
2874 * gigi.h (build_vms_descriptor64): New function prototype.
2875 (fill_vms_descriptor): Modified function prototype.
2877 * utils.c (build_vms_descriptor64): New function.
2879 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
2881 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
2884 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
2885 64bit and 32bit descriptor and save the 64bit version as an alternate
2886 TREE_TYPE in the parameter.
2887 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
2890 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
2892 2008-07-30 Robert Dewar <dewar@adacore.com>
2894 * make.adb: Minor reformatting
2896 * mlib-utl.adb: Minor reformatting
2898 * osint.ads: Minor reformatting
2900 2008-07-30 Jose Ruiz <ruiz@adacore.com>
2903 (__gnat_file_exists): Do not use __gnat_stat for RTX.
2904 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
2905 avoid the use of this symbol from libgcc.a in RTX kernel mode.
2908 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
2909 the function RtPrintf for console output.
2911 * argv.c Do not use the environ variable for RTX.
2913 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
2914 been moved before the call to Osint.Add_Default_Search_Dirs in order
2915 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
2916 from the appropriate run time.
2919 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
2920 target is a RTSS module for RTX.
2922 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
2923 RTX_RTSS_Kernel_Module
2924 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
2926 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
2927 exception handling mechanism for Windows and RTX in Win32 mode, but
2928 not for RTX in kernel mode (RTSS).
2929 (LIBGNAT_SRCS): Remove ada.h
2931 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
2933 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
2934 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2935 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
2936 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
2937 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
2938 ALL_ADA_CFLAGS): Remove.
2939 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
2940 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
2941 (GCC_CFLAGS): Remove X_CFLAGS.
2942 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
2943 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
2944 (ADA_CFLAGS): Substitute.
2946 2008-07-30 Laurent Guerby <laurent@guerby.net>
2949 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
2950 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
2951 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
2952 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
2953 by stamp-gnatlib2-rts.
2955 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2957 PR documentation/15479
2958 * gnat-style.texi: Remove AdaCore copyright statement and GPL
2959 statement for GNAT. Add @copying stanza, use it. Update to
2960 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
2961 title as Front-Cover Text.
2962 * gnat_rm.texi: Likewise.
2963 * gnat_ugn.texi: Likewise.
2965 2008-07-29 Jan Hubicka <jh@suse.cz>
2967 * trans.c (process_inlined_subprograms): Remove tree_really_inline
2970 2008-07-29 Arnaud Charlet <charlet@adacore.com>
2972 * gcc-interface: New directory.
2974 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
2975 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
2976 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
2977 to gcc-interface subdirectory.
2979 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2981 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
2983 2008-07-28 Jan Hubicka <jh@suse.cz>
2985 * misc.c (gnat_post_options): Do not set flag_no_inline.
2987 2008-07-28 Richard Guenther <rguenther@suse.de>
2989 Merge from gimple-tuples-branch.
2991 2008-07-22 Olivier Hainque <hainque@adacore.com>
2993 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
2994 this is called for an elab proc to be discarded if empty.
2995 * utils.c (end_subprog_body): Honor ELAB_P.
2996 (build_function_stub): Adjust call to end_subprog_body.
2997 * trans.c (Subprogram_Body_to_gnu): Likewise.
2998 (gigi): Reorganize processing of elab procs to prevent
2999 gimplifying twice, using the new end_subprog_body argument.
3001 2008-07-19 Richard Guenther <rguenther@suse.de>
3003 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3004 (utils.o): Likewise.
3005 * trans.c: Include tree-iterator.h.
3006 (gnat_gimplify_expr): Adjust prototype. Fix typo.
3007 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3008 (set_expr_location_from_node): Likewise.
3010 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3012 * utils.c: Include tree-iterator.h.
3013 * gigi.h (gnat_gimplify_expr): Adjust prototype.
3015 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
3017 * trans.c: Include gimple.h instead of tree-gimple.h.
3020 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
3022 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3024 2008-07-25 Jan Hubicka <jh@suse.cz>
3026 * utils.c (end_subprog_body): Remove inline trees check.
3027 * misc.c (gnat_post_options): Do not set flag_inline_trees.
3029 2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3031 * raise-gcc.c: Move tsystem.h before tm.h.
3033 2008-07-20 Arnaud Charlet <charlet@adacore.com>
3035 * gnathtml.pl: New file.
3037 2008-07-19 Olivier Hainque <hainque@adacore.com>
3039 * targtyps.c (get_target_default_allocator_alignment): Use
3040 MALLOC_ABI_ALIGNMENT.
3042 2008-07-17 Olivier Hainque <hainque@adacore.com>
3044 * adaint.c (__MINGW32__ section): Include ctype.h and define
3045 a fallback ISALPHA if IN_RTS.
3046 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
3048 2008-07-17 Olivier Hainque <hainque@adacore.com>
3050 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3051 argument, to apply to references in addition to definitions. Prevent
3052 setting TREE_STATIC on externals.
3053 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3055 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3057 PR documentation/15479
3058 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3059 Replace backets around optional parameters with @ovar
3060 where possible, use @r{[}, @r{]} otherwise.
3061 Replace some @r, @i, and @emph with @var where appropriate.
3063 2008-07-02 Eric Botcazou <ebotcazou@adacore.com>
3065 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3067 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3069 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3070 -Wc++-compat warnings.
3071 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3072 __gnat_locate_exec_on_path): Likewise.
3073 * decl.c (annotate_value): Likewise.
3074 * misc.c (gnat_handle_option): Likewise.
3075 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3076 post_error_ne_tree): Likewise.
3078 2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
3080 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3081 version of its type, attempt to first convert its elements.
3083 2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
3085 * Makefile.in: Fix *86 kfreebsd target specific pairs.
3087 2008-06-25 Samuel Tardieu <sam@rfc1149.net>
3089 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3091 2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
3093 * utils2.c (known_alignment): Derive the alignment from pointed-to
3094 types only if it is otherwise unknown.
3095 <INTEGER_CST>: Tidy.
3096 <MULT_EXPR>: Likewise.
3097 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3100 2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3103 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3105 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3107 * gnat_rm.texi (Implementation Defined Characteristics)
3108 (Standard Library Routines): Use @smallexample for indented
3109 text. Drop Indentation outside examples.
3110 * gnat_ugn.texi: Likewise.
3112 2008-06-13 Olivier Hainque <hainque@adacore.com>
3114 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3116 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3117 realignment with force_align_arg_pointer attribute on foreign
3118 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
3120 2008-06-13 Olivier Hainque <hainque@adacore.com>
3122 * utils.c (rest_of_record_type_compilation): When computing
3123 encodings for the components of a variable size type, early
3124 strip conversions on the current position expression to make
3125 sure it's shape is visible. Use remove_conversions for this
3128 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3130 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3131 constrained subtype of a discriminated type, discard the fields that
3132 are beyond its limits according to its size.
3134 2008-06-10 Olivier Hainque <hainque@adacore.com>
3136 * utils.c (create_subprog_decl): If this is for the 'main' entry
3137 point according to the asm name, redirect main_identifier_node.
3139 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
3141 * decl.c (components_to_record): Adjust the packedness for the
3142 qualified union as well.
3144 2008-06-09 Arnaud Charlet <charlet@adacore.com>
3146 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3149 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
3151 * sem_res.adb (Large_Storage_Type): A type is large if it
3152 requires as many bits as Positive to store its values and its
3153 bounds are known at compile time.
3154 * sem_ch13.adb (Minimum_Size): Note that this function returns
3155 0 if the size is not known at compile time.
3157 2008-06-06 Nicolas Setton <setton@adacore.com>
3158 Olivier Hainque <hainque@adacore.com>
3160 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3161 attribute, parallel descriptive type attached to another
3162 type for debug info generation purposes.
3163 * utils.c (add_parallel_type): New function, register
3164 parallel type to be attached to a type.
3165 (get_parallel_type): New function, fetch a registered
3166 parallel type, if any.
3167 (rest_of_record_type_compilation): Register the parallel
3168 type we make for variable size records.
3169 * gigi.h (add_parallel_type, get_parallel_type): Declare.
3170 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3171 parallel debug types we make.
3172 * trans.c (extract_encoding, decode_name): New functions.
3173 (gigi): If the DWARF attribute extensions are available, setup
3175 * lang.opt: Register language specific processing request
3177 * misc.c (gnat_dwarf_extensions): New global variable. How much
3178 do we want of our DWARF extensions. 0 by default.
3179 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3180 (gnat_post_options): Map gnat_dwarf_extensions to the
3181 commonuse_gnu_debug_info_extensions for later processing.
3183 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
3185 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3187 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3189 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3190 * gnat_ugn.texi (Style Checking)
3191 (Adding the Results of Compiler Checks to gnatcheck Output)
3192 (Example of Binder Output File): Fix typos.
3193 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3194 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3195 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3196 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3197 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3198 sinfo.ads, utils.c: Fix typos in comments.
3199 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3201 2008-05-29 Thomas Quinot <quinot@adacore.com>
3203 * sem_eval.adb: Minor reformatting
3205 2008-05-29 Ed Schonberg <schonberg@adacore.com>
3207 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3208 is abstract, do not apply abstractness check on subprogram if this is
3209 a renaming declaration.
3211 2008-05-29 Arnaud Charlet <charlet@adacore.com>
3214 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3215 allow recognition of program suffix in addition to prefix.
3217 * gnatchop.adb (Locate_Executable): Add support for prefix.
3219 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3220 mlib-utl.adb: Adjust calls to Program_Name.
3222 2008-05-29 Robert Dewar <dewar@adacore.com>
3224 * sem_ch3.adb: Minor reformatting
3225 * sem_prag.adb: Minor reformatting
3226 * sem_res.adb: Minor reformatting
3227 * sinput-p.ads: Minor reformatting
3229 2008-05-29 Javier Miranda <miranda@adacore.com>
3232 (Abstract_Interface_List): Add missing support for full type-declaration
3233 associated with synchronized types.
3235 2008-05-29 Robert Dewar <dewar@adacore.com>
3237 * sem_eval.adb (Is_Same_Value): Take care of several more cases
3239 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3241 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3242 access type, wrap the expression in a conversion to force an
3243 accessibility check.
3245 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3246 accessibility checks even when expansion is disabled in order to
3247 generate messages in the presence of previous errors or in
3248 semantics-only mode.
3250 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
3252 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3253 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3255 2008-05-28 Vincent Celier <celier@adacore.com>
3258 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3259 preprocessing expressions
3261 2008-05-28 Vincent Celier <celier@adacore.com>
3263 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3266 * sinput-p.ads: Minor comment update and reformatting
3268 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3270 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3271 type has a deeper level than any master only when it is the type of an
3274 2008-05-28 Javier Miranda <miranda@adacore.com>
3276 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3278 2008-05-28 Javier Miranda <miranda@adacore.com>
3280 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3281 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3282 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3283 Add code that was previously located in
3284 Find_Overridden_Synchronized_Primitive because it is only used here.
3286 2008-05-28 Sergey Rybin <rybin@adacore.com>
3288 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3289 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3291 2008-05-28 Robert Dewar <dewar@adacore.com>
3294 Add missing restrictions, and properly label all GNAT defined ones
3297 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3298 Add entry for Ada.Task_Termination.Set_Specific_Handler
3299 Add entry for Ada.Task_Termination.Specific_Handler
3302 Add missing restrictions and properly mark all gnat defined ones
3305 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3308 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3310 * gnat_rm.texi: Add missing restrictions, and properly label all
3313 2008-05-28 Robert Dewar <dewar@adacore.com>
3316 (Check_Restriction): violation of restriction No_Finalization is
3317 treated as a serious error to stop expansion
3319 2008-05-28 Robert Dewar <dewar@adacore.com>
3321 * exp_util.adb: Minor reformatting
3322 * exp_util.ads: Minor reformatting.
3324 2008-05-28 Arnaud Charlet <charlet@adacore.com>
3326 * Make-lang.in: Remove gprmake.
3328 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3330 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3332 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3333 improper progenitor names, and avoid cascaded errors.
3335 2008-05-28 Robert Dewar <dewar@adacore.com>
3337 * gnat_rm.texi: Add note on Old giving warning when applied to constant
3339 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3342 2008-05-28 Robert Dewar <dewar@adacore.com>
3344 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3347 2008-05-28 Robert Dewar <dewar@adacore.com>
3350 (Expand_Simple_Function_Return): Copy unaligned result into temporary
3352 2008-05-28 Javier Miranda <miranda@adacore.com>
3354 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3355 for user-defined predefined primitives.
3357 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3358 (Find_Overridden_Synchronized_Primitive): Ditto.
3360 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3362 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3364 * a-ststio.adb, s-direio.adb:
3365 Further code clean up of previous change.
3368 2008-05-27 Vincent Celier <celier@adacore.com>
3370 * prj-nmsc.adb: Minor reformatting
3372 2008-05-27 Bob Duff <duff@adacore.com>
3374 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3375 untagged private type with a tagged full type, where the full type has
3376 a self reference, create the corresponding class-wide type early, in
3377 case the self reference is "access T'Class".
3379 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3381 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3382 tasks and context is an object declaration. create master entity before
3385 2008-05-27 Robert Dewar <dewar@adacore.com>
3387 * mlib-prj.adb: Minor reformatting
3389 * prj-part.adb: Minor reformatting
3391 * prj.ads: Minor reformatting
3393 * exp_ch3.adb: Minor reformatting.
3395 * sem_ch3.ads: Minor reformatting
3397 * sem_eval.adb: Minor reformatting
3399 2008-05-27 Vincent Celier <celier@adacore.com>
3402 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3404 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3406 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3407 tasks, create an activation chain now, before the expansion into
3408 assignments and build-in-place calls that require the presence of an
3410 (Backend_Processing_Possible): If the component type is inherently
3411 limited, the aggregate must be expanded into individual built-in-place
3414 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3415 determine whether an allocation extra parameter must be built, to
3416 handle case of a private type whose full type is a discriminated type
3419 2008-05-27 Bob Duff <duff@adacore.com>
3422 Document the new behavior regarding trampolines.
3424 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3426 * a-direio.adb, a-sequio.adb: Replace address clause by
3427 unrestricted_access, simpler and compatible with .NET.
3429 2008-05-27 Vincent Celier <celier@adacore.com>
3432 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3433 a project file, so that symbolic links are not resolved.
3435 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3437 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3438 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3439 portable across GNAT targets, since this kind of address clause is not
3440 supported by VM back-ends (.NET/JGNAT).
3442 2008-05-27 Arnaud Charlet <charlet@adacore.com>
3444 * bindgen.adb: Update comments.
3446 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3448 2008-05-27 Vincent Celier <celier@adacore.com>
3450 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3451 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3452 mlib-tgt.adb, prj-env.adb, prj-env.ads:
3453 (Path_Information): New record type
3454 Use component of type Path_Information when there are two paths, one in
3455 canonical format and one in display format.
3456 Update the project manager to these new components.
3458 2008-05-27 Robert Dewar <dewar@adacore.com>
3460 * makeutl.adb: Minor reformatting
3461 * prj-nmsc.adb: Minor reformatting
3462 * s-stausa.adb: Minor reformatting
3463 * s-stausa.ads: Minor reformatting
3464 * sem_ch6.adb: Minor reformatting
3466 2008-05-27 Thomas Quinot <quinot@adacore.com>
3468 * sem_res.adb: Minor comment fixes
3470 2008-05-27 Thomas Quinot <quinot@adacore.com>
3472 * makeutl.adb: Minor code reorganization
3474 * exp_aggr.adb: Add ??? comment
3477 * exp_ch6.adb: Minor reformatting
3479 2008-05-27 Quentin Ochem <ochem@adacore.com>
3481 * s-stausa.adb (Initialize): Updated result initialization, and
3482 initialization of environment stack.
3483 (Fill_Stack): Improved computation of the pattern zone, taking into
3484 account already filled at the calling point.
3485 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3486 Measure and Overflow_Guard.
3487 (Report_Result): Fixed computation of the result using new fields of
3490 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3491 params by more explicit Stack_Size / Max_Pattern_Size params.
3492 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3493 Added Stack_Used_When_Filling field.
3494 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3495 Min_Measure and Max_Measure fields.
3497 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3499 2008-05-27 Vincent Celier <celier@adacore.com>
3502 (Check_File): Make sure that a unit that replaces the same unit in a
3503 project being extended is properly processed.
3505 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3508 (Get_Discr_Value): Remove obsolete code that failed to find the value
3509 of a discriminant for an inherited task component appearing in a type
3512 2008-05-27 Thomas Quinot <quinot@adacore.com>
3514 (System.File_IO.{Close, Delete, Reset}):
3515 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3517 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3518 Pass File parameter by reference.
3520 2008-05-27 Vincent Celier <celier@adacore.com>
3523 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3524 sources of the same project that have the same object file name.
3525 (Find_Explicit_Sources): Always remove a source exception that was not
3528 2008-05-27 Thomas Quinot <quinot@adacore.com>
3530 * sem_ch3.adb: Minor reformatting
3532 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3535 (Is_Interface_Conformant): Handle properly a primitive operation that
3536 overrides an interface function with a controlling access result.
3537 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3538 inherited and overriding operations, omit as well the conformance check
3539 on result types, to prevent spurious errors.
3541 2008-05-27 Vincent Celier <celier@adacore.com>
3543 * makeutl.ads, makeutl.adb:
3544 (Set_Location): New procedure
3545 (Get_Location): New function
3546 (Update_Main): New procedure
3548 2008-05-27 Vincent Celier <celier@adacore.com>
3551 (Check_Library): Allow standard project to be extended as a static
3553 (Get_Mains): Do not inherit attribute Main in an extending library
3556 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
3558 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3559 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3560 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3561 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3562 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3563 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3564 * system-mingw.ads (Always_Compatible_Rep): Likewise.
3565 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3566 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3567 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3569 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3571 * sem_attr.adb: add guard to previous patch.
3573 2008-05-27 Ed Schonberg <schonberg@adacore.com>
3575 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3576 a synchronized tagged type, do not attempt to build dispatch table for
3577 full view. The table is built for the corresponding record type, which
3578 has its own declaration.
3580 2008-05-27 Gary Dismukes <dismukes@adacore.com>
3582 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3583 to the known type entity E, rather than setting it to Any_Type. Fixes
3584 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3585 for objects whose type had an illegal constraint.
3587 2008-05-27 Vincent Celier <celier@adacore.com>
3590 Add succinct documentation for attribute Excluded_Source_List_File
3592 2008-05-27 Vincent Celier <celier@adacore.com>
3594 * prj-attr.adb: Add new project level attribute Map_File_Option
3596 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3598 * prj.ads: Minor reformatting and comment update
3599 (Project_Configuration): New component Map_File_Option
3601 * snames.adb: New standard name Map_File_Option
3603 * snames.ads: New standard name Map_File_Option
3605 2008-05-27 Vincent Celier <celier@adacore.com>
3607 * xsnames.adb: Remove unused variable Oname
3609 2008-05-27 Doug Rupp <rupp@adacore.com>
3612 (Expand_N_Function_Call): Fix comments. Minor reformatting.
3615 (Expand_Vax_Foreign_Return): Fix comments.
3617 2008-05-27 Thomas Quinot <quinot@adacore.com>
3619 * exp_dist.adb: Minor reformating
3621 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3623 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3624 No_Default_Initialization, which is now delayed until the freeze point
3625 of the object. Add a comment about deferral of the check.
3627 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3628 on objects is moved here.
3630 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3632 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3633 (Compare_Array_S16): Adjust for above change.
3634 * s-casi32.adb (Uword): Likewise.
3635 (Compare_Array_S32): Likewise.
3636 * s-casi64.adb (Uword): Likewise.
3637 (Compare_Array_S64): Likewise.
3638 * s-caun16.adb (Uhalf): Likewise.
3639 (Compare_Array_U16): Likewise.
3640 * s-caun32.adb (Uword): Likewise.
3641 (Compare_Array_U32): Likewise.
3642 * s-caun64.adb (Uword): Likewise.
3643 (Compare_Array_U64): Likewise.
3645 2008-05-26 Robert Dewar <dewar@adacore.com>
3647 * exp_ch6.adb: Add ??? comment for previous change
3649 * exp_vfpt.adb: Minor reformatting
3651 * exp_vfpt.ads: Add ??? comment for last change
3653 * sem_attr.adb: Add some ??? comments for previous change
3655 * s-vaflop.ads: Add comments for previous change
3657 2008-05-26 Doug Rupp <rupp@adacore.com>
3659 * s-vaflop-vms-alpha.adb:
3660 Remove System.IO use clause, to prevent spurious ambiguities when
3661 package is access through rtsfind.
3663 2008-05-26 Sergey Rybin <rybin@adacore.com>
3665 * tree_io.ads (ASIS_Version_Number): Update because of the changes
3668 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3671 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
3672 converted to S (A)'address only if A .. B is known to be a non-null
3675 2008-05-26 Doug Rupp <rupp@adacore.com>
3678 (Return_D, Return_F, Return_G): New functions.
3681 (Return_D, Return_F, Return_G): New functions.
3684 (Expand_Vax_Foreign_Return): New procedure
3687 (Expand_Vax_Foreign_Return): New procedure
3690 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
3691 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
3695 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
3697 * s-vaflop-vms-alpha.adb:
3698 (Return_D, Return_F, Return_G): New functions.
3700 2008-05-26 Gary Dismukes <dismukes@adacore.com>
3702 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
3703 init proc entity when there is actual default initialization associated
3704 with the component type, to avoid spurious errors on objects of scalar
3705 array types that are marked Is_Public when No_Default_Initialization
3708 2008-05-26 Thomas Quinot <quinot@adacore.com>
3710 * rtsfind.ads, rtsfind.adb:
3711 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
3712 (Check_RPC): Support per-PCS-kind API versioning.
3714 exp_dist.ads, exp_dist.adb:
3715 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
3716 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
3717 library function Get_RACW.
3718 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
3719 library function Get_Reference.
3720 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
3721 through an intermediate Any.
3722 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
3723 going through an intermediate Any.
3725 * sem_dist.adb: Minor reformatting.
3727 2008-05-26 Javier Miranda <miranda@adacore.com>
3729 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
3730 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3731 (Is_Internal): Adding documentation on internal entities that have
3732 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
3734 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
3735 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
3736 Added assertion to force entities with this attribute to have
3737 attribute Is_Internal set to True.
3738 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
3740 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
3741 renamed as Derive_Progenitor_Subprograms. In addition, its code is
3742 a new implementation.
3743 (Add_Interface_Tag_Components): Remove special management of
3744 synchronized interfaces.
3745 (Analyze_Interface_Declaration): Minor reformating
3746 (Build_Derived_Record_Type): Minor reformating
3747 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
3748 predefined primitive inherited from interface type because the body of
3749 internally generated predefined primitives of tagged types are generated
3750 later by Freeze_Type
3751 (Derive_Subprogram): Avoid generating an internal name if the parent
3752 subprogram overrides an interface primitive.
3753 (Derive_Subprograms): New implementation that keeps separate the
3754 management of tagged types not implementing interfaces, from tagged
3755 types that implement interfaces.
3756 (Is_Progenitor): New implementation.
3757 (Process_Full_View): Add documentation
3758 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
3759 by call to Derive_Progenitor_Subprograms.
3761 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
3762 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3763 Skip_Controlling_Formals.
3765 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
3766 (Check_Conventions): New implementation. Remove local subprogram
3767 Skip_Check. Remove formal Search_From of routine Check_Convention.
3768 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
3769 Skip_Controlling_Formals.
3770 (New_Overloaded_Entity): Enable addition of predefined dispatching
3774 (Find_Primitive_Covering_Interface): New subprogram.
3776 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
3777 the task body procedure as a primitive of the corresponding tagged
3779 (Check_Operation_From_Private_Type): Avoid adding twice an entity
3780 to the list of primitives.
3781 (Find_Primitive_Covering_Interface): New subprogram.
3782 (Override_Dispatching_Operation): Add documentation.
3784 * sem_type.adb (Covers): Minor reformatings
3786 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
3789 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
3790 (Implements_Interface): New subprogram.
3791 (Is_Parent): Removed.
3792 (Primitive_Names_Match): New subprogram.
3793 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3794 (Ultimate_Alias): New subprogram.
3796 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
3798 Remove special management for synchronized types. Rename formal. Remove
3799 internal subprograms Interface_Present_In_Parent and Add_Interface.
3800 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
3801 on non-record types by code to return false in such case.
3802 (Implements_Interface): New subprogram.
3803 (Is_Parent): Removed. No special management is now required for
3804 synchronized types covering interfaces.
3805 (Primitive_Names_Match): New subprogram.
3806 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
3807 (Ultimate_Alias): New subprogram.
3809 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
3810 Add internal entities associated with secondary dispatch tables to
3811 the list of tagged type primitives that are not interfaces.
3812 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
3813 (Make_Predefined_Primitive_Specs): Code reorganization to improve
3814 the management of predefined equality operator. In addition, if
3815 the type has an equality function corresponding with a primitive
3816 defined in an interface type, the inherited equality is abstract
3817 as well, and no body can be created for it.
3819 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
3820 exp_util to exp_disp.
3821 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
3822 an entity corresponds with one of the predefined primitives required
3823 to implement interfaces.
3824 Update copyright notice.
3826 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
3827 final check on abstract subprograms all the primitives associated with
3828 interface primitives because they must be visible in the public and
3830 (Write_DT): Use Find_Dispatching_Type to locate the name of the
3831 interface type. This allows the use of this routine, for debugging
3832 purposes, when the tagged type is not fully decorated.
3833 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
3834 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
3835 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
3836 entity corresponds with one of the predefined primitives required to
3837 implement interfaces.
3839 * exp_util.adb (Find_Interface_ADT): New implementation
3840 (Find_Interface): Removed.
3842 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
3843 list of interfaces associated with nodes
3844 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
3846 2008-05-26 Thomas Quinot <quinot@adacore.com>
3848 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
3849 condition for assignment to temporary.
3851 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3853 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
3854 checks on the upper bound if the index type is a modular type, to
3855 prevent wrap-around computations when size is close to upper bound of
3858 2008-05-26 Robert Dewar <dewar@adacore.com>
3860 * sem_ch3.adb: Minor reformatting
3862 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3864 * sem_ch12.adb (Remove_Parent): Use specification of instance
3865 to retrieve generic parent,
3866 to handle properly the case where the instance is a child unit.
3867 Add guard to handle properly wrapper packages.
3870 2008-05-26 Thomas Quinot <quinot@adacore.com>
3872 * sinfo.ads: Minor reformatting
3874 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3876 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
3877 Generate a tag check when the result subtype of a function, defined by
3878 an access definition, designates a specific tagged type.
3879 (Make_Tag_Check): New routine.
3881 2008-05-26 Arnaud Charlet <charlet@adacore.com>
3883 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
3885 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
3887 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
3888 (builtin_decl_for): Likewise.
3889 * trans.c (gigi): Likewise.
3890 * utils.c (def_builtin_1): Fix formatting.
3892 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
3894 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
3895 Create the statements which map a string name to protected or task
3898 * exp_ch9.adb: Add with and use clause for Stringt.
3899 Minor code reformatting.
3900 (Build_Entry_Names): New routine.
3901 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
3902 for flag Build_Entry_Names which controls the allocation of the data
3903 structure for the string names of entries.
3905 * exp_ch9.ads (Build_Entry_Names): New subprogram.
3907 * exp_util.adb (Entry_Names_OK): New function.
3909 * exp_util.ads (Entry_Names_OK): New function.
3911 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
3912 enumerations RE_Id and RE_Unit_Table.
3914 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
3915 (Free_Entry_Names_Array): New routine.
3917 * s-taskin.ads: Comment reformatting.
3918 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
3919 Add component Entry_Names to record Ada_Task_Control_Block.
3920 (Free_Entry_Names_Array): New routine.
3922 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
3923 dynamically allocate an array
3924 of string pointers. This structure holds string entry names.
3925 (Free_Entry_Names): New routine.
3926 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
3927 (Set_Entry_Names): New routine.
3930 (Create_Task): Add formal Build_Entry_Names. The flag is used to
3931 control the allocation of the data structure which stores entry names.
3932 (Set_Entry_Name): New routine.
3935 Add with and use clause for Ada.Unchecked_Conversion.
3936 (Finalize): Deallocate the entry names array.
3937 (Free_Entry_Names): New routine.
3938 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
3939 create an array of string pointers to hold the entry names.
3940 (Set_Entry_Name): New routine.
3943 Add field Entry_Names to record Protection_Entries.
3944 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
3945 (Set_Entry_Name): New routine.
3947 2008-05-26 Vincent Celier <celier@adacore.com>
3950 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
3953 (Project_Configuration): New component Shared_Lib_Driver
3955 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3958 (Cleanup_Scopes): For a protected operation, transfer finalization list
3959 to protected body subprogram, to force cleanup actions when needed.
3961 2008-05-26 Robert Dewar <dewar@adacore.com>
3963 * sem_cat.adb: Minor reformatting
3965 * gnatname.adb: Minor reformatting
3967 * osint.ads: Minor reformatting
3969 * s-carun8.ads: Minor reformatting
3971 * g-heasor.ads: Minor comment fix (unit is now pure)
3973 2008-05-26 Robert Dewar <dewar@adacore.com>
3976 (Expand_Current_Value): Properly type generated integer literal
3978 2008-05-26 Sergey Rybin <rybin@adacore.com>
3980 * gnat_ugn.texi: Add description for the new gnatcheck rule -
3981 Separate_Numeric_Error_Handlers.
3983 2008-05-26 Pascal Obry <obry@adacore.com>
3985 * sem_aggr.adb: Minor reformatting.
3987 2008-05-26 Jose Ruiz <ruiz@adacore.com>
3990 (To_Target_Priority): Setting the time slice value to 0 or greater sets
3991 the scheduling policy to FIFO within priorities or round-robin
3993 Hence, the priority must be set in this case to the one selected by the
3996 2008-05-26 Ed Schonberg <schonberg@adacore.com>
3999 (Remove_Parent): If the enclosing scope is an instance whose generic
4000 parent is declared within some parent scope of the just completed
4001 instance, make full views of the entities in that parent visible, when
4004 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
4006 * mingw32.h (STD_MINGW): Set to true for target w64.
4008 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
4010 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4011 instead of TREE_STATIC on the ADDR_EXPR.
4013 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
4015 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4016 (Sloc_to_locus): Do not overwrite known GCC locations when translating
4017 GNAT standard locations.
4019 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4021 * gigi.h (mark_visited): Declare.
4022 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4023 only the topmost node of expressions.
4024 (elaborate_expression_1): Look deeper for read-only variables.
4025 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4026 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
4027 (mark_visited_r): New function.
4029 2008-05-23 Vincent Celier <celier@adacore.com>
4031 * snames.adb: New standard name Excluded_Source_List_File.
4033 * snames.ads: New standard name Excluded_Source_List_File.
4035 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
4037 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
4038 Get excluded sources from
4039 file indicated by attribute Excluded_Source_List_File, when present and
4040 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4042 2008-05-23 Robert Dewar <dewar@adacore.com>
4044 * exp_dist.adb: Minor reformatting
4046 2008-05-23 Ed Schonberg <schonberg@adacore.com>
4048 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4049 slice, convert it to an indexed component, which is equivalent, more
4050 efficient, and usable even if the slice itself is not addressable.
4052 2008-05-23 Olivier Hainque <hainque@adacore.com>
4054 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4055 convention also allows access to named compiler built-in subprograms
4056 such as the GCC __builtin family.
4058 2008-05-23 Vincent Celier <celier@adacore.com>
4060 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4061 sep. If there are several possibilities, choose the one with the
4064 2008-05-23 Vincent Celier <celier@adacore.com>
4066 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4067 back end switches when executable specified with --GCC= is same as
4068 default, even if there are additional options.
4071 Document when the back end switches from the ALI file are taken into
4072 account when gnatlink is invoked with --GCC=
4074 2008-05-23 Thomas Quinot <quinot@adacore.com>
4077 (copy_File): Do not open destination file if source file is unreadable.
4079 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4081 * utils.c (handle_type_generic_attribute): Adjust to accept
4082 fixed arguments before an elipsis.
4084 2008-05-21 Thomas Quinot <quinot@adacore.com>
4086 * g-sothco.ads, g-sothco.adb: New files.
4088 2008-05-20 Thomas Quinot <quinot@adacore.com>
4090 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4092 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4093 Add missing "with" of Ada.Unchecked_Conversion
4095 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4096 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4097 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4098 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4099 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4100 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
4101 Move common code out of GNAT.Sockets.Thin implementations and into
4103 New constant SIZEOF_fd_set
4104 New flag Has_Sockaddr_Len
4105 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4107 * g-stsifd-sockets.adb
4108 (Create): Remove call to Set_Length; use Set_Family to set the family
4109 and (on appropriate platforms) length fields in struct sockaddr.
4111 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4112 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
4113 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4114 Move common code out of GNAT.Sockets.Thin implementations and into
4117 * g-socket.ads, g-socket.adb:
4118 Move common code out of GNAT.Sockets.Thin implementations and into
4120 (Connect_Socket, Accept_Socket): Provide new versions of these two
4121 routines that operate with a user specified timeout.
4122 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4123 this is now handled automatically by Set_Family on platforms that
4127 Move common code out of GNAT.Sockets.Thin implementations and into
4129 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4130 this constant to 0 (not -1) because we use it to initialize an
4131 unsigned_char value.
4132 Align values for numeric constants only.
4133 Handle the case of systems that do not support AF_INET6.
4134 New constant SIZEOF_fd_set
4135 New flag Has_Sockaddr_Len
4136 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4138 * gsocket.h: New flag Has_Sockaddr_Len
4139 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4141 2008-05-20 Santiago Uruena <uruena@adacore.com>
4143 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4145 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4147 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4148 the underlying issue with malloc/free has been fixed. Remove associated
4151 Related to PR ada/24533
4153 2008-05-20 Robert Dewar <dewar@adacore.com>
4155 * ali.adb: Correct casing of ASCII.NUL
4157 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4160 2008-05-20 Robert Dewar <dewar@adacore.com>
4161 Gary Dismukes <dismukes@adacore.com>
4163 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4164 overflow if result converted to wider integer type.
4165 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4166 discriminated types when discriminant checks are suppressed.
4168 2008-05-20 Vincent Celier <celier@adacore.com>
4170 * cstand.adb (Print_Standard): Issue the correct Size clause for type
4171 Wide_Wide_Character.
4173 2008-05-20 Tristan Gingold <gingold@adacore.com>
4175 * decl.c: Do not emit a variable for a object that has an address
4176 representation clause whose value is known at compile time.
4177 When a variable has an address clause whose value is known at compile
4178 time, refer to this variable by using directly the address instead of
4179 dereferencing a pointer.
4181 2008-05-20 Robert Dewar <dewar@adacore.com>
4184 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4185 subtypes, always False for non-modular types.
4186 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4187 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4188 for Shared_Storage package.
4189 (Is_RACW_Stub_Type): New entity flag.
4192 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4193 case where we have a modular type with a non-binary modules.
4194 Comments reformattings.
4196 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4199 2008-05-20 Javier Miranda <miranda@adacore.com>
4202 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4203 tests did not covered the case in which the type of the aggregate has
4204 no progenitors but some its parents has progenitors.
4206 2008-05-20 Gary Dismukes <dismukes@adacore.com>
4207 Hristian Kirtchev <kirtchev@adacore.com>
4210 (Expand_N_Object_Declaration): Correct the condition which triggers the
4211 generation of a call to Displace when initializing a class-wide object.
4212 (Build_Dcheck_Functions): Build discriminant-checking for null variants
4213 when Frontend_Layout_On_Target is true to ensure that they're available
4214 for calling when a record variant size function is built in Layout.
4216 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4218 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4219 procedure for a derived type retrieve the discriminant values from the
4220 parent using the corresponding discriminant.
4221 (Expand_N_Assignment_Statement): Skip generation of implicit
4222 if-statement associated with controlled types if we are
4223 compiling with restriction No_Finalization.
4225 2008-05-20 Vincent Celier <celier@adacore.com>
4227 * prj.adb (Hash (Project_Id)): New function
4228 (Project_Empty): Add new component Interfaces_Defined
4230 * prj.ads (Source_Data): New component Object_Linked
4231 (Language_Config): New components Object_Generated and Objects_Linked
4232 (Hash (Project_Id)): New function
4233 (Source_Data): New Boolean components In_Interfaces and
4234 Declared_In_Interfaces.
4235 (Project_Data): New Boolean component Interfaces_Defined
4238 New project level attribute Object_Generated and Objects_Linked
4239 Add new project level attribute Interfaces
4241 * prj-dect.adb: Use functions Present and No throughout
4242 (Parse_Variable_Declaration): If a string type is specified as a simple
4243 name and is not found in the current project, look for it also in the
4244 ancestors of the project.
4247 Replace procedure Make with procedures Initialize, Process and Finalize
4248 to implement H414-023: process different directories with different
4250 Use functions Present and No throughout
4253 Replace procedure Make with procedures Initialize, Process and Finalize
4256 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4257 the language configuration.
4258 (Process_Project_Level_Array_Attributes): Process new attributes
4259 Object_Generated and Object_Linked.
4260 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4261 False, to indicate that the erreor/warning is a continuation.
4262 (Check): Call Report_No_Sources with Contnuation = True after the first
4264 (Error_Msg): Process successively contnuation character and warning
4266 (Find_Explicit_Sources): Check that all declared sources have been found
4267 (Check_File): Indicate in hash table Source_Names when a declared source
4269 (Check_File): Set Other_Part when found
4270 (Find_Explicit_Sources): In multi language mode, check if all exceptions
4271 to the naming scheme have been found. For Ada, report an error if an
4272 exception has not been found. Otherwise, disregard the exception.
4273 (Check_Interfaces): New procedure
4274 (Add_Source): When Other_Part is defined, set mutual pointers in spec
4276 (Check): In multi-language mode, call Check_Interfaces
4277 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4278 for an excluded source.
4279 (Remove_Source): A source replacing a source in the interfaces is also
4282 * prj-pars.adb: Use function Present
4284 * prj-part.adb: Use functions Present and No throughout
4285 (Parse_Single_Project): Set the parent project for child projects
4286 (Create_Virtual_Extending_Project): Register project with no qualifier
4287 (Parse_Single_Project): Allow an abstract project to be extend several
4288 times. Do not allow an abstract project to extend a non abstract
4291 * prj-pp.adb: Use functions Present and No throughout
4292 (Print): Take into account the full associative array attribute
4295 * prj-proc.adb: Use functions Present and No throughout
4296 (Expression): Call itself with the same From_Project_Node for the
4297 default value of an external reference.
4299 * prj-strt.adb: Use functions Present and No throughout
4300 (Parse_Variable_Reference): If a variable is specified as a simple name
4301 and is not found in the current project, look for it also in the
4302 ancestors of the project.
4304 * prj-tree.ads, prj-tree.adb (Present): New function
4306 Use functions Present and No throughout
4307 (Parent_Project_Of): New function
4308 (Set_Parent_Project_Of): New procedure
4310 * snames.ads, snames.adb:
4311 Add new standard names Object_Generated and Objects_Linked
4313 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4315 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4316 and the derived type are of the same kind.
4317 (Expand_Call): Generate type conversions for actuals of
4318 record or array types when the parent and the derived types differ in
4319 size and/or packed status.
4321 2008-05-20 Javier Miranda <miranda@adacore.com>
4322 Ed Schonberg <schonberg@adacore.com>
4324 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4325 generating dispatch tables of locally defined tagged types statically.
4326 Remove implicit if-statement that is no longer required.
4327 (Expand_Dispatching_Call): If this is a call to an instance of the
4328 generic dispatching constructor, the type of the first argument may be
4329 a subtype of Tag, so always use the base type to recognize this case.
4331 2008-05-20 Thomas Quinot <quinot@adacore.com>
4334 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4335 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4336 assigning NULL into the result, to avoid a spurious warning.
4337 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4339 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4341 (Build_From_Any_Function, Build_To_Any_Function,
4342 Build_TypeCode_Function): For a type that has user-specified stream
4343 attributes, use an opaque sequence of octets as the representation.
4345 2008-05-20 Kevin Pouget <pouget@adacore.com>
4347 * exp_smem.ads, exp_smem.adb: Construction of access and assign
4348 routines has been replaced by an instantiation of
4349 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4350 shared variable declaration.
4351 Calls to access and assign routines have been replaced by calls to
4352 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4353 instantiated package.
4355 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4356 It identifies the new generic package added in s-shasto.
4358 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4359 is instantiated for each shared passive variable. It provides
4360 supporting procedures called upon each read or write access by the
4364 For this runtime unit (always compiled in GNAT mode), we allow
4365 stream attributes references for limited types for the case where
4366 shared passive objects are implemented using stream attributes,
4367 which is the default in GNAT's persistent storage implementation.
4369 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4372 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4373 convention from its base type, do not set the type to that of integer,
4374 because it may inherit a size clause.
4375 Warn on a size clause with a size different
4376 from that of Integer, if the type has convention C.
4378 2008-05-20 Vincent Celier <celier@adacore.com>
4381 (Scan_Args): Rewrite to take into account new switch --and to separate
4382 arguments into sections.
4383 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4384 section, then Finalize.
4386 2008-05-20 Tristan Gingold <gingold@adacore.com>
4388 * init.c: Enable stack probing on ppc-linux.
4390 * tracebak.c: Add symbolic traceback for ppc-linux.
4392 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4394 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4397 (common-tools): New rule, to avoid parallel build failure on gnat tools.
4398 Reenable parallel builds on this Makefile.
4400 * Make-lang.in: Update dependencies.
4402 2008-05-20 Robert Dewar <dewar@adacore.com>
4404 * opt.ads (Treat_Restrictions_As_Warnings): New switch
4406 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4407 Treat_Restrictions_As_Warnings.
4409 * switch-c.adb: Recognize new switch -gnatr
4411 * usage.adb: Add line for -gnatr
4413 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4416 (P_Access_Definition): Change the error message when parsing "access
4417 all" in Ada 95 mode. The message no longer forces the user to recompile
4418 in 05 mode only to discover that anonymous access types are not allowed
4421 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4424 (P_Protected): Update the error message on missing "-gnat05" switch when
4425 using interfaces in conjunction with protected types. Remove the
4426 incorrect error message associated with the presence of "private" after
4429 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4431 * sem_aggr.adb: Update comments.
4432 Improve previous change for PR ada/17985
4434 2008-05-20 Thomas Quinot <quinot@adacore.com>
4437 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4438 the visible part of the spec of a remote types unit.
4439 (Validate_Remote_Access_Object_Type_Declaration):
4440 New local subprogram Is_Valid_Remote_Object_Type, replaces
4441 Is_Recursively_Limited_Private.
4442 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4443 non-controlling formals (and the return type, even though this is not
4444 explicit in the standard) must support external streaming.
4445 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4446 as above for of RAS types and RCI subprograms. (The return type is not
4448 Update comments related to RACWs designating limited interfaces per
4449 ARG ruling on AI05-060.
4451 * sem_util.ads, sem_util.adb
4452 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4453 Is_Remote_Call_Interface to identify RACW types in a stable and
4454 consistent way. We used to rely in this predicate on the privateness of
4455 the designated type and its ancestors, but depending on the currently
4456 visible private parts, this caused false negatives. We now uniformly
4457 rely on checks made at the point where the RACW type is declared.
4458 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4460 2008-05-20 Javier Miranda <miranda@adacore.com>
4461 Ed Schonberg <schonberg@adacore.com>
4462 Hristian Kirtchev <kirtchev@adacore.com>
4465 (Analyze_Object_Declaration): Fix over-conservative condition
4466 restricting use of predefined assignment with tagged types that have
4468 (Analyze_Object_Declaration): Relax the check regarding deferred
4469 constants declared in scopes other than packages since they can be
4470 completed with pragma Import.
4471 Add missing escaping of all-caps word 'CPP' in error messages.
4472 (Build_Discriminated_Subtype): Do not inherit representation clauses
4473 from parent type if subtype already carries them, because they are
4474 inherited earlier during derivation and already include those that may
4475 come from a partial view.
4477 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4478 Check the declarations of a subprogram body for proper deferred
4479 constant completion.
4481 * sem_ch7.ads, sem_ch7.adb
4482 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4484 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4485 Thomas Quinot <quinot@adacore.com>
4488 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4489 F is a parameterless function that returns an array, and S is a subtype
4491 (Analyze_Call): Insert dereference when the prefix is a parameterless
4492 function that returns an access to subprogram and the call has
4494 Reject a non-overloaded call whose name resolves to denote
4495 a primitive operation of the stub type generated to support a remote
4496 access-to-class-wide type.
4498 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4501 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4502 when there is a use clause for the same entity in the context.
4503 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4504 created for a stream attribute of an abstract type or interface type.
4506 2008-05-20 Thomas Quinot <quinot@adacore.com>
4508 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4512 (Add_One_Interp): Ignore any interpretation that is a primitive
4513 operation of an RACW stub type (these primitives are only executed
4514 through dispatching, never through static calls).
4515 (Collect_Interps): When only one interpretation has been found, set N's
4516 Entity and Etype to that interpretation, otherwise Entity and Etype may
4517 still refer to an interpretation that was ignored by Add_One_Interp,
4518 in which case would end up with being marked as not overloaded but with
4519 an Entity attribute not pointing to its (unique) correct interpretation.
4521 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4524 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4525 denotes the whole array of its prefix.
4527 2008-05-20 Robert Dewar <dewar@adacore.com>
4529 * sem_res.adb (Resolve_Op_Not): Warn on double negation
4531 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4534 (Print_Itype): Do not modify the sloc of the component type of a
4535 (packed) array itype, because it is an unrelated type whose source
4536 location is independent of the point of creation of the itype itself.
4538 2008-05-20 Thomas Quinot <quinot@adacore.com>
4540 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4543 2008-05-20 Robert Dewar <dewar@adacore.com>
4544 Vincent Celier <celier@adacore.com>
4546 * vms_data.ads: Add entry for -gnatr
4547 Put GNAT SYNC section in proper alpha order
4548 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4550 * gnat_ugn.texi: Add documentation for new gnatname switch --and
4551 Update the style checks section
4552 Add documentation of -gnatr
4553 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4554 subsection the explanation how compiler checks should be disabled for
4556 Update the list of Ada 95 reserved words used by in the project language
4557 Add documentation for project qualifiers.
4558 Document that abstract projects may be extended by different projects in
4559 the same project tree.
4560 Add documentation for gnatmake switch -d
4562 * ug_words: Add -gnatyy VMS equivalence string.
4563 Add entry for -gnatr
4565 2008-05-20 Bob Duff <duff@adacore.com>
4568 (Set_Handler): Remove code from both of these that implements
4569 RM-D.15(15/2), because it causes a race condition and potential
4571 (Process_Queued_Events): Add comment explaining "exception when others
4572 => null". Add clarifying ".all", even though implicit .all is legal
4575 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4577 * s-winext.ads: Replace representation clause by pragma Pack. Gives
4578 equivalent representation, but has the advantage of allowing
4579 compilation of this file under 64 bits platforms.
4581 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4583 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4586 Don't define dummy implementation of convert_addresses on ppc-linux.
4588 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4591 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4592 if expression is aggregate component.
4594 2008-05-20 Robert Dewar <dewar@adacore.com>
4596 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4597 sem_ch12.adb: Update comments. Minor reformatting.
4601 * s-unstyp.ads: Fixed some typos in comments.
4603 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4605 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4608 * g-socthi-vxworks.ads: Update to latest socket changes.
4610 * a-caldel-vms.adb: Resync with a-caldel spec.
4612 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4615 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
4617 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4618 for dummy types pointed to by the converted pointer types.
4620 2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
4622 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4623 of records and unions.
4624 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4626 2008-05-14 Samuel Tardieu <sam@rfc1149.net>
4627 Robert Dewar <dewar@adacore.com>
4629 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4630 restrictions to the prefix of 'Old.
4631 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4632 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4635 2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
4639 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
4640 expression to an integral type with lower precision, use NOP_EXPR
4641 directly in a couple of special cases.
4643 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
4644 Ed Schonberg <schonberg@adacore.com>
4646 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
4647 constraint expressions.
4649 2008-05-12 Tomas Bily <tbily@suse.cz>
4651 * utils2.c (known_alignment, contains_save_expr_p)
4652 (gnat_mark_addressable): Use CASE_CONVERT.
4653 * decl.c (annotate_value): Likewise.
4654 * trans.c (maybe_stabilize_reference): Likewise.
4655 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
4656 * utils.c (rest_of_record_type_compilation): Likewise.
4657 * trans.c (protect_multiple_eval, Attribute_to_gnu)
4658 (protect_multiple_eval): Likewise.
4660 2008-05-08 Andreas Schwab <schwab@suse.de>
4662 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
4663 DECL_IS_PURE to DECL_PURE_P.
4665 2008-05-05 Eric Botcazou <ebotcazou@adacore.com>
4667 * decl.c (maybe_pad_type): Add ??? comment.
4669 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4671 * decl.c (components_to_record): Zero the alignment of the qualified
4672 union built for the variant part upon creating it.
4674 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
4676 * decl.c (maybe_pad_type): Try to get a form of the type with integral
4677 mode even if the alignment is not a factor of the original size. But
4678 make sure to create the inner field with the original size. Reorder.
4679 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
4680 record as always addressable.
4681 * utils.c (convert): Deal specially with conversions between original
4682 and packable versions of a record type.
4683 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
4684 recognizing an assignment between padded objects.
4686 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4688 * decl.c (make_packable_type): Resize the last component to its RM size
4689 only if it is of an aggregate type.
4690 * trans.c (call_to_gnu): Fix nit in comment.
4691 (gnat_to_gnu): Likewise.
4693 2008-04-30 Samuel Tardieu <sam@rfc1149.net>
4695 * Makefile.in: Adapt sh4-linux target.
4697 2008-04-29 Ed Schonberg <schonberg@adacore.com>
4700 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
4701 tagged type by an untagged protected or task type.
4703 2008-04-28 Eric Botcazou <ebotcazou@adacore.com>
4704 Tristan Gingold <gingold@adacore.com>
4707 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
4708 of aliased objects with an unconstrained nominal subtype.
4709 Cap the promotion to the effective alignment of the word mode.
4711 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4713 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
4714 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
4715 Use '&&' instead of ';'.
4717 2008-04-24 Olivier Hainque <hainque@adacore.com>
4719 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
4720 doesn't require signed arithmetic anymore.
4722 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
4724 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
4725 (call_to_gnu): Don't set TREE_INVARIANT.
4726 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
4728 2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
4730 * s-osinte-rtems.adb: Add sigalstack function.
4731 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
4732 function. Add Alternate_Stack and Alternate_Stack_Size.
4733 Add missing process_shared field to pthread_condattr_t
4734 and change ss_low_priority to int from timespec.
4736 2008-04-22 Samuel Tardieu <sam@rfc1149.net>
4738 * i-forbla.adb: Link against -llapack and -lblas by default
4739 instead of the private -lgnalasup.
4741 2008-04-21 Olivier Hainque <hainque@adacore.com>
4743 Access to most C builtins from Ada
4744 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
4745 (handle_pure_attribute, handle_novops_attribute,
4746 handle_nonnull_attribute, handle_sentinel_attribute,
4747 handle_noreturn_attribute, handle_malloc_attribute,
4748 handle_type_generic_attribute): New attribute handlers, from C fe.
4749 (gnat_internal_attribute_table): Map the new handlers.
4750 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
4751 (init_gigi_decls): ... here.
4752 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
4753 Move to a section dedicated to builtins processing.
4754 (build_void_list_node, builtin_type_for_size): New functions.
4755 (def_fn_type, get_nonnull_operand): Likewise.
4756 (install_builtin_elementary_type, install_builtin_function_types,
4757 install_builtin_attributes): Likewise.
4758 (fake_attribute_handler): Fake handler for attributes we don't
4760 (def_builtin_1): New function, worker for DEF_BUILTIN.
4761 (install_builtin_functions): New function.
4762 (gnat_install_builtins): Move to the builtins processing section.
4763 Now calling the newly introduced installers.
4765 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4767 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
4768 constant objects, but not exceptions.
4769 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
4771 * utils.c (create_var_decl_1): Likewise.
4772 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
4773 the type when copying to padded object and the source is a constructor.
4775 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4777 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
4778 alignment, reset it to zero if it would end up not being greater
4779 than that of the type.
4781 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4783 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
4784 the padded type has a variable size.
4786 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4788 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
4789 target pointer mechanism as soon as the size is not constant.
4791 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4793 * gigi.h (create_var_decl_1): Declare.
4794 (create_var_decl): Turn into a macro invoking create_var_decl_1.
4795 (create_true_var_decl): Likewise.
4796 * utils.c (create_var_decl_1): Make global and reorder parameters.
4797 (create_var_decl): Delete.
4798 (create_true_var_decl): Likewise.
4800 2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
4802 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
4804 * fe.h (Debug_Flag_Dot_A): Delete.
4805 * debug.adb (-gnatd.a): Update documentation.
4807 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
4809 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
4810 "not null" parameter.
4812 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
4814 * g-socket.adb: Add a message "IPv6 not supported" to the
4815 Socket_Error exception.
4817 2008-04-16 Samuel Tardieu <sam@rfc1149.net>
4820 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
4821 the type is known instead of the underlying type.
4823 2008-04-15 Ed Schonberg <schonberg@adacore.com>
4826 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4827 procedure for a derived type retrieve the discriminant values from
4828 the parent using the corresponding discriminant.
4830 2008-04-15 Samuel Tardieu <sam@rfc1149.net>
4831 Gary Dismukes <dismukes@adacore.com>
4834 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
4835 which is not an entity (and hence not a package).
4836 (End_Use_Package): Ditto.
4838 2008-04-15 Ed Schonberg <schonberg@adacore.com>
4841 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
4842 protected operation that matches the signature, not only an entry, a
4843 regular subprogram or a literal.
4845 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4847 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
4848 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
4849 if a size or alignment is specified. Do not take into account
4850 alignment promotions for the computation of the object's size.
4851 <type>: Call maybe_pad_type only if a size or alignment is specified.
4852 (maybe_pad_type): Really reuse the RM_Size of the original type if
4854 * trans.c (Attribute_to_gnu): Fix a couple of nits.
4855 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
4856 statements. Use the padded view of the type when copying between
4857 padded objects of the same underlying type.
4859 2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4861 * vms_data.ads: Fix typo in constant.
4862 * gen-soccon.c: Fix typo in error string.
4863 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
4865 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
4866 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
4867 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
4868 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
4869 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
4870 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
4871 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
4872 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
4873 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
4874 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
4875 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
4876 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
4877 sinfo.ads: Fix typos in comments.
4879 2008-04-14 Robert Dewar <dewar@adacore.com>
4881 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
4882 to every non-object and change error message.
4884 2008-04-14 Robert Dewar <dewar@adacore.com>
4886 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
4887 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
4890 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4893 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
4894 apply pragma Linker_Section on type.
4896 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4899 * sem_prag.adb (Error_Pragma_Ref): New.
4900 (Process_Convention): Specialized message for non-local
4901 subprogram renaming. Detect the problem in homonyms as well.
4903 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4906 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
4907 * sem_ch12.adb (Instantiate_Object): Use it.
4908 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
4909 storage pool denotes a variable as per RM 13.11(15).
4911 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4913 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
4914 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
4916 2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
4919 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
4920 line endings even on non-Unix platforms.
4922 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4925 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
4926 renaming information.
4928 2008-04-13 Samuel Tardieu <sam@rfc1149.net>
4931 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
4934 2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4936 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
4937 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
4938 snames.ads, sprint.adb, stand.ads, stringt.ads,
4939 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
4940 switch.ads, sysdep.c, table.adb, table.ads,
4941 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
4942 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
4943 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
4944 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
4945 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
4946 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
4949 * sem_ch10.adb, sem_ch10.ads,
4950 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
4951 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
4952 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
4953 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
4954 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
4955 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
4956 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
4957 sem_warn.ads: Fix comment typos.
4959 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
4960 s-soflin.ads, s-stalib.ads, s-stausa.adb,
4961 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
4962 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
4963 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
4964 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
4965 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
4966 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
4967 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
4968 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
4969 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
4970 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
4971 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
4972 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
4973 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
4974 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
4975 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
4976 sem_cat.adb, sem_cat.ads: Fix comment typos.
4978 2008-04-12 Joel Sherrill <joel@oarcorp.com>
4981 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
4983 2008-04-12 Arnaud Charlet <charlet@adacore.com>
4985 * s-linux-hppa.ads: Fix syntax errors.
4987 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4989 * gnat_ugn.texi: Fix typos.
4990 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
4991 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
4992 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
4993 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
4994 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
4995 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
4996 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
4997 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
4998 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
4999 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5000 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5001 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5002 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5003 s-osinte-darwin.ads, s-osinte-freebsd.ads,
5004 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5005 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5006 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5007 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5008 s-parame-hpux.ads, s-parame-vms-alpha.ads,
5009 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5010 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5011 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5012 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5013 s-rident.ads: Fix comment typos.
5015 2008-04-09 Samuel Tardieu <sam@rfc1149.net>
5018 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5019 environment if generic instance is a top-level one.
5021 2008-04-09 Doug Rupp <rupp@adacore.com>
5023 * decl.c (validate_size): Set minimum size for fat pointers same as
5024 access types. Code clean ups.
5026 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5027 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5029 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5031 * s-crtl.ads (malloc32) New function, alias for malloc
5032 (realloc32) New function, alias for realloc
5034 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5036 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5037 allocator size is 32 and default pointer size is 64.
5038 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5039 lhs type if smaller, whatever the modes.
5041 * gigi.h (malloc32_decl): New macro definition
5043 * utils.c (init_gigi_decls): New malloc32_decl
5044 Various code clean ups.
5046 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5047 Task_Address vice System.Address.
5049 * s-taspri-vms.ads: Import System.Aux_DEC
5050 (Task_Address): New subtype of System.Aux_DEC.Short_Address
5051 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5053 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5054 Task_Address vice System.Address.
5056 * s-inmaop-vms.adb: Import System.Task_Primitives
5057 (To_Address): Unchecked convert to Task_Address vice System.Address
5059 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5061 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5062 (To_Address) Unchecked convert to Task_Address vice System.Address
5064 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5066 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5068 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5070 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5071 (fdesc_type_node): Define.
5072 (null_fdesc_node): Likewise.
5073 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5074 uses descriptors for vtables and the type comes from a dispatch table,
5075 return the descriptor type.
5076 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5077 uses descriptors for vtables and the type comes from a dispatch table,
5078 build a descriptor in the static case and copy the existing one in the
5080 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5081 the type is a pointer-to-subprogram coming from a dispatch table,
5082 return the null descriptor.
5083 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5084 vtables, the source type is the descriptor type and the target type
5085 is a pointer type, first build the pointer.
5086 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5087 build the descriptor type and the null descriptor.
5089 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5091 * decl.c (prepend_attributes): Fix typo.
5092 * trans.c (Pragma_to_gnu): Likewise.
5093 * utils.c (gnat_genericize): Likewise.
5095 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5096 Richard Kenner <kenner@adacore.com>
5098 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5099 * decl.c (gnat_to_gnu_entity): Adjust for above change.
5100 <E_Record_Type>: Try to get a better form of the component for
5101 packing, even if it has an integral mode.
5102 <E_Record_Subtype>: Likewise.
5103 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5104 exception suppressing the final conversion between record types.
5106 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5108 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5109 alignment for space, promote the alignment of non-scalar variables with
5110 no size and alignment.
5111 * gigi.h (gnat_types_compatible_p): Declare.
5112 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5113 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
5114 * utils.c (gnat_types_compatible_p) : New predicate.
5115 (convert): Use it throughout to test for cases where a mere view
5116 conversion is sufficient.
5117 * utils2.c (build_binary_op): Minor tweaks.
5118 (build_unary_op): Likewise.
5120 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5122 * decl.c (adjust_packed): Expand comment.
5124 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5126 * s-tasuti.ads: Use Task_Address instead of System.Address.
5128 * makeutl.adb (Path_Or_File_Name): New function
5130 * nlists.ads, itypes.ads: Update comments.
5132 * s-crtl.ads (malloc32, realloc32): New functions.
5134 * s-auxdec.ads (Short_Address_Size): New constant.
5136 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5138 * s-ststop.ads, s-ststop.adb: New file.
5140 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5143 2008-04-08 Pascal Obry <obry@adacore.com>
5145 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5146 (Stop_Bits_Number): New type.
5147 (Parity_Check): Likewise.
5148 (Set): Add parameter to set the number of stop bits and
5149 the parity. Parameter timeout is now a duration instead
5152 * g-sercom-linux.adb:
5153 Implement the stop bits and parity support for GNU/Linux.
5154 Fix handling of timeout, it must be given in tenth of seconds.
5156 * g-sercom-mingw.adb:
5157 Implement the stop bits and parity support for Windows.
5158 Use new s-win32.ads unit instead of declaring Win32 services
5159 directly into this body.
5160 Update handling of timeout as now a duration.
5162 * s-win32.ads, s-winext.ads: New files.
5164 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5165 Arnaud Charlet <charlet@adacore.com>
5167 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5169 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5170 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5172 * s-osinte-lynxos-3.ads,
5173 (Alternate_Stack): Remove when not needed. Simplify declaration
5175 (Alternate_Stack_Size): New constant.
5177 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5178 'Unrestricted_Access.
5180 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5181 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5182 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5183 s-osinte-solaris.ads, s-osinte-vms.ads
5184 (SA_ONSTACK): New constant.
5185 (stack_t): New record type.
5186 (sigaltstack): New imported function.
5187 (Alternate_Stack): New imported variable.
5188 (Alternate_Stack_Size): New constant.
5190 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5192 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
5193 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5194 s-taspri-vms.ads (Task_Address): New subtype of System.Address
5195 (Task_Address_Size): New constant size of System.Address
5196 (Alternate_Stack_Size): New constant.
5198 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5199 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5200 Establish the alternate stack if the platform makes use of n alternate
5201 signal stack for stack overflows.
5202 (Create_Task): Take into account the alternate stack in the stack size.
5203 (Initialize): Save the address of the alternate stack into the ATCB for
5204 the environment task.
5205 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5207 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
5209 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5211 * s-intman-posix.adb:
5212 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5213 alternate signal stack for stack overflows.
5215 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5216 x86-64, adjust the saved value of the stack pointer if the signal was
5217 raised by a stack checking probe.
5218 (HP-UX section): Use global __gnat_alternate_stack as signal handler
5219 stack and only for SIGSEGV.
5220 (Linux section): Likewise on x86 and x86-64.
5222 (__gnat_map_signal): Now static.
5223 (__gnat_error_handler): Not static any more.
5224 (__gnat_adjust_context_for_raise): New function. Signal context
5225 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5226 propagation circuitry.
5227 (__gnat_error_handler): Second argument of a sigaction handler is a
5228 pointer, not an int, and is unused.
5229 Adjust signal context before mapping to exception.
5230 Install signal handlers for LynxOS case.
5232 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5233 (Task_Id): Set size to Task_Address_Size
5234 (To_Task_id): Unchecked convert from Task_Address vice System.Address
5235 (To_Address): Unchecked convert to Task_Address vice System.Address
5237 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5238 address into the ATCB if the platform makes use of an alternate signal
5239 stack for stack overflows.
5240 (Free_Task): Add call to Finalize_Attributes_Link.
5241 Add argument Relative_Deadline to pass the value specified for
5242 the task. This is not yet used for any target.
5244 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5245 the value specified for the task.
5247 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5249 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5250 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5251 s-vxwext-rtp.adb): New files.
5253 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5254 Minor updates to accomodate changes above.
5256 2008-04-08 Pascal Obry <obry@adacore.com>
5258 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5259 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5260 Use new s-win32.ads unit instead of declaration
5261 from s-osinte-mingw.ads.
5263 * s-osinte-mingw.ads:
5264 Move all non tasking based interface to s-win32.ads.
5266 * s-osprim-mingw.adb:
5267 Remove duplicated declarations and use s-win32.ads
5270 2008-04-08 Vincent Celier <celier@adacore.com>
5271 Arnaud Charlet <charlet@adacore.com>
5273 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5274 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5275 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5276 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5277 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5279 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5280 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5281 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5282 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5283 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5284 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5285 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5286 mlib-tgt-specific-mingw.adb: New names.
5289 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5291 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5292 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5293 Minor updates for VMS
5295 * gnatbl.c: Removed.
5297 2008-04-08 Thomas Quinot <quinot@adacore.com>
5299 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5300 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5301 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5302 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5303 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5304 ASCII.NUL throughout.
5306 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5307 Matthew Heaney <heaney@adacore.com>
5309 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5312 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5313 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5314 to convention for non-RM specs.
5315 Add descriptive header, and documented each operation
5316 document each operation
5318 2008-04-08 Robert Dewar <dewar@adacore.com>
5319 Bob Duff <duff@adacore.com>
5320 Gary Dismukes <dismukes@adacore.com>
5321 Ed Schonberg <schonberg@adacore.com>
5323 * alloc.ads: Add entries for Obsolescent_Warnings table
5325 * einfo.ads, einfo.adb: Minor reformatting.
5326 (Is_Discriminal): New subprogram.
5327 (Is_Prival): New subprogram.
5328 (Is_Protected_Component): New subprogram.
5329 (Is_Protected_Private): Removed.
5330 (Object_Ref, Set_Object_Ref): Removed.
5331 (Prival, Set_Prival): Change assertion.
5332 (Privals_Chain, Set_Privals_Chain): Removed.
5333 (Prival_Link, Set_Prival_Link): New subprogram.
5334 (Protected_Operation, Set_Protected_Operation): Removed.
5335 (Protection_Object, Set_Protection_Object): New subprogram.
5336 (Write_Field17_Name): Remove case for Object_Ref.
5337 (Write_Field20_Name): Add case for Prival_Link.
5338 (Write_Field22_Name): Remove case for Protected_Operation,
5340 Add case for Protection_Object.
5341 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5343 (Overlays_Constant): New flag
5344 (Is_Constant_Object): New predicate
5345 (Is_Standard_Character_Type): New predicate
5346 (Optimize_Alignment_Space): New flag
5347 (Optimize_Alignment_Time): New flag
5348 (Has_Postconditions): New flag
5349 (Obsolescent_Warrning): Field removed
5350 (Spec_PPC_List): New field
5351 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5352 subprograms to get and set the relative deadline associated to a task.
5354 * exp_attr.adb (May_Be_External_Call): Account for the case where the
5355 Access attribute is part of a named parameter association.
5356 (Expand_Access_To_Protected_Op): Test for the attribute occurring
5357 within an init proc and use that directly as the scope rather than
5358 traversing up to the protected operation's enclosing scope. Only apply
5359 assertion on Is_Open_Scopes in the case the scope traversal is done.
5360 For the init proc case use the address of the first formal (_init) as
5361 the protected object reference.
5362 Implement Invalid_Value attribute
5363 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5364 contents of the dispatch table there is no need to duplicate the
5365 itypes associated with record types (i.e. the implicit full view
5367 Implement Enum_Val attribute
5368 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5369 within _Postconditions procedure
5370 (Expand_N_Attribute_Reference, case Result): Implement new attribute
5372 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5373 a return statement calls a function that is not available in
5374 configurable runtime.
5375 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5376 (Expand_Non_Function_Return): Generate call to _Postconditions proc
5377 (Expand_Simple_Function_Return): Ditto
5379 * frontend.adb: Add call to Sem_Aux.Initialize
5381 * sem_aux.ads, sem_aux.adb: New file.
5383 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5384 Add new Pragma_Relative_Deadline.
5385 Add support for pragmas Check and Check_Policy
5387 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5388 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5389 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5390 missing check because they are not allowed in CPP tagged types.
5391 Add Sure parameter to Note_Possible_Modification calls
5392 Add implementation of Invalid_Value attribute
5393 Implement new attribute Has_Tagged_Values
5394 Implement Enum_Val attribute
5395 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5396 generated attributes.
5397 (Analyze_Attribute, case Result): If prefix of the attribute is
5398 overloaded, it always resolves to the enclosing function.
5399 (Analyze_Attribute, case Result): Properly deal with analysis when
5400 Postconditions are not active.
5401 (Resolve_Attribute, case Result): Properly deal with appearence during
5402 preanalysis in spec.
5403 Add processing for attribute Result
5405 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5407 (Analyze_Subprogram_Body): Install private_with_clauses when the body
5409 (Check_Inline_Pragma): recognize an inline pragma that appears within
5410 the subprogram body to which it applies.
5411 (Analyze_Function_Return): Check that type of the expression of a return
5412 statement in a function with a class-wide result is not declared at a
5413 deeper level than the function.
5414 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5415 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5416 user- defined operators.
5417 (Install_Formals): Moved to spec to allow use from Sem_Prag for
5418 analysis of precondition/postcondition pragmas.
5419 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5420 Last_Formal, along with lots of comments on what this is about
5421 (Analyze_Subprogram_Body): Fix case where we move entities from the
5422 spec to the body when there are no body entities (now possible with
5423 precondition and postcondition pragmas).
5424 (Process_PPCs): New procedure
5425 (Analyze_Subprogram_Body): Add call to Process_PPCs
5427 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5429 (Pop_Scope): Restore Check_Policy_List on scope exit
5430 (Push_Scope): Save Check_Policy_List on scope entry
5431 Change name In_Default_Expression => In_Spec_Expression
5432 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5433 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5434 (Analyze_Object_Renaming): Allow 'Reference as object
5435 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5436 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5437 of restriction identifier.
5438 Add Sure parameter to Note_Possible_Modication calls
5440 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5441 Don't check for primitive operations when calling Rep_Item_Too_Late.
5442 (Process_Import_Or_Interface): Do not place flag on formal
5444 (Analyze_Pragma, case Export): If the entity is a deferred constant,
5445 propagate information to full view, which is the one elaborated by the
5447 (Make_Inline): the pragma is effective if it applies to an internally
5448 generated subprogram declaration for a body that carries the pragma.
5449 (Analyze_Pragma, case Optimize_Alignment): Set new flag
5450 Optimize_Alignment_Local.
5451 (Analyze_PPC_In_Decl_Part): New procedure
5452 (Get_Pragma_Arg): Moved to outer level
5453 (Check_Precondition_Postcondition): Change to allow new visibility
5454 rules for package spec
5455 (Analyze_Pragma, case Check_Policy): Change placement rules to be
5456 same as pragma Suppress/Unsuppress.
5457 Change name In_Default_Expression => In_Spec_Expression
5458 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5459 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5460 (Check_Precondition_Postcondition): Do proper visibility preanalysis
5461 for the case of these pragmas appearing in the spec.
5462 (Check_Enabled): New function
5463 (Initialize): New procedure
5464 (Tree_Read): New procedure
5465 (Tree_Write): New procedure
5466 (Check_Precondition_Postcondition): New procedure
5467 Implement pragmas Check and Check_Policy
5468 Merge Assert processing with Check
5470 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5471 New warning flag -gnatw.e
5473 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5474 returning whether a task (or main procedure) has a pragma
5476 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5477 (or main procedure) has a pragma Relative_Deadline.
5478 Add Next_Pragma field to N_Pragma node
5479 (PPC_Enabled): New flag
5480 (Next_Pragma): Now used for Pre/Postcondition processing
5482 * snames.h, snames.ads, snames.adb: New standard name
5484 Add entry for 'Invalid_Value attribute
5485 Add entry for new attribute Has_Tagged_Values
5486 Add entry for Enum_Val attribute
5487 Add new standard names Aggregate, Configuration and Library.
5490 Add Pragma_Precondition
5491 Add Pragma_Postcondition
5492 Add Attribute_Result
5493 New standard name Archive_Builder_Append_Option
5494 (Preset_Names): Add _relative_deadline and relative_deadline definitions
5495 There was also a missing non_preemptive_within_priorities.
5496 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5498 Add support for pragmas Check and Check_Policy
5500 * tree_gen.adb: Call Sem_Aux.Tree_Write
5502 * tree_in.adb: Call Sem_Aux.Tree_Read
5504 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5507 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5510 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5511 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5513 (Expand_Pragma_Check): New procedure
5515 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5518 * sinfo.adb (PPC_Enabled): New flag
5520 2008-04-08 Robert Dewar <dewar@adacore.com>
5521 Gary Dismukes <dismukes@adacore.com>
5522 Javier Miranda <miranda@adacore.com>
5523 Ed Schonberg <schonberg@adacore.com>
5525 * fe.h: Remove global Optimize_Alignment flag, no longer used
5527 * layout.adb: Test Optimize_Alignment flags rather than global switch
5529 * lib.ads, lib.adb: New OA_Setting field in library record
5531 * lib-load.adb: New OA_Setting field in library record
5533 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5534 units mentioned in limited_with_ clauses in the ali file, with an
5536 New Ox fields in U line
5538 * opt.adb: New flag Optimize_Alignment_Local
5539 (Check_Policy_List[_Config]): New flags
5541 * opt.ads (Invalid_Value_Used): New flag
5542 New switch Optimize_Alignment_Local
5543 (Warn_On_Parameter_Order): New flag
5544 (Check_Policy_List[_Config]): New flags
5546 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5547 limited_with clauses.
5548 New data structures for Optimize_Alignment
5550 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5552 (Check_Consistent_Optimize_Alignment): Rework for new structure
5553 (Check_Consistent_Restrictions): Fix incorrect error message
5555 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5556 created class-wide type (to the Parent field of the specific type).
5557 (Install_Siblings): Handle properly private_with_clauses on subprogram
5558 bodies and on generic units.
5559 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5560 illegal limited_with_clause that names a non-existent package.
5561 (Check_Body_Required): Determine whether a unit named a limited_with
5562 clause needs a body.
5563 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5564 Capture Optimize_Alignment settings to set new OA_Setting field in
5566 (Build_Limited_Views): Include task and protected type declarations.
5568 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5569 case of a possible constant redeclaration where the current object is
5570 an entry index constant.
5571 (Analyze_Object_Declaration): Generate an error in case of CPP
5572 class-wide object initialization.
5573 (Analyze_Object_Declaration): Add extra information on warnings for
5574 declaration of unconstrained objects.
5575 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5576 conflicts with the setting of Stored_Constraint in the case where the
5577 access type entity has already been created as an E_Incomplete_Type due
5578 to a limited with clause.
5579 Use new Is_Standard_Character_Type predicate
5580 (Analyze_Object_Declaration): Apply access_constant check only after
5581 expression has been resolved, given that it may be overloaded with
5582 several access types.
5583 (Constant_Redeclaration): Additional legality checks for deferred
5584 constant declarations tha involve anonymous access types and/or null
5585 exclusion indicators.
5586 (Analyze_Type_Declaration): Set Optimize_Alignment flags
5587 (Analyze_Subtype_Declaration): Ditto
5588 (Analyze_Object_Declaration): Ditto
5589 (Analyze_Object_Declaration): Don't count tasks in generics
5590 Change name In_Default_Expression => In_Spec_Expression
5591 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5592 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5593 (Process_Discriminants): Additional check for illegal use of default
5594 expressions in access discriminant specifications in a type that is not
5596 (Check_Abstract_Overriding): If an inherited function dispaches on an
5597 access result, it must be overridden, even if the type is a null
5599 (Derive_Subprogram): The formals of the derived subprogram have the
5600 names and defaults of the parent subprogram, even if the type is
5601 obtained from the actual subprogram.
5602 (Derive_Subprogram): In the presence of interfaces, a formal of an
5603 inherited operation has the derived type not only if it descends from
5604 the type of the formal of the parent operation, but also if it
5605 implements it. This is relevant for the renamings created for the
5606 primitive operations of the actual for a formal derived type.
5607 (Is_Progenitor): New predicate, to determine whether the type of a
5608 formal in the parent operation must be replaced by the derived type.
5610 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5611 predicate recursive to handle components that have a user-defined
5612 Initialize procedure. Handle controlled derived types whose ancestor
5613 has a user-defined Initialize procedured.
5614 (Note_Possible_Modification): Add Sure parameter, generate warning if
5615 sure modification of constant
5616 Use new Is_Standard_Character_Type predicate
5617 (Find_Parameter_Type): when determining whether a protected operation
5618 implements an interface operation, retrieve the type of the formal from
5619 the entity when the formal is an access parameter or an
5620 anonymous-access-to-subprogram.
5621 Move Copy_Parameter_List to sem_util, for use when building stubbed
5623 (Has_Access_Values): Tagged types now return False
5624 (Within_HSS_Or_If): New procedure
5625 (Set_Optimize_Alignment_Flags): New procedure
5626 Change name In_Default_Expression => In_Spec_Expression
5627 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5628 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
5630 2008-04-08 Tristan Gingold <gingold@adacore.com>
5632 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5634 2008-04-08 Tristan Gingold <gingold@adacore.com>
5638 * cuintp.c: Fix 16 bits issue for AVR.
5639 On AVR, integer is 16 bits, so it can't be used to do math with
5641 So use long_integer instead.
5643 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5645 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
5646 System.OS_Primitives.
5647 Change type of various constants, parameters and local variables from
5648 Time to representation type OS_Time.
5649 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
5650 Remove the declaration of constant Mili_F from several routines. New
5651 body for internal package Conversions_Operations.
5652 (Time_Of): Add default parameters for several formals.
5654 * a-caldel.adb: Minor reformatting
5656 * a-calend.ads, a-calend.adb: New body for internal package
5657 Conversions_Operations.
5658 (Time_Of): Add default parameters for several formals.
5660 * Makefile.rtl: Add a-ststop
5661 Add Ada.Calendar.Conversions to the list of runtime files.
5664 * a-calcon.adb, a-calcon.ads: New files.
5666 2008-04-08 Jose Ruiz <ruiz@adacore.com>
5667 Tristan Gingold <gingold@adacore.com>
5669 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
5670 (Install_Restricted_Handlers): New procedure
5671 which is a simplified version of Install_Handlers that does not store
5672 previously installed.
5674 * s-interr-vxworks.adb: Fix ACATS cxc3001
5675 On VxWorks interrupts can't be detached.
5676 (Install_Restricted_Handlers): New procedure.
5678 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
5681 2008-04-08 Olivier Hainque <hainque@adacore.com>
5683 * s-intman-vxworks.ads, s-intman-vxworks.adb
5684 (Map_And_Raise_Exception): Remove. Was an import of only part of the
5685 required services already implemented elsewhere.
5686 (Notify_Exception): Delete body, import __gnat_error_handler instead.
5687 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
5688 argument passed to the handler, which we need for ZCX propagation
5691 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
5693 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
5695 * g-timsta.adb, g-timsta.ads: New files.
5697 2008-04-08 Robert Dewar <dewar@adacore.com>
5699 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
5700 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
5701 (Raise_Exception_Always): Fix documentation accordingly
5703 2008-04-08 Robert Dewar <dewar@adacore.com>
5705 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
5708 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
5711 2008-04-08 Javier Miranda <miranda@adacore.com>
5712 Robert Dewar <dewar@adacore.com>
5713 Ed Schonberg <schonberg@adacore.com>
5715 * a-tags.adb (Register_Interface_Offset): New subprogram.
5716 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
5717 (To_Predef_Prims_Table_Ptr): Removed.
5718 (Acc_Size): Removed.
5719 (To_Acc_Size): Removed.
5720 (Parent_Size): Modified to the call the subprogram returning the size of
5721 the parent by means of the new TSD component Size_Func.
5723 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
5724 (DT_Offset_To_Top_Offset): New constant value that is used to generate
5725 code referencing the Offset_To_Top component of the dispatch table's
5727 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
5728 use of 'address to initialize dispatch table slots.
5729 (Size_Func): New component of the TSD. Used by the run-time to call the
5730 size primitive of the tagged type.
5732 * checks.adb (Apply_Access_Check): Avoid check when accessing the
5733 Offset_To_Top component of a dispatch table.
5734 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
5735 deferred constant declaration. do not add a null expression, to prevent
5736 spurious errors when full declaration is analyzed.
5737 (Apply_Discriminant_Check): If both discriminant constraints share a
5738 node which is not static but has no side effects, do not generate a
5739 check for that discriminant.
5740 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
5741 subexpr, since the prefix of an attribute is a name.
5743 * checks.ads: Fix nit in comment.
5745 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
5746 and body of predefined primitives in case of CPP tagged type
5748 (Freeze_Type): Deal properly with no storage pool case
5749 (Make_Predefined_Primitive_Specs): Generate specification of abstract
5750 primitive Deep_Adjust if a nonlimited interface is derived from a
5752 (Build_Dcheck_Functions): Create discriminant-checking functions only
5753 for variants that have some component(s).
5754 (Build_Slice_Assignment): In expanded code for slice assignment, handle
5755 properly the case where the slice bounds extend to the last value of the
5756 underlying representation.
5757 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
5758 (Is_Variable_Size_Record): An array component has a static size if
5759 index bounds are enumeration literals.
5761 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
5762 an external tag has been specified for the type.
5763 (Building_Static_DT): Add missing support for private types.
5764 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
5765 to the entity associated with the parent of Typ. This is done to
5766 avoid wrong access when the parent is a private type.
5767 (Expand_Interface_Conversion): Improve error message when the
5768 configurable runtime has no support for dynamic interface conversion.
5769 (Expand_Interface_Thunk): Add missing support to interface types in
5770 configurable runtime.
5771 (Expand_Dispatching_Call): remove obsolete code.
5772 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
5773 ensure that all subtypes and aggregates associated with dispatch
5774 tables have the attribute Is_Dispatch_Table_Entity set to true.
5775 (Register_Primitive): Rename one variable to improve code reading.
5776 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
5777 of the pointer to the 'size primitive in the TSD.
5779 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
5780 (RE_Offset_To_Top_Ptr): New entity.
5781 (RE_Register_Interface_Offset): New entity.
5782 (RE_Set_Dynamic_Offset_To_Top): New entity.
5783 (RE_Set_Offset_To_Top): Removed entity.
5784 (RE_Prim_Ptr): New entity
5785 (RE_Size_Func): New entity
5786 (RE_Size_Ptr): New entity
5787 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
5788 (Ada_Dispatching_Child): Define this new subrange.
5789 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
5790 RE_Time_Span, and RE_Time_Span_Zero).
5791 (RE_Unit_Table): Add new required run-time calls
5793 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
5796 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
5797 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
5798 initializes the Offset_To_Top component of a dispatch table.
5799 (Build_Predef_Prims): Removed.
5800 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
5802 (Build_Set_Size_Function): New subprogram.
5804 * exp_ch13.adb: Do not generate storage variable for storage_size zero
5805 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
5807 2008-04-08 Robert Dewar <dewar@adacore.com>
5809 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
5810 computing Fore when Exp > 0
5812 2008-04-08 Robert Dewar <dewar@adacore.com>
5814 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
5816 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
5817 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
5819 * fmap.adb: Remove Big_String declarations (now in Types)
5820 (No_Mapping_File): New Boolean global variable
5821 (Initialize): When mapping file cannot be read, set No_Mapping_File to
5823 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
5824 tables were empty before adding entries, open the mapping file
5825 with Truncate = True, instead of delete/re-create.
5827 * fname-sf.adb: Remove Big_String declarations (now in Types)
5829 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
5830 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
5833 * table.ads: Add for Table_Ptr'Storage_Size use 0
5835 * types.ads: Add Big_String declarations
5836 Add Size_Clause of zero for big pointer types
5838 2008-04-08 Vincent Celier <celier@adacore.com>
5840 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
5841 (Usage): Add line for switch --subdirs=
5842 Add new switch -eL, to follow symbolic links when processing project
5845 * gnatcmd.adb: Process switches -eL and --subdirs=
5846 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
5847 Program_Name to get proper tool names when AAMP_On_Target is set.
5848 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
5849 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
5850 Osint.Program_Name).
5852 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
5853 (Usage): Add lines for switches -eL and --subdirs=
5855 * makeusg.adb: Add line for switch --subdirs=
5858 (Source_Data): New Boolean component Compiled, defaulted to True
5859 (Empty_File_Name: New global variable in private part, initialized in
5860 procedure Initialize.
5861 (Subdirs_Option): New constant string
5862 (Subdirs): New String_Ptr global variable
5863 (Language_Config): New component Include_Compatible_Languages
5864 (Project_Qualifier): New type for project qualifiers
5865 (Project_Data): New component Qualifier
5866 (Project_Configuration): New component Archive_Builder_Append_Option
5868 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
5869 another imported project indicate the name of this imported project.
5870 (Check_File): When a unit is in two project files, indicate the project
5871 names and the paths of the source files for each project.
5872 (Add_Source): Set Compiled to False if compiler driver is empty. Only
5873 set object, dependency and switches file names if Compiled is True.
5874 (Process_Compiler): Allow the empty string for value of attribute Driver
5875 (Get_Directories): When Subdirs is not null and Object_Dir is not
5876 specified, locate and create if necessary the actual object dir.
5877 (Locate_Directory): When Subdirs is not empty and Create is not the
5878 empty string, locate and create if necessary the actual directory
5879 as a subdirectory of directory Name.
5880 (Check_Library_Attributes.Check_Library): Allow a project where the only
5881 "sources" are header files of file based languages to be imported by
5882 library projects, in multi-language mode (gprbuild).
5883 (Check_Library_Attributes.Check_Library): In multi-language mode
5884 (gprbuild), allow a library project to import a project with no
5885 sources, even when this is not declared explicitly.
5886 (Check_If_Externally_Built): A virtual project extending an externally
5887 built project is also externally built.
5888 (Check_Library_Attributes): For a virtual project extending a library
5889 project, inherit the library directory.
5890 (Process_Project_Level_Array_Attributes): Process new attribute
5891 Inherit_Source_Path.
5892 For projects with specified qualifiers "standard", "library" or
5893 "abstract", check that the project conforms to the qualifier.
5894 (Process_Project_Level_Simple_Attributes): Process new attribute
5895 Archive_Builder_Append_Option.
5897 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
5898 (Normalize_Compiler_Switches): Only keep compiler switches that are
5899 passed to gnat1 by the gcc driver and that are stored in the ALI file
5901 Do not take into account switc -save-temps
5903 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
5904 gprmake is called with -eL.
5905 (Scan_Arg): Recognize switch -eL
5906 (Usage): Add line for switch -eL
5908 * prj.adb (Initialize): Initialize Empty_File_Name
5909 (Project_Empty): New component Qualifier
5911 * prj-attr.ads, prj-attr.adb: New project level attribute
5912 Inherit_Source_Path.
5913 New project level attribute Archive_Builder_Append_Option
5915 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
5917 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
5918 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
5919 upward compatibility.
5921 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
5922 each Trying ..." on different lines.
5923 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
5924 is "configuration" when not in configuration. Fail when in configuration
5925 when a specified qualifier is other than "configuration".
5927 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
5928 full associative array together.
5929 (Recursive_Process): Put the project qualifier in the project data
5931 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
5932 (Set_Project_Qualifier_Of): New procedure
5934 2008-04-08 Robert Dewar <dewar@adacore.com>
5936 * errout.ads: Update comments for new handling of info: messages
5938 * erroutc.adb (Matches): New procedure
5939 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
5940 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
5941 info messages as well as style messages.
5943 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
5945 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
5947 (Check_A_Call): Special "info: " warnings now have ? in the text
5948 (Elab_Warning): Use info message in static case
5950 2008-04-08 Ed Schonberg <schonberg@adacore.com>
5952 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
5953 whether an array aggregate with static bounds and scalar components
5954 should be expanded into a static constant.
5956 2008-04-08 Gary Dismukes <dismukes@adacore.com>
5957 Ed Schonberg <schonberg@adacore.com>
5958 Robert Dewar <dewar@adacore.com>
5960 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
5961 Has_Stream_Attribute_ Definition when checking for available stream
5962 attributes on parameters of a limited type in Ada 2005. Necessary for
5963 proper recognition of visible stream attribute clauses.
5964 (Has_Stream_Attribute_Definition): If the type is derived from a
5965 private type, then use the derived type's underlying type for checking
5966 whether it has stream attributes.
5967 (Validate_Object_Declaration): The check for a user-defined Initialize
5968 procedure applies also to types with controlled components or a
5969 controlled ancestor.
5970 Reject an object declaration in a preelaborated unit if the type is a
5971 controlled type with an overriding Initialize procedure.
5972 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
5973 checking when the parent of a dereference is a selected component and
5974 the name has not been analyzed.
5976 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
5977 prefixes that are invalid explicit dereferences of remote
5978 access-to-class-wide values, first checking whether the selected
5979 component is a prefixed form of call to a tagged operation.
5980 (Analyze_Call): Remove code that issues an error for limited function
5981 calls in illegal contexts, as we now support all of the contexts that
5982 were forbidden here.
5983 Allow a function call that returns a task.and appears as the
5984 prefix of a selected component.
5985 (Analyze_Reference): Give error message if we try to make a 'Reference
5986 for an object that is atomic/aliased without its type having the
5987 corresponding attribute.
5988 (Analyze_Call): Remove condition checking for attributes to allow
5989 calls to functions with inherently limited results as prefixes of
5990 attributes. Remove related comment about Class attributes.
5991 (Analyze_Selected_Component): If the prefix is a remote type, check
5992 whether this is a prefixed call before reporting an error.
5993 (Complete_Object_Operation): If the controlling formal is an access to
5994 variable reject an actual that is a constant or an access to one.
5995 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
5996 primitive operations from base type.
5998 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
6000 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6001 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6002 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6003 (Expand_N_Slice): Test for prefix that is a build-in-place function call
6004 and call Make_Build_In_Place_Call_In_Anonymous_Context.
6005 (Analyze_Call): Remove code that issues an error for limited function
6006 calls in illegal contexts, as we now support all of the contexts that
6007 were forbidden here.
6008 New calling sequence for Get_Simple_Init_Val
6009 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6010 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6012 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6013 Ed Schonberg <schonberg@adacore.com>
6014 Robert Dewar <dewar@adacore.com>
6016 * exp_ch2.adb: Minor reformatting.
6017 (Expand_Entry_Index_Parameter): Set the type of the identifier.
6018 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6019 (Expand_Protected_Component): New routine.
6020 (Expand_Protected_Private): Removed.
6021 Add Sure parameter to Note_Possible_Modification calls
6023 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6024 generated subprogram declaration must inherit the overriding indicator
6025 from the instantiation node.
6026 (Validate_Access_Type_Instance): If the designated type of the actual is
6027 a limited view, use the available view in all cases, not only if the
6028 type is an incomplete type.
6029 (Instantiate_Object): Actual is illegal if the formal is null-excluding
6030 and the actual subtype does not exclude null.
6031 (Process_Default): Handle properly abstract formal subprograms.
6032 (Check_Formal_Package_Instance): Handle properly defaulted formal
6033 subprograms in a partially parameterized formal package.
6034 Add Sure parameter to Note_Possible_Modification calls
6035 (Validate_Derived_Type_Instance): if the formal is non-limited, the
6036 actual cannot be limited.
6037 (Collect_Previous_Instances): Generate instance bodies for subprograms
6040 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6042 Add Sure parameter to Note_Possible_Modification calls
6043 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6044 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6045 constant overlaid by variable and issue warning.
6046 Use new Is_Standard_Character_Type predicate
6047 (Analyze_Record_Representation_Clause): Check that the specified
6048 Last_Bit is not less than First_Bit - 1.
6049 (Analyze_Attribute_Definition_Clause, case Address): Check for
6050 self-referential address clause
6052 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6053 detection mechanism when the lhs is a prival.
6054 (Analyze_Assignment): Call Check_Unprotected_Access to detect
6055 assignment of a pointer to protected data, to an object declared
6056 outside of the protected object.
6057 (Analyze_Loop_Statement): Check for unreachable code after loop
6058 Add Sure parameter to Note_Possible_Modication calls
6059 Protect analysis from previous syntax error such as a scope mismatch
6061 (Analyze_Assignment_Statement): The assignment is illegal if the
6062 left-hand is an interface.
6064 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6065 violation of restriction No_Implicit_Conditionals
6066 Add Sure parameter to Note_Possible_Modication calls
6067 Use new Is_Standard_Character_Type predicate
6068 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6069 call as operator. Fixes problems (e.g. validity checking) which
6070 come from the result looking as though it does not come from source).
6071 (Resolve_Call): Check case of name in named parameter if style checks
6073 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6074 from the checking that such calls should not occur from an entry body.
6075 (Resolve_Call): If the return type of an Inline_Always function
6076 requires the secondary stack, create a transient scope for the call
6077 if the body of the function is not available for inlining.
6078 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6079 that are actuals for in-out formals.
6080 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6081 primitive operations from base type.
6082 (Analyze_Selected_Component): If the context is a call to a protected
6083 operation the parent may be an indexed component prior to expansion.
6084 (Resolve_Actuals): If an actual is of a protected subtype, use its
6085 base type to determine whether a conversion to the corresponding record
6087 (Resolve_Short_Circuit): Handle pragma Check
6089 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6090 Use new Is_Standard_Character_Type predicate
6091 (Eval_Relational_Op): Catch more cases of string comparison
6093 2008-04-08 Robert Dewar <dewar@adacore.com>
6094 Gary Dismukes <dismukes@adacore.com>
6096 * s-rident.ads: Add No_Default_Initialization restriction
6099 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6100 (Set_TSS): Handle No_Default_Initialization case
6102 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6103 No_Default_Initialization
6104 (Expand_N_Subprogram_Body): Remove redundant initialization of out
6105 parameters when Normalize_Scalars is active.
6106 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6107 Fix casing error in formal parameter name in call
6108 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6109 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6110 dispatching call on VM targets.
6112 2008-04-08 Gary Dismukes <dismukes@adacore.com>
6113 Thomas Quinot <quinot@adacore.com>
6115 * exp_ch7.adb (Find_Final_List): Change the test for generating a
6116 selected component from an access type's Associated_Final_Chain to
6117 check for the presence of that field, rather than assuming it exists
6118 for all named access types.
6119 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6120 procedure to call at the end of the generated cleanup procedure.
6121 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6122 and an At_End_Proc already exists in the handled sequence of statements
6123 for which cleanup actions are being expanded, the original cleanup
6124 action must be preserved.
6126 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6127 Ed Schonberg <schonberg@adacore.com>
6128 Robert Dewar <dewar@adacore.com>
6129 Gary Dismukes <dismukes@adacore.com>
6131 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6132 Build_Unprotected_Subprogram_Body): Generate debug info for
6133 declarations related to the handling of private data in task and
6135 (Debug_Private_Data_Declarations): New subprogram.
6136 (Install_Private_Data_Declarations): Remove all debug info flagging.
6137 This is now done by Debug_Private_Data_Declarations at the correct
6139 (Build_Simple_Entry_Call): If the task name is a function call, expand
6140 the prefix into an object declaration, and make the surrounding block a
6142 (Build_Master_Entity): An internal block is a master if it wraps a call.
6143 Code reformatting, update comments. Code clean up.
6144 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6145 (Replicate_Entry_Formals): If the formal is an access parameter or
6146 anonymous access to subprogram, copy the original tree to create new
6147 entities for the formals of the subprogram.
6148 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6149 for tasks to store the value passed using pragma Relative_Deadline.
6150 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6151 run-time call to create a task.
6152 (Build_Wrapper_Spec): If the controlling argument of the interface
6153 operation is an access parameter with a non-null indicator, use the
6154 non-null indicator on the wrapper.
6156 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6157 present, which it may not be in the case where the type entity is an
6158 incomplete view brought in by a limited with.
6159 (Analyze_Task_Type): Only retrieve the full view when present, which it
6160 may not be in the case where the type entity is an incomplete view brought
6161 in by a limited with.
6162 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6163 private components of a protected type, to prevent the generation of freeze
6164 nodes for which there is no proper scope of elaboration.
6166 * exp_util.ads, exp_util.adb
6167 (Remove_Side_Effects): If the expression is a function call that returns a
6168 task, expand into a declaration to invoke the build_in_place machinery.
6169 (Find_Protection_Object): New routine.
6170 (Remove_Side_Effects): Also make a copy of the value
6171 for attributes whose result is of an elementary type.
6172 (Silly_Boolean_Array_Not_Test): New procedure
6173 (Silly_Boolean_Array_Xor_Test): New procedure
6174 (Is_Volatile_Reference): New function
6175 (Remove_Side_Effects): Use Is_Volatile_Reference
6176 (Possible_Bit_Aligned_Component): Handle slice case properly
6178 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6179 case test to Exp_Util
6180 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6182 2008-04-08 Thomas Quinot <quinot@adacore.com>
6184 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6186 (Add_RACW_Features): When processing an RACW in another unit than the
6187 main unit, set Body_Decls to No_List to indicate that the bodies of
6188 the type's TSS must not be generated.
6189 (GARLIC_Support.Add_RACW_Read_Attribute,
6190 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6191 Body_Decls is No_List.
6192 (PolyORB_Support.Add_RACW_Read_Attribute,
6193 PolyORB_Support.Add_RACW_Write_Attribute,
6194 PolyORB_Support.Add_RACW_From_Any,
6195 PolyORB_Support.Add_RACW_To_Any,
6196 PolyORB_Support.Add_RACW_TypeCode): Same.
6197 (Transmit_As_Unconstrained): New function.
6198 (Build_Ordered_Parameters_List): Use the above to order parameters.
6199 (GARLIC_Support.Build_General_Calling_Stubs):
6200 Use the above to determine which parameters to unmarshall using 'Input
6201 at the point where their temporary is declared (as opposed to later on
6203 (PolyORB_Support.Build_General_Calling_Stubs):
6204 Use the above to determine which parameters to unmarshall using From_Any
6205 at the point where their temporary is declared (as opposed to later on
6206 with an assignment).
6208 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6210 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6211 an Input function for an access type, do not perform default
6212 initialization on the local variable that receives the value, to
6213 prevent spurious warnings when the type is null-excluding.
6215 2008-04-08 Robert Dewar <dewar@adacore.com>
6216 Ed Schonberg <schonberg@adacore.com>
6218 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6220 (Size_Known): Generic formal scalar types have known at compile
6221 time size, so remove check.
6222 Fix casing error in formal parameter name in call
6223 (Freeze_Subprogram): If the subprogram is a user-defined operator,
6224 recheck its overriding indication.
6226 2008-04-08 Vincent Celier <celier@adacore.com>
6228 * gnat1drv.adb: Send all messages indicating an error to standard error
6230 2008-04-08 Robert Dewar <dewar@adacore.com>
6232 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6233 (List_Applicable_Restrictions): Do not list existing restrictions
6235 2008-04-08 Thomas Quinot <quinot@adacore.com>
6237 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6238 add a pointer to generic sockets literature
6239 do not mention that the given example is "typical" usage.
6240 Remove obsolete comment about multicast not being supported on Windows.
6241 (Connect_Socket): Make Server mode IN rather than IN OUT
6242 since this formal is never modified.
6244 2008-04-08 Robert Dewar <dewar@adacore.com>
6246 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6247 the declaration for some different entity.
6248 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6249 list is precent (following the parent subtype indication), display
6250 appropriate "and" keyword.
6252 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6253 Remove unnecessary calls to Init_Size_Align and Init_Esize.
6254 Add notes on use of Parent field of an Itype
6256 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6257 Robert Dewar <dewar@adacore.com>
6258 Gary Dismukes <dismukes@adacore.com>
6260 * lib-xref.adb (Is_On_LHS): Remove dead code
6261 (Output_Overriden_Op): If the overridden operation is itself inherited,
6262 list the ancestor operation, which is the one whose body or absstract
6263 specification is actually being overridden. For source navigation
6266 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6267 operation is primitive for the type.
6268 (Declare_Inherited_Private_Subprograms): If the new operation overrides
6269 an inherited private subprogram, set properly the Overridden_Operation
6270 attribute, for better cross-reference information.
6271 (Analyze_Package_Specification): Do late analysis of spec PPCs
6272 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6273 properly the full view and underlying full views of a private type in a
6274 child unit, whose full view is derived from a private type in a parent
6275 unit, and whose own full view becomes visible in the child body.
6277 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6278 primitive operation after the type has been frozen, add an explicit
6279 reference to the type and the operation, because other primitive
6280 references have been emitted already.
6281 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6282 dispatching call on VM targets.
6284 2008-04-08 Vincent Celier <celier@adacore.com>
6285 Thomas Quinot <quinot@adacore.com>
6287 * make.adb: (Gnatmake_Called): Remove, no longer necessary
6288 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6289 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6290 (Insert_Project_Sources): Take into account index in multi-unit source
6292 After building a library project, delete all temporary files.
6293 (Initialize): Reset current output after parsing project file.
6294 (Collect_Arguments_And_Compile): Never insert in the queue the sources
6295 of library projects that are externally built.
6296 Put file name in error and inform messages if -df is used
6297 (Display): If invoked with -d7, do not display path names, but only
6300 * makeutl.ads (Path_Or_File_Name): New function
6301 (Path_Or_File_Name): New function
6303 2008-04-08 Arnaud Charlet <charlet@adacore.com>
6305 * Make-lang.in: Disable warnings during first stage of bootstrap
6307 Update dependencies.
6309 2008-04-08 Vincent Celier <celier@adacore.com>
6311 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6312 case to decide if ALI object file is included in library.
6313 (Build_Library): Never attempt to build a library if the project is
6316 2008-04-08 Thomas Quinot <quinot@adacore.com>
6318 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6319 (No_List) is defined to return Empty.
6321 2008-04-08 Jose Ruiz <ruiz@adacore.com>
6323 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6326 (Read_Default_Search_Dirs): Do not consider spaces as path separators
6327 because spaces may be part of legal paths.
6329 2008-04-08 Robert Dewar <dewar@adacore.com>
6331 * par-ch11.adb (P_Exception_Handler): Check indentation level for
6334 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6336 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6337 in a type declaration, if this is not an interface declaration or
6338 private type extension.
6340 2008-04-08 Vincent Celier <celier@adacore.com>
6342 * prj-util.adb (Executable_Of): New String parameter Language. When
6343 Ada_Main is False and Language is not empty, attempt to remove the body
6344 suffix or the spec suffix of the language to get the base of the
6345 executable file name.
6346 (Put): New Boolean parameter Lower_Case, defauilted to False. When
6347 Lower_Case is True, put the value in lower case in the name list.
6348 (Executable_Of): If there is no executable suffix in the configuration,
6349 then do not modify Executable_Extension_On_Target.
6351 * prj-util.ads (Executable_Of): New String parameter Language,
6352 defaulted to the empty string.
6353 (Put): New Boolean parameter Lower_Case, defauilted to False
6355 2008-04-08 Robert Dewar <dewar@adacore.com>
6357 * scng.adb (Scan_Identifier): Handle case of identifier starting with
6358 wide character using UTF-8 encoding.
6360 2008-04-08 Javier Miranda <miranda@adacore.com>
6362 * sem.adb (Analyze): Consider case in which we analyze an empty node
6363 that was generated by a call to a runtime function that is not
6364 available under the configurable runtime.
6366 * sem.ads (Inside_Freezing_Actions): New flag.
6367 (Save_Check_Policy_List): New field in scope stack entry
6369 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6370 Robert Dewar <dewar@adacore.com>
6372 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6373 the ancestor part of an extension aggregate for a limited type.
6374 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6375 enumeration index bounds.
6376 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6377 when array is too short.
6378 (Check_Expr_OK_In_Limited_Aggregate): Move function
6379 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6381 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6382 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6383 component associations.
6384 (Check_Non_Limited_Type): Moved to outer level and renamed.
6385 (Resolve_Record_Aggregate): In an extension aggregate, an association
6386 with a box initialization can only designate a component of the
6387 extension, not a component inherited from the given ancestor
6389 * sem_case.adb: Use new Is_Standard_Character_Type predicate
6391 2008-04-08 Robert Dewar <dewar@adacore.com>
6393 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6395 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6396 Properly handle case where Aft > Scale and input number is less than
6399 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6401 * s-stoele.ads, s-soflin.ads: Move the location of
6402 Dummy_Communication_Block from System.Storage_Elements to
6405 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6406 emulate Communication_Block in certain scenarios.
6408 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6410 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6412 Add new subtype S_WWC, unchecked conversion routines From_WWC and
6414 (I_WWC, O_WWC): New routines for input and output of
6415 Wide_Wide_Character.
6417 2008-04-08 Robert Dewar <dewar@adacore.com>
6419 * stringt.adb (Write_String_Table_Entry): Handle wide characters
6422 2008-04-08 Robert Dewar <dewar@adacore.com>
6424 * styleg.adb (Check_Comment): Allow special char after -- in
6425 non-end-of-line case
6427 2008-04-08 Robert Dewar <dewar@adacore.com>
6429 * stylesw.adb: Implement -gnaty + - y options
6430 (Set_GNAT_Style_Check_Options): Includ I in style check string
6432 * stylesw.ads: Add comments for new style switch options
6434 2008-04-08 Sergey Rybin <rybin@adacore.com>
6436 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6437 to the set of the GNAT components needed by ASIS.
6439 2008-04-08 Bob Duff <duff@adacore.com>
6441 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6443 2008-04-08 Tristan Gingold <gingold@adacore.com>
6445 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6446 Improve error message generation.
6448 2008-04-08 Vincent Celier <celier@adacore.com>
6450 * a-direct.adb (Start_Search): Check for Name_Error before checking for
6451 Use_Error, as specified in the RM. Check if directory is open and raise
6452 Use_Error if it is not.
6454 2008-04-08 Vincent Celier <celier@adacore.com>
6455 Robert Dewar <dewar@adacore.com>
6457 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6458 AAMP_On_Target is set.
6460 * vms_data.ads: Add NOxxx to style check switch list
6461 Add entry COMPONENTS for -gnatVe
6462 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6464 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6465 Add qualifiers for gnatmetric coupling options
6466 Add note that -gnata enables all checks
6467 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6468 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6469 New warning flag -gnatw.e
6471 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6472 Add entry for -gnatyN (forgotten before)
6473 Line for new warning switch -gnatw.p
6474 New warning flag -gnatw.e
6476 * gnat_ugn.texi: Add documentation fpr project file switch -aP
6477 Document -gnaty - + y
6478 Replace occurences of "package specification" with "package spec"
6479 Define preprocessing symbols in documentation of gnatprep
6480 Clarify reason for distinguishing overflow checking
6481 Add documentation for project-aware tool switches -eL and --subdirs=
6482 Complete list of configuration pragmas
6483 Specify that, even when gnatmake switch -x is used, mains on the command
6484 line need to be sources of project files.
6485 Editing of gnatcheck/gnatmetric doc.
6486 Add documentation for -gnatw.p/-gnatw.P
6487 Add missing documentation for -fno-inline-functions.
6488 Add documentation for -gnatw.e
6490 * gnat_rm.texi: Add documentation for No_Default_Initialization
6491 Replace occurences of "package specification" with "package spec"
6492 Document use of * in Warnings Off string
6493 Update documentation of alignment/component clauses.
6494 Add documentation for Invalid_Value
6495 Document new consistency rule for Optimize_Alignment
6496 Add documentation for Precondition and Postcondition pragmas
6497 Add documentation for Check and Check_Policy pragmas
6498 Document new Enum_Val attribute
6499 Remove requirement for static string in pragma Assert
6500 Add documentation on GNAT.Time_Stamp
6502 * ug_words: add entry for -gnatVe
6503 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6504 Add entry for -gnatw.e
6506 * debug.adb: Add missing documentation for d.a flag
6507 Document new -gnatd.a switch.
6508 Add documentation for new gnatmake debug switch -df
6510 2008-04-08 Thomas Quinot <quinot@adacore.com>
6512 * gen-soccon.c: Bump year in copyright notices.
6514 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6516 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
6518 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6521 2008-04-08 Robert Dewar <dewar@adacore.com>
6522 Bob Duff <duff@adacore.com>
6524 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6525 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6527 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6529 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6531 * g-trasym.ads: Minor comment improvements
6533 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6535 * a-sequio.ads, a-direio.ads: improve message for tagged type
6537 * a-strunb.ads: Minor reformatting
6539 * a-tifiio.adb: Minor reformatting
6541 * atree.adb (Fix_Parents): Use clearer names for formals
6542 Cleanup and simplify code
6543 Use named notation in calls
6545 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6548 * uintp.adb: Used named notation for some confusing calls
6550 * bindusg.adb: Minor change in one line of output
6552 * cstand.adb: Minor reformatting of src representation of Standard
6554 * a-assert.ads: Add comment.
6556 * g-decstr.adb: Fix bad indentation
6558 * expander.ads, expander.adb: Code clean up.
6560 * sem_dist.ads: Minor comment improvement
6562 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6563 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6565 * i-cstrin.adb: Fix casing error in formal parameter name in call
6567 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6569 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6570 mentioned in limited_with_clauses to do create semantic dependencies
6571 even though they appear in the ali file.
6573 2008-04-08 Emmanuel Briot <briot@adacore.com>
6575 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6577 (Get_Configuration): New subprogram.
6579 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6580 These optional parameters help preserve the casing of the project's name
6581 when pretty-printing.
6583 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
6584 Arnaud Charlet <charlet@adacore.com>
6586 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6587 then use __gnat_set_exit_status to report the returned status code.
6589 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6590 messages on .NET, since some constructs of the language are not
6593 * gnatlink.adb (Gnatlink): In case the command line is too long for the
6594 .NET linker, gnatlink now concatenate all .il files and pass this to
6597 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6598 Xavier Grave <grave@ipno.in2p3.fr>
6600 * Makefile.in: Add make ifeq define for mips/mipsel support.
6601 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6602 system-linux-mips.ads: New files.
6604 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6606 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6607 detect systems using GNU libc.
6613 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
6615 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6616 constant constant for sysconf call.
6617 (bit_field): New packed boolean type used by cpu_set_t.
6618 (cpu_set_t): New type corresponding to the C type with
6619 the same name. Note that on the Ada side we use a bit
6620 field array for the affinity mask. There is not need
6621 for the C macro for setting individual bit.
6622 (pthread_setaffinity_np): New imported routine.
6623 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6626 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6628 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6630 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6632 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6633 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6634 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
6635 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
6636 Return by Depressed Stack Pointer.
6638 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6640 * decl.c (is_variable_size): Do not unconditionally return false
6641 on non-strict alignment platforms.
6643 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
6645 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
6646 used to process all the variants of the specified type.
6647 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
6648 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
6649 (rest_of_type_decl_compilation): Likewise.
6650 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
6652 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
6654 * gigi.h (insert_block): Kill.
6655 * utils.c (insert_block): Kill.
6657 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
6659 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
6660 type has self-referential size, get the size from the initializing
6661 expression directly if it is also a constant whose nominal type
6662 has self-referential size.
6664 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6667 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
6670 * env.c: Always include crt_externs.h if __APPLE__ is defined.
6671 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
6673 2008-04-01 Andreas Jaeger <aj@suse.de>
6675 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
6678 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6680 * g-table.adb, g-tasloc.adb, g-traceb.ads,
6681 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
6682 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
6683 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
6684 gnatlink.adb, gnatmem.adb, gprep.adb,
6685 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
6686 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
6687 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
6688 lib-xref.ads, lib.adb, link.c, live.ads,
6689 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
6690 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
6691 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
6692 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
6693 namet.adb, namet.h, nlists.adb, nlists.ads,
6694 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
6695 osint-c.ads, osint.adb, osint.ads, output.ads,
6696 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
6697 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
6698 par-endh.adb, par-labl.adb, par-prag.adb,
6699 par-sync.adb, par-tchk.adb, par-util.adb,
6700 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
6701 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
6702 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
6703 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
6705 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
6707 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
6708 size if it has overflowed.
6710 2008-03-31 Olivier Hainque <hainque@adacore.com>
6711 Eric Botcazou <ebotcazou@adacore.com>
6713 * utils2.c (find_common_type): Document assumption on t1/t2 vs
6714 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
6716 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6718 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
6719 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
6720 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
6721 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
6722 exp_tss.ads, exp_util.adb, exp_util.ads,
6723 exp_vfpt.adb, freeze.adb, freeze.ads,
6724 frontend.adb, g-alleve.adb, g-altcon.adb,
6725 g-altive.ads, g-alveop.ads, g-alvevi.ads,
6726 g-arrspl.adb, g-busorg.ads, g-calend.adb,
6727 g-calend.ads, g-casuti.ads, g-cgideb.adb,
6728 g-comlin.adb, g-comlin.ads, g-curexc.ads,
6729 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
6730 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
6731 g-dyntab.adb, g-encstr.ads, g-excact.ads,
6732 g-except.ads, g-expect.ads, g-heasor.adb,
6733 g-hesora.adb, g-hesorg.adb, g-htable.ads,
6734 g-locfil.ads, g-md5.adb, g-md5.ads,
6735 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
6736 g-pehage.adb, g-pehage.ads, g-regexp.adb,
6737 g-regexp.ads, g-regpat.adb, g-regpat.ads,
6738 g-soccon-aix.ads, g-soccon-darwin.ads,
6739 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
6740 g-soccon-hpux.ads, g-soccon-irix.ads,
6741 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
6742 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
6743 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
6744 g-soccon-solaris.ads, g-soccon-tru64.ads,
6745 g-soccon-vms.ads, g-soccon-vxworks.ads,
6746 g-soccon.ads, g-socket.adb, g-socket.ads,
6747 g-socthi-mingw.adb, g-socthi-vms.adb,
6748 g-socthi-vxworks.adb, g-soliop-mingw.ads,
6749 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
6750 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
6753 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
6755 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
6756 if the procedure is imported.
6758 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6760 * adaint.c: Fix warnings.
6762 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6764 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
6766 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6768 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
6769 Fix problem of status check for null file
6771 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6773 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
6774 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
6775 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6776 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
6777 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
6780 2008-03-26 Thomas Quinot <quinot@adacore.com>
6783 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
6784 Get_Socket_Option): Add support for Receive_Packet_Info.
6786 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
6787 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
6788 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
6789 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
6790 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
6791 new constants SO_REUSEPORT and IP_PKTINFO
6793 2008-03-26 Robert Dewar <dewar@adacore.com>
6795 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
6796 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6797 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
6798 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
6799 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
6800 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
6801 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
6802 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
6803 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
6804 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
6805 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
6806 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
6807 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
6808 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
6809 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
6810 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
6811 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
6812 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
6813 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
6814 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
6815 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
6816 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
6817 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
6818 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
6819 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
6820 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
6821 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
6822 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
6823 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
6824 s-tasloc.adb: Minor reformatting.
6826 Remove "used for" sections from comments.
6828 2008-03-26 Robert Dewar <dewar@adacore.com>
6830 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
6831 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
6832 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
6833 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
6834 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
6835 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
6836 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
6837 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
6838 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
6839 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
6840 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
6841 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
6842 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
6843 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
6844 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
6845 double spaced if it fits on one line and otherwise single spaced.
6847 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6849 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
6850 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
6851 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
6852 or task info if the thread could not be created.
6854 2008-03-26 Arnaud Charlet <charlet@adacore.com>
6856 * gnatvsn.ads (Library_Version): Bump to 4.4.
6857 (Current_Year): Bump to 2008.
6859 2008-03-26 Robert Dewar <dewar@adacore.com>
6861 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
6863 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
6865 * debug.adb: Add debug flags d.r and d.v
6866 Add debug flag .T (Optimize_Alignment (Time))
6867 Add debug flag .S (Optimize_Alignment (Space))
6869 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
6870 depending on setting of relevant debug flags.
6871 Replace use of Warnings_Off by Has_Warnings_Off
6872 (Freeze_Entity): In circuit for warning on suspicious convention
6873 actuals, do not give warning if subprogram has same entity as formal
6874 type, or if subprogram does not come from source.
6875 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
6876 if Optimize_Alignment set to Space.
6878 * frontend.adb: Add call to Sem_Warn.Initialize
6879 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
6880 Reset Optimize_Alignment mode from debug switches .S and .T
6882 * layout.adb (Layout_Composite_Object): Rewritten for
6883 Optimize_Aligment pragma.
6885 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
6888 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
6890 * par-prag.adb (N_Pragma): Chars field removed, use Chars
6891 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
6892 this change. Add entry for pragma Optimize_Alignment
6894 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
6895 (Pragma_Identifier (..
6896 instead, adjustments throughout to accomodate this change.
6897 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
6898 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
6899 Add implementation of pragma Optimize_Alignment
6901 2008-03-26 Vincent Celier <celier@adacore.com>
6903 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
6904 Improve memory usage to avoid use of stack.
6906 2008-03-26 Robert Dewar <dewar@adacore.com>
6908 * a-teioed.ads: Correct value of Default_Fill
6910 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
6912 2008-03-26 Robert Dewar <dewar@adacore.com>
6914 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
6915 with Current_Output (introduce Self).
6917 2008-03-26 Robert Dewar <dewar@adacore.com>
6919 * checks.adb (Ensure_Valid): Capture valid status if possible
6922 2008-03-26 Robert Dewar <dewar@adacore.com>
6924 * stand.ads: Deal with reordering of package standard declarations
6926 * cstand.adb: Put package Standard declarations in proper order
6928 2008-03-26 Robert Dewar <dewar@adacore.com>
6930 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
6931 (Pragma_Identifier (.. instead.
6932 (OK_To_Reorder_Components): New flag
6933 (Has_Entries): Code cleanup.
6934 (Warnings_Off_Used): New flag
6935 (Warnings_Off_Used_Unmodified): New flag
6936 (Warnings_Off_Used_Unreferenced): New flag
6937 (Has_Warnings_Off): New function
6938 (Has_Unmodified): New function
6939 (Has_Unreferenced): New function
6940 (Is_Trivial_Subprogram): New flag
6941 (Is_Static_Dispatch_Table_Entity): New attribute.
6942 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
6943 (more consistent with other similar names)
6944 (Access_Subprogram_Type): New classification function
6946 2008-03-26 Robert Dewar <dewar@adacore.com>
6948 * errout.ads: Document new !! insertion sequence
6950 * errout.adb (N_Pragma): Chars field removed, use Chars
6951 (Pragma_Identifier (.. instead.
6952 Replace use of Warnings_Off by Has_Warnings_Off
6953 (Error_Msg_Internal): Don't delete warning ending in !!
6955 2008-03-26 Robert Dewar <dewar@adacore.com>
6957 * par.adb (Check_No_Right_Paren): Removed no longer used
6959 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
6960 (Pragma_Identifier (.. instead.
6962 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
6964 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
6965 par-ch4.adb: Minor improvements in error recovery and messages.
6967 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
6970 * par-ch9.adb: Minor improvements in error recovery and messages
6971 (P_Protected): Better error recovery for "protected type x;"
6973 * par-util.adb: Minor improvements in error recovery and messages
6974 (Check_No_Right_Paren): Removed no longer used
6976 2008-03-26 Ed Schonberg <schonberg@adacore.com>
6978 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
6979 that the prefix of an attribute is the type of the aggregate being
6982 2008-03-26 Javier Miranda <miranda@adacore.com>
6983 Robert Dewar <dewar@adacore.com>
6985 * exp_attr.adb (N_Pragma): Chars field removed.
6986 (Expand_N_Attribute_Reference): If the designated type associated with
6987 attribute 'Unrestricted_Access is a subprogram entity then replace it
6988 by an E_Subprogram_Type itype.
6989 Implement attribute Old
6991 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
6993 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
6995 New_Internal_Entity by call to Create_Itype to centralize calls
6996 building itypes, ad propagate the convention of the designated
6997 subprogram. In addition, disable the machinery cleaning constant
6998 indications from all entities in current scope when 'Unrestricted_Access
6999 corresponds with a node initializing a dispatch table slot.
7000 (Analyze_Attribute): Parameterless attributes returning a string or a
7001 type will not be called with improper arguments, so we can remove junk
7002 code that was dealing with this case.
7003 Implement attribute Old
7005 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7006 Add entry for pragma Optimize_Alignment
7007 New standard names Sync and Synchronize
7009 2008-03-26 Robert Dewar <dewar@adacore.com>
7010 Arnaud Charlet <charlet@adacore.com>
7012 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7014 (No_Exception_Propagation_Active): New function.
7015 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7016 Update comments, and review all uses of No_Exception_Propagation, which
7017 are now correct and in sync with what gigi expects.
7019 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7021 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7022 Update comments, and review all uses of No_Exception_Propagation, which
7023 are now correct and in sync with what gigi expects.
7025 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7027 * sem_ch3.adb (Access_Definition): If the access type is the return
7028 result of a protected function, create an itype reference for it
7029 because usage will be in an inner scope from the point of declaration.
7030 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7031 OK_To_Reorder_Components.
7032 (Make_Index): If an overloaded range includes a universal integer
7033 interpretation, resolve to Standard.Integer.
7034 (Analyze_Subtype_Indication): Copy Convention to subtype
7035 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7036 limited an synchronized progenitors in type declaration and private
7037 extension declarations.
7039 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7040 protected subprogram body, determine proper scope from subprogram
7043 2008-03-26 Robert Dewar <dewar@adacore.com>
7045 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7048 2008-03-26 Gary Dismukes <dismukes@adacore.com>
7050 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7051 of a heap allocator for a limited unconstrained function return when
7052 resstriction No_Allocators is active.
7053 (Analyze_Allocator): The restriction No_Allocators is now only checked
7054 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7056 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7057 of a heap allocator for a limited unconstrained function return when
7058 resstriction No_Allocators is active.
7059 (Analyze_Allocator): The restriction No_Allocators is now only checked
7060 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7061 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
7062 operands are fixed-point types, the universal_fixed predefined operation
7063 is used, regardless of whether the operand type (s) have a primitive
7064 operation of the same name.
7066 2008-03-26 Javier Miranda <miranda@adacore.com>
7068 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7069 Is_Static_Dispatch_Table
7070 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7071 to Exchange_Declarations to exchange the private and full-view. Bug
7072 found working in this issue.
7073 (Expand_Dispatching_Call): Propagate the convention of the subprogram
7074 to the subprogram pointer type.
7075 (Make_Secondary_DT): Replace generation of Prim'Address by
7076 Address (Prim'Unrestricted_Access)
7077 (Make_DT): Replace generation of Prim'Address by
7078 Address (Prim'Unrestricted_Access)
7079 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7080 simple call form for single entry.
7081 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7082 tables of predefined primitives).
7083 (Make_Secondary_DT): Add support to handle access to dispatch tables of
7084 predefined primitives.
7085 (Make_Tags): Add entities to Access_Dispatch_Table associated with
7086 access to dispatch tables containing predefined primitives.
7088 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7089 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
7091 (Register_Predefined_DT_Entry): Updated to handle the new contents
7092 of attribute Access_Disp_Table (pointers to dispatch tables containing
7093 predefined primitives).
7095 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7097 (Find_Interface_ADT): Updated to skip the new contents of attribute
7098 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7101 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7103 (Set_Convention): Use new function Is_Access_Subprogram_Type
7104 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7105 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7108 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7109 expanded code avoiding calls to Build_Predef_Prims.
7110 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7111 call to Build_Get_Predefined_Prim_Op_Address.
7113 2008-03-26 Javier Miranda <miranda@adacore.com>
7115 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7116 subprogram Corresponding_Runtime_Package to know the runtime package
7117 that will provide support to a given protected type.
7119 * exp_ch9.adb (Add_Private_Declarations,
7120 Build_Protected_Subprogram_Call,
7121 Build_Protected_Entry, Build_Simple_Entry_Call,
7122 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7123 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7124 cleanup using the new centralized subprogram Corresponding_Runtime
7125 Package to know the runtime package that provides support to
7126 a given protected type.
7128 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7130 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7131 assignment is within the initialization procedure for a packed array,
7132 and Initialize_Scalars is enabled, compile right-hand side with checks
7133 off, because the value is purposely out of range.
7135 2008-03-26 Vincent Celier <celier@adacore.com>
7137 * gnatcmd.adb: Add processing for GNAT SYNC
7139 * vms_conv.ads: (Command_Type): Add command Sync
7141 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7143 * vms_data.ads: Add entries for -gnatw.w
7144 Add qualifier for gnatstub --header-file option
7145 Add switches for GNAT SYNC
7147 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7148 (Add_Package_Name): New procedure
7149 (Package_Name_List): New function
7150 (Initialize): Add known package names to the list
7151 (Register_New_Package): Add the new package name to the list
7153 2008-03-26 Robert Dewar <dewar@adacore.com>
7155 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7156 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7157 Raise_Exception by "raise with" construct.
7159 2008-03-26 Pascal Obry <obry@adacore.com>
7161 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7162 supported platforms.
7164 * Makefile.rtl: Add g-sercom.o.
7166 * impunit.adb: Add g-sercom.adb.
7168 * s-crtl.ads (open): New routine.
7172 * s-osinte-mingw.ads (BYTE): New type.
7174 (OVERLAPPED): Likewise.
7175 (GENERIC_READ): New constant.
7176 (GENERIC_WRITE): Likewise.
7177 (OPEN_EXISTING): Likewise.
7178 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7180 (CreateFile): New routine.
7181 (WriteFile): Likewise.
7182 (ReadFile): Likewise.
7183 (CloseHandle): Move next to the other file oriented routines.
7185 * g-sercom.ads: New unit.
7187 * g-sercom.adb: Default implementation, calls to this unit will raise
7188 a program error exception.
7190 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7191 GNU/Linux implementations.
7193 2008-03-26 Robert Dewar <dewar@adacore.com>
7195 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7197 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7198 unchecked conversion for different conventions only for subprogram
7201 2008-03-26 Vincent Celier <celier@adacore.com>
7203 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7204 to check if the specified object file is correct.
7206 2008-03-26 Thomas Quinot <quinot@adacore.com>
7208 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7209 Comes_From_Source to exclude primitives from being checked. We want to
7210 exclude predefined primitives only, so use the appropriate specific
7211 predicate. Also, flag a formal parameter of an anonymous
7212 access-to-subprogram type as illegal for a primitive operation of a
7213 remote access to class-wide type.
7215 2008-03-26 Vincent Celier <celier@adacore.com>
7217 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7218 known, check if it may be a missspelling of a known package name. In
7219 not verbose, not mode, issue warnings only if the package name is a
7220 possible misspelling.
7221 In verbose mode, always issue a warning for a not known package name,
7222 plus a warning if the name is a misspelling of a known package name.
7224 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7225 limited withs or limited withs are parse during one call.
7226 (Parse_Single_Project): Post parse context clause in two passes: non
7227 limited withs before current project and limited withs after current
7230 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7231 project with the name With_Name, even if it is only extended indirectly.
7232 (Recursive_Process): Process projects in order: first single withs, then
7233 current project, then limited withs.
7235 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7236 project with the name With_Name, even if it is only extended indirectly.
7238 2008-03-26 Robert Dewar <dewar@adacore.com>
7240 * scn.adb (Initialize_Scanner): Format messages belong on standard error
7242 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7244 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7245 a generic subprogram that is imported, do not attempt to compile
7248 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7249 imported, do not generate a raise_program_error for the non-existent
7251 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7252 perform minimal name resolution on the generic to avoid spurious
7254 (Find_Actual_Type): the designated type of the actual in a child unit
7255 may be declared in a parent unit without being an actual.
7257 2008-03-26 Robert Dewar <dewar@adacore.com>
7259 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7260 * sinfo.ads, sinfo.adb (From_At_End): New flag
7262 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7264 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7265 operations that have an interface parameter.
7266 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7267 Don't treat No_Return call as raise.
7269 * sem_disp.adb (Check_Dispatching_Operations): apply check for
7270 non-primitive interface primitives to access parameters, not to all
7271 parameters of an access type.
7273 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7275 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7276 declarations of a parent unit are made visible when compiling a child
7277 instance, the parent is not a hidden open scope, even though it may
7278 contain other pending instance.
7280 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7281 hidden open scope for some child instance, it does affect the
7282 visibility status of other stach entries.
7283 (Analyze_Object_Renaming): Check that a class-wide object cannot be
7284 renamed as an object of a specific type.
7286 2008-03-26 Robert Dewar <dewar@adacore.com>
7288 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7289 recursion and raise SE directly.
7290 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7291 set for formal type for IN mode parameter.
7293 2008-03-26 Robert Dewar <dewar@adacore.com>
7295 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7296 (Initialize): New procedure
7297 (Output_Warnings_Off_Warnings): New procedure
7298 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7299 (Output_Non_Modifed_In_Out_Warnings): Ditto
7300 (Warn_On_Unreferenced_Entity): Ditto
7302 2008-03-26 Vincent Celier <celier@adacore.com>
7304 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7307 2008-03-26 Matthew Heaney <heaney@adacore.com>
7309 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7310 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7311 Marked with clauses as private, and controlled operations as overriding
7313 2008-03-26 Robert Dewar <dewar@adacore.com>
7315 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7317 2008-03-26 Robert Dewar <dewar@adacore.com>
7319 * back_end.adb, back_end.ads: Minor reformatting
7321 * bindgen.adb: Minor clarification of comments
7323 * fname.ads: Minor comment fixes
7325 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7326 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7328 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7329 xsnames.adb: Remove warnings off pragma no longer needed
7331 * a-catizo.ads, a-calari.ads, a-calfor.adb,
7332 a-calfor.ads: Fix header.
7334 2008-03-26 Tristan Gingold <gingold@adacore.com>
7336 * init.c: Do not adjust pc for HPARITH on alpha/vms.
7338 2008-03-26 Robert Dewar <dewar@adacore.com>
7340 * lib-xref.adb: (OK_To_Set_Reference): New function
7341 (Generate_Reference): Don't set referenced from occurrence in Warnings,
7342 Unmodified, or Unreferenced pragma
7344 2008-03-26 Robert Dewar <dewar@adacore.com>
7346 * alloc.ads: Add entries for Warnings_Off_Pragmas table
7348 2008-03-26 GNAT Script <nobody@adacore.com>
7350 * Make-lang.in: Makefile automatically updated
7352 2008-03-26 Robert Dewar <dewar@adacore.com>
7354 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7355 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7356 removed, use Chars (Pragma_Identifier (.. instead, adjustments
7357 throughout to accomodate this change.
7359 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7361 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7362 Einfo.Set_Needs_Debug_Info)
7364 2008-03-26 Robert Dewar <dewar@adacore.com>
7366 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7367 Add description for the new gnatstub option '--header-file'
7368 clarification of -gnatwz/-gnatwZ
7369 Add a "Irix-Specific Considerations" section to document the need to
7370 set LD_LIBRARY_PATH when using the default shared runtime library.
7371 Added documentation for both gcov and gprof.
7373 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7374 messages that are not suppressed when clients are compiled.
7375 Add documentation of s-pooglo s-pooloc
7376 Document the new GNAT.Serial_Communications API.
7377 Add documentation for 'Old attribute
7378 Add description of pragma Optimize_Alignment
7380 * ug_words: Add entries for -gnatw.w -gnatw.W
7382 * usage.adb: Add line for -gnatw.w (warn on warnings off)
7384 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
7387 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7389 * decl.c (maybe_pad_type): Avoid padding an integral type when
7390 bumping its alignment is sufficient.
7392 2008-03-25 Arnaud Charlet <charlet@adacore.com>
7394 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7395 Fix wrong formatting (lines too long)
7397 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7399 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7400 a-calend-vms.adb, a-calend.adb, a-calend.ads,
7401 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7402 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7403 a-cohama.ads, a-comlin.ads, a-coorse.adb,
7404 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7405 a-except-2005.ads, a-except.adb, a-except.ads,
7406 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7407 a-exextr.adb, a-filico.ads, a-finali.ads,
7408 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7409 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7410 a-sequio.ads, a-strbou.ads, a-strfix.adb,
7411 checks.adb, exp_ch3.adb, exp_ch4.adb,
7412 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7413 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7414 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7415 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7416 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7418 2008-03-24 Robert Dewar <dewar@adacore.com>
7420 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7421 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7422 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7423 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7424 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7425 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7426 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7427 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7428 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7429 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7430 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7431 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7432 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7433 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7434 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7435 double spaced if it fits on one line and otherwise single spaced.
7437 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7439 PR documentation/15479
7440 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7441 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7442 (doc/gnat_ugn.info): Renamed from ...
7443 (doc/gnat_ugn_unw.info): ... this.
7444 (doc/gnat_ugn.dvi): Renamed from ...
7445 (doc/gnat_ugn_unw.dvi): ... this.
7446 (doc/gnat_ugn.pdf): Renamed from ...
7447 (doc/gnat_ugn_unw.pdf): ... this.
7448 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7450 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7451 unconditionally to gnat_ugn.info. Fix cross references to the
7452 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
7453 and GNU make manuals to be proper texinfo links.
7454 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7456 2008-03-21 Olivier Hainque <hainque@adacore.com>
7458 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7459 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7461 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
7463 * trans.c (addressable_p): Add notes on addressability issues.
7465 2008-03-21 Olivier Hainque <hainque@adacore.com>
7466 Ed Schonberg <schonberg@adacore.com>
7468 * trans.c (addressable_p): Accept COND_EXPR when both arms
7470 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7471 (call_to_gnu): Do not use name reference in the error message
7472 for a misaligned by_reference_parameter. The actual may be a
7475 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
7477 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7479 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7481 * gnat_rm.texi (Implementation Defined Characteristics)
7482 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7484 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7485 (Switches for gnatchop, Installing a library): Likewise.
7487 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
7489 * trans.c (emit_range_check): Do not emit the check if the base type
7490 of the expression is the type against which its range must be checked.
7492 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7494 * decl.c (maybe_pad_type): Use value_factor_p.
7496 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7498 * lang.opt (nostdlib): Move around.
7499 * misc.c (gnat_handle_option): Fix formatting.
7500 (gnat_dwarf_name): Move around.
7501 * trans.c (Case_Statement_to_gnu): Fix formatting.
7502 (gnat_to_gnu): Likewise.
7503 * utils.c (aggregate_type_contains_array_p): Likewise.
7504 (create_subprog_decl): Likewise.
7506 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7508 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7509 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7511 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7513 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7514 BIGGEST_ALIGNMENT when capping the alignment of records with
7515 strict alignment and size clause.
7517 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7519 * lang-specs.h: Pass -gnatwa if -Wall is passed.
7520 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7521 and -Wuninitialized.
7522 (gnat_post_options): Clear warn_unused_parameter.
7524 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7526 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7527 aligned bit-fields, bumping the alignment of the record type if deemed
7529 (value_factor_p): Return false instead of 0.
7531 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7533 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7534 for scalar types with small alignment.
7536 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
7538 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7539 from that of the front-end's end label.
7540 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7541 from that of the loop label.
7543 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7545 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7546 comment for the packed array type case.
7547 * utils.c (build_template): Use a loop to strip padding or
7548 containing records for justified modular types.
7550 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7552 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7553 large alignments specified for types.
7554 (validate_alignment): Minor cleanup.
7556 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
7558 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7559 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7560 the component for packing, if possible, as well as if a component
7561 size clause is specified.
7562 <E_Record_Subtype>: For an array type used to implement a packed
7563 array, get the component type from the original array type.
7564 Try to get a smaller form of the component for packing, if possible,
7565 as well as if a component size clause is specified.
7566 (round_up_to_align): New function.
7567 (make_packable_type): Add in_record parameter.
7568 For a padding record, preserve the size. If not in_record and the
7569 size is too large for an integral mode, attempt to shrink the size
7570 by lowering the alignment.
7571 Ditch the padding bits of the last component.
7572 Compute sizes and mode manually, and propagate the RM size.
7573 Return a BLKmode record type if its size has shrunk.
7574 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7575 Use Original_Array_Type to retrieve the type in case of an error.
7576 Adjust call to make_packable_type.
7577 (gnat_to_gnu_field): Likewise.
7578 (concat_id_with_name): Minor tweak.
7579 * trans.c (larger_record_type_p): New predicate.
7580 (call_to_gnu): Compute the nominal type of the object only if the
7581 parameter is by-reference. Do the conversion actual type -> nominal
7582 type if the nominal type is a larger record.
7583 (gnat_to_gnu): Do not require integral modes on the source type to
7584 avoid the conversion for types with identical names.
7585 (addressable_p): Add gnu_type parameter. If it is specified, do not
7586 return true if the expression is not addressable in gnu_type.
7587 Adjust recursive calls.
7588 * utils.c (finish_record_type): Remove dead code.
7590 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
7593 * decl.c (maybe_pad_type): Avoid padding an integral type when
7594 bumping its alignment is sufficient.
7596 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7598 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7599 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7601 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7602 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7603 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7604 code output strings.
7605 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7606 system-vms_64.ads: Fix typos in ada source code comments.
7607 * sinfo-cn.adb: Remove incomplete sentence.
7609 PR documentation/15479
7610 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7612 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
7615 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7617 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
7620 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7621 that underlying type is present.
7623 2008-02-26 Tom Tromey <tromey@redhat.com>
7625 * misc.c (internal_error_function): Remove test of
7626 USE_MAPPED_LOCATION.
7627 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7628 (Sloc_to_locus): Remove old location code.
7630 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7632 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7633 `i.e.' by adding comma or `@:' as appropriate.
7634 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
7635 plain characters `C', use `@samp{C}'.
7636 * gnat_ugn.texi (File Naming Rules, About gnatkr)
7637 (Krunching Method): Likewise.
7639 * gnat_ugn.texi (Conventions): List environment variables and
7640 metasyntactic variables.
7641 (Compiling Programs): Fix notation of metasyntactic variables.
7642 Add @file where appropriate. Use @file for file extensions,
7644 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
7645 instead of @file, @env instead of @code.
7647 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7649 PR documentation/15479
7650 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
7651 and `...' with `@dots{}' or `@enddots{}'.
7653 PR documentation/15479
7654 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
7655 use @command instead of @code, @option instead of @samp or @code,
7656 @code instead of @var, @samp instead of @file.
7658 PR documentation/15479
7659 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
7660 in Makefile rules, by using `&&' rather than `;'.
7662 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7664 PR documentation/15479
7665 * gnat_ugn.texi: In non-code, avoid space before colon.
7666 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
7667 (Examples of gnatxref Usage): Use @command{vi} instead of
7669 (Character Set Control): Do not use @code for UTF-8.
7670 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
7672 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
7674 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
7676 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
7679 * env.c: Add __rtems__ to if defined.
7680 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
7681 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
7682 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
7683 pragma Convention as required.
7684 * gsocket.h: Make compile in and out of RTS.
7685 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
7686 Use g-soccon-rtems.ads.
7687 * g-soccon-rtems.ads, system-rtems.ads: New files.
7689 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7692 * Make-lang.in (gnat1): Add $(GMPLIBS).
7694 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
7696 * decl.c (components_to_record): Improve comment.
7698 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
7700 * decl.c (components_to_record): Do not reuse the empty union type
7701 if there is a representation clause on the record.
7702 * trans.c (addressable_p): Return true for INTEGER_CST.
7704 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
7706 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
7707 in pointer arithmetics.
7708 * utils2.c (build_allocator): Likewise.
7710 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
7712 * utils.c (build_function_stub): Properly build the call expression.
7714 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
7716 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
7717 before converting the expression to the type of the object.
7718 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
7719 Stabilize constructors for special wrapping types.
7721 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
7723 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
7724 when necessary. Merge some conditional statements. Update comments.
7725 Rename unchecked_convert_p local variable to suppress_type_conversion.
7726 Do not suppress conversions in the In case.
7727 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
7728 into account on non strict-alignment platforms.
7730 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7732 * utils.c (aggregate_type_contains_array_p): New predicate.
7733 (create_field_decl): In a packed record, force byte alignment
7734 for fields without specified position that contain an array.
7736 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
7738 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
7740 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
7743 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
7745 (bit_field): New packed boolean type used by cpu_set_t.
7746 (cpu_set_t): New type corresponding to the C type with
7747 the same name. Note that on the Ada side we use a bit
7748 field array for the affinity mask. There is not need
7749 for the C macro for setting individual bit.
7750 (pthread_setaffinity_np): New imported routine.
7752 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
7755 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7756 on OpenBSD as is done on other BSD systems.
7759 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
7760 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
7764 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
7768 * init.c (__gnat_error_handler, __gnat_install_handler,
7769 __gnat_init_float): Define for OpenBSD.
7771 * initialize.c (__gnat_initialize): Define for OpenBSD.
7773 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
7776 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
7777 instead of mktemp() or tmpnam() on NetBSD.
7779 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
7781 * trans.c (call_to_gnu): Make the temporary for non-addressable
7782 In parameters passed by reference.
7783 (addressable_p): Return true for STRING_CST and CALL_EXPR.
7785 2007-12-19 Robert Dewar <dewar@adacore.com>
7787 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
7788 Add pragma Warnings (Off) for unassigned IN OUT arguments
7790 * sem_warn.adb (Output_Reference): Suppress messages for internal names
7791 (Check_References): Extensive changes to tune up warnings
7792 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
7793 (Has_Pragma_Unmodifed_Check_Spec): New function
7794 (Check_References): Implement pragma Unmodified
7795 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
7797 * par-prag.adb: Dummy entry for pragma Unmodified
7799 * sem_prag.adb: Implement pragma Unmodified
7801 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
7802 (Proc_Next_Component_Or_Discriminant): Fix typo.
7805 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
7807 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
7808 because the former already takes care of discarding the result.
7809 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
7812 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
7814 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
7816 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
7817 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7818 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
7819 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
7820 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7821 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7822 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7823 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7824 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7825 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
7826 (Dynamic_Trampolines_Used): Delete.
7828 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
7829 Turn on stack probing mechanism on LynxOS.
7831 2007-12-19 Bob Duff <duff@adacore.com>
7833 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
7834 the resulting tail recursion by hand. This prevents running out of
7835 memory on deeply nested concatenations, since Field2 is where the left
7836 operand of concatenations is stored.
7837 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
7838 clarify that it can only return OK or Abandon.
7840 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
7841 operand by iteration, in order to avoid running out of memory on
7842 deeply-nested concatenations. Use the Parent pointer to get back up the
7844 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
7845 Resolve_Op_Concat_Rest): New procedures split out of
7846 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
7849 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
7850 Traverse_Func, because the former already takes care of discarding the
7853 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
7854 because the former already takes care of discarding the result.
7855 (Remove_Warning_Messages): Use appropriate subtype for Status and
7858 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7860 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
7861 discriminants forces expansion of the aggregate into assignments.
7862 (Init_Record_Controller): If the type of the aggregate is untagged and
7863 is not inherently limited, the record controller is not limited either.
7865 2007-12-19 Robert Dewar <dewar@adacore.com>
7867 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
7868 handling compile time known size of record or array (case of front end
7869 layout active, e.g. in GNAAMP).
7871 2007-12-19 Javier Miranda <miranda@adacore.com>
7873 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
7874 that forces the construction of static dispatch tables in case of
7877 2007-12-19 Robert Dewar <dewar@adacore.com>
7879 * exp_ch9.adb (Null_Statements): Moved to library level
7880 (Trivial_Accept_OK): New function
7881 (Expand_Accept_Declaration): Use Trivial_Accept_OK
7882 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
7884 2007-12-19 Robert Dewar <dewar@adacore.com>
7886 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
7887 in complex case where array is Volatile.
7889 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7891 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
7892 properly the Ada2005 rules concerning when the current instance of a
7893 record type is aliased.
7895 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7897 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
7899 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
7901 (P_Variant_Part): Cleaner patch for parenthesized discriminant
7903 2007-12-19 Vincent Celier <celier@adacore.com>
7905 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
7906 package is not known
7908 * prj-attr.ads (Unknown_Package): New constant
7909 Do not crash when an unknown package is in several projects
7911 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
7914 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
7915 existing package Language_Processing.
7917 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7918 Gary Dismukes <dismukes@adacore.com>
7919 Samuel Tardieu <sam@rfc1149.net>
7921 PR ada/15803, ada/15805
7922 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
7923 illegal access subtypes when there is a constrained partial view.
7924 (Check_For_Premature_Usage): New procedure inside
7925 Access_Subprogram_Declaration for checking that an access-to-subprogram
7926 type doesn't reference its own name within any formal parameters or
7927 result type (including within nested anonymous access types).
7928 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
7929 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
7930 context is an access_to_variable, the expression cannot be an
7933 2007-12-19 Bob Duff <duff@adacore.com>
7935 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
7936 (Analyze_Concatenation): Use iteration instead of recursion in order
7937 to avoid running out of stack space for deeply nested concatenations.
7939 2007-12-19 Ed Schonberg <schonberg@adacore.com>
7940 Gary Dismukes <dismukes@adacore.com>
7942 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
7943 whose renamed entity is a subprogram that requires overriding.
7944 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
7945 issuing an error for premature usage and issue a message that says
7946 'type' rather than 'object'.
7948 2007-12-19 Gary Dismukes <dismukes@adacore.com>
7951 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
7952 presence of a statically tagged operand (Present (Static_Tag)) with
7953 test for Indeterm_Ancestor_Call when determining whether to propagate
7954 the static tag to tag-indeterminate operands (which forces dispatching
7956 (Check_Controlling_Formals): Ada2005, access parameters can have
7958 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
7959 not insert subprogram in list of primitive operations if already there.
7961 2007-12-19 Tristan Gingold <gingold@adacore.com>
7963 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
7966 2007-12-19 Thomas Quinot <quinot@adacore.com>
7968 Part of PR ada/33688
7969 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
7970 datagram info on Linux.
7972 2007-12-19 Vincent Celier <celier@adacore.com>
7974 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
7975 that the source path name is always found in the dependencies.
7977 2007-12-19 Robert Dewar <dewar@adacore.com>
7979 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
7980 Fix name of Wide_Wide_Latin_1/9 file names
7981 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
7982 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
7983 Add missing documentation for Ada.Command_Line.Response_File
7984 Update list of warning letters for Warnings pragma
7985 Add documentation for pragma Unmodified
7987 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
7989 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
7991 2007-12-17 Arnaud Charlet <charlet@adacore.com>
7993 * s-vxwork-alpha.ads: Removed, no longer used.
7995 2007-12-15 Jakub Jelinek <jakub@redhat.com>
7997 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
7999 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
8002 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8003 mlib-tgt-specific.adb.
8005 2007-12-13 Bob Duff <duff@adacore.com>
8007 * trans.c (Attribute_to_gnu): Check for violations of the
8008 No_Implicit_Dynamic_Code restriction. This checking used to be done in
8009 the front end, but is moved here so we can make it more accurate.
8011 2007-12-13 Pascal Obry <obry@adacore.com>
8013 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8014 version is provided for older GNU/Linux distribution not
8015 supporting thread affinity sets.
8017 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8019 (bit_field): New packed boolean type used by cpu_set_t.
8020 (cpu_set_t): New type corresponding to the C type with
8021 the same name. Note that on the Ada side we use a bit
8022 field array for the affinity mask. There is not need
8023 for the C macro for setting individual bit.
8024 (pthread_setaffinity_np): New imported routine.
8026 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8028 (Create_Task): Set the processor affinity mask if information
8031 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
8033 2007-12-13 Robert Dewar <dewar@adacore.com>
8035 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8036 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8037 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
8038 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8039 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
8040 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8041 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
8042 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8043 for subprogram pointers.
8045 * g-ctrl_c.adb: New file.
8047 * g-ctrl_c.ads (Install_Handler): New body.
8049 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8050 instead of obsolete function Is_Always_Inlined.
8051 (Freeze_Entity): check for tagged type in imported C subprogram
8052 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8053 (Freeze_Entity): check for convention Ada subprogram pointer in
8054 imported C subprogram.
8055 (Freeze_Fixed_Point_Type): In the case of a base type where the low
8056 bound would be chopped off and go from negative to zero, force
8057 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8058 bound) so that the size computation for the base type will take
8059 negative values into account.
8061 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
8062 Bob Duff <duff@adacore.com>
8063 Tristan Gingold <gingold@adacore.com>
8065 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8066 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8067 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8068 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8069 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8070 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8071 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8072 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
8073 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
8074 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8075 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8076 (Always_Compatible_Rep): New flag to control trampolines globally.
8077 (Dynamic_Trampolines_Used): New flag for implementing the
8078 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8079 and not yet set correctly for some targets).
8081 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8082 Simply indirectly call s-stchop when a task is created.
8085 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8086 appears as an argument (entries A) in an ALI file.
8088 * fe.h (Stack_Check_Limits): Declare new target parameter.
8089 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8091 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8092 This variable is declared in C to be sure not subject to elaboration
8094 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8097 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8098 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8100 * s-stchop.ads: Add comments.
8102 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8103 limit method of stack checking.
8105 * s-stchop-limit.ads: New file.
8107 2007-12-13 Robert Dewar <dewar@adacore.com>
8109 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8110 a-cihama.adb, g-awk.adb,
8111 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8114 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8116 * sem.adb: Update handling of assigned value/unreferenced warnings
8118 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8120 * lib-xref.ads: Improve documentation for k xref type
8123 Update handling of assigned value/unreferenced warnings
8124 (Generate_Reference): Warning for reference to entity for which a
8125 pragma Unreferenced has been given should be unconditional.
8126 If the entity is a discriminal, mark the original
8127 discriminant as referenced.
8129 * sem_warn.ads, sem_warn.adb
8130 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8131 no entities referenced in package
8132 (Check_One_Unit): Don't give message about no entities referenced in
8133 a package if a pragma Unreferenced has appeared.
8134 Handle new warning flag -gnatw.a/-gnatw.A
8135 Update handling of assigned value/unreferenced warnings
8137 * atree.h: Add flags up to Flag247
8138 (Flag231): New macro.
8140 2007-12-13 Jose Ruiz <ruiz@adacore.com>
8142 * adaint.h: (__gnat_plist_init): Not defined for RTX.
8144 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8147 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8148 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8149 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8150 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8153 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8155 * sysdep.c (winflush_function for RTX): Procedure that does nothing
8156 since we only have problems with Windows 95/98, which are not
8158 (__gnat_ttyname): Return the empty string on Nucleus, just as
8161 2007-12-13 Robert Dewar <dewar@adacore.com>
8163 * a-textio.adb, a-textio.ads:
8164 Extensive changes to private part for wide character encoding
8166 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8167 (Look_Ahead): Fix mishandling of encoded sequences
8168 Move declaration of Wch_Con to private part (should not be visible)
8170 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8171 UTF-8. Probably this is never used, but if it is, brackets is
8174 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8175 setting wide character encoding for no main program case and when
8176 encoding is specified using -W?
8177 Initialize stack limit of environment task if stack limit method of
8178 stack checking is enabled.
8179 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8180 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8181 (Get_Main_Unit_Name): New function.
8182 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8183 (Gen_Output_File): Set Bind_Main_Program to True for .NET
8185 * bindusg.adb: Add line for -Wx switch
8187 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8189 Add new useful constant WC_Longest_Sequences
8191 * switch-b.adb: Clean up handling of -Wx switch
8192 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8194 * switch-c.adb: -gnatg activates warning on assertion errors
8195 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8197 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8199 2007-12-13 Robert Dewar <dewar@adacore.com>
8200 Ed Schonberg <schonberg@adacore.com>
8202 * a-ngcoty.adb: New pragma Fast_Math
8204 * opt.adb: New pragma Fast_Math
8207 Add Implemented_By_Entry to the list of pragmas which do not require any
8209 (Favor_Top_Level): New pragma.
8210 New pragma Fast_Math
8212 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8213 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8214 Expand_Allocator_Expression): Take into account VM_Target
8215 (Expand_Attribute, case 'Identity): Handle properly the case where
8216 the prefix is a task interface.
8217 New pragma Fast_Math
8219 * par.adb (Next_Token_Is): New function
8220 (P_Pragma): Add Skipping parameter
8221 (U_Left_Paren): New procedure
8222 (U_Right_Paren): New procedure
8223 New pragma Fast_Math
8225 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8227 New pragma Fast_Math
8229 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8230 Implemented_By_Entry.
8231 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8232 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8233 items, since it can apply to more than one overloadable entity. Set
8234 new flag Has_Pragma_Inline_Always for Inline_Always case.
8235 (Analyze_Pragma, case Complex_Representation): Improve error message.
8236 (Analyze_Pragma, case Assert): When assertions are disabled build the
8237 rewritten code with Sloc of expression rather than pragma, so new
8238 warning about failing is not deleted.
8239 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8240 protected types and update error message to reflect that. Test whether
8241 the protected type is allowed for the pragma (an error is issued if the
8242 type has any entries, or components that do not have preelaborable
8244 New pragma Fast_Math
8245 (Analyze_Pragma, case No_Return): Handle generic instance
8247 * snames.h, snames.ads, snames.adb:
8248 Add new predefined name for interface primitive _Disp_Requeue.
8249 New pragma Fast_Math
8251 * a-tags.ads, a-tags.adb: New calling sequence for
8252 String_To_Wide_[Wide_]String
8253 (Secondary_Tag): New subprogram.
8255 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8257 New calling sequence for String_To_Wide_[Wide_]String
8258 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8259 the use of the secondary stack for image routines.
8261 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8262 calling sequence for String_To_Wide_[Wide_]String
8264 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8266 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8267 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8269 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8270 (P_Formal_Part): Use Skipping parameter in P_Pragma call
8271 to improve error recovery
8273 * par-util.adb (Next_Token_Is): New function
8274 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8276 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8277 semicolon if missing
8278 (P_Pragma): Implement new Skipping parameter
8279 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8280 Fix location of flag for unrecognized pragma message
8282 * par-tchk.adb (U_Left_Paren): New procedure
8283 (U_Right_Paren): New procedure
8285 2007-12-13 Geert Bosch <bosch@adacore.com>
8288 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8289 the second or later Scaled_Divide would omit leading zeroes,
8290 resulting in too few digits produced and a Layout_Error as result.
8291 (Put): Initialize Pos.
8293 2007-12-13 Robert Dewar <dewar@adacore.com>
8295 atree.ads, atree.adb (Flag231..Flag247): New functions
8296 (Set_Flag231..Set_Flag247): New procedures
8297 (Basic_Set_Convention): Rename Set_Convention to be
8298 Basic_Set_Convention
8299 (Nkind_In): New functions
8300 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8302 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8304 of obsolete function Is_Always_Inlined
8305 (Register_Predefined_DT_Entry): Initialize slots of the second
8306 secondary dispatch table.
8307 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8308 (Expand_N_Function_Call): Remove special provision for stack checking.
8310 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8311 Include _Disp_Requeue in the list of predefined operations.
8312 (Find_Interface_ADT): Modified to fulfill the new specification.
8313 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8315 * par-ch4.adb, nlists.ads, nlists.adb:
8316 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8318 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8319 Fix location of flag for unrecognized pragma message
8321 * sem_ch7.adb: Use Nkind_In
8323 2007-12-13 Vincent Celier <celier@adacore.com>
8326 Indicate what flags are used by the Project Manager, gprbuild and
8328 (Opt.Follow_Links_For_Dirs): New flag
8329 (Warn_On_Assertion_Failure): New flag
8330 (Wide_Character_Encoding_Method_Specified): New flag
8331 (Suppress_All_Inlining): New switch set by -fno-inline
8332 (Real_VMS_Target): New flag
8333 New pragma Fast_Math
8335 2007-12-13 Robert Dewar <dewar@adacore.com>
8337 * back_end.adb: Recognize -fno-inline
8339 2007-12-13 Robert Dewar <dewar@adacore.com>
8341 * checks.adb: Fix optimization problem with short-circuited form
8343 2007-12-13 Bob Duff <duff@adacore.com>
8345 * clean.adb (Usage): Add line for -aP
8346 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8347 with a parameter "procedure Usage", instead of passing a pointer to a
8348 procedure. This is to eliminate trampolines (since the Usage procedure
8349 is often nested in a main procedure, and it would be inconvenient to
8352 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8353 to be generic, with a parameter "procedure Callback (...)", instead of
8354 passing a pointer to a procedure. This is to eliminate trampolines
8355 (since the Callback procedure is usually nested).
8357 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8358 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8359 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8361 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8362 Use the generic Heap_Sort_G instead of Heap_Sort_A.
8364 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8366 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8367 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8368 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8369 (Renamed_In_Spec): New flag
8370 (Has_Pragma_Inline_Always): New flag
8371 Add missing doc for pragma Obsolescent_Warning
8372 Add missing doc for 17 additional unused flags (230-247)
8373 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8374 Alphabetize with clauses.
8375 Separate Is_Thunk and Has_Thunks flags
8376 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8377 (Related_Interface): Renamed to Related_Type.
8378 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8379 (Set_Is_Flag): Restrict the assertion.
8381 2007-12-13 Vincent Celier <celier@adacore.com>
8383 * errout.adb (Output_Source_Line): Do not keep a trailing space after
8384 the source line number if the source line is empty.
8386 2007-12-13 Geert Bosch <bosch@adacore.com>
8388 * eval_fat.adb (Decompose_Int): Handle argument of zero.
8389 (Compose): Remove special casing of zero.
8390 (Exponent): Likewise.
8391 (Fraction): Likewise.
8392 (Machine): Likewise.
8393 (Decompose): Update comment.
8395 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8397 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8398 limited ancestor part, initialize controllers of enclosing record
8399 before expanding ancestor aggregate.
8400 (Gen_Assign): If a component of the aggregate is box-initialized, add
8401 code to call Initialize if the component is controlled, and explicit
8402 assignment of null if the component is an access type.
8404 Handle properly aggregates for limited types that appear in object
8405 declarations when the aggregate contains controlled values such as
8407 When expanding limited aggregates into individual components, do not
8408 call Adjust on controlled components that are limited.
8410 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8412 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8414 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8416 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8417 predefined primitive _Disp_Requeue.
8418 (Make_Predefined_Primitive_Specs): Create the spec for predefined
8419 primitive _Disp_Requeue.
8420 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8421 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8422 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8423 an interface type. In case of limited interfaces we now declare all the
8424 predefined primitives associated with synchronized interfaces as
8426 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8428 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8429 tagged type is an interface type and there is no user-defined equality
8431 Add also bodies of predefined primitives associated with synchronized
8433 (Freeze_Record_Type): Do not build bodies of predefined primitives of
8434 interface types because they are now defined abstract.
8435 Add missing documentation.
8436 (Expand_Record_Controller): Update occurrence of Related_Interface
8438 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8439 (Expand_N_Object_Declaration): Take into account VM_Target when handling
8440 class wide interface object declaration.
8441 (Expand_Previous_Access_Type): Do not create a duplicate master entity
8442 if the access type already has one.
8443 (Expand_N_Object_Declaration): Defend against attempt to validity check
8444 generic types. Noticed for -gnatVcf specified with previous errors.
8446 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8448 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8449 Expand_Allocator_Expression): Take into account VM_Target
8451 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8452 secondary stack when VM_Target /= No_VM
8454 2007-12-13 Javier Miranda <miranda@adacore.com>
8455 Ed Schonberg <schonberg@adacore.com>
8457 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8458 Is_Complation_Unit by Is_Library_Level_Entity in the code
8459 that decides if the static dispatch tables need to be built.
8460 (Wrap_Transient_Declaration): Do not generate a finalization call if
8461 this is a renaming declaration and the renamed object is a component
8462 of a controlled type.
8464 2007-12-13 Gary Dismukes <dismukes@adacore.com>
8466 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8467 In the case where the renamed subprogram is a dereference, call
8468 Force_Evaluation on the prefix.
8470 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8471 Ed Schonberg <schonberg@adacore.com>
8473 * exp_ch9.adb (Expand_N_Asynchronous_Select,
8474 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8475 comment reformatting.
8476 (Set_Privals): Inherit aliased flag from formal. From code reading.
8477 (Build_Simple_Entry_Call): Out parameters of an access type are passed
8478 by copy and initialized from the actual. This includes entry parameters.
8479 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8480 and Ada 2005 models of requeue.
8481 (Null_Statements): Still connsider do-end block null if it contains
8482 Unreferenced and Warnings pragmas.
8483 (Expand_N_Accept_Statement): Do not optimize away null do end if
8484 dispatching policy is other than defaulted.
8485 (Expand_N_Timed_Entry_Call): When the triggering statement is a
8486 dispatching call, manually analyze the delay statement.
8487 (Find_Parameter_Type): Move subprogram to Sem_Util.
8489 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8490 Javier Miranda <miranda@adacore.com>
8492 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8493 _Disp_Requeue occupies dispatch table slot number 15. Move
8494 _Disp_Timed_Select to slot 16.
8495 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8496 generate the spec and body of _Disp_Reqeueue.
8497 (Make_DT): Build and initialize the second dispatch table.
8498 Handle initialization of RC_Offset when the parent
8499 is a private type with variable size components.
8500 (Make_Secondary_DT): Complete documentation. Add support to
8501 initialize the second dispatch table.
8502 (Make_Tags): Generate the tag of the second dispatch table.
8503 (Register_Primitive): Add support to register primitives in the
8504 second dispatch table.
8506 2007-12-13 Pascal Obry <obry@adacore.com>
8508 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8509 Windows. This signal is used by gnatmake to kill child processes for
8512 2007-12-13 Javier Miranda <miranda@adacore.com>
8514 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8515 support for generic dispatching constructor calls in which we need to
8516 locate the tag of a secondary dispatch table associated with an
8517 interface type to properly dispatch the call.
8518 (Expand_N_Attribute_Reference [case Address],
8519 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8520 handling of VM targets.
8522 2007-12-13 Robert Dewar <dewar@adacore.com>
8523 Ed Schonberg <schonberg@adacore.com>
8525 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8528 * ug_words: Add entries for -gnatw.a -gnatw.A
8530 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8531 literal is a subtype with non-static constraints, use the base type of
8532 the context as the base of the string subtype, to prevent type
8534 (Resolve_Actuals): If the actual is an entity name, generate a
8535 reference before the actual is resolved and expanded, to prevent
8536 spurious warnings on formals of enclosing protected operations.
8537 (Analyze_Overloaded_Selected_Component): If type of prefix if
8538 class-wide, use visible components of base type.
8539 (Resolve_Selected_Component): Ditto.
8540 (Resolve_Short_Circuit): Detect case of pragma Assert argument
8541 evaluating to False, and issue warning message.
8543 * usage.adb: Add lines for -gnatw.a and -gnatw.A
8545 2007-12-13 Emmanuel Briot <briot@adacore.com>
8547 * g-calend.ads (No_Time): New constant, to represent an uninitialized
8550 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8552 (Month_Name_To_Number): New subprogram
8554 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8555 letter to upper-case.
8557 2007-12-13 Robert Dewar <dewar@adacore.com>
8558 Ed Schonberg <schonberg@adacore.com>
8560 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8562 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8563 context is a limited view, use non-limited view when available. If the
8564 non-limited view is an unconstrained array, this enforces consistency
8565 requirements in 3.10.2 (27).
8566 (Layout_Type): For an access type whose designated type is a limited
8567 view, examine its declaration to determine if it is an unconstrained
8568 array, and size the access type accordingly.
8569 (Layout_Type): Do not force 32-bits for convention c subprogram
8570 pointers in -gnatdm mode, only if real vms target.
8572 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8573 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8574 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8575 violations of the No_Implicit_Dynamic_Code restriction.
8576 (Resolve_Attribute, case 'Access): If designated type of context is a
8577 limited view, use non-limited view when available. If the non-limited
8578 view is an unconstrained array, this enforces consistency requirements
8580 (Layout_Type): For an access type whose designated type is a limited
8581 view, examine its declaration to determine if it is an unconstrained
8582 array, and size the access type accordingly.
8584 2007-12-13 Vincent Celier <celier@adacore.com>
8586 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8587 object directory of main project does not exist.
8588 On VMS, correctly set then environment variable for the source
8591 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
8593 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8594 set to True this procedure will create the value of type REG_EXPAND_SZ.
8595 It was only possible to create REG_SZ values before.
8597 2007-12-13 Robert Dewar <dewar@adacore.com>
8599 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8600 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8601 namet-sp.adb, namet-sp.ads: New files.
8603 * g-speche.adb: Use generic routine in g-spchge
8605 * s-wchcnv.ads, s-wchcnv.adb:
8606 Minor code cleanup (make formal type consistent with spec)
8608 * namet.adb: Update comments.
8610 * par-endh.adb (Evaluate_End_Entry): Use new
8611 Namet.Sp.Is_Bad_Spelling_Of function
8613 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8615 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8616 ancestor is an access type initialized with a box, set its type
8617 explicitly, for use in subsequent expansion.
8618 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8621 2007-12-13 Robert Dewar <dewar@adacore.com>
8623 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8626 2007-12-13 Robert Dewar <dewar@adacore.com>
8628 * inline.adb (Back_End_Cannot_Inline): Use new flag
8629 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8631 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8632 Has_Pragma_Inline_Always instead.
8633 of obsolete function Is_Always_Inlined
8634 (Build_Body_To_Inline): Same change
8635 (Cannot_Inline): Same change
8636 Do not give warning on exception raise in No_Return function
8638 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
8639 component has two inconsistent component clauses in the same record
8640 representation clause, favor the message that complains about
8641 duplication rather than inconsistency.
8643 (Record_Representation_Clause): Do not warn on missing component
8644 clauses for inherited components of a type extension.
8645 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
8646 an overloadable item if it is a pragma that can apply to multiple
8647 overloadable entities (e.g. Inline) because a pragma cannot be on
8648 more than one chain at a time.
8649 (Validate_Unchecked_Conversion): Add code to warn on unchecked
8650 conversion where one of the operands is Ada.Calendar.Time.
8651 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
8652 For now, ignore Component_Size clause on VM targets, as done for
8655 2007-12-13 Emmanuel Briot <briot@adacore.com>
8656 Vincent Celier <celier@adacore.com>
8658 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
8660 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
8662 (Hash): Move instantiation of System.HTable.Hash from spec to body
8663 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
8664 systems, since we do not need to recompute the Name_Id for the canonical
8666 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8667 as a parameter. This parameter is in fact always "ada" in all calls, and
8668 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
8669 while loading a project with 40000 files
8671 * prj-attr.adb: Fix name of attribute Dependency_Driver
8672 Change the kind of indexing for attribute Root
8674 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
8675 variables already declared, in case constructions.
8677 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
8678 Current_Object_Path_File to No_Path.
8680 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
8681 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
8683 * prj-makr.adb: new parameter Current_Dir
8685 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
8686 Ada sources when language is not Ada.
8687 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8688 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
8689 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
8690 (Locate_Directory): Always resolve links when computing Canonical_Path
8691 (Look_For_Sources): Make sure that Name_Buffer contains the file name
8692 in Source_Files before checking for the presence of a directory
8694 Optimize calls to Name_Find when on case sensitive systems.
8695 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
8697 (Prj.Nmsc.Check): new parameter Current_Dir
8698 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
8699 cannot be empty and the spec suffix cannot be the same as the body or
8701 (Get_Unit): When a file name can be of several unit kinds (spec, body or
8702 subunit), always consider the longest suffix.
8703 (Check_Configuration): Do not issue an error if there is no compiler
8704 for a language. Just issue a warning and ignore the sources for the
8706 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
8708 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
8709 (Unit_Exceptions): New hash table
8710 (Check_Naming_Schemes): Check if a file that could be a unit because of
8711 the naming scheme is not in fact a source because there is an exception
8713 (Look_For_Sources): Put the unit exceptions in hash table
8715 (Get_Unit_Exceptions): Give initial value No_Source to local variable
8716 Other_Part to avoid exception when code is compiled with validity
8718 (Get_Sources_From_File): Check that there is no directory information
8720 (Look_For_Sources): Check that there is no directory information in the
8721 list of file names in Source_Files.
8722 (Look_For_Sources): In multi-language mode, do not allow exception file
8723 names that are excluded.
8724 (Excluded_Sources_Htable): New hash table
8725 (Search_Directories.Check_File): New procedure to simplify
8727 (Search_Directories): Do not consider excluded sources
8728 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
8730 (Get_Exceptions): Set component Lang_Kind of Source_Data
8731 (Get_Unit_Exceptions): Ditto
8732 (Search_Directories): Ditto
8734 * prj-pars.adb: new parameter Current_Dir
8736 * prj-part.ads, prj-part.adb:
8737 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
8738 (Opt.Follow_Links_For_Dirs): New flag
8739 (Project_Path_Name_Of): Cache information returned by this routine as
8740 Locate_Regular_File is a costly routine. The code to output a log
8741 information and the effective call to Locate_Regular_File is now
8742 factorized into a routine (code clean-up).
8743 (Parse, Parse_Single_Project): new parameter Current_Dir
8744 When main project file cannot be found, indicate in the error
8745 message the project path that was used to do the search.
8747 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
8748 (Prj.Proc.Process*): new parameter Current_Dir
8750 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
8752 2007-12-13 Bob Duff <duff@adacore.com>
8754 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
8755 procedure to be called from the back end to check the
8756 No_Implicit_Dynamic_Code restriction.
8758 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8760 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
8761 Fixes another case where RTE_Available_Call was ignored instead of being
8765 * rtsfind.ads: Add new entries.
8767 2007-12-13 Robert Dewar <dewar@adacore.com>
8769 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
8770 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
8772 * scn.adb: Implement BOM recognition
8774 2007-12-13 Thomas Quinot <quinot@adacore.com>
8775 Ed Schonberg <schonberg@adacore.com>
8777 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
8778 subprogram body that acts as its own spec may not have a non-private
8779 WITH clause on a private sibling.
8780 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
8781 child unit is a renaming, create an implicit with_clause on that
8782 parent, and not on the unit it renames, to prevent visibility errors
8783 in the current unit.
8785 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8787 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
8788 renaming declaration, use the Slocs of the formal parameters from the
8789 declaration of the formal subprogram when creating the formal parameter
8790 entities in the renaming declaration.
8791 (Analyze_Formal_Type_Declaration): Change the placement of the error
8792 message concerning illegal known discriminants. It is now posted on the
8793 type rather than on the first discriminant. This change ensures early
8795 (Freeze_Subprogram_Body): If the generic subprogram is nested within
8796 the package body that contains the instance, do not generate an
8797 out-of-place freeze node for the enclosing package.
8798 (Collect_Previous_Instantiations): Ignore internal instantiations
8799 generated for formal packages.
8800 (Validate_Derived_Type_Instance): Add a check that when a formal
8801 derived type is Known_To_Have_Preelab_Init then the actual type must
8802 have preelaborable initialization, and issue an error when this
8803 condition is violated.
8805 2007-12-13 Robert Dewar <dewar@adacore.com>
8807 * s-imenne.adb, s-imenne.ads: New files.
8809 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8810 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
8811 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
8812 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
8813 s-imgwch.ads: New calling sequence for Image routines to avoid sec
8816 2007-12-13 Javier Miranda <miranda@adacore.com>
8817 Ed Schonberg <schonberg@adacore.com>
8819 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
8820 generation of spurious error if parent is an interface type; caused
8821 because predefined primitive bodies will be generated later by
8823 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
8825 (Derive_Subprograms): Handle derivations of predefined primitives
8826 after all the user-defined primitives to ensure that they are
8827 found in proper order in instantiations.
8828 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
8829 of Related_Interface to Related_Type.
8830 (Record_Type_Declaration): Minor reordering of calls to decorate the
8831 Tag component because the entity must have set its Ekind attribute
8832 before setting its Is_Tag attribute.
8833 (Analyze_Subtype_Declaration): In the case of subtypes with
8834 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
8836 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8837 Ed Schonberg <schonberg@adacore.com>
8839 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
8840 statement to the list of contexts where a selected component with a
8841 concurrent tagged type prefix should yield a primitive operation.
8842 (Find_Primitive_Operation): Handle case of class-wide types.
8843 (Analyze_Overloaded_Selected_Component): If type of prefix is
8844 class-wide, use visible components of base type.
8845 (Resolve_Selected_Component): Ditto.
8846 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
8847 formal of a generic subprogram. find candidate interpretations by
8848 scanning the list of generic formal declarations.:
8849 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
8850 type from a limited_with_clause, and the full view is available, use it
8851 for subsequent semantic checks.
8852 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
8853 (Find_Primitive_Operation): New function.
8854 (Analyze_Overloaded_Selected_Component): insert explicit dereference
8855 only once if several interpretations of the prefix yield an access type.
8856 (Try_Object_Operation): Code and comment cleanup.
8857 (Analyze_Selected_Component): Reorder local variables. Minot comment and
8858 code reformatting. When the type of the prefix is tagged concurrent, a
8859 correct interpretation might be available in the primitive and
8860 class-wide operations of the type.
8862 2007-12-13 Robert Dewar <dewar@adacore.com>
8863 Ed Schonberg <schonberg@adacore.com>
8865 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
8866 renaming entry as subprogram using rename-as-body if subprogram spec
8868 (Use_One_Type): The clause is legal on an access type whose designated
8869 type has a limited view.
8870 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8871 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
8872 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
8873 operation denoted by a selected component.
8874 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
8875 it can be an expression, possibly overloaded, that returns a task or
8878 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8879 Gary Dismukes <dismukes@adacore.com>
8881 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
8882 requeue statement is dispatching. Do not emit an error when the name is
8883 not an entry and the context is a dispatching select. Add code to
8884 perform subtype conformance between the formals of the current entry
8885 and those of the target interface primitive.
8886 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
8887 Timed_Entry_Call): Analyze the triggering statement as the first step of
8888 the processing. If this is a dispatching select, postpone the analysis
8889 of all select statements until the Expander transforms the select. This
8890 approach avoids generating duplicate identifiers after the Expander has
8891 replicated some of the select statements. In case the Expander is
8892 disabled, perform regular analysis.
8893 (Check_Triggering_Statement): New routine.
8894 (Analyze_Requeue): Exclude any interpretations that are not entries when
8895 checking overloaded names in a requeue. Also test type conformance for
8896 matching interpretations rather than requiring subtype conformance at
8897 that point to conform with the RM's resolution rule for requeues.
8899 2007-12-13 Ed Schonberg <schonberg@adacore.com>
8901 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
8902 inherited operation is a defaulted tag-indeterminate call, and there is
8903 a statically tagged actual, use the static tag as a controlling actual
8904 for the defaulted actual.
8906 2007-12-13 Geert Bosch <bosch@adacore.com>
8908 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
8909 context, so do not call Check_Non_Static_Context.
8911 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
8913 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
8914 whether formal E is an entity which may have parameters.
8916 2007-12-13 Bob Duff <duff@adacore.com>
8917 Javier Miranda <miranda@adacore.com>
8918 Robert Dewar <dewar@adacore.com>
8920 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
8921 (Set_Convention): New procedure to set the Convention flag, and in
8922 addition make sure the Favor_Top_Level flag is kept in sync (all
8923 foreign-language conventions require Favor_Top_Level = True).
8924 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
8926 (Collect_Interfaces_Info): Minor update to handle the two secondary
8927 dispatch tables. Update occurrence of Related_Interface to Related_Type.
8928 (Generate_Parent_Ref): Add parameter to specify entity to check
8929 (Is_Preelaborable_Expression): Allow the name of a discriminant to
8930 initialize a component of a type with preelaborable initialization.
8931 This includes the case of a discriminal used in such a context.
8932 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
8933 latest Ada 2005 rules about renaming and 'Access of
8934 discriminant-dependent components.
8935 (Check_Nested_Access): Add handling when there are no enclosing
8936 subprograms (e.g. case of a package body).
8937 (Find_Parameter_Type): Factor routine from several other compiler files.
8938 Remove routine from Find_Overridden_Synchronized_Primitive.
8940 2007-12-13 Thomas Quinot <quinot@adacore.com>
8942 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
8943 an invalid access to an uninitialized slot in the
8944 Source_File_Index_Table.
8946 2007-12-13 Thomas Quinot <quinot@adacore.com>
8948 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
8950 2007-12-13 Bob Duff <duff@adacore.com>
8952 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
8953 access-to-subprogram types in this package.
8955 2007-12-13 Olivier Hainque <hainque@adacore.com>
8957 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
8958 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
8959 Stack_Overlay_Address and document that we are using an internal
8961 (Byte_Size, Unsigned_32_Size): Remove, now useless.
8962 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
8963 consistently throughout the various implementation pieces.
8965 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
8966 overlay we are using to fill the stack area with patterns.
8967 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
8968 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
8969 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
8971 2007-12-13 Robert Dewar <dewar@adacore.com>
8973 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
8975 2007-12-13 Arnaud Charlet <charlet@adacore.com>
8978 (Create_Task): Take into account tasks created by foreign threads.
8979 Code clean up: use constants instead of hard coded values.
8981 2007-12-13 Robert Dewar <dewar@adacore.com>
8983 * styleg.adb (Check_Comment): More liberal rules for comment placement
8985 2007-12-13 Olivier Hainque <hainque@adacore.com>
8987 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
8988 of Procedure Value instead of Frame Pointer as the invocation
8989 identifier associated with the instruction pointer in each traceback
8992 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
8993 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
8994 Pointer as the invocation identifier passed to tbk$symbolize.
8996 * s-traent-vms.ads, s-traent-vms.adb
8997 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
8998 Procedure Value instead of Frame Pointer as the invocation identifier
8999 passed to tbk$symbolize.
9001 2007-12-13 Robert Dewar <dewar@adacore.com>
9003 * tbuild.ads, tbuild.adb:
9004 Fix location of flag for unrecognized pragma message
9006 2007-12-13 Robert Dewar <dewar@adacore.com>
9008 * treepr.ads, treepr.adb: (pl): implement use of positive value
9011 2007-12-13 Robert Dewar <dewar@adacore.com>
9013 * xeinfo.adb: Remove warnings
9014 * xnmake.adb: Remove warnings
9015 * xsinfo.adb: Remove warnings
9016 * xtreeprs.adb: Remove warnings
9017 * xsnames.adb: Remove warnings
9019 * a-ngcoar.adb: Fix typo.
9020 * s-interr.adb: Minor reformatting
9021 * env.c: Minor reformatting.
9022 * g-bytswa.adb: Minor reformatting.
9023 * g-rannum.ads: Minor documentation improvements
9024 * s-tasinf-mingw.adb: Minor header fix
9025 * a-clrefi.adb: Minor reformatting
9026 * g-sttsne.ads: Minor documentation improvement
9027 * g-sttsne-locking.ads: Minor documentation improvement
9028 * g-soliop-solaris.ads: Minor documentation improvement
9029 * g-soliop-mingw.ads: Minor documentation improvement
9030 * g-soliop.ads: Minor documentation improvement
9031 * exp_aggr.ads: Minor reformatting
9032 * debug.adb: Add documentation for the gprbuild debug flags
9033 * exp_ch2.adb: Use Nkind_In to simplify code throughout
9034 * exp_pakd.adb: Minor reformatting
9036 * g-altive.ads, g-alleve.adb: Remove assertions.
9037 Add comment about minor differences between targets regarding
9038 floating-point operations.
9040 * g-thread.adb: Remove pragma unreferenced.
9041 * lib.ads: Minor reformatting
9042 * par-ch9.adb: Minor reformatting of error messages
9043 * sem_case.adb: Minor reformatting
9044 * s-fileio.adb: Minor reformattinng
9045 * s-vmexta.ads: Minor typo
9047 Take into account 'Success' value as per new GNAT warning.
9049 2007-12-13 Vincent Celier <celier@adacore.com>
9051 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9054 2007-12-13 Robert Dewar <dewar@adacore.com>
9055 Bob Duff <duff@adacore.com>
9057 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9058 Document that suffixes may be terminations of each others
9059 Add doc for -gnatw.a and -gnatw.A
9060 Document gnatbind -Wx switch
9061 Document BOM recognition
9062 Document pragma Implemented_By_Entry.
9065 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9066 Add doc for pragma Unreferenced suppressing no entities referenced msg
9067 Add documentation of GNAT.Directory_Operations.Iteration
9068 Add documentation of GNAT.Random_Numbers
9069 Add documentation for pragma Shared.
9070 Correct documentation for Bit_Order
9071 Add documentation for the Pool_Address attribute.
9072 Fix and improve documentation of pragma machine_attribute.
9073 New pragma Fast_Math
9074 Document BOM recognition
9076 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9077 Add /Wide_Character_Encoding for binder
9078 Add qualifier for the new gnatpp option --no-separate-loop-then
9080 2007-12-13 Matthew Heaney <heaney@adacore.com>
9082 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9083 which generic formal operations are called for each operation.
9085 2007-12-13 Olivier Hainque <hainque@adacore.com>
9087 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9088 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9090 2007-12-13 Emmanuel Briot <briot@adacore.com>
9092 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9093 Reference_Dir unless we actually need it.
9095 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
9096 Tristan Gingold <gingold@adacore.com>
9098 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9101 a-calend-vms.adb: Remove pragma warning off and add pragma
9104 2007-12-13 Robert Dewar <dewar@adacore.com>
9106 * impunit.adb: Add entries for missing units
9108 * Makefile.rtl: Add new run-time units.
9110 * Make-lang.in: Update dependencies.
9112 2007-12-13 Bob Duff <duff@adacore.com>
9114 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9115 types, set Can_Use_Internal_Rep appropriately, based on
9116 Always_Compatible_Rep_On_Target.
9118 2007-12-13 Gary Dismukes <dismukes@adacore.com>
9119 Arnaud Charlet <charlet@adacore.com>
9121 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9122 it to the front end and setting the aamp_target environment variable
9123 to the switch's argument to ensure that gnaampbind and gnaamplink will
9124 take the specified library into account.
9125 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9126 target, since the CIL compiler supports an "object" file (.il files).
9128 2007-12-13 Vincent Celier <celier@adacore.com>
9130 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9131 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9133 2007-12-13 Geert Bosch <bosch@adacore.com>
9135 * s-parame-vxworks.adb:
9136 Update comments to reflect usage of this package by Nucleus.
9138 2007-12-13 Arnaud Charlet <charlet@adacore.com>
9140 * i-vxwork.ads: Kill new warning on Convention C, since changing the
9141 spec would break code.
9143 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9145 * system-vxworks-alpha.ads: Removed.
9147 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
9149 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9151 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
9154 * sem_ch3.adb (Designates_T): New function.
9155 (Mentions_T): Factor reusable part of the logic into Designates_T.
9156 Consider non-access parameters and access and non-access result.
9157 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9158 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9160 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9162 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
9165 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9166 the new implementation of target-specific calls.
9168 2007-12-07 Olivier Hainque <hainque@adacore.com>
9170 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9171 the designated full view, only follow a second level Full_View link
9172 for Non_Limited_Views of from_limited_with references.
9174 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
9177 * sem_ch6.adb (Process_Formals): Prevent an access type formal
9178 to be initialized with an access to constant object.
9180 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9181 when an access to constant is used to initialize an access
9185 * a-direct.adb (Compose): Containing_Directory can be an empty string.
9187 2007-12-07 Olivier Hainque <hainque@adacore.com>
9190 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9191 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9192 this is from an alignment clause on the GNAT entity.
9193 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9194 to distinguish the case where we set it from the type's alignment.
9195 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9196 whether this alignment was set from an explicit alignment clause.
9198 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
9200 * decl.c (make_packable_type): Revert last change.
9201 (gnat_to_gnu_field): Avoid setting size and position multiple times.
9202 * utils.c (finish_record_type): Retrieve the real name of the type.
9204 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
9206 * trans.c (lvalue_required_p): Take base node directly instead
9207 of its parent. Rename second parameter to 'gnu_type'.
9208 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9209 <N_Slice>: Likewise.
9210 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9211 Adjust calls to lvalue_required_p.
9213 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
9216 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9217 parameters of an entry call.
9219 2007-12-03 Robert Dewar <dewar@adacore.com>
9220 Samuel Tardieu <sam@rfc1149.net>
9223 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9224 of variables declared in a library-level package.
9226 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
9228 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9229 of Empty_String'Unchecked_Access.
9231 * Makefile.in: Add support for sh4-linux.
9233 * system-linux-sh4.ads: New file.
9235 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
9238 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9239 and its argument must not be free()ed.
9241 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
9243 * decl.c (make_packable_type): Retrieve the real name of the type.
9244 (maybe_pad_type): Simplify similar code.
9246 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
9249 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9250 than an identifier is used after "case" in a variant_part.
9253 * par-ch4.adb (Is_Parameterless_Attribute): New map.
9254 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9255 attribute name or not depending on the new map.
9257 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9258 returning a string or a type will not be called with improper
9261 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9263 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9266 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9267 Signal an error when attribute argument is a fixed-point value of
9271 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9272 a derived ordinary fixed point type.
9274 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9275 RM_Size when a Small clause is found.
9277 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
9280 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9281 Pass 'false' for the new allocate_struct_function parameter.
9282 * utils.c (build_function_stub): Likewise.
9284 2007-11-25 Richard Guenther <rguenther@suse.de>
9286 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9287 (gnat_poplevel): Likewise.
9289 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
9291 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9292 strict alignment, no alignment clause and a known static size, cap
9293 the type alignment to the greatest power of 2 factor of the size.
9294 (gnat_to_gnu_field): If the field has a component clause, is aliased
9295 or of a type with strict alignment, require that its size be equal to
9297 (validate_size): Use the type size as the minimum size for a type with
9300 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
9302 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9303 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9304 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9305 Use 'Access instead of 'Unchecked_Access in second and third
9306 arguments of pthread_sigmask.
9308 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
9310 * decl.c (ceil_alignment): New function.
9311 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9312 (make_packable_type): Likewise.
9314 2007-11-22 Olivier Hainque <hainque@adacore.com>
9316 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9317 to fit in 80 columns.
9319 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
9321 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9322 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9324 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
9327 * misc.c (gnat_adjust_rli): Delete.
9328 (gnat_init): Do not initialize the translation code here.
9329 Do not call set_lang_adjust_rli.
9330 * trans.c (init_code_table): Make static.
9331 (gnat_init_stmt_group): Delete.
9332 (gigi): Initialize the translation code entirely here.
9333 Emit debug info for the common types here instead of...
9334 * utils.c (gnat_init_decl_processing): ...here.
9335 * gigi.h (init_code_table): Delete.
9336 (gnat_init_stmt_group): Likewise.
9338 2007-11-16 Olivier Hainque <hainque@adacore.com>
9340 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9341 retrieving an allocator return value from a super-aligned address from
9343 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9344 expect a super-aligned address for a fat or thin pointer.
9346 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
9348 * trans.c (call_to_gnu): Always set the source location on the call
9349 expression. If the function returns-by-target, also set it on the
9352 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
9354 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9355 sections of non-supported Interix target.
9357 * s-osinte-interix.ads: Removed.
9359 * i-cstrin.ads (chars_ptr): Make it a C convention type.
9361 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
9363 * a-tasatt.adb: Add a comment at the beginning of the package
9364 explaining why in general 'Unchecked_Access must be used instead
9367 * sem_prag.adb (Process_Convention): Move the test for the
9368 entity on which the Convention pragma applies down to also
9369 forbid pragma Convention on enumeration literals reached
9372 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
9374 * a-tasatt.adb: Revert previous change for this file as it will
9375 generate an error when this package is instantiated from a
9378 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
9380 * a-tasatt.adb: Type Wrapper should be declared in comment instead
9381 of already declared type Node_Access.
9382 Use 'Access instead of 'Unchecked_Access when applicable. Local
9383 lifetime is the one of the package.
9384 (Set_Value): W is allocated on the heap.
9386 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9388 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9390 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9393 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9395 (elaboration code): Timer_Queue lifetime is the one of the
9398 * tracebak.c (i386 alternative): Remove useless comparaison
9399 which is always false; LOWEST_ADDRESS is 0 and is never greater
9400 than an unsigned integer.
9402 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9403 embedded check for "Ada_Version >= Ada_05".
9405 2007-11-07 Olivier Hainque <hainque@adacore.com>
9407 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9408 craft and expand comment.
9410 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
9412 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9414 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
9416 * misc.c (gnat_handle_option): Replace call to abort with
9417 call to gcc_unreachable.
9418 (gnat_init): Likewise.
9419 (gnat_expand_expr): Likewise.
9420 (fp_prec_to_size): Likewise.
9421 (fp_size_to_prec): Likewise.
9423 2007-10-23 Richard Guenther <rguenther@suse.de>
9426 * tracebak.c: #undef abort after including system.h.
9428 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
9430 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9431 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9433 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9435 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
9437 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9438 Set the protection status of the guard page based on the value of On.
9440 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9442 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9443 (Exit_Task): Pass False to Hide_Yellow_Zone.
9445 2007-10-15 Robert Dewar <dewar@adacore.com>
9447 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9448 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9449 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9450 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9451 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9452 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9453 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9454 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9455 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9456 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9457 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9458 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9459 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9460 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9461 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9462 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9464 Add Unreferenced and Warnings (Off) pragmas for cases of
9465 variables modified calls where they are IN OUT or OUT parameters and
9466 the resulting values are not subsequently referenced. In a few cases,
9467 we also remove redundant code found by the new warnings.
9469 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9470 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9471 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9472 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9473 warning controlled by -gnatw.o that warns on cases of out parameter
9474 values being ignored.
9476 2007-10-15 Geert Bosch <bosch@adacore.com>
9478 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9480 * expect.c: Initial port to arm-mentor-nucleus.
9481 Use kill for __gnat_kill() on VMS.
9483 2007-10-15 Emmanuel Briot <briot@adacore.com>
9485 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9487 (Xref_Record): Change type for Line, since in the case of a reference to
9488 a predefined entity (as happens for array index types), the line is set
9490 Add support for parsing multiple array index types info, or
9491 multiple inherited interfaces info. This information cannot be stored
9492 in Xref_Entity_Record, which only supports a single instance of Tref_*,
9493 and is therefore stored in the list of references instead. It has a
9494 special treatement later on in tools that use this information.
9496 2007-10-15 Tristan Gingold <gingold@adacore.com>
9498 * debug.adb: Document use of -gnatd.a and -gnatd.I
9500 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9502 2007-10-15 Javier Miranda <miranda@adacore.com>
9504 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9505 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9506 care of access to class-wide interface types plus removal of bizarre
9507 conversion of tagged object to access type (reported by Gary
9508 Dismukes). After this patch there is no need to perform any
9509 additional management on these nodes in Expand_Interface_Actuals.
9511 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9512 that handles use of 'Access and 'Unchecked_Access applied to
9513 actuals covering interface types. Such code is now
9514 centralized in Expand_N_Attribute_Reference.
9516 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9518 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9519 of tagged types whose ultimate ancestor is a CPP type.
9520 (Freeze_Array_Type): For a packed array type, generate an initialization
9521 procedure if the type is public, to handle properly a client that
9522 specifies Normalize_Scalars.
9524 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9526 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9527 inside a generic body, retrieve the full view of the entry family
9528 discrete subtype if available.
9530 2007-10-15 Thomas Quinot <quinot@adacore.com>
9532 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9533 attempt to generate stubs for hidden primitive operations.
9535 2007-10-15 Vincent Celier <celier@adacore.com>
9537 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9538 returning None, used when there is no platform specific body for
9541 2007-10-15 Bob Duff <duff@adacore.com>
9543 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9544 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9545 the generic Heap_Sort_G, in order to avoid trampolines.
9547 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
9548 Jose Ruiz <ruiz@adacore.com>
9550 * vx_stack_info.c: New file.
9552 * i-forbla-unimplemented.ads: New file.
9554 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9555 for unsupported configurations; use it on VMS targets instead of the
9557 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9558 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9559 used by VxWorks targets to have access to task-specific data and be
9560 able to extract the stack boundaries for stack checking.
9561 Use system-vms-ia64.ads on ivms.
9563 * Make-lang.in: Update dependencies.
9565 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9568 2007-10-15 Vincent Celier <celier@adacore.com>
9570 * snames.adb, snames.ads: Add new standard name runtime_library_dir
9572 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9574 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9576 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9577 the source is unknown.
9579 * prj-ext.adb: Spelling error fix
9581 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9582 95 reserved word in its name.
9583 (Process_Project_Level_Array_Attributes): Process new attribute
9584 Runtime_Library_Dir.
9586 * prj-part.adb (Parse_Single_Project): Do not check the name of the
9587 config project against the user project names.
9589 * prj-proc.adb (Expression): In multi-language mode, indexes that do
9590 not include a dot are always case insensitive.
9591 (Process_Declarative_Items): Ditto
9592 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9595 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9596 True, compare both indexes in lower case.
9598 2007-10-15 Robert Dewar <dewar@adacore.com>
9600 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9602 2007-10-15 Gary Dismukes <dismukes@adacore.com>
9604 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9605 association for an access component, add an association with null as
9606 the expression. Remove testing for array subtypes and the setting in
9607 that case of Ctyp to the array component type, which prevented proper
9608 inclusion of an association for null-initialized arrays. Collapse
9609 condition that tests for array subtypes into just a test of
9610 Is_Partially_Initialized_Type (which already covers arrays anyway).
9612 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9614 * sem_ch12.adb: Minor code reformatting.
9615 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9616 find the parent package which may have been hidden by local
9619 2007-10-15 Gary Dismukes <dismukes@adacore.com>
9621 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9622 flag of derived concurrent types, taking into account the flag setting
9623 on the parent subtype and any new set of discriminants.
9625 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
9627 * sem_ch4.adb: Minor code and comment reformatting.
9628 (Analyze_Allocator): When the designated type of an unconstrained
9629 allocator is a record with unknown discriminants or an array with
9630 unknown range bounds, emit a detailed error message depending on the
9631 compilation mode and whether the designated type is limited.
9633 2007-10-15 Tristan Gingold <gingold@adacore.com>
9635 * system-vms-ia64.ads: New file.
9637 * system-vms_64.ads: Minor comment fix.
9639 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9641 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
9642 body generated for a function with a controlling result that is a null
9643 extension, discard the generated body in favor of the current explicit
9646 2007-10-15 Ed Schonberg <schonberg@adacore.com>
9648 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
9649 examining its original form, to handle properly operator calls that
9650 have been rewritten.
9652 2007-10-15 Olivier Hainque <hainque@adacore.com>
9654 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
9655 instead of a procedure value in each traceback entry.
9657 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
9658 instead of procedure value to TBK$SYMBOLIZE.
9660 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
9662 (TB_Entry_For): Account for the PV/FP renaming.
9664 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
9666 (Null_TB_Entry): Account for change of component name.
9667 (PV_For): Rename as FP_For.
9669 2007-10-15 Tristan Gingold <gingold@adacore.com>
9671 * trans.c (gnat_to_gnu): Remove the padding structure more often.
9672 This optimize assignment to over-aligned record.
9674 2007-10-15 Emmanuel Briot <briot@adacore.com>
9676 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
9679 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
9680 type, for dispatching calls.
9682 2007-10-15 Vincent Celier <celier@adacore.com>
9683 Robert Dewar <dewar@adacore.com>
9685 * gnat_ugn.texi: Add documentation for switches --version and --help
9686 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
9687 gnatxref, gnatfind, gnatls, and gnatclean.
9689 Mention attribute Excluded_Source_Dirs
9690 Replace obsolescent attribute Locally_Removed_Files with attribute
9691 Excluded_Source_Files.
9692 Improve documentation of -u (gnatbind)
9693 Document how to do reliable stack checking for the environmental task
9696 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
9697 Document attribute Excluded_Source_Files and indicate that attribute
9698 Locally_Removed_Files is obsolescent.
9700 2007-10-15 Thomas Quinot <quinot@adacore.com>
9702 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
9705 Update documentation to note that OpenVMS 8.3 or later must be used
9706 to generate g-soccon-vms.ads.
9708 * atree.adb: Add ??? comment
9710 * exp_util.adb: Minor reformatting.
9711 Add ??? comment in Kill_Dead_Code.
9713 2007-10-15 Robert Dewar <dewar@adacore.com>
9715 * errout.ads: Comment clarification
9717 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
9718 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
9720 * lib.ads: Comment update
9722 * init.c: Minor reformatting.
9724 * sem_attr.adb: Minor formatting
9726 * osint-b.ads: Minor reformatting
9728 * sem_ch9.adb: Implement -gnatd.I switch
9730 * g-comlin.adb: (Start): Fix handling of empty command line.
9732 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
9733 even when -rules follows the -cargs section.
9735 2007-10-08 Ollie Wild <aaw@google.com>
9737 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
9739 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
9741 (gnat_eh_runtime_type): Removed.
9742 (gnat_return_tree): New function.
9744 2007-10-08 Ben Elliston <bje@au.ibm.com>
9748 2007-08-31 Ben Elliston <bje@au.ibm.com>
9750 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
9751 when compiling for powerpc64-*-linux.
9752 * system-linux-ppc64.ads: New file.
9754 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
9756 Mapped location support
9757 * back_end.adb (Call_Back_End): Pass information about source
9758 files instead of units to gigi.
9759 * gigi.h (struct File_Info_Type): New.
9760 (gigi): Rename and change type of number_units parameter, change
9761 type of file_info_ptr parameter.
9762 * trans.c (number_files): New global variable.
9763 (gigi): Rename and change type of number_units parameter, change
9764 type of file_info_ptr parameter.
9765 If mapped location support is enabled, create the isomorphic mapping
9766 between source files and line maps.
9767 (Sloc_to_locus): If mapped location support is enabled, translate
9768 source location into mapped location.
9769 (annotate_with_node): Rename into set_expr_location_from_node.
9770 Call set_expr_location instead of annotate_with_locus.
9771 (Pragma_to_gnu): Adjust for above change.
9772 (Loop_Statement_to_gnu): Likewise.
9773 (call_to_gnu): Likewise.
9774 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
9775 (gnat_to_gnu): Likewise.
9776 (add_stmt_with_node): Likewise.
9777 (add_cleanup): Likewise.
9778 * utils.c (gnat_init_decl_processing): Do not set input_line.
9780 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9782 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
9783 (Applicable_Use): Emit a warning when a package tries to use itself.
9784 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
9785 is already in use or the package where it is declared is in use or is
9786 declared in the current package.
9787 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
9789 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
9790 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
9791 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
9793 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9795 * a-calend-vms.adb, a-calend.adb:
9796 Add a section on leap seconds control along with two entities used to
9797 enable and disable leap seconds support. The array Leap_Second_Times is
9798 now constant and contains hard time values pre-generated. Remove
9799 all elaboration code used to populate the table of leap seconds.
9802 Add entity Leap_Seconds_Support to the list of global run-time variables
9803 along with a comment on its usage and values.
9804 (Gen_Adainit_Ada): Add code to generate the declaration and import of
9805 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
9806 or one (enabled) depending on the presence of binder switch "-y".
9807 (Gen_Adainit_C): Add code to generate the declaration of external int
9808 __gl_leap_seconds_support. Set is value to zero (disabled) or one
9809 (enabled) depending on the presence of binder switch "-y".
9811 * init.c: Add __gl_leap_seconds_support to the list of global values
9812 computed by the binder.
9814 2007-09-26 Jerome Guitton <guitton@adacore.com>
9816 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
9817 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
9818 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9819 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
9821 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
9823 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
9824 function which can be called by the debugger to interrupt the tasks of
9825 an Ada application asynchronously, as needed on VxWorks.
9826 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
9828 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
9829 renamed from Stop_All_Tasks. Update comments.
9830 (Stop_All_tasks): New function declaration.
9832 2007-09-26 Olivier Hainque <hainque@adacore.com>
9834 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
9835 #include <utime.h> and #define GCC_RESOURCE_H before
9836 #include <sys/wait.h>.
9837 Add more protections in __gnat_translate_vms.
9839 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
9840 #include <sys/wait.h>.
9842 2007-09-26 Thomas Quinot <quinot@adacore.com>
9843 Sergey Rybin <rybin@adacore.com>
9845 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
9847 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9850 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9852 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
9855 * sem_dist.ads: Minor comment fix
9857 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
9859 2007-09-26 Javier Miranda <miranda@adacore.com>
9860 Eric Botcazou <ebotcazou@adacore.com>
9863 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
9864 indirection added to the HT_Link component of the TSD. This is required
9865 to statically allocate the TSD.
9868 Minor reordering of the declarations in the private part. Required to
9869 add a level of indirection to the contents of the TSD component HT_Link.
9870 This is required to statically allocate the TSD.
9872 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
9873 Is_Statically_Allocated set from constant objects.
9874 Do not make exported constants created by the compiler volatile.
9875 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
9878 * trans.c (Identifier_to_gnu): For constants, unshare initializers
9879 before returning them.
9881 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
9882 public part of the package.
9883 (Make_DT): Move HT_Link component out of the TSD record. For this
9884 purpose Make_DT now declares a separate object that stores the
9885 HT_Link value, and initializes the TSD component with the address
9886 of this new object. The addition of this level of indirection is
9887 required to statically allocate the TSD because the TSD cannot
9888 have variable components.
9889 (Expand_Interface_Conversion): Improve the expanded code.
9890 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
9892 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
9893 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
9894 if we are building static dispatch tables then we must not generate
9895 extra code to register the primitive because the dispatch table will
9896 be built at the end of the library package; otherwise we notify that
9897 we cannot build the static dispatch table.
9899 2007-09-26 Robert Dewar <dewar@adacore.com>
9901 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
9904 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
9905 (Analyze_Record_Representation_Clause): Suppress junk warning for
9906 missing component clause.
9907 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
9908 tests for controlled type overlay to composites with controlled
9910 (Analyze_Record_Representation_Clause): Add reference for component name
9912 2007-09-26 Javier Miranda <miranda@adacore.com>
9913 Gary Dismukes <dismukes@adacore.com>
9915 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
9916 for thunks associated with interface types.
9918 * einfo.ads: Improve documentatation of Is_Internal
9919 (Is_Thunk): New attribute applicable to subprograms. True for thunks
9920 associated with interface types.
9921 Extensive comment fixes regarding flags that appear in all entities. The
9922 documentation is now consistent for all such flags (there were a number
9923 of errors in the documentation in this regard).
9925 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
9927 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
9928 of these procedures are passed a function call that already has
9929 build-in-place actuals (testing new flag
9930 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
9931 the case where processing continues.
9932 (Expand_Call): If the call is generated from a thunk body then we
9933 propagate the extra actuals associated with the accessibility
9934 level of the access type actuals.
9936 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
9937 of each extra formal of a protected operation to reference the
9938 corresponding extra formal of the subprogram denoted by the
9939 operation's Protected_Body_Subprogram.
9941 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
9942 N_Function_Call nodes.
9944 2007-09-26 Robert Dewar <dewar@adacore.com>
9946 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
9948 * debug.adb: Add d.s flag.
9950 2007-09-26 Gary Dismukes <dismukes@adacore.com>
9952 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
9953 debug variable so that it won't be initialized when pragma
9954 Initialize_Scalars is in effect.
9956 2007-09-26 Gary Dismukes <dismukes@adacore.com>
9958 * freeze.adb (Freeze_Entity): Remove check for preelaborable
9959 initialization of a full view. This is moved to
9960 Analyze_Package_Specification.
9962 * sem_ch7.adb (Analyze_Package_Specification): Add check for
9963 preelaborable initialization of a full view in entity loop.
9964 (Uninstall_Declarations): If entity is a use-visible compilation unit,
9965 its child units are use-visible only if they are visible child units.
9967 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
9968 whether an expression can be used within a type declaration that
9969 requires preelaborable init.
9970 (Check_Components): Replace inline code that does partial checking for
9971 preelaborable default expressions with call to
9972 Is_Preelaborable_Expression.
9973 (Has_Preelaborable_Initialization): In the case of a generic actual
9974 subtype, (that is, Is_Generic_Actual is True), return the result of
9975 applying Has_Preelaborable_Initialization to the generic actual's base
9978 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
9980 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
9981 call to Jan_1_Day _Of_Week to optimize its performance.
9982 (Is_Leap): Move the routine to the scope of Week_In_Year.
9983 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
9984 weekday on which January 1 falls of Year - 1 and Year + 1. This function
9985 avoids calling Time_Of and Split, thus making it more efficent.
9986 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
9988 * g-calend.ads (Week_In_Year): Change comment to reflect new
9991 2007-09-26 Emmanuel Briot <briot@adacore.com>
9993 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
9994 Command_Line): New types
9995 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
9996 support for defining how switches can be grouped on a command line (as
9997 is the case for -gnatw... for GNAT), and how simple switches can be
9998 used as aliases for more complex switches (-gnatwa is same as
10000 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10001 (Start, Current_*): New subprograms
10002 Added support for parsing an array of strings in addition to the real
10004 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10005 be moved from the body to the private part of the spec.
10006 (*): All subprograms now have an extra parameter with default value to
10007 specify which parser should be used. For backward compatibility, it
10008 defaults to parsing the command line of the application. They were also
10009 modified to properly handle cases where each of the argument does not
10010 start at index 1 (which is always true for Ada.Command_Line, but not
10011 when processing any Argument_List).
10012 (Free): New subprogram
10013 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10014 Argument): New subprograms
10015 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10016 special characters like ':', '=',... are now handled in a single place,
10017 which makes the code more extensible eventually.
10018 (Getopt, Full_Switch): When the switch was returned as part of the
10019 special character '*', make sure it is prepended by the switch character
10020 ('-' in general), so that the application knows whether "foo" or "-foo"
10021 was specified on the command line.
10023 2007-09-26 Florian Villoing <villoing@adacore.com>
10025 * g-dirope.adb (Remove_Dir): In case we are removing directories
10026 recursively, make sure that if an exception is raised during the
10027 processing, the current working directory is reset to its initial
10028 value before propagating the exception.
10030 2007-09-26 Vincent Celier <celier@adacore.com>
10032 * gnatbind.adb: If there are several ALI files specified and there is
10033 a main program to bind, the first ALI is expected to contain the main
10034 subprogram and the names of the binder generated files will be derived
10035 from the first ALI file name.
10036 (Gnatbind): Fix insertion character in invocation of Error_Msg
10038 2007-09-26 Vincent Celier <celier@adacore.com>
10040 * gnatcmd.adb (Check_Files): Do not include sources that have been
10041 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10043 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10045 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10046 information about each of its index types, following the type
10047 reference for its component type.
10049 2007-09-26 Vincent Celier <celier@adacore.com>
10051 * make.adb: (Kill): New procedure (__gnat_kill imported)
10052 (Running_Compile, Outstanding_Compiles): Global variables that
10053 were previously local to procedure Compile_Sources.
10054 (Sigint_Intercepted): Send signal SIGINT to all outstanding
10055 compilation processes.
10057 (Gnatmake): If project files are used, create the mapping of all the
10058 sources, so that the correct paths will be found.
10060 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10062 2007-09-26 Vincent Celier <celier@adacore.com>
10064 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10066 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10067 Replace components Compiler_Min_Options and Binder_Min_Options with
10068 Compiler_Required_Switches and Binder_Required_Switches in record
10070 Remove components Default_Language and Config in Project_Tree_Data,
10073 * prj-attr.adb: New attributes Required_Switches (<language>) in
10074 packages Compiler and Binder.
10076 * prj-nmsc.adb: Major rewrite of the processing of configuration
10077 attributes for gprbuild. No impact on GNAT tools.
10079 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10080 process configuration attributes: this is done in Prj.Nmsc.Check.
10081 (Recursive_Process): Make a full copy of packages inherited from project
10082 being extended, instead of a shallow copy.
10083 (Process_Project_Tree_Phase_1): New procedure
10084 (Process_Project_Tree_Phase_1): New procedure
10085 (Process): Implementation now uses the two new procedures
10087 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10088 from the project config, not the tree config that no longer exists.
10090 2007-09-26 Vincent Celier <celier@adacore.com>
10092 * Make-lang.in: Update dependencies..
10094 2007-09-26 Vincent Celier <celier@adacore.com>
10096 * osint.adb, osint.ads: Minor reformatting
10098 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10100 2007-09-26 Gary Dismukes <dismukes@adacore.com>
10102 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10103 message to cite use of <> in aggregate component associations rather
10104 than wrongly indicating use of limited aggregates.
10106 2007-09-26 Robert Dewar <dewar@adacore.com>
10108 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10111 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10113 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10114 ancestor of the derived type, the operations are inherited from the
10115 primary dispatch table of the parent.
10116 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10117 when the context is an explicit type conversion.
10119 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10121 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10122 rule for qualified expressions properly, to detect improper conversions
10123 and resolve some cases of overloading.
10125 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10127 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10128 proper kind of reference to the primitive operation, for better source
10130 (Valid_Conversion): A tagged conversion is legal if both operands are
10133 2007-09-26 Robert Dewar <dewar@adacore.com>
10135 * sem_warn.adb (Check_References): Catch more cases of unreferenced
10138 2007-09-26 Vincent Celier <celier@adacore.com>
10140 * snames.adb, snames.ads: Change Include_Option to Include_Switches
10142 2007-09-26 Robert Dewar <dewar@adacore.com>
10144 * s-wchstw.adb: provide messages for run time unit exceptions
10146 * a-witeio.adb: Minor reformatting
10148 * exp_ch13.adb: Minor reformatting
10150 2007-09-26 Sergey Rybin <rybin@adacore.com>
10152 * vms_data.ads: Revise gnatmetric qualifiers.
10153 Add qualified for the new gnatbind option '-y'
10155 * gnat_ugn.texi: Revise the gnatmetric section.
10156 Add entry for new gnatbind option '-y'.
10158 * gnat_rm.texi: Minor spelling correction.
10159 Document restriction on overlaying controlled types
10161 2007-09-26 Vincent Celier <celier@adacore.com>
10163 * makegpr.adb (Link_Executables): Do not fail when the root project has
10164 no sources, but is an extending project.
10166 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
10168 * trans.c: Fix misplaced #define.
10170 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
10172 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10173 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10175 2007-09-21 Olivier Hainque <hainque@adacore.com>
10177 * utils.c (type_for_nonaliased_component_p): Return false for
10178 all AGGREGATE_TYPEs.
10180 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
10182 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10183 object covered by 13.3(19) volatile.
10185 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
10189 * utils.c (unchecked_convert): Use a subtype as the intermediate type
10190 in the special VIEW_CONVERT_EXPR case.
10192 2007-09-12 Robert Dewar <dewar@adacore.com>
10194 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10196 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10197 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10198 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10199 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10200 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10201 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10202 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
10203 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
10204 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10205 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10206 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10207 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10208 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10209 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10210 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10211 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
10212 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10213 pragma Compiler_Unit and adds it to relevant library units.
10215 2007-09-12 Ed Schonberg <schonberg@adacore.com>
10217 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10218 a box need not correspond to any component.
10220 2007-09-12 Robert Dewar <dewar@adacore.com>
10222 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10223 the tasking version of the Ada run time when foreign threads are
10224 present and there are no explicit Ada tasks or tasking constructs.
10226 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10228 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
10230 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10231 the usage of switch -y.
10233 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10234 when switch -y is present.
10236 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10237 leap seconds in Ada.Calendar and its children.
10239 2007-09-12 Jose Ruiz <ruiz@adacore.com>
10241 * a-extiti.ads (Timer): The discriminant is a "not null access
10242 constant" in the Reference Manual.
10243 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10245 2007-09-12 Robert Dewar <dewar@adacore.com>
10247 * a-swuwha.adb: Remove junk RM header
10249 2007-09-12 Vincent Celier <celier@adacore.com>
10251 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10254 * g-bytswa.ads: Minor reformatting
10256 2007-09-12 Thomas Quinot <quinot@adacore.com>
10258 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10259 Add new constant Thread_Blocking_IO, always True by default, set False
10260 on a per-runtime basis.
10261 (Need_Netdb_Buffer): New constant.
10263 2007-09-12 Arnaud Charlet <charlet@adacore.com>
10265 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10266 Added renames for corresponding functions in System.Partition_Interface.
10268 2007-09-12 Doug Rupp <rupp@adacore.com>
10270 * Makefile.in: Remove VMS specific System.CRTL packages which are no
10273 * s-crtl-vms64.ads: Removed.
10275 2007-09-12 Olivier Hainque <hainque@adacore.com>
10277 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10278 with discriminant constraints, generalize the code for BIT_FIELDs
10279 to PACKED fields of constant size and propagate DECL_PACKED.
10281 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
10283 * decl.c (array_type_has_nonaliased_component): New predicate.
10284 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10285 set the TYPE_NONALIASED_COMPONENT flag on the type.
10286 <E_Array_Subtype>: Likewise.
10287 * gigi.h (type_for_nonaliased_component_p): Declare.
10288 * utils.c (type_for_nonaliased_component_p): New predicate.
10289 (create_field_decl): Invoke the above predicate to set the
10290 DECL_NONADDRESSABLE_P flag on the field.
10292 2007-09-11 Javier Miranda <miranda@adacore.com>
10294 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10295 in library level record type entities if we are generating statically
10296 allocated dispatch tables.
10298 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10299 importing/exporting the _tag declaration by new code
10300 importing/exporting the dispatch table wrapper. This change allows us
10301 to statically allocate of the TSD.
10302 (Make_DT.Export_DT): New procedure.
10303 (Build_Static_DT): New function.
10304 (Has_DT): New function.
10306 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10307 True_Constant and Current_Value. Required to statically
10308 allocate the dispatch tables.
10309 (Check_Allocator): Make function iterative instead of recursive.
10310 Also return inner allocator node, when present, so that we do not have
10311 to look for that node again in the caller.
10313 2007-09-11 Jan Hubicka <jh@suse.cz>
10315 * misc.c (gnat_expand_body): Kill.
10316 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10318 2007-09-10 Robert Dewar <dewar@adacore.com>
10320 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10321 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10322 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10323 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10324 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10325 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10326 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10327 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10328 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10329 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10330 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10331 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10332 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10333 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10334 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10335 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10336 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10337 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10338 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10339 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10340 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10341 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10342 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10343 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10344 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10345 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10346 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10347 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10348 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10349 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10350 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10351 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10352 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10353 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10354 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10355 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10356 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10357 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10358 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10359 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10360 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10361 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10362 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10363 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10364 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10365 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10366 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10367 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10368 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10369 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10370 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10371 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10372 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10373 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10374 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10375 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10376 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10377 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10378 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10379 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10380 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10381 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10382 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10383 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10384 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10385 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10386 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10387 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10388 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10389 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10390 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10391 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10392 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10393 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10394 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10395 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10396 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10397 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10398 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10399 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10400 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10401 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10402 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10404 2007-09-10 Emmanuel Briot <briot@adacore.com>
10406 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10409 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
10411 * adaint.c (__gnat_translate_vms): new function.
10413 2007-09-10 Gary Dismukes <dismukes@adacore.com>
10414 Thomas Quinot <quinot@adacore.com>
10416 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10417 create an abstract subprogram in the case of 'Input. For 'Output we now
10418 create a real spec/body when the type is abstract, since it can
10419 potentially be called.
10420 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10421 body for 'Output when the type is abstract (only the creation of the
10422 body for 'Input is excluded when the type is abstract).
10423 (Stream_Operation_OK): Add an additional condition in the return
10424 statement, so that False will be returned for TTS_Stream_Input if the
10425 associated tagged type is an abstract extension. Add comments for
10427 (Expand_N_Object_Declaration): For the case of a shared passive
10428 variable, insert init proc call only after the shared variable
10429 procedures have been processed, because the IP call needs to undergo
10430 shared passive variable reference expansion, which requires these
10431 procedures to be available (and elaborated).
10433 2007-09-10 Vincent Celier <celier@adacore.com>
10435 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10436 parameter Runtime_Project.
10438 2007-09-10 Ed Schonberg <schonberg@adacore.com>
10440 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10441 given a box association, the type of the component is discriminated,
10442 and the value of the discriminant is the discriminant of the enclosing
10443 type, retrieve its value from the aggregate itself, where it must have
10446 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10447 to remove other spurious ambiguities on arithmetic operations involving
10448 literals and addresses, on systems where Address is a visible integer
10449 type, when the operator is called in functional notation.
10450 (Try_Primitive_Operation): Within an instance, a call in prefixed form
10451 is legal when the types match, even if the operation is currently
10454 2007-09-10 Ed Schonberg <schonberg@adacore.com>
10456 * sem_ch12.adb (Build_Local_Package): A formal package with no
10457 associations is legal if all formals have defaults. It is not
10458 equivalent to a formal declared with a box.
10460 2007-09-10 Sergey Rybin <rybin@adacore.com>
10462 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10464 2007-09-10 Sergey Rybin <rybin@adacore.com>
10466 * gnat_ugn.texi: Add description of the new '-lratio' option
10467 Update 7.3.1 section about availability of the feature.
10469 2007-09-10 Thomas Quinot <quinot@adacore.com>
10471 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10474 2007-09-10 Olivier Hainque <hainque@adacore.com>
10476 * Makefile.in: (mips-irix section): Activate build of libgmem.
10478 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10480 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10483 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
10485 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10486 a debug renaming declaration specially.
10488 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10490 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10491 which a constant renaming is treated as a normal object declaration.
10492 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10493 the N_Indexed_Component case.
10494 <N_Indexed_Component>: Fall through to above case.
10495 <N_Object_Renaming_Declaration>: Return true for all composite types.
10497 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
10499 * decl.c (make_packable_type): If the new type has been given BLKmode,
10500 try again to get an integral mode for it.
10502 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
10504 Re-apply accidentally reverted change:
10506 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
10508 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10509 get_action_description_for): Replace _Unwind_Word with _uleb128_t
10510 and _Unwind_SWord with _sleb128_t.
10512 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
10514 * trans.c (convert_with_check): Update call to real_2expN.
10516 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
10518 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10519 * utils.c (end_subprog_body): Likewise.
10521 2007-09-03 Nick Clifton <nickc@redhat.com>
10523 * Make-lang.in: Change copyright header to refer to version 3 of
10524 the GNU General Public License and to point readers at the
10525 COPYING3 file and the FSF's license web page.
10526 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10527 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10528 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10529 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10532 2007-08-31 Vincent Celier <celier@adacore.com>
10536 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10537 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10538 (Check_Version_And_Help): New procedure in package Switch to process
10539 switches --version and --help.
10540 Use Check_Version_And_Help in GNAT tools
10543 (Compile_Sources): Make sure that sources that are "excluded" are not
10545 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10546 project file is used.
10547 (Version_Switch): Remove, moved to Switch
10548 (Help_Switch): Remove, moved to Switch
10549 (Display_Version): Remove, moved to Switch
10551 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10552 package Switch to process switches --version and --help.
10553 (Display_Version): New procedure
10555 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10557 2007-08-31 Javier Miranda <miranda@adacore.com>
10559 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10562 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10564 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10565 (Mark_Non_Null): If the node for which we just generated an access check
10566 is a reference to an *in* parameter and the reference appears in the
10567 declarative part of a subprogram body, mark the node as known non null.
10569 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10571 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10572 structure of E_Exception to reflect the new flag.
10573 (Is_Raised, Set_Is_Raised): New inlined routines.
10574 Update the usage of available flag to reflect the addition of Is_Raised.
10575 (Is_Raised, Set_Is_Raised): Bodies of new routines.
10576 (Write_Entity_Flags): Write the status of flag Is_Raised.
10577 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10578 spurious ambiguities when integer literals appear in the context of an
10579 address type that is a visible integer type.
10581 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10582 exceptions never being raised.
10583 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10586 2007-08-31 Javier Miranda <miranda@adacore.com>
10588 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10589 statement when compiling under restriction No_Exceptions_Proparation.
10591 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10593 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10594 initialization aggregate for the type, generate itype references for
10595 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10597 2007-08-31 Gary Dismukes <dismukes@adacore.com>
10599 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10600 library-level package renaming, pass the declaration associated with
10601 the renaming's special debug variable to Qualify_Entity_Names to ensure
10602 that its encoded name is properly qualified.
10604 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10605 occurring in the list of entities to qualify, and do not attempt to
10606 traverse an entity list in that case. Variables associated with
10607 ` library-level package renamings can now occur in the table.
10609 * exp_dbug.ads: Revise documentation of the encoding for renaming
10612 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10614 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10615 access type points to an unconstrained array.
10617 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
10619 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10622 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10623 simple redundant qualifications. The check is performed whenever the
10624 expression is a non-overloaded identifier.
10625 (Resolve_Type_Conversion): Enchance the redundant type conversion check
10626 to include loop parameters.
10627 (Valid_Conversion): Avoid generation of spurious error message.
10629 2007-08-31 Bob Duff <duff@adacore.com>
10631 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10632 concatenations of string literals into a single literal, in order to
10633 avoid very deep recursion in the front end, which was causing stack
10636 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
10637 string, and the right operand is a string literal (the case of "" &
10638 "..."), optimize by avoiding copying the right operand -- just use the
10639 value of the right operand directly.
10641 * stringt.adb (Store_String_Chars): Optimize by growing the
10642 String_Chars table all at once, rather than appending characters one by
10644 (Write_String_Table_Entry): If the string to be printed is very long,
10645 just print the first few characters, followed by the length. Otherwise,
10646 doing "pn(n)" in the debugger can take an extremely long time.
10648 * sem_prag.adb (Process_Interface_Name): Replace loop doing
10649 Store_String_Char with Store_String_Chars.
10651 2007-08-31 Vincent Celier <celier@adacore.com>
10653 * prj-attr.adb: Add new attribute Excluded_Source_Files
10655 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
10656 Locally_Removed_Files.
10658 * snames.ads, snames.adb: New standard name Excluded_Source_Files
10660 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10662 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
10663 clauses of subunits, ignore limited_with_clauses that are illegal and
10664 have not been fully analyzed.
10666 2007-08-31 Ed Schonberg <schonberg@adacore.com>
10668 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
10669 flag, for effiency. It is called when analyzing arithmetic operators
10670 and also for actuals in calls that are universal_integers. The flag is
10671 set for the predefined type address, and for any type or subtype
10674 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
10675 Universal_Integer, when the formal is a descendent of address and the
10676 call appears in user code.
10677 (Analyze_Selected_Component): if the prefix is a private extension, the
10678 tag component is visible.
10680 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
10683 2007-08-31 Robert Dewar <dewar@adacore.com>
10685 * s-fileio.adb (Open): Normalize file name to lower case in non-case
10686 sensitive file name systems to avoid unexpected mismatch in Vista.
10688 2007-08-31 Vincent Celier <celier@adacore.com>
10690 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
10692 2007-08-31 Vincent Celier <celier@adacore.com>
10694 * symbols-vms.adb (Initialize): Read symbol files with continuation
10696 (Finalize): If symbol is long, split the line
10698 2007-08-31 Vincent Celier <celier@adacore.com>
10700 * fmap.ads: Minor comment updates
10702 2007-08-31 GNAT Script <nobody@adacore.com>
10704 * Make-lang.in: Makefile automatically updated
10706 2007-08-31 Bob Duff <duff@adacore.com>
10708 * sinfo.ads: Minor comment fix.
10710 2007-08-31 Thomas Quinot <quinot@adacore.com>
10712 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
10713 with implementation.
10714 Documentation cleanup only.
10716 2007-08-31 Sergey Rybin <rybin@adacore.com>
10718 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
10719 gnatpp '--separate-stmt-name' option.
10720 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
10723 * gnat_ugn.texi: Add description for the new gnatpp
10724 '--separate-stmt-name' and '--use-on-new-line' options.
10726 2007-08-31 Ben Elliston <bje@au.ibm.com>
10728 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10729 when compiling for powerpc64-*-linux.
10730 * system-linux-ppc64.ads: New file.
10732 2007-08-22 Krister Walfridsson <cato@df.lth.se>
10734 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
10737 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10739 * misc.c (gnat_type_max_size): Constify.
10741 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10743 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
10744 associated with Standard_Debug_Renaming_Type, to be used as the type of
10745 the special variables whose names provide debugger encodings for
10746 renaming declarations.
10748 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
10749 (Set_Debug_Renaming_Link): Change to set Node25.
10750 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
10751 (Write_Field25_Name): Add case for E_Variable to output
10752 "Debug_Renaming_Link".
10753 (Write_Field23_Name): Correct the output string for "Limited_View".
10755 * exp_dbug.adb: Add with and use of Tbuild.
10756 (Debug_Renaming_Declaration): Replace creation of an enumeration type
10757 and literal with creation of a variable of type
10758 Standard_Debug_Renaming_Type whose name encodes both the renamed object
10759 and the entity of the renaming declaration.
10760 (Qualify_Entity_Name): Add the delayed qualification of the entity name
10761 part of the name of a variable that has a Debug_Renaming_Link.
10763 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
10764 special type to be associated with variables that provide debugger
10765 encodings for renaming declarations.
10767 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10768 Ed Schonberg <schonberg@adacore.com>
10769 Javier Miranda <miranda@adacore.com>
10771 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
10772 ancestor part given by an aggregate to test for an unchecked conversion,
10773 since this can occur in some cases when the ancestor part is a function
10774 call, and we don't want to fall into the recursive call to this
10775 procedure in that case.
10777 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
10778 stream attributes on limited types to account for user-specified
10779 attributes as well as whether Input (resp. Output) becomes available
10780 due to Read (resp. Write) being available for the type. Change Boolean
10781 variable to the more accurate name
10782 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
10783 double-"not" predicate at beginning of return statement to more
10784 understandable form.
10786 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
10787 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
10788 in a block statement and use that as the first statement of the
10789 expanded return rather than incorrectly using the handled sequence as
10790 the first statement.
10792 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
10793 operation, generate an explicit freeze node for it rather than
10794 generating extra formals, to ensure that gigi has the proper order of
10795 elaboration for anonymous subtypes in the signature of the subprograms.
10796 (Build_In_Place_Formal): Move assertion to beginning of loop.
10797 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
10798 applied to a function call (occurs for some cases of 'Input).
10799 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
10800 applied to a function call (occurs for some cases of 'Input).
10802 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
10803 2005, generate an extended return statement enclosing the result object
10806 * freeze.adb (Freeze_Record_Type): Extend the current management of
10807 components that are access type with an allocator as default value: add
10808 missing support to the use of qualified expressions of the
10809 allocator (which also cause freezing of the designated type!)
10810 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
10811 dispatching operation, since extra formals may be needed by calls to
10812 build-in-place functions (such as stream 'Input).
10814 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
10815 formals for 'Constrained and accessibility level in the case of a
10816 predefined dispatching operation.
10818 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
10819 point, no need to find the parent node.
10821 2007-08-16 Javier Miranda <miranda@adacore.com>
10823 * exp_attr.adb (Attribute_Priority): Add missing support for entries
10824 and entry barriers.
10826 2007-08-16 Javier Miranda <miranda@adacore.com>
10828 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
10829 is not really required and can introduce regression with the debugger.
10830 The original problem is fixed with the patch written for checks.adb.
10832 2007-08-16 Thomas Quinot <quinot@adacore.com>
10834 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
10835 Range_Check on Allocated_Table.
10837 2007-08-16 Vincent Celier <celier@adacore.com>
10839 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
10840 Including_Non_Switch set to False.
10841 (Gnatmake): For the compiler, call Test_If_Relative_Path with
10842 Including_Non_Switch set to False.
10844 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
10845 parameter Including_Non_Switch, defaulted to True. When
10846 Including_Non_Switch is False, options that are not switches and
10847 appear as relative path are not converted to absolute paths.
10849 2007-08-16 Nicolas Roche <roche@adacore.com>
10851 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
10854 * Make-lang.in: Update dependencies
10856 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10858 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
10859 currently inspected is a selected component, retrieve the entity of
10861 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
10862 from the immediate ancestor of Main_Unit_Entity.
10863 (Install_Limited_Withed_Unit): Do not install the limited view of
10864 package P if P is reachable through an ancestor chain from package C
10865 and C also has a with clause for P in its body.
10866 (Has_Limited_With_Clause): New routine.
10867 (Has_With_Clause): New routine.
10869 2007-08-16 Ed Schonberg <schonberg@adacore.com>
10871 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
10872 generic for an enclosing instance is a global reference, even though
10873 its scope is the enclosing instance.
10875 2007-08-16 Gary Dismukes <dismukes@adacore.com>
10876 Javier Miranda <miranda@adacore.com>
10878 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
10879 initialize a limited object.
10880 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
10882 Make sure Has_Complex_Representation is inherited by derived type.
10884 2007-08-16 Robert Dewar <dewar@adacore.com>
10886 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
10889 2007-08-16 Ed Schonberg <schonberg@adacore.com>
10891 * sem_disp.adb (Check_Dispatching_Operation): If the operation
10892 implements an operation inherited from a progenitor interface, verify
10893 that they are subtype-conformant.
10895 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
10896 Bob Duff <duff@adacore.com>
10897 Nicolas Setton <setton@adacore.com>
10899 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
10900 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
10901 the statement which is being resolved comes from a predefined library
10902 unit, all non-predefined library interpretations are skipped.
10903 (Resolve_Op_Concat): If string concatenation was folded in the parser,
10904 but the "&" is user defined, give an error, because the folding would
10907 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
10908 the parser has folded a long sequence of concatenations of string
10911 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
10912 and "JMP_BUF" variables as artificial.
10913 (N_String_Literal): Do not use alloca for very long string literals. Use
10914 xmalloc/free instead. Otherwise the stack might overflow.
10916 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
10919 2007-08-16 Vincent Celier <celier@adacore.com>
10921 * vms_conv.adb (Process_Argument): Ensure that project related options
10922 are not put in the -cargs section when using GNAT COMPILE.
10924 2007-08-16 Robert Dewar <dewar@adacore.com>
10926 * gnat_ugn.texi: Add note on preprocessing (output file not written)
10928 2007-08-16 Thomas Quinot <quinot@adacore.com>
10930 * a-tags.adb: Minor reformatting.
10932 2007-08-16 Bob Duff <duff@adacore.com>
10934 * sem_type.ads, sem_ch4.adb: Minor reformatting.
10936 2007-08-14 Thomas Quinot <quinot@adacore.com>
10938 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
10939 s-osinte-interix.ads, system-interix.ads: Removed.
10941 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
10943 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
10944 calls to Check_Within_Time_Bounds.
10945 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
10946 (Difference): Account for possible rounding of the resulting difference
10948 2007-08-14 Robert Dewar <dewar@adacore.com>
10950 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
10951 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
10952 s-osinte-solaris.adb, s-osinte-solaris.ads,
10953 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
10955 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
10956 switch -gnatyS. Enable -gnatyS in GNAT style check mode
10958 2007-08-14 Robert Dewar <dewar@adacore.com>
10959 Ed Schonberg <schonberg@adacore.com>
10961 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
10962 Suppress unmodified in-out parameter warning in some cases
10963 This patch is a also fairly significant change to the way suppressible
10964 checks are handled.
10966 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
10967 needed for access to concurrent record types generated by the expander.
10968 (Generate_Range_Check): When generating a temporary to capture the
10969 value of a conversion that requires a range check, set the type of the
10970 temporary before rewriting the node, so that the type is always
10971 properly placed for back-end use.
10972 (Apply_Float_Conversion_Check): Handle case where the conversion is
10974 (Get_Discriminal): Code reformatting. Climb the scope stack looking
10975 for a protected type in order to examine its discriminants.
10977 2007-08-14 Robert Dewar <dewar@adacore.com>
10978 Gary Dismukes <dismukes@adacore.com>
10979 Ed Schonberg <schonberg@adacore.com>
10980 Thomas Quinot <quinot@adacore.com>
10982 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
10983 a-stwisu.adb, a-strsup.adb: Fix warnings for range
10984 tests optimized out.
10986 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
10987 (Get_Allocator_Final_List): For the case of an anonymous access type
10988 that has a specified Associated_Final_Chain, do not go up to the
10990 (Expand_N_Type_Conversion): Test for the case of renamings of access
10991 parameters when deciding whether to apply a run-time accessibility
10993 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
10994 aggregate code before allocator, and ahead of declaration for
10995 temporary, to prevent access before elaboration when the allocator is
10996 an actual for an access parameter.
10997 (Expand_N_Type_Conversion): On an access type conversion involving an
10998 access parameter, do not apply an accessibility check when the
10999 operand's original node was an attribute other than 'Access. We now
11000 create access conversions for the expansion of 'Unchecked_Access and
11001 'Unrestricted_Access in certain cases and clearly accessibility should
11002 not be checked for those.
11004 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11005 includes a type conversion of a packed component that has been expanded,
11006 recover the original expression for the object, and use this expression
11007 in the post-call assignment statement, so that the assignment is made
11008 to the object and not to a back-end temporary.
11009 (Freeze_Subprogram): In case of primitives of tagged types not defined
11010 at the library level force generation of code to register the primitive
11011 in the dispatch table. In addition some code reorganization has been
11012 done to leave the implementation clear.
11013 (Expand_Call): When expanding an inherited implicit conversion,
11014 preserve the type of the inherited function after the intrinsic
11015 operation has been expanded.
11017 * exp_ch2.ads, exp_ch2.adb
11018 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11019 of an entry formal appearing in an assignment statement does not assign
11021 (Expand_Current_Value): Instead of calling a routine to determine
11022 whether the prefix of an attribute reference should be optimized or
11023 not, prevent the optimization of such prefixes all together.
11025 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11026 component whose prefix is known to be of an access type is an implicit
11027 dereference and does not assign to the prefix.
11029 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11030 Robert Dewar <dewar@adacore.com>
11032 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11033 itype is visited, make an entry into table to link associated node and
11035 Add comments and correct harmless error in Build_NCT_Hash_Tables
11036 (Array_Aggr_Subtype): Associate each itype created for an index type to
11037 the corresponding range construct, and not to the aggregate itself. to
11038 maintain a one-to-one correspondence between itype and its associated
11039 node, to prevent errors when complex expression is copied.
11040 Fix mishandling of multiple levels of parens
11042 * sem_aggr.adb: Create a limited view of an incomplete type, to make
11043 treatment of limited views uniform for all visible declarations in a
11044 limited_withed package.
11045 (New_Copy_Tree): If hash table is being used and itype is visited,
11046 make an entry into table to link associated node and new itype.
11047 (Resolve_Record_Aggregate): Do not add an others box association for a
11048 discriminated record component that has only discriminants, when there
11049 is a box association for the component itself.
11051 * par-ch4.adb: Fix mishandling of multiple levels of parens
11053 2007-08-14 Robert Dewar <dewar@adacore.com>
11055 * comperr.adb: Fix problem with suppressing warning messages from gigi
11057 * erroutc.ads, erroutc.adb, errout.ads,
11058 errout.adb (Write_Eol): Remove trailing spaces before writing the line
11059 (Write_Eol_Keep_Blanks): New procedure to write a line, including
11060 possible trailing spaces.
11061 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11062 Fix problem with suppressing warning messages from back end
11063 Improve handling of deleted warnings
11066 Fix problem with suppressing warning messages from back end
11067 Handle setting of Static_Dispatch_Tables flag.
11070 Fix problem with suppressing warning messages from back end
11072 * exp_intr.adb: Improve handling of deleted warnings
11074 2007-08-14 Robert Dewar <dewar@adacore.com>
11076 * debug.adb: Improve -gnatdI to cover all cases of serialization
11077 Add documentation of dZ, d.t
11079 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11081 (Sprint_Node_Actual): Generate new output associated with implicit
11082 importation and implicit exportation of object declarations.
11084 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11085 Robert Dewar <dewar@adacore.com>
11086 Javier Miranda <miranda@adacore.com>
11087 Gary Dismukes <dismukes@adacore.com>
11089 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11090 to make treatment of limited views uniform for all visible declarations
11091 in a limited_withed package.
11092 Improve warnings for in out parameters
11093 (Set_Related_Interaface/Related_Interface): Allow the use of this
11094 attribute with constants.
11095 (Write_Field26_Name): Handle attribute Related_Interface in constants.
11096 Warn on duplicate pragma Preelaborable_Initialialization
11098 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11099 generation of a freezing node to ensure proper management of null
11100 excluding access types in the backend.
11101 (Create_Extra_Formals): Test base type of the formal when checking for
11102 the need to add an extra accessibility-level formal. Pass the entity E
11103 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11104 originally being done in a couple of cases), to ensure that the
11105 Extra_Formals list gets set on the entity E when the first entity is
11107 (Conforming_Types): Add missing calls to Base_Type to the code that
11108 handles anonymous access types. This is required to handle the
11109 general case because Process_Formals builds internal subtype entities
11110 to handle null-excluding access types.
11111 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11112 functions that need it, even when not marked Requires_Overriding.
11113 Improve warnings for in out parameters
11114 (Analyze_Function_Return): Warn for disallowed null return
11115 Warn on return from procedure with unset out parameter
11116 Ensure consistent use of # in error messages
11117 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11118 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11119 the implicit conversion of the expression done for anonymous access
11120 types. This is required to generate the code of the null excluding
11121 check (if required).
11123 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11124 A formal parameter is never publicly referenceable outside of its body.
11125 (Check_References): For an unreferenced formal parameter in an accept
11126 statement, use the same warning circuitry as for subprogram formal
11128 (Warn_On_Unreferenced_Entity): New subprogram, taken from
11129 Output_Unreferenced_Messages, containing the part of that routine that
11130 is now reused for entry formals as described above.
11131 (Goto_Spec_Entity): New function
11132 (Check_References): Do not give IN OUT warning for dispatching operation
11133 Improve warnings for in out parameters
11134 (Test_Ref): Check that the entity is not undefinite before calling
11135 Scope_Within, in order to avoid infinite loops.
11136 Warn on return from procedure with unset out parameter
11137 Improved warnings for unused variables
11139 2007-08-14 Robert Dewar <dewar@adacore.com>
11140 Javier Miranda <miranda@adacore.com>
11141 Gary Dismukes <dismukes@adacore.com>
11143 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11144 (Expand_N_Attribute_Reference): Further unify the handling of the
11145 three forms of access attributes, using common code now for all three
11146 cases. Add a test for the case of applying an access attribute to
11147 an explicit dereference when the context is an access-to-interface
11148 type. In that case we need to apply the conversion to the prefix
11149 of the explicit dereference rather than the prefix of the attribute.
11150 (Attribute_Version, UET_Address): Set entity as internal to ensure
11151 proper dg output of implicit importation.
11152 (Expand_Access_To_Type): Removed.
11153 (Expand_N_Attribute_Reference): Merge the code from the three cases
11154 of access attributes, since the processing is largely identical for
11155 these cases. The substantive fix here is to process the case of a
11156 type name prefix (current instance case) before handling the case
11157 of interface prefixes.
11159 2007-08-14 Thomas Quinot <quinot@adacore.com>
11160 Ed Schonberg <schonberg@adacore.com>
11161 Javier Miranda <miranda@adacore.com>
11162 Robert Dewar <dewar@adacore.com>
11164 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11165 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11166 type that is an anonymous access to controlled object, establish
11167 an associated finalization chain to avoid corrupting the global
11168 finalization list when a dynamically allocated object designated
11169 by such a component is deallocated.
11170 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11171 functions that need it, even when not marked Requires_Overriding.
11172 (Initialize_Tag): Replace call to has_discriminants by call to
11173 Is_Variable_Size_Record in the circuitry that handles the
11174 initialization of secondary tags.
11175 (Is_Variable_Size_Record): New implementation.
11176 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11177 Suppress_Initialization pragma for a derived type.
11178 (Is_Variable_Size_Record): New subprogram.
11179 (Build_Offset_To_Top_Functions): New implementation that simplifies the
11180 initial version of this routine and also fixes problems causing
11181 incomplete initialization of the table of interfaces.
11182 (Build_Init_Procedure): Improve the generation of code to initialize the
11183 the tag components of secondary dispatch tables.
11184 (Init_Secondary_Tags): New implementation that simplifies the previous
11185 version of this routine.
11186 (Make_DT): Add parameter to indicate when type has been frozen by an
11187 object declaration, for diagnostic purposes.
11188 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11189 diagnose attemps to freeze a subprogram when some untagged type of its
11190 profile is a private type whose full view has not been analyzed yet.
11191 (Freeze_Array_Type): Generate init proc for packed array if either
11192 Initialize or Normalize_Scalars is set.
11193 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11194 constructing the new profile, copy the null_exclusion indicator for each
11195 parameter, to ensure full conformance of the new body with the spec.
11197 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11198 Create wrappers for constructor functions that need it, even when not
11199 marked Requires_Overriding.
11200 (Covers): Handle properly designated types of anonymous access types,
11201 whose non-limited views are themselves incomplete types.
11202 (Add_Entry): Use an entity to store the abstract operation which hides
11204 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11205 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11206 initialization aggregate.
11207 (Function_Interp_May_Be_Hidden): Rename to
11208 Function_Interp_Has_Abstract_Op.
11209 (Has_Compatible_Type): Remove machinery that skips interpretations if
11210 they are labeled as potentially hidden by an abstract operator.
11211 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11212 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11213 (Write_Overloads): Output the abstract operator if present.
11214 (Add_Entry): Before inserting a new entry into the interpretation table
11215 for a node, determine whether the entry will be disabled by an abstract
11217 (Binary_Op_Interp_May_Be_Hidden): New routine.
11218 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11220 (Function_Interp_May_Be_Hidden): New routine.
11221 (Has_Compatible_Type): Do not consider interpretations hidden by
11222 abstract operators when trying to determine whether two types are
11224 (Has_Hidden_Interp): New routine.
11225 (Set_May_Be_Hidden_Interp): New routine.
11226 (Write_Overloads): Write the status of flag May_Be_Hidden.
11228 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11229 Javier Miranda <miranda@adacore.com>
11231 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11232 types declared in the declarative part of a nested package body or in
11233 the proper body of a stub.
11234 (Set_All_DT_Position): Add missing check to avoid wrong assignation
11235 of the same dispatch table slot to renamed primitives.
11236 (Make_Select_Specific_Data_Table): Handle private types.
11237 (Tagged_Kind): Handle private types.
11238 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11239 output of implicit importation and exportation.
11240 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11241 first formal of the thunk is always associated with the controlling
11242 type. In addition perform the following code cleanup: remove formal
11243 Thunk_Alias which is no longer required, cleanup evaluation of the
11244 the controlling type, and update the documentation.
11245 Replace occurrence of Default_Prim_Op_Count by
11246 Max_Predef_Prims. Addition of compile-time check to verify
11247 that the value of Max_Predef_Prims is correct.
11248 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11249 (Make_DT): Add parameter to indicate when type has been frozen by an
11250 object declaration, for diagnostic purposes.
11251 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11252 construction of statically allocated dispatch tables.
11253 (Make_DT): In case of library-level tagged types export the declaration
11254 of the primary tag. Remove generation of tags (now done by Make_Tags).
11255 Additional modifications to handle non-static generation of dispatch
11256 tables. Take care of building tables for asynchronous interface types
11257 (Make_Tags): New subprogram that generates the entities associated with
11258 the primary and secondary tags of Typ and fills the contents of Access_
11259 Disp_Table. In case of library-level tagged types imports the forward
11260 declaration of the primary tag that will be declared later by Make_DT.
11261 (Expand_Interface_Conversion): In case of access types to interfaces
11262 replace an itype declaration by an explicit type declaration to avoid
11263 problems associated with the scope of such itype in transient blocks.
11265 2007-08-14 Robert Dewar <dewar@adacore.com>
11266 Ed Schonberg <schonberg@adacore.com>
11267 Javier Miranda <miranda@adacore.com>
11269 * exp_util.ads, exp_util.adb:
11270 This patch replaces a number of occurrences of explicit tests for N_Null
11271 with calls to Known_Null. This improves tracking of null values, since
11272 Known_Null also catches null constants, and variables currently known to
11273 be null, so we get better tracking.
11274 (Ensure_Defined): create an itype reference only in the scope of the
11276 (Side_Effect_Free): A selected component of an access type that
11277 denotes a component with a rep clause must be treated as not
11278 side-effect free, because if it is part of a linked structure its
11279 value may be affected by a renaming.
11280 (Expand_Subtype_From_Expr): For limited objects initialized with build
11281 in place function calls, do nothing; otherwise we prematurely introduce
11282 an N_Reference node in the expression initializing the object, which
11283 breaks the circuitry that detects and adds the additional arguments to
11284 the called function. Bug found working in the new patch for statically
11285 allocated dispatch tables.
11286 (Is_Library_Level_Tagged_Type): New subprogram.
11287 (Remove_Side_Effects): If the expression of an elementary type is an
11288 operator treat as a function call.
11289 (Make_Literal_Range): If the index type of the array is not integer, use
11290 attributes properly to compute the constraint on the resulting aggregate
11293 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11294 class-wide type whose base type is an incomplete private type, leave
11295 class-wide type unfrozen so that freeze nodes can be generated
11296 properly at a later point.
11297 (Freeze_Entity, array case): Handle case of pragma Pack and component
11298 size attributre clause for same array.
11300 2007-08-14 Vincent Celier <celier@adacore.com>
11302 * prj.ads, prj.adb: Update Project Manager to new attribute names for
11304 Allow all valid declarations in configuration project files
11305 (Reset): Initialize all tables and hash tables in the project tree data
11306 Major update of the Project Manager and of the project aware tools,
11307 including gprmake, so that the same sources in the GNAT repository
11308 can be used by gprbuild.
11309 (Slash_Id): Change type to be Path_Name_Type
11310 (Slash): Return a Path_Name_Type instead of a File_Name_Type
11312 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11314 Update Project Manager to new attribute names for ghprbuild
11315 Allow all valid declarations in configuration project files
11316 Major update of the Project Manager and of the project aware tools,
11317 including gprmake, so that the same sources in the GNAT repository
11318 can be used by gprbuild.
11321 Major update of the Project Manager and of the project aware tools,
11322 including gprmake, so that the same sources in the GNAT repository
11323 can be used by gprbuild.
11325 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11326 insensitive flag for attributes with optional index.
11327 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11328 array attribute, put the index in lower case.
11329 Update Project Manager to new attribute names for ghprbuild
11330 Allow all valid declarations in configuration project files
11331 Major update of the Project Manager and of the project aware tools,
11332 including gprmake, so that the same sources in the GNAT repository
11333 can be used by gprbuild.
11335 * prj-env.ads, prj-env.adb:
11336 Major update of the Project Manager and of the project aware tools,
11337 including gprmake, so that the same sources in the GNAT repository
11338 can be used by gprbuild.
11339 (Get_Reference): Change type of parameter Path to Path_Name_Type
11341 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11342 removing '-' from the path to start with the first character of the
11344 Major update of the Project Manager and of the project aware tools,
11345 including gprmake, so that the same sources in the GNAT repository
11346 can be used by gprbuild.
11347 Major update of the Project Manager and of the project aware tools,
11348 including gprmake, so that the same sources in the GNAT repository
11349 can be used by gprbuild.
11351 * prj-nmsc.ads, prj-nmsc.adb:
11352 Update Project Manager to new attribute names for ghprbuild
11353 Allow all valid declarations in configuration project files
11354 (Search_Directories): Detect subunits that are specified with an
11355 attribute Body in package Naming. Do not replace a source/unit in the
11356 same project when the order of the source dirs are known. Detect
11357 duplicate sources/units in the same project when the order of the
11358 source dirs are not known.
11359 (Check_Ada_Name): Allow all identifiers that are not reserved words
11361 Major update of the Project Manager and of the project aware tools,
11362 including gprmake, so that the same sources in the GNAT repository
11363 can be used by gprbuild.
11364 (Look_For_Sources): If the list of sources is empty, set the object
11365 directory of non extending project to nil.
11366 Change type of path name variables to be Path_Name_Type
11367 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11368 otherwise creating missing directories will fail.
11370 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11371 prj-part.ads, prj-part.adb:
11372 Major update of the Project Manager and of the project aware tools,
11373 including gprmake, so that the same sources in the GNAT repository
11374 can be used by gprbuild.
11376 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11377 insensitive flag for attributes with optional index.
11378 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11379 array attribute, put the index in lower case.
11380 (Parse_Variable_Reference): Allow the current project name to be used in
11381 the prefix of an attribute reference.
11383 * prj-util.ads, prj-util.adb
11384 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11385 defaulted to False. When True, always check against indexes in lower
11388 * snames.ads, snames.h, snames.adb:
11389 Update Project Manager to new attribute names for gprbuild
11390 Allow all valid declarations in configuration project files
11392 2007-08-14 Robert Dewar <dewar@adacore.com>
11393 Ed Schonberg <schonberg@adacore.com>
11395 * opt.ads: Warning for non-local exception propagation now off by
11397 New switch -gnatI to disable representation clauses
11398 Implement new pragma Implicit_Packing
11401 Warning for non-local exception propagation now off by default
11402 Add warning for unchecked conversion of pointers wi different
11404 New switch -gnatI to disable representation clauses
11406 * usage.adb: new switch -gnatyS
11408 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11409 note that aggregates of anonymous array types are not flagged.
11410 -gnatwc now includes membership tests optimized away
11411 -gnatw.x warnings are now off by default
11412 Added conditional compilation Appendix
11413 Add documentation of -gnatI
11414 Add documentation for new -gnatyS style check
11415 Update documentation about SAL and auto-init on Windows.
11418 Add documentation for pragma Check_Name and 'Enabled attribute
11419 Document that Eliminate on dispatching operation is ignored
11420 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11421 Document pragma Main
11422 Document pragma Implicit_Packing
11424 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11425 different conventions
11426 New switch -gnatI to disable representation clauses
11428 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11429 recognized, report the invalid characters including "-gnat" instead of
11430 just the first character in the switch.
11431 New switch -gnatI to disable representation clauses
11432 Set Warn_On_Object_Renames_Function true for -gnatg
11434 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11435 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11436 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11437 to switch -aP (add directory to project search dir).
11439 * par-prag.adb: Implement new pragma Implicit_Packing
11441 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11442 type as having a non-standard representation, to force expansion on
11443 conversion to related types.
11444 (Analyze_Pragma): Warn on misspelled pragma
11445 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11446 Ensure consistent use of # in error messages
11447 Implement pragma Implicit_Packing
11449 2007-08-14 Olivier Hainque <hainque@adacore.com>
11450 Eric Botcazou <ebotcazou@adacore.com>
11452 * targtyps.c (get_target_maximum_default_alignment): New function.
11454 that the compiler might choose by default for a type or object.
11455 (get_target_default_allocator_alignment): New function. Alignment known
11456 to be honored by the target default allocator.
11457 (get_target_maximum_allowed_alignment): New function. Maximum alignment
11458 we might accept for any type or object on the target.
11459 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11461 * gigi.h (get_target_maximum_default_alignment): Declare new function.
11462 (get_target_default_allocator_alignment): Likewise.
11463 (get_target_maximum_allowed_alignment): Likewise.
11466 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11467 result of a function call, first try to use a stabilized reference for
11468 a constant renaming too.
11469 (validate_alignment): Use target_maximum_allowed_alignment instead of
11470 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11471 (gnat_to_gnu_entity): Use common nodes directly.
11472 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11473 alignment and size for the object.
11474 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11475 and N_Procedure_Call_Statement.
11476 (takes_address): Rename to lvalue_required_p, add third parameter
11477 'aliased' and adjust recursive calls.
11478 <N_Indexed_Component>: Update 'aliased' from the array type.
11479 <N_Selected_Component>: New case.
11480 <N_Object_Renaming_Declaration>: New Likewise.
11481 (Identifier_to_gnu): Adjust for above changes.
11482 (maybe_stabilize_reference) <CONST_DECL>: New case.
11484 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11485 between type variants.
11486 (build_simple_component_ref): Likewise.
11487 (build_call_alloc_dealloc): Use target_default_allocator_alignment
11488 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11489 aligning type circuitry for allocations from the default storage pool.
11490 (build_allocator): Likewise.
11491 (build_simple_component_ref): Manually fold the reference for a
11492 constructor if the record type contains a template.
11494 * utils.c (value_zerop): Delete.
11495 (gnat_init_decl_processing): Emit debug info for common types.
11496 (rest_of_record_type_compilation): If a union contains a field
11497 with a non-constant qualifier, treat it as variable-sized.
11498 (finish_record_type): Give the stub TYPE_DECL a name.
11499 (rest_of_record_type_compilation): Likewise.
11500 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
11501 types are equivalent array types.
11502 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11503 even if the type is not passed by reference.
11504 (static_ctors, static_dtors): Delete.
11505 (end_subprog_body): Do not record constructors and destructors.
11506 (build_global_cdtor): Delete.
11507 (gnat_write_global_declarations): Do not call build_global_cdtor.
11509 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11510 -fRTS=rtp is specified.
11511 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11514 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11515 of the personality function with SJLJ exceptions.
11517 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11518 the name of the personality function with SJLJ exceptions.
11520 2007-08-14 Robert Dewar <dewar@adacore.com>
11521 Ed Schonberg <schonberg@adacore.com>
11523 * par.ads, par.adb: Improve handling of extra right parens.
11524 (Par): Remove flag From_Limited_With_Clause.
11526 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11527 Improve handling of extra right parens.
11529 2007-08-14 Robert Dewar <dewar@adacore.com>
11531 * par-tchk.adb (TF_Semicolon): Improve error recovery
11533 2007-08-14 Robert Dewar <dewar@adacore.com>
11534 Ed Schonberg <schonberg@adacore.com>
11536 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11537 enumeration type, mark all literals as referenced.
11538 (Eval_Attribute, case 'Image): If the argument is an enumeration
11539 literal and names are available, constant-fold but mark nevertheless as
11541 Clean up function names.
11542 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11544 (Requires_Simple_Name_Prefix): Removed.
11546 2007-08-14 Robert Dewar <dewar@adacore.com>
11547 Ed Schonberg <schonberg@adacore.com>
11549 * sem_ch11.adb: Improved warnings for unused variables
11551 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11552 is a synchronized interface, the derived type is limited.
11553 (Analyze_Object_Declaration): Mark the potential coextensions in the
11554 definition and expression of an object declaration node.
11555 (Build_Derived_Type): For the completion of a private type declaration
11556 with a derived type declaration, chain the parent type's representation
11557 items to the last representation item of the derived type (not the
11558 first one) if they are not present already.
11559 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11560 object declaration of forward references to tags.
11561 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11562 subprogram types can appear as access discriminants of synchronized
11564 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11565 given in prefixed form as a selected component.
11566 (Process_Discriminants): If not all discriminants have defaults, place
11567 error message on a default that is present.
11568 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11569 extend a synchronized tagged type.
11570 Improved warnings for unused variables
11571 (Is_Visible_Component): Fix a visibility hole on a component inherited
11572 by a private extension when parent is itself declared as a private
11573 extension, and the derivation is in a child unit.
11574 (Find_Hidden_Interface): Move spec from the package body.
11576 2007-08-14 Robert Dewar <dewar@adacore.com>
11577 Ed Schonberg <schonberg@adacore.com>
11579 * sem_ch5.adb: Improve warnings on redundant assignments
11581 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11583 (Is_Synchronized_Tagged_Type): New subprogram that returns true
11584 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11585 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11586 is set to False. Improves handling of Known_[Not_]Null.
11587 (Wrong_Type): Special case address arithmetic attempt
11588 (Collect_Abstract_Interfaces): Add new formal to allow collecting
11589 abstract interfaces just using the partial view of private types.
11590 (Has_Abstract_Interfaces): Add new formal to allow checking types
11591 covering interfaces using the partial view of private types.
11592 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11593 component still needs to be defined in this case, but is never
11594 initialized as VMs are using other dispatching mechanisms.
11595 (Abstract_Interface_List): For a protected type, use base type to get
11596 proper declaration.
11597 Improve warnings on redundant assignments
11598 (Is_Variable): Handle properly an implicit dereference of a prefixed
11600 (Build_Actual_Subtype): If this is an actual subtype for an
11601 unconstrained formal parameter, use the sloc of the body for the new
11602 declaration, to prevent anomalises in the debugger.
11604 2007-08-14 Robert Dewar <dewar@adacore.com>
11606 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11607 dispatching operation
11609 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11610 Gary Dismukes <dismukes@adacore.com>
11613 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11614 expanded aggregate code before allocator, and ahead of declaration for
11615 temporary, to prevent access before elaboration when the allocator is
11616 an actual for an access parameter.
11617 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11618 the TSD and the table of interfaces.
11619 (Convert_To_Assignments): Augment the test for delaying aggregate
11620 expansion for limited return statements to include the case of extended
11621 returns, to prevent creation of an unwanted transient scope.
11622 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11623 (Expand_Array_Aggregate): Handle aggregates associated with
11624 statically allocated dispatch tables.
11625 (Expand_Record_Aggregate): Handle aggregates associated with
11626 statically allocated dispatch tables.
11627 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11628 of anonymous access type.
11630 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11632 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11633 is a variable that renames a slice, use the variable itself in the
11634 expannsion when the renamed expression itself may be modified between
11635 the declaration of the renaming and the array assignment.
11637 2007-08-14 Jerome Guitton <guitton@adacore.com>
11639 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
11640 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
11641 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
11642 New functions; dummy implementations.
11644 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
11645 functions, used to implement the multi-tasks mode routines on VxWorks.
11647 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
11648 New functions, thin
11649 binding to the VxWorks routines which have changed between VxWorks 5
11651 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
11652 which are not callable from a RTP.
11654 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
11655 implemented for the multi-tasks mode on VxWorks 5 and 6.
11657 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
11659 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
11662 2007-08-14 Vincent Celier <celier@adacore.com>
11664 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
11665 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
11666 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
11667 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11668 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11669 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
11670 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
11672 (Major_Id_Name): New function.
11673 mlib-tgt.ads/mlib.tgt.adb:
11674 (Library_Major_Minor_Id_Supported): New function, default returns True
11675 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
11676 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
11677 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
11678 Implementation of Library_Major_Minor_Id_Supported returns False
11680 (Clean_Library_Directory): If major/minor ids are supported, clean all
11682 Major update of the Project Manager and of the project aware tools,
11683 including gprmake, so that the same sources in the GNAT repository
11684 can be used by gprbuild.
11686 2007-08-14 Olivier Hainque <hainque@adacore.com>
11688 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
11689 (GCC_ZCX_Support): Switch to True.
11691 * s-intman-solaris.adb (Notify_Exception): Call
11692 Adjust_Context_For_Raise before raising, as expected for signal
11693 handlers in general.
11695 * s-intman-posix.adb (Notify_Exception): Remove declaration of
11696 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
11697 to other implementation bodies.
11699 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
11700 be visible by multiple implementation bodies.
11702 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
11703 only for conditions coming from hardware.
11704 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
11705 adjustments to signal context prior to exception raise from signal
11707 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
11709 Solaris section: (__gnat_adjust_context_for_raise): New function.
11710 Implementation of the machine context adjustments to perform prior to
11711 raise from a signal handler. Version for both sparc and x86.
11712 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
11713 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
11714 prior to raising as expected for any handler, before possible nested
11715 faults to make sure all the contexts in a chain have been adjusted by
11716 the time we propagate.
11718 2007-08-14 Pascal Obry <obry@adacore.com>
11720 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
11721 (SYSTEM_INFO): New record.
11722 (SetThreadIdealProcessor): New imported routine needed for supporting
11723 task_info pragma on Windows.
11725 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
11726 info can be applied to the current host.
11727 (Create_Task): Set the ideal processor if information is present.
11729 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
11730 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
11732 2007-08-14 Olivier Hainque <hainque@adacore.com>
11734 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
11735 stack size and initial stack pointer value for a given task.
11736 (Enter_Task): Get the stack attributes of the task we are entering and
11737 let the stack checking engine know about them.
11739 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
11740 Let the stack-checking engine know about the initial sp value and stack
11741 size associated with the current task.
11742 (Set_Stack_Info): If a stack base has been notified for the current
11743 task, honor it. Fallback to the previous less accurate method otherwise.
11745 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
11747 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11749 * sem_ch10.adb: Create a limited view of an incomplete type, to make
11750 treatment of limited views uniform for all visible declarations in a
11751 limited_withed package.
11752 Set flag indicating that a subprogram body for a child unit has a
11754 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
11755 separate declaration, remove the unit name from visibility after
11756 compilation, so that environment is clean for subsequent compilations.
11757 (Install_Limited_Context_Clauses): Do not install a
11758 limited_private_with_clause unless the current unit is a body or a
11759 private child unit.
11760 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
11761 in the same fashion.
11762 (Install_Limited_Withed_Unit): Do not install a limited with clause if
11763 it applies to the declaration of the current package body.
11764 (Remove_Private_With_Clauses): If there is a regular with_clause for
11765 the unit, delete Private_With_Clause from context, to prevent improper
11766 hiding when processing subsequent nested packages and instantiations.
11768 2007-08-14 Jose Ruiz <ruiz@adacore.com>
11770 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
11771 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
11772 representing absolute path names.
11773 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
11775 * cstreams.c (__gnat_full_name for VxWorks): Use
11776 __gnat_is_absolute_path to detect whether we need to add the current
11777 directory to normalize the path.
11779 2007-08-14 Javier Miranda <miranda@adacore.com>
11782 a-tags.adb (Displace): Associate a message with the raised CE
11784 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
11785 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
11786 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
11788 (Default_Prim_Op_Count): Removed.
11789 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
11790 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
11791 Remove pragma Inline_Always.
11793 * rtsfind.ads (Default_Prim_Op_Count): Removed
11794 (Max_Predef_Prims): New entity
11795 (RE_Expanded_Name): Removed
11796 (RE_HT_Link): Removed
11797 (RE_Iface_Tag): Remmoved
11798 (RE_Ifaces_Table): Removed
11799 (RE_Interfaces_Array): Removed
11800 (RE_Interface_Data_Element): Removed
11801 (RE_Nb_Ifaces): Removed
11802 (RE_RC_Offset): Removed
11803 (RE_Static_Offset_To_Top): Removed
11805 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
11807 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
11808 Prim_Op_Count by Max_Predef_Prims.
11810 2007-08-14 Thomas Quinot <quinot@adacore.com>
11811 Vincent Celier <celier@adacore.com>
11813 * binde.adb (Elab_All_Links): Remove unnecessary call to
11814 Generic_Separately_Compiled (if a unit satisfies this predicate, there
11815 won't be an associated Afile).
11816 (Elab_All_Links): Fail if a referenced unit cannot be found
11819 Fix comments in bindgen regarding consistency checks done in Bcheck:
11820 the checks are made across units within a partition, not across several
11822 Fix generation of C binder file for VxWorks.
11824 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
11825 Generic_May_Lack_ALI, more descriptive of the current use of the
11826 predicate, and update documentation.
11828 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
11829 reorganization and documentation update for the case of predefined
11830 library generics (for which we do not reference an Afile).
11832 2007-08-14 Robert Dewar <dewar@adacore.com>
11834 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
11835 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
11836 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
11837 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
11838 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
11839 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
11840 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
11841 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
11842 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
11843 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
11844 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
11845 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
11846 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
11847 g-altcon.adb: Minor reformatting
11849 ada-tree.h: Delete empty line.
11851 ali.ads: Minor reformatting
11852 Clarification of comments.
11853 Minor spelling correction
11855 * exp_dbug.adb: Add Warnings Off to suppress new warning
11857 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11860 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
11863 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
11865 * a-textio.ads: Reorder the standard input/output/error declarations
11868 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
11870 * par-ch2.adb: Recognize RM specially in errout
11871 Change 'R'M to RM in all error messages
11873 * scng.adb: Recognize RM specially in errout
11875 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
11876 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
11878 * s-direio.adb: Add missing routine header box.
11880 * sem_attr.ads: Add ??? comments
11882 * sem_eval.adb: Recognize RM specially in errout
11883 Change 'R'M to RM in all error messages
11885 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
11887 * s-tasinf.ads: Fix minor comment typo.
11889 * a-cihama.adb: Minor comment addition
11891 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
11894 * s-tasinf-tru64.ads: Fix minor comment typo.
11896 * itypes.ads: Comment update.
11898 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
11901 * argv.c: Added protection against null gnat_argv and gnat_envp.
11903 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
11904 warning message when Tolerate_Consistency_Errors is True.
11906 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
11907 Any_Id, as this subprogram is only applicable to *type* entities (it
11908 sets RM_Size). Instead initialize just Esize and Alignment.
11910 2007-08-14 Bob Duff <duff@adacore.com>
11912 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
11913 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
11914 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
11915 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
11916 a-coorse.ads (Next): Applied pragma Inline.
11917 Make all Containers packages Remote_Types (unless they are already
11919 (Previous): applied pragma Inline
11920 (Elements_Type): is now a record instead of an array
11922 2007-08-14 Thomas Quinot <quinot@adacore.com>
11924 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
11926 (Set_Item): When the new item is an element of the currently allocated
11927 table passed by reference, save a copy on the stack if we're going
11928 to reallocate. Also, in Table.Set_Item, make sure we test the proper
11929 variable to determine whether to call Set_Last.
11931 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
11932 symbols-vms.adb, symbols-processing-vms-alpha.adb,
11933 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
11934 some occurrences of the pattern
11936 T.Table (T.Last) := Value;
11937 with a cleaner call to
11940 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11941 Gary Dismukes <dismukes@adacore.com>
11942 Thomas Quinot <quinot@adacore.com>
11944 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
11945 derived type with interface progenitors use the analyzed formal as the
11946 parent of the actual, to create renamings for all the inherited
11947 operations in Derive_Subprograms.
11948 (Collect_Previous_Instances): new procedure within of
11949 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
11950 unit being loaded, to ensure that the generation of global symbols is
11951 consistent in different compilation modes.
11952 (Is_Tagged_Ancestor): New function testing the ancestor relation that
11953 takes progenitor types into account.
11954 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
11955 traversing over the primitives of the formal and actual types to locate
11956 any abstract subprograms of the actual type that correspond to a
11957 nonabstract subprogram of the formal type's ancestor type(s), and issue
11958 an error if such is found.
11959 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
11960 Instantiate_Package_Body, Instantiate_Subprogram_Body):
11961 Remove bogus guard around calls to Inherit_Context.
11962 (Reset_Entity): If the entity is the selector of a selected component
11963 that denotes a named number, propagate constant-folding to the generic
11964 template only if the named number is global to the generic unit.
11965 (Set_Instance_Env): Only reset the compilation switches when compiling
11966 a predefined or internal unit.
11968 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11970 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
11971 parameter to determine whether operation applies to the prefix.
11972 (Complete_Object_Operation): If actual has an access type and
11973 controlling formal is not an in_parameter, reject the actual if it is
11974 an access_to_constant type.
11975 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
11976 type, the candidate operations are found in the scope of declaration of
11977 the type, because the type has no primitive subprograms.
11978 (Analyze_Selected_Component): If prefix is class-wide, and root type is
11979 a private extension, only examine visible components before trying to
11980 analyze as a prefixed call.
11981 Change Entity_List to Type_To_Use, for better readability.
11982 (Has_Fixed_Op): Use base type when checking whether the type of an
11983 operator has a user-defined multiplication/division
11984 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
11985 user-defined operators are available for fixed-point types.
11987 2007-08-14 Thomas Quinot <quinot@adacore.com>
11988 Ed Schonberg <schonberg@adacore.com>
11990 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
11991 formal At_Any_Place indicating, when True, that we want to test for
11992 availability of the stream attribute at any place (as opposed to the
11993 current visibility context only).
11994 (Missing_Read_Write_Attributes): A stream attribute is missing for the
11995 purpose of enforcing E.2.2(8) only if it is not available at any place.
11996 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
11997 when checking the legality of an extension aggregate in a preelaborable
11998 package. Treat the literal null as a valid default expression in a
11999 component declaration for a type with preelaborable initialization.
12000 A limited interface is a legal progenitor for the designated type of a
12001 remote access to class-wide type.
12003 2007-08-14 Thomas Quinot <quinot@adacore.com>
12004 Ed Schonberg <schonberg@adacore.com>
12006 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12007 reference): Use correct entity as denoted entity for the selector of
12008 the rewritten node.
12009 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12010 setting the Referenced_As_LHS flag for entities that are implicitly
12012 (Find_Type): If the type is an internally generated incomplete type,
12013 mark the full view as referenced, to prevent spurious warnings.
12014 (Find_Selected_Component, Has_Components): Handle properly non-limited
12015 views that are themselves incomplete types.
12016 Handle interfaces visible through limited-with clauses.
12017 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12018 subprogram generic actual for which we have generated a renaming.
12019 Warn when the renaming introduces a homonym of
12020 the renamed entity, and the renamed entity is directly visible.
12022 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12023 Hristian Kirtchev <kirtchev@adacore.com>
12025 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12026 appear in the subtree to the current allocator if it is not a static
12028 (Resolve_Allocator): Perform cleanup if resolution has determined that
12029 the allocator is not a coextension.
12030 (Resolve): Skip an interpretation hidden by an abstract operator only
12031 when the type of the interpretation matches that of the context.
12032 (Resolve): When looping through all possible interpretations of a node,
12033 do not consider those that are hidden by abstract operators.
12034 (Resolve_Actuals): When verifying that an access to class-wide object
12035 is an actual for a controlling formal, ignore anonymous access to
12036 subprograms whose return type is an access to class_wide type.
12037 (Resolve_Slice): If the prefix of the slice is a selected component
12038 whose type depends on discriminants, build its actual subtype before
12039 applying range checks on the bounds of the slice.
12040 (Valid_Conversion): In an instance or inlined body, compare root types,
12041 to prevent anomalies between private and public views.
12042 (Resolve): Improve error message for ambiguous fixed multiplication
12043 expressions that involve universal_fixed multiplying operations.
12045 2007-08-14 Javier Miranda <miranda@adacore.com>
12046 Hristian Kirtchev <kirtchev@adacore.com>
12048 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12049 location to allow the correct generation of errors in case of
12050 restrictions applied to the expanded code.
12051 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12052 function if the condition does not reference them.
12053 (Expand_Entry_Body_Declarations): Mark the index constant as having a
12056 2007-08-14 Thomas Quinot <quinot@adacore.com>
12057 Pablo Oliveira <oliveira@adacore.com>
12059 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12060 typecode parameters for a union (in a variant record), remove
12061 extraneous layer of Any wrapping for member label.
12062 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12063 elabration statements, register the package with the name server
12064 at the beginning, not at the end, of the elaboration statements so
12065 that they can create remote access to subprogram values that designate
12066 remote subprograms from the package.
12068 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12070 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12071 values to compute the number of seconds since the Unix Epoc in order to
12072 account for Daylight Savings Time. Perform special processing for dates
12073 that are earlier than the Unix Epoc to obtain a negative number.
12075 2007-08-14 Emmanuel Briot <briot@adacore.com>
12077 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12080 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
12082 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12083 binder-generated file is not in Ada.
12084 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12085 recorded in the ALI file.
12086 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12088 2007-08-14 Vincent Celier <celier@adacore.com>
12090 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12091 (Output_Source): Do nothing if parameter is No_Sdep_Id
12093 * make.adb (Gnatmake): Do not rebuild an archive simply because a
12094 shared library it imports has a later time stamp.
12095 (Check): Resolve the symbolic links in the path name of the object
12097 Check that the ALI file is in the correct object directory
12098 Check if a file name does not correspond to the mapping of units
12100 (Display_Version): New procedure
12101 (Initialize): Process switches --version and --help
12102 Use type Path_Name_Type for path name
12104 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
12106 * impunit.adb: Re-organize System.Random_Numbers and
12107 GNAT.Random_Numbers and add to builds.
12109 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12111 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12113 * a-assert.ads, a-assert.adb: New files.
12115 2007-08-14 Gary Dismukes <dismukes@adacore.com>
12117 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12118 if AAMP_On_Target is True, then the size of the type encompasses two
12119 addresses (a static link and a subprogram address), except in the case
12120 of library-level access types.
12122 2007-08-14 Vincent Celier <celier@adacore.com>
12124 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12126 (Write_Eol_Keep_Blanks): New procedure to write a line, including
12127 possible trailing spaces.
12128 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12130 2007-08-14 Javier Miranda <miranda@adacore.com>
12132 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12133 null-excluding access types.
12135 2007-08-14 Javier Miranda <miranda@adacore.com>
12137 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12138 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12139 of private types add missing check on matching interfaces in the
12140 partial and full declarations.
12141 (Analyze_Protected_Type): Code cleanup.
12142 (Analyze_Task_Type): Code cleanup.
12144 2007-08-14 Javier Miranda <miranda@adacore.com>
12146 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12147 generated interface thunk.
12149 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12151 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12152 obsolescent warning on application of 'Class to an incomplete type.
12154 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12155 prevent obsolescent warning on application of 'Class to an incomplete
12158 2007-08-14 Pascal Obry <obry@adacore.com>
12160 * s-fileio.adb (Is_Open): Add check for usability of the underlying
12163 2007-08-14 Cyrille Comar <comar@adacore.com>
12165 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12166 since it is potentially used in cases implying double finalization of
12169 2007-08-14 Jose Ruiz <ruiz@adacore.com>
12171 * s-tasini.adb (Get_Stack_Info): Move this function to
12172 System.Soft_Links.Tasking because it is common to the full and the
12173 restricted run times.
12174 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12175 in SSL.Tasking.Init_Tasking_Soft_Links.
12177 * s-solita.adb (Get_Stack_Info): Function moved from
12178 System.Tasking.Initialization because it is common to the full and the
12179 restricted run times.
12180 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12182 2007-08-14 Arnaud Charlet <charlet@adacore.com>
12184 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12185 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12186 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12189 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12192 2007-08-14 Gary Dismukes <dismukes@adacore.com>
12194 * s-veboop.adb (SU): New named number initialized to
12195 System.Storage_Unit.
12196 (True_Val): The initialization expression is revised to use SU (=
12197 Storage_Unit) rather than assuming 8 for the component size of an
12198 unpacked Boolean array.
12200 2007-08-14 Tristan Gingold <gingold@adacore.com>
12202 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12204 * tb-ivms.c: New file.
12206 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12208 2007-08-14 Geert Bosch <bosch@adacore.com>
12210 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12211 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12212 Add required linker pragmas for automatically linking with the gnalasup
12213 linear algebra support library, and the systems math library.
12214 Rename cdot to cdotu and zdot to zdotu.
12215 Update header comment to describe purpose of package.
12217 2007-08-14 Thomas Quinot <quinot@adacore.com>
12219 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12220 an explicitly specified Associated_Final_Chain, use that list.
12221 (Expand_N_Package_Body): Build dispatch tables of library level tagged
12223 (Expand_N_Package_Declaration): Build dispatch tables of library level
12224 tagged types. Minor code cleanup.
12226 2007-08-14 Vincent Celier <celier@adacore.com>
12228 * gnatchop.adb (Terminate_Program): Remove exception and use
12229 Types.Terminate_Program instead.
12231 * osint.ads, osint.adb (Current_Exit_Status): New global variable
12232 (Find_Program_Name): Added protection against empty name.
12233 (OS_Exit_Through_Exception): New procedure
12235 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12236 (OS_Exit_Default): New procedure that contains the previous
12237 implementation of procedure OS_Exit.
12238 (Final_Value): Remove obsolete Interix stuff.
12240 2007-08-14 Thomas Quinot <quinot@adacore.com>
12242 * g-socket.ads: Reorganize example code so that it also works on
12245 2007-08-14 Tristan Gingold <gingold@adacore.com>
12247 * g-trasym.ads: AIX now supports symbolic backtraces.
12249 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12251 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12252 units being loaded to detect circularities. A circularity may be
12253 present even if the current chain of pending units to load starts from
12254 a limited_with_clause.
12256 * lib-load.ads: Change profile of Load_Unit to use a with_clause
12257 rather than a boolean flag, in order to detect circularities in
12260 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12261 than propagating the From_Limited_With flag, in order to handle
12262 properly circularities involving with_clauses.
12264 2007-08-14 Nicolas Setton <setton@adacore.com>
12266 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12269 2007-08-14 Arnaud Charlet <charlet@adacore.com>
12271 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12272 to build for libgnala.
12273 libgnat: Add rules to build libgnala.a
12274 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12275 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12276 Add s-osinte-vxworks-kernel.adb to the target pairs of the
12277 kernel run-time lib for VxWorks 6, which would provide a different
12278 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12279 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12280 running ZCX by default.
12281 Add g-sttsne-locking to LynxOS version.
12282 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12283 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12285 * system-darwin-x86.ads: New file.
12287 * Make-lang.in: Delete files before copying onto them, so if they are
12288 read-only, the copy won't fail.
12289 Update dependencies
12291 2007-08-14 Pascal Obry <obry@adacore.com>
12293 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12296 2007-08-14 Vincent Celier <celier@adacore.com>
12298 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12299 (Gcc): Initialize Gcc_Name at the first call
12301 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12303 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12304 with_clauses of the enclosing unit when analyzing the package
12305 specification of a nested instance.
12307 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12309 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12310 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12311 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12312 layout of N_Allocator.
12314 2007-08-14 Thomas Quinot <quinot@adacore.com>
12316 * rtsfind.adb (Check_RPC): Add PCS version check.
12318 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12319 (Gnat_Free_Software): New function.
12321 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12322 the PCS_Version value from s-parint, used to check that it is consistent
12323 with what exp_dist expects.
12325 * s-parint.ads (PCS_Version): New entity for checking consistency
12326 between exp_dist and PCS.
12328 * gen-soccon.c: (SO_REUSEPORT): New constant.
12330 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12332 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12333 variable Sub_Second to Duration in order to accomodate a larger range
12334 of arithmetic operations.
12336 2007-08-14 Bob Duff <duff@adacore.com>
12338 * g-sttsne-locking.ads: Move comments from spec to body.
12339 * g-sttsne-locking.adb: Move comments from spec to body.
12340 * g-sttsne-vxworks.ads: Removed.
12341 * g-sttsne-vxworks.adb: Removed.
12343 2007-08-11 Ian Lance Taylor <iant@google.com>
12345 * misc.c (gnat_get_alias_set): Change return type to
12348 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12350 * decl.c, utils2.c: Fix whitespace in last change.
12352 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12354 * decl.c (compare_field_bitpos): Constify.
12355 * utils2.c (compare_elmt_bitpos): Likewise.
12357 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
12359 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12360 anonymous access type.
12361 (pthread_sigmask): Now take an access sigset_t.
12363 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
12365 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12367 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
12369 PR tree-optimization/25737
12370 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12372 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
12374 * trans.c (Attribute_to_gnu): When subtracting an
12375 offset from a pointer, use POINTER_PLUS_EXPR with
12376 NEGATE_EXPR instead of MINUS_EXPR.
12377 (gnat_to_gnu): Likewise.
12378 * utils.c (convert): When converting between
12379 thin pointers, use POINTER_PLUS_EXPR and sizetype
12381 * utils2.c (known_alignment): POINTER_PLUS_EXPR
12382 have the same semantics as PLUS_EXPR for alignment.
12383 (build_binary_op): Add support for the semantics of
12384 POINTER_PLUS_EXPR's operands.
12385 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12387 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
12389 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12390 of get_signed_or_unsigned_type.
12391 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12393 2007-06-11 Bob Duff <duff@adacore.com>
12394 Thomas Quinot <quinot@adacore.com>
12396 * g-stsifd-sockets.adb (Create): Work around strange behavior of
12397 'bind' on windows that causes 'connect' to fail intermittently, by
12398 retrying the 'bind'.
12399 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12401 2007-06-10 Duncan Sands <baldrick@free.fr>
12403 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12404 than to void, for the fields when making a new fat pointer type.
12405 (gnat_substitute_in_type): Now substitute_in_type.
12406 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
12407 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12408 * utils.c (update_pointer_to): Update fat pointers by updating the
12409 dummy node pointers used for the fields.
12411 2007-06-06 Thomas Quinot <quinot@adacore.com>
12412 Bob Duff <duff@adacore.com>
12414 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12415 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12416 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
12417 constant Thread_Blocking_IO, always True by default, set False
12418 on a per-runtime basis.
12419 (Need_Netdb_Buffer): New constant.
12421 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12422 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12425 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12426 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12427 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12428 child package Task_Safe_NetDB
12429 (Host_Error_Messages): Add stub body.
12430 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12432 * g-soccon-mingw.ads: Add Windows-specific constants.
12433 (Need_Netdb_Buffer): New constant.
12434 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12435 wrapper and import inet_addr(3) from the standard sockets library
12437 (In_Addr): Add alignment clause.
12438 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12440 2007-06-06 Robert Dewar <dewar@adacore.com>
12442 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12443 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12444 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12445 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12446 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12447 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12448 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12449 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12450 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12451 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12452 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12453 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12454 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12455 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12456 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12457 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12458 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12459 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12460 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12461 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12462 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12463 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12464 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12465 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12466 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12467 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12468 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12469 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12470 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12471 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12472 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12473 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12474 Unchecked_* by Ada.Unchecked_*
12476 2007-06-06 Robert Dewar <dewar@adacore.com>
12478 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12479 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12480 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12481 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12482 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12483 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12485 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12486 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12487 s-tasloc.adb, s-tasloc.ads: New files.
12489 2007-06-06 Bob Duff <duff@adacore.com>
12491 * g-expect-vms.adb:
12492 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12493 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12494 (Send_Signal, Close): Raise Invalid_Process if the process id is
12496 (Pattern_Matcher_Access): Is now a general access type to be able to
12497 use aliased string.
12499 2007-06-06 Thomas Quinot <quinot@adacore.com>
12500 Arnaud Charlet <charlet@adacore.com>
12502 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12503 (SIGEMT is now used instead of SIGTERM on AIX).
12505 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12506 (Time_Slice_Supported): Set to True.
12507 Use SIGEMT instead of SIGTERM as SIGADAABORT.
12509 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
12511 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12512 (Time, Time)): Use To_Relative_Time rather than manual calculation to
12513 express the bounds of Duration as Time. Raise Time_Error when the
12514 result is greater or equal to the higher bound of Duration (on the
12516 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12517 Ada_High_And_Leaps.
12518 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12519 Ada_High_And_Leaps.
12520 ("-" (Time, Time)): Reorder code.
12521 (All_Leap_Seconds): Removed.
12522 (Arithmetic_Operations.Add): Remove sign related kludge.
12523 (Arithmetic_Operations.Difference): Control the leaps seconds processing
12524 with flag Leap_Support.
12525 (Arithmetic_Operations.Subtract): Remove sign related kludge.
12526 (Check_Within_Time_Bounds): New procedure.
12527 (Clock): Control the leap seconds processing with flag Leap_Support.
12528 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12529 (Formatting_Operations.Split): Control the leap seconds processing with
12531 (Formatting_Operations.Time_Of): Control the leaps seconds processing
12532 with flag Leap_Support. Adjust the year, month and day (if applicable)
12533 when the value of day seconds designates a new day.
12534 (Split): Use parameter associations for better readability. Integrate
12536 (Time_Of): Use parameter associations for better readability. Integrate
12539 * a-calfor.adb (Split): Use parameter associations for better
12540 readability. Integrate flag Is_Ada_05.
12541 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12542 better readability. Integrate flag Is_Ada_05.
12544 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12546 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12547 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12548 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12549 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12550 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12551 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12552 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12553 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12554 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12555 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12556 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12557 time when entering this routine to detect a backward clock setting
12558 (manual setting or DST adjustment), to avoid waiting for a longer delay
12560 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12561 Remove handling of deferred priority change, and replace by setting the
12562 task priority directly, as required by AI-188.
12564 (Max_Task_Image_Length): New constant.
12565 Replace Warnings (Off) by Unreferenced pragma, cleaner.
12566 (Dynamic_Priority_Support): Removed, no longer needed.
12567 (Poll_Base_Priority_Change): Ditto.
12568 (Set_Ceiling): Add this procedure to change the ceiling priority
12569 associated to a lock. This is a dummy implementation because dynamic
12570 priority ceilings are not supported by the underlying system.
12572 * a-dynpri.adb (Set_Priority): Take into account case where Target is
12573 accepting a RV with its priority boosted.
12574 Remove handling of deferred priority change, and replace by setting the
12575 task priority directly, as required by AI-188.
12577 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12579 Remove handling of deferred priority change, and replace by setting the
12580 task priority directly, as required by AI-188.
12581 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12582 of Self_Id earlier.
12584 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12585 (Poll_Base_Priority_Change): Removed.
12586 Code clean up: use SSL.Current_Target_Exception.
12588 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12589 to run as this is a potentially dispatching point.
12590 (Call_Synchronous): Use Local_Defer_Abort.
12591 (Callable): Relax assertion.
12592 (Selective_Wait): Relax assertion in case abort is not allowed.
12593 Remove handling of deferred priority change, and replace by setting the
12594 task priority directly, as required by AI-188.
12596 * s-tasuti.adb (Make_Passive): Adjust assertions.
12597 Remove handling of deferred priority change, and replace by setting the
12598 task priority directly, as required by AI-188.
12600 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12602 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12603 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12604 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12605 system-vxworks-mips.ads, system-vxworks-alpha.ads,
12606 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12607 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12608 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12609 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12610 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12611 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12612 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12613 This patch changes the largest non-binary modulus from 2**31-1 to
12615 (Compiler_System_Version): Removed, no longer used.
12616 Clean up system files by removing flags only used on a single target.
12617 Also remove obsolete flags, only used during bootstrap from system.ads
12618 (Address): Add a pragma Preelaborable_Initialization.
12620 * system-aix.ads: Ditto.
12621 (GCC_ZCX_Support): Set to true.
12622 Update priority range on AIX and map Ada priorities to target
12623 priorities appropriately for different scheduling policies.
12625 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12627 2007-06-06 Vincent Celier <celier@adacore.com>
12629 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12630 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12632 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12633 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12634 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
12635 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12636 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
12637 MLib.Tgt, containing the default versions of the exported subprograms.
12638 For each platform, create a specific version of the body of new child
12639 package MLib.Tgt.Specific that contains only the body of subprograms
12640 that are different from the default.
12641 (Archive_Builder_Append_Options): New function.
12643 2007-06-06 Matthew Gingell <gingell@adacore.com>
12645 * s-osinte-aix.adb: Map Ada priorities to target priorities
12646 appropriately for different scheduling policies.
12648 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12650 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
12652 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
12653 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
12655 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
12657 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
12658 Noop on VMS, added for interface commonality.
12660 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
12661 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12662 Olivier Hainque <hainque@adacore.com>
12664 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
12665 renamed expression of a full renaming at toplevel.
12666 (gnat_to_gnu_entity, case object): If not defining, do not look inside
12667 the values the constant is initialized to if it is an N_Allocator.
12668 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
12669 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
12670 (make_aligning_type): Accept an extra ROOM argument for storage to be
12671 made available before the aligned field, and an extra BASE_ALIGN
12672 argument for callers to pass the alignment guaranteed to be honored for
12673 the whole aligning object. Avoid call to finish_record_type, which only
12674 interferes with the sizes we want to set.
12675 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
12676 make_aligning_type for super-aligned objects on stack.
12677 (components_to_record): Pass the adjusted size of the type when creating
12678 fields in the qualified union for the variant part.
12679 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
12680 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
12682 (maybe_pad_type): Set TYPE_USER_ALIGN.
12683 (make_aligning_type): Likewise.
12684 ALIGN argument is unsigned int.
12685 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
12686 (gnat_to_gnu_param): Likewise, for parameters.
12687 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
12688 if it is constant and stems from a function call.
12689 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
12690 of the record is specified. Adjust accordingly.
12691 (adjust_packed): New static function.
12692 (gnat_to_gnu_field): Use it to adjust the packedness setting.
12693 (components_to_record): Likewise.
12694 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
12695 side-effects if the object is deemed constant.
12696 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
12697 type instead of merely finalizing it. Tidy.
12698 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
12699 <E_Access_Type>: Likewise.
12700 (defer_debug_incomplete_list): Rename to defer_finalize_list.
12701 (defer_debug_level): Delete.
12702 (gnat_to_gnu_entity) <debug_deferred>: Likewise
12703 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
12705 <E_Record_Type>: Do not explicitly defer finalizing the type.
12706 Adjust for write_record_type_debug_info renaming.
12707 <E_Subprogram_Type>: Likewise.
12708 Finalize deferred types right after deferred incomplete types are
12710 (rest_of_type_decl_compilation): New global function.
12711 (components_to_record): Rename defer_debug parameter to do_not_finalize.
12712 (components_to_record): Propagate the packedness to the fields of the
12713 qualified union type if there is a variant part.
12714 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
12715 instead of inline code to adjust the XUT field offsets.
12716 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
12717 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
12718 and write the debug info if the type derives from a discriminated one.
12719 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
12720 <E_Array_Subtype>: Likewise.
12721 <E_String_Literal_Subtype>: Likewise.
12722 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
12723 an alignment clause.
12724 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
12725 before giving warning.
12726 (prepend_one_attribute_to): New function, helper to prepend an attribute
12727 to an attribute list.
12728 (gnat_to_gnu_entity) <E_Procedure>: Use it.
12729 (prepend_attributes): Likewise.
12730 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
12731 <E_Array_Type>: Declare the padding type for the element type, if any.
12732 <E_Array_Subtype>: Likewise.
12733 (defer_limited_with): New variable.
12734 (Gigi_Equivalent_Type): New function.
12735 (gnat_to_gnu_entity): Use it at start and use result throughout.
12736 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
12737 Gigi_Equivalent_Type, support Limited_With, allow two levels of
12738 indirection, precompute if unconstrained array to simplify logic, and
12739 use defer_limited_with to defer elaboration of some types from limited
12741 (finalize_from_with_types): New function.
12743 2007-06-06 Gary Dismukes <dismukes@adacore.com>
12744 Eric Botcazou <ebotcazou@adacore.com>
12745 Tristan Gingold <gingold@adacore.com>
12746 Olivier Hainque <hainque@adacore.com>
12748 * trans.c (Identifier_to_gnu): Change test for deferred constant by
12749 adding guard that the entity is an E_Constant before testing presence
12750 of Full_view (and remove unnecessary test that entity is not a type).
12751 For a CONST_DECL used by reference, manually retrieve
12752 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
12753 (struct language_function): Move from utils.c to here.
12754 (struct parm_attr): New structure.
12755 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
12756 (f_parm_attr_cache): New macro.
12757 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
12758 expressions for the 'First, 'Last and 'Length attributes of the
12759 unconstrained array IN parameters.
12760 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
12761 Allocate the information structure for the function earlier, as well
12762 as the language-specific part.
12763 If the parameter attributes cache has been populated, evaluate the
12764 cached expressions on entry.
12765 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
12766 N_Procedure_Call_Statement and N_Indexed_Component.
12767 (Pragma_to_gnu): Translate inspection_point to an asm statement
12768 containaing a comment and a reference to the object (either its address
12769 for BLKmode or its value).
12770 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
12771 to go to DECL_INITIAL. Together with the size constraint relaxation
12772 in create_var_decl, enlarges the set of situations in which an
12773 identifier may be used as an initializer without implying elaboration
12775 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
12776 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
12778 (maybe_stabilize_reference): Remove lvalues_only parameter.
12779 (gnat_stabilize_reference): Adjust for above change.
12780 (gnat_to_gnu): Do not set location information on the result
12781 if it is a reference.
12782 (add_cleanup): Add gnat_node parameter and set the location of the
12784 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
12785 (Exception_Handler_to_gnu_zcx): Likewise.
12786 (gigi): Remove the cgraph node if the elaboration procedure is empty.
12787 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
12788 the former right after the latter.
12789 (start_stmt_group): Make global.
12790 (end_stmt_group): Likewise.
12791 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
12793 (gnu_program_error_label_stack): Likewise.
12794 (gigi): Initialize them.
12795 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
12796 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
12798 (push_exception_label_stack): New function.
12799 (takes_address): New function.
12801 * utils.c (struct language_function): Move to trans.c from here.
12802 (unchecked_convert): Do not wrap up integer constants in
12803 VIEW_CONVERT_EXPRs.
12804 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
12805 the latter for aggregate types, unexpected by later passes, and relax an
12806 arbitrary size constraint on the former.
12807 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
12808 to compare the sizes.
12809 (convert_vms_descriptor): When converting to a fat pointer type, be
12810 prepared for a S descriptor at runtime in spite of a SB specification.
12811 (shift_unc_components_for_thin_pointers): New function.
12812 (write_record_type_debug_info): For variable-sized fields, cap the
12813 alignment of the pointer to the computed alignment.
12814 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
12815 If REP_LEVEL is 2, do not compute the sizes.
12816 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
12817 (build_unc_object_type): Likewise.
12818 (declare_debug_type): New function.
12820 * ada-tree.def: USE_STMT: removed (not emitted anymore).
12822 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
12823 no statement is expandable anymore.
12824 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
12825 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
12826 when the user requested it explicitely.
12827 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
12829 (get_alias_set): Return alias set 0 for a type if
12830 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
12832 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
12833 (DECL_FUNCTION_STUB): New accessor macro.
12834 (SET_DECL_FUNCTION_STUB): New setter macro.
12836 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
12838 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
12841 2007-06-06 Jose Ruiz <ruiz@adacore.com>
12843 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
12844 Rename to Abort_Task_Interrupt to be able to keep the same interface
12845 as the rest of the targets.
12847 * s-osinte-vxworks.ads s-osinte-vxworks.adb
12848 (To_VxWorks_Priority): Remove explicit "in" mode indicator
12850 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
12853 2007-06-06 Robert Dewar <dewar@adacore.com>
12855 * a-chahan.ads: Remove obsolescent pragmas
12857 * a-chlat1.ads: Minor reformatting
12859 2007-06-06 Robert Dewar <dewar@adacore.com>
12861 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
12864 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
12867 * errout.ads (Finalize): Changed interface
12868 (Output_Messages): New procedure
12869 (Compilation_Errors): New Interface
12871 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
12872 Finalize/Output_Messages interface for Errout
12873 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
12876 2007-06-06 Thomas Quinot <quinot@adacore.com>
12877 Olivier Hainque <hainque@adacore.com>
12878 Robert Dewar <dewar@adacore.com>
12880 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
12882 (Raise_Current_Excep): Call Debug_Raise_Exception just before
12883 propagation starts, to let debuggers know about the event in a reliable
12885 (Local_Raise): Moved to System.Exceptions
12886 More convenient to have this as a separate unit
12888 * s-except.adb, s-except.ads: New files.
12890 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
12891 Debug_Unhandled_Exception in System.Exceptions where it belongs
12892 together with a couple of other debug helpers.
12893 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
12894 the former Unhandled_Exception.
12896 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
12897 (Warn_No_Exception_Propagation): New procedure
12898 (Warn_If_No_Propagation): Rewritten for new warning generation
12899 (Expand_Exception_Handlers): New warning generation
12900 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
12901 (Add_Exception_Label): Use Special_Exception_Package_Used for test
12902 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
12903 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
12904 even if restriction is set (makes life easier in Check_Returns)
12905 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
12906 checking exception identities.
12907 (Expand_Local_Exception_Handlers): Do not optimize when all others case
12908 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
12909 block for handler (used by Check_Returns)
12910 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
12911 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
12912 remove all exception handlers when optimizing local raise statements.
12913 (Find_Local_Handler): Use Get_Renamed_Entity
12914 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
12915 marked analyzed after expanding exception handlers, do not generate
12916 redundant cleanup actions, because they have been constructed already.
12918 2007-06-06 Thomas Quinot <quinot@adacore.com>
12920 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
12921 presence of this categorization pragma is mandated by the language.
12922 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
12925 2007-06-06 Vincent Celier <celier@adacore.com>
12926 Robert Dewar <dewar@adacore.com>
12928 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
12929 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
12930 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
12931 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
12932 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
12933 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
12934 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
12935 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
12936 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
12937 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
12938 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
12940 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
12941 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
12942 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
12943 Use variables of types File_Name_Type and Unit_Name_Type in error
12945 (Get_Name): Add parameter Ignore_Special, and set it reading file name
12946 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
12948 Define flags Flag217-Flag230 with associated subprograms
12949 (Flag_Word5): New record type.
12950 (Flag_Word5_Ptr): New access type.
12951 (To_Flag_Word5): New unchecked conversion.
12952 (To_Flag_Word5_Ptr): Likewise.
12953 (Flag216): New function.
12954 (Set_Flag216): New procedure.
12956 2007-06-06 Arnaud Charlet <charlet@adacore.com>
12958 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
12961 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
12963 2007-06-06 Javier Miranda <miranda@adacore.com>
12965 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
12967 (Object_Specific_Data_Array): This is now internal to the package.
12968 (Object_Specific_Data): This is now internal to the package.
12969 (Select_Specific_Data_Element): This is now internal to the package.
12970 (Select_Specific_Data_Array): This is now internal to the package.
12971 (Select_Specific_Data): This is now internal to the package.
12972 (Offset_To_Top_Function_Ptr): This is now public.
12973 (To_Offset_To_Top_Function_Ptr): Removed.
12974 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
12975 local to subprogram Offset_To_Top.
12976 (Predefined_DT): Removed.
12977 (Typeinfo_Ptr): Removed.
12978 (OSD): This function is now internal to this package.
12979 (SSD): This function is now internal to this package.
12980 (DT): New function that displaces the pointer to the table of primitives
12981 to get access to the enclosing wrapper record.
12982 (IW_Membership): Code cleanup.
12983 (Offset_To_Top): Code cleanup.
12984 (Predefined_DT): Removed.
12985 (Register_Interface_Tag): Removed.
12986 (Set_Interface_Table): Removed.
12987 (Set_Offset_Index): Removed.
12988 (Set_Offset_To_Top): Code cleanup.
12989 (Set_OSD): Removed.
12990 (Set_Signature): Removed.
12991 (Set_SSD): Removed.
12992 (Set_Tagged_Kind): Removed.
12993 (Typeinfo_Ptr): Removed.
12995 (Displace): Add missing check on null actual.
12997 * exp_disp.ads, exp_disp.adb
12998 (Select_Expansion_Utilities): Removed.
12999 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13000 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13001 the interface requires a new parameter.
13002 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13003 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13004 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13005 Done to remove package Select_Expansion_Utilities.
13006 (Make_DT): New implementation for statically allocated dispatch tables.
13007 (Make_Secondary_DT): Moved to the scope of Make_DT.
13008 (Register_Primitive): Code cleanup plus incoporate the use of the new
13009 function DT_Address_Attribute.
13010 (Expand_Interface_Thunk): The profile of this subprogram has been
13011 changed to return the Thunk_Id and the corresponding code.
13012 (Fill_DT_Entry): Removed. Its functionality is now provided by
13013 subprogram Register_Primitive.
13014 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13015 subprogram Register_Primitive.
13016 (Register_Primitive): New subprogram that incorporates the previous
13017 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13018 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13019 was only required to call Make_DT_Access_Action, which is now removed.
13020 (Ada_Actions): Removed
13021 (Action_Is_Proc): Removed
13022 (Action_Nb_Arg): Removed
13023 Replace all the calls to Make_DT_Access_Action by direct calls to
13024 Make_Procedure_Call_Statement or Make_Function_Call.
13025 (Set_DTC_Entity_Value): New subprogram.
13026 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13027 (Expand_Interface_Thunk): Add missing support for primitives that are
13028 functions with a controlling result (case in which there is no need
13029 to generate the thunk).
13031 * exp_atag.ads, exp_atag.adb
13032 (Build_DT): New subprogram that displaces the pointer to reference the
13033 base of the wrapper record.
13034 (Build_Typeinfo_Offset): Removed.
13035 (RTE_Tag_Node): Removed.
13036 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13037 (Build_Get_RC_Offset): Removed.
13038 (Build_Inherit_Predefined_Prims): Removed.
13039 (Build_Inherit_TSD: Removed.
13040 (Build_New_TSD): Removed.
13041 (Build_Set_External_Tag): Removed.
13042 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13043 (Build_Set_Prim_Op_Address): Add documentation.
13044 (Build_Set_TSD): Removed.
13046 * rtsfind.ads, rtsfind.adb
13047 (Load_Fail): If load fails and we are not in configurable run-time
13048 mode, then raise Unrecoverable_Error.
13049 (Text_IO_Kludge): Generate an error message if a run-time library is
13050 not available in a given run-time (ie. zfp run-time).
13051 (RTE_Record_Component): Add code to check that the component we search
13052 for is not found in two records in the given run-time package.
13053 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13054 (RE_DT_Predef_Prims_Offset): New entity
13055 (RE_Static_Offset_To_Top): New entity
13056 (RE_HT_Link): New entity.
13057 (System_Address_Image): Addition of this run-time package.
13058 (RE_Address_Image): New entity.
13059 (RE_Abstract_Interface): Removed.
13060 (RE_Default_Prim_Op_Count): Removed.
13061 (RE_DT_Entry_Size): Removed.
13062 (RE_DT_Min_Prologue_Size): Removed.
13063 (RE_DT_Prologue_Size): Removed.
13064 (RE_Ifaces_Table_Ptr): Removed.
13065 (RE_Interface_Data_Ptr): Removed.
13066 (RE_Type_Specific_Data): Removed.
13067 (RE_Primary_DT): Removed.
13068 (RE_Register_Interface_Tag): Removed.
13069 (RE_Set_Offset_Index): Removed.
13070 (RE_Set_OSD): Removed.
13071 (RE_Set_SSD): Removed.
13072 (RE_Set_Signature): Removed.
13073 (RE_Set_Tagged_Kind): Removed.
13074 (RE_Address_Array): New entity.
13075 (RE_DT): New entity.
13076 (RE_Iface_Tag): New entity.
13077 (RE_Interfaces_Table): New entity.
13078 (RE_No_Dispatch_Table): New entity.
13079 (RE_NDT_Prims_Ptr): New entity.
13080 (RE_NDT_TSD): New entity.
13081 (RE_Num_Prims): New entity.
13082 (RE_Offset_To_Top_Function_Ptr): New entity.
13083 (RE_OSD_Table): New entity.
13084 (RE_OSD_Num_Prims): New entity.
13085 (RE_Predef_Prims): New entity
13086 (RE_Predef_Prims_Table_Ptr): New entity.
13087 (RE_Primary_DT): New entity.
13088 (RE_Signature): New entity.
13089 (RE_SSD): New entity.
13090 (RE_TSD): New entity.
13091 (RE_Type_Specific_Data): New entity.
13092 (RE_Tag_Kind): New entity.
13094 2007-06-06 Thomas Quinot <quinot@adacore.com>
13096 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13097 C imported variable.
13098 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13101 2007-06-06 Robert Dewar <dewar@adacore.com>
13103 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13106 2007-06-06 Vincent Celier <celier@adacore.com>
13108 * a-tifiio.adb (Put, internal): For negative numbers, check that there
13109 is room for at least one digit and the minus sign.
13110 (Put.Put_Character): Never put a character outside of the range of
13113 2007-06-06 Olivier Hainque <hainque@adacore.com>
13114 Eric Botcazou <ebotcazou@adacore.com>
13116 * utils2.c (build_allocator): Provide the extra arguments to
13117 make_aligning_type for super-aligned objects allocated from the default
13118 pool. Leave enough room for a pointer before the aligning field, and
13119 store the system's allocator return value there.
13120 (build_call_alloc_dealloc): When releasing a super-aligned object,
13121 retrieve the system's allocator return value from where build_allocator
13122 has stored it, just ahead of the adjusted address we are passed.
13123 (build_call_raise): Handle properly the generation of line numbers when
13124 the node is marked No_Location.
13125 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
13126 by using DECL_UID on ties.
13127 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13129 (build_call_raise): Handle converting exception into goto; support new
13131 (build_component_ref): Add new arg to build_call_raise.
13133 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13135 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13136 "." in the case of nnn.xxx when nnn terminates with an underscore.
13137 Parse the remaining "#" or ":" in the case of nnn#.xxx#
13139 2007-06-06 Robert Dewar <dewar@adacore.com>
13141 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13143 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13144 Vincent Celier <celier@adacore.com>
13145 Robert Dewar <dewar@adacore.com>
13147 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13149 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13150 ((destructor)) for adafinal, even when switch -a is used.
13151 Do not issue pragma Linker_Destructor for adafinal when switch -a is
13153 (Gen_Object_Files_Options): Add formatting of Linker Options, when
13154 Output_Linker_Option_List is set. Suppress this formatting when
13155 Zero_Formatting is set.
13156 Add case for CLI_Target.
13157 (System_Restrictions_Used): New flag, used to avoid generating with of
13158 System_Restrictions and initialization of the data unless there is
13159 some use of System.Restrictions in the partition.
13160 (Check_System_Restrictions_Used): New procedure
13162 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
13163 since we only with this unit in the binder file if it is used elsewhere
13166 2007-06-06 Vincent Celier <celier@adacore.com>
13168 * bindusg.adb: Add line for @<response file>
13169 Add lines for new switches -R and -Z
13171 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13172 hierarchy in the list of files of the closure when -R is used
13173 (Gnatbind): Accept arguments starting with '@' to indicate response
13174 files and take the arguments from the response files.
13175 If List_Closure is set, display the referenced files
13177 2007-06-06 Javier Miranda <miranda@adacore.com>
13178 Robert Dewar <dewar@adacore.com>
13179 Ed Schonberg <schonberg@adacore.com>
13181 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13182 which the address-clause is applied to in-mode actuals (allowed by
13184 (Apply_Discriminant_Check): Do not generate a check if the type is
13185 constrained by a current instance.
13186 (Activate_Division_Check): New procedure
13187 (Activate_Overflow_Check): New procedure
13188 (Activate_Range_Check): New procedure
13189 Call these new Activate procedures instead of setting flags directly
13190 (Apply_Array_Size_Check): Removed, no longer needed.
13191 Code clean up: remove obsolete code related to GCC 2.
13192 (Get_E_Length): Protect against bomb in case scope is standard
13193 (Selected_Range_Checks): If the node to be checked is a conversion to
13194 an unconstrained array type, and the expression is a slice, use the
13195 bounds of the slice to construct the required constraint checks.
13196 Improve NOT NULL error messages
13197 (Apply_Constraint_Check): If the context is a null-excluding access
13198 type, diagnose properly the literal null.
13200 2007-06-06 Pascal Obry <obry@adacore.com>
13202 * clean.adb (Clean_Archive): Use untouched casing for the archive name
13203 and the corresponding .deps file.
13204 (Clean_Interface_Copy_Directory): Use untouched casing for the library
13205 src directory. Minor code-clean-up. Use untouched casing for files
13206 read into the library src dir.
13207 (Clean_Library_Directory): Idem.
13208 (Parse_Cmd_Line): Accept new switch -aP
13210 2007-06-06 Javier Miranda <miranda@adacore.com>
13211 Ed Schonberg <schonberg@adacore.com>
13212 Robert Dewar <dewar@adacore.com>
13213 Eric Botcazou <ebotcazou@adacore.com>
13214 Arnaud Charlet <charlet@adacore.com>
13216 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13217 applicable to types that have the With_Type flag set. Returns the
13218 non-limited view of the type, if available, otherwise the type itself.
13219 For class-wide types, there is no direct link in the tree, so we have
13220 to retrieve the class-wide type of the non-limited view of the Etype.
13221 New attributes Static_Initialization and Static_Elaboration_Desired.
13222 Remove the pragma Thread_Body, and the associated flag
13223 Is_Thread_Body in entities, and all related code.
13224 (Suppress_Value_Tracking_On_Call): New flag
13225 E_Exception has Esize and Alignment fields
13226 (Universal_Aliasing): New function.
13227 (Set_Universal_Aliasing): New procedure.
13228 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13229 (Check_Nested_Access): New procedure.
13230 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13231 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13232 (Related_Interface): New attribute. Present in dispatch table pointer
13233 components of records. Set to point to the entity of the corresponding
13235 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13236 (Original_Access_Type): Remove, not needed.
13237 (Root_Type): Handle properly subtypes of class-wide-types.
13240 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13241 class-wide types visible through limited-with clauses.
13242 (Try_Primitive_Operation): When examining all primitive operations of a
13243 tagged type, do not consider subprograms labeled as hidden unless they
13244 belong to a private generic type with a tagged parent.
13245 (Try_Object_Operation): Extensive rewriting, to handle properly various
13246 overloading cases, when several ancestors may have class-wide operations
13247 that are possible candidates, and when the overloaded functions return
13248 array types and have defaulted parameters so that the call may be
13249 interpreted as an indexing.
13250 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13251 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13252 successive actuals before analyzing the call itself.
13253 (Try_Primitive_Operation): A primitive operation is compatible with the
13254 prefix if the prefix has a synchronized type and the type of the formal
13255 is its corresponding record, as can be the case when the primitive
13256 operation is declared outside of the body of the type.
13257 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13258 perform homonym traversal, looking for class-wide operation matches
13259 (formerly done in statements of Try_Class_Wide_Operation). Matches on
13260 access parameters are now restricted to anonymous access types.
13261 (Mark_Allocator): An allocator with a discriminant association parent is
13263 (Try_One_Prefix_Interpretation): If the type of the object is
13264 incomplete, as can be happen when it is a limited view obtained through
13265 a limited_with_clause, the selected component is not part of a prefixed
13267 (Complete_Object_Operation): Diagnose properly an object that is not
13268 aliased when the corresponding controlling formal is an access
13270 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13271 ambiguous calls in prefixed notation, where two primitives differ only
13272 in that the controlling argument of one is an access parameter.
13274 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13275 whether a function that returns an unconstrained type can be inlined.
13276 (Process_Formals): Diagnose properly the illegal use of an incomplete
13277 type in the profile of an access_to_subprogram declaration.
13278 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13279 operations are attached to the corresponding record.
13280 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13281 When processing a primitive of a concurrent type which implements an
13282 interface change the type of all controlling formals to that of the
13283 corresponding record type.
13284 (Check_Synchronized_Overriding): Relax the conditional logic when trying
13285 to determine the tagged type to which a primitive belongs.
13286 (Check_Conventions): Capture condition to ignore a primitive operation
13287 (which is shared between the loop in Check_Conventions and the one in
13288 Check_Convention) in a new local function Skip_Check.
13289 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13290 confusion with Check_Conventions' own Prim_Op local variable.
13291 (Create_Extra_Formals): Test for a tagged result type rather than a
13292 controlling result when determining whether to add a BIP_Alloc_Form
13293 formal and a BIP_Final_List formal to the function.
13294 (Check_Conformance); For parameters that are anonymous access types,
13295 subtype conformance requires that the not null and the constant
13296 indicators must match
13297 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13298 to retrieve the appropriate type when processing a concurrent type
13299 declared within a generic. Minor comment reformatting. Change invocation
13300 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13302 (Analyze_Subprogram_Body): If the return type of a function is an
13303 anonymous access to the limited view of a class-wide type, and the
13304 non-limited view of the type is available, update the type of the
13305 function so that code can be generated.
13306 (Process_Formals): In case of access-subtype itype whose designated
13307 type is also an itype (situation that happens now with access to
13308 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13309 attribute to avoid backend problems.
13310 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13311 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13312 anonymous types' designated types are same before testing
13313 Subtypes_Statically_Match.
13314 (Create_Extra_Formals): Test for a named access parameter that is a
13315 controlling formal as an additional condition for adding an
13316 accessibility level formal. This can occur in the subp type created for
13317 dispatching calls in Expand_Dispatching_Call, and allows calling
13318 Create_Extra_Formals from that procedure rather than special-casing the
13319 extra formals there.
13320 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13321 when the function has a controlling result.
13322 (Check_Returns): Add much more knowledge of the optimization of local
13323 raise statements to gotos, to retain proper warnings in this case.
13324 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13325 nodes when looking for last statement.
13327 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13328 class-wide types visible through limited with clauses.
13329 (Add_One_Interp): If the operands are anonymous access types, the
13330 predefined operator on universal_access is immediately visibles
13331 (Find_Unique_Type): Handle anonymous access to subprogram types just as
13332 other anonymous access types.
13333 (Disambiguate): Take into account CIL convention.
13334 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13336 2007-06-06 Robert Dewar <dewar@adacore.com>
13338 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13339 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13340 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13341 Fix lower bound of tables.
13344 * nlists.adb: Ditto.
13345 (Prev_Node, Next_Node): Change index type to Int so that it properly
13346 covers the range First_Node_Id - 1 up.
13348 2007-06-06 Javier Miranda <miranda@adacore.com>
13349 Ed Schonberg <schonberg@adacore.com>
13350 Bob Duff <duff@adacore.com>
13351 Hristian Kirtchev <kirtchev@adacore.com>
13353 * exp_aggr.ads, exp_aggr.adb:
13354 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13355 in extension aggregates.
13356 (Flatten): Other conditions being met, an aggregate is static if the
13357 low bound given by component associations is different from the low
13358 bound of the base index type.
13359 (Packed_Array_Aggregate_Handled): If the component type is itself a
13360 packed array or record, the front-end must expand into assignments.
13361 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13362 Init_Pr, instead of Ancestor_Is_Expression.
13363 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13364 coextension chain root, either generate a list controller or use the
13365 already existing one.
13366 (Static_Array_Aggregate): New procedure to construct a positional
13367 aggregate that can be handled by the backend, when all bounds and
13368 components are compile-time known constants.
13369 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13370 types covering interface types into assignments.
13371 (Replace_Type): move to Build_Record_Aggr_Code.
13372 (Expand_Record_Aggr_Code): if the target of the aggregate is an
13373 interface type, convert to the definite type of the aggregate itself,
13374 so that needed components are visible.
13375 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13376 components and the context is an extended return statement do not
13377 create a transient block for it, to prevent premature finalization
13378 before the return is executed.
13379 (Gen_Assign): Do not generate a call to deep adjust routine if the
13380 component type is itself an array of controlled (sub)-components
13381 initialized with an inner aggregate.
13382 (Component_Check): New name for Static_Check. This name is now more
13383 appropriate, and documentation is added which was missing.
13384 (Component_Check): Add test for bit aligned component value
13385 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13386 Tagged_Comps, name is more appropriate given added function below.
13387 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13389 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13390 Javier Miranda <miranda@adacore.com>
13391 Robert Dewar <dewar@adacore.com>
13393 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13394 Terminated: Add unchecked type conversion from System.Address to
13395 System.Tasking.Task_Id when calling the predefined primitive
13397 Disable new Ada 05 accessibility check for JVM.NET targets, which
13398 cannot be implemented in a practical way.
13399 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13400 the sources always references the tag of the actual object. Therefore,
13401 if 'Tag is applied in the sources to class-wide interface objects we
13402 generate code that displaces "this" to reference the base of the object.
13403 (Expand_N_Attribute_Reference, case Size): Return specified size if
13404 known to front end.
13405 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13406 has code that displaces the pointer of the object to manage interface
13407 types. However this code must not be executed when the prefix is a
13408 subprogram. This bug caused the wrong expansion of the internally
13409 generated assignment that fills the dispatch table when the primitive
13410 is a function returning a class-wide interface type.
13411 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13412 Set_Attribute_Name for Name_Unaligned_Valid.
13414 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13415 Gary Dismukes <dismukes@adacore.com>
13417 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13418 If the initialization is the equivalent aggregate of the initialization
13419 procedure of the type, do not remove it.
13420 (Expand_N_Attribute_Definition_Clause): Exclude access variables
13421 initialized to null from having their expression reset to empty and
13422 note this exception in the comment.
13424 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13425 Robert Dewar <dewar@adacore.com>
13426 Ed Schonberg <schonberg@adacore.com>
13427 Gary Dismukes <dismukes@adacore.com>
13429 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13430 Add "with" and "use" clauses for Sem_Attr.
13431 (Expand_Current_Value): Do not replace occurences of attribute
13432 references where the prefix must be a simple name.
13434 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13435 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13436 Attribute_Requires_Simple_Name_Prefix.
13437 (Name_Modifies_Prefix): Body of new function.
13438 (Requires_Simple_Name_Prefix): Body of new function.
13439 (Resolve_Attribute, case Access): Improve error message for case of
13440 mismatched conventions.
13441 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13443 (Analyze_Attribute, case 'Access): If the type of the prefix is a
13444 constrained subtype for a nominal unconstrained type, use its base type
13445 to check for conformance with the context.
13446 (Resolve_Attribute): Remove test of the access type being associated
13447 with a return statement from condition for performing accessibility
13448 checks on access attributes, since this case is now captured by
13449 Is_Local_Anonymous_Access.
13450 (Analyze_Access_Attribute): Set Address_Taken on entity
13451 (Analyze_Attribute, case Address): Set Address_Taken on entity
13452 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13453 validating an access attribute whose prefix is a current instance.
13454 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13455 applied to dispatching operations, if freezing is required then we set
13456 the attribute Has_Delayed_Freeze in the prefix's entity.
13457 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13458 current scope if access of local subprogram taken
13459 (Analyze_Access_Attribute): Check legality of self-reference even if the
13460 expression comes from source, as when a single component association in
13461 an aggregate has a box association.
13462 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13463 the prefix if it is a protected operation and the attribute is
13464 Unrestricted_Access.
13465 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13466 reference to the base type of the context, to force a constraint check
13467 when the context is an access subtype with an explicit constraint.
13468 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13469 node is rewritten as an interface conversion. leave unanalyzed after
13470 resolution, to ensure that type checking against the context will take
13473 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13474 Javier Miranda <miranda@adacore.com>
13475 Robert Dewar <dewar@adacore.com>
13477 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13478 wrapper when the full view of the controlling type of an inherited
13479 function that dispatches on result implements interfaces.
13480 (Expand_N_Object_Declaration): In cases where the type of the
13481 declaration is anonymous access, create finalization list for it.
13482 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13483 if the object has no explicit initialization, to match description of
13484 functionality of pragam Persistent_BSS.
13485 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13486 new function to build static aggregates, to replace initialization call
13487 when static initialization is desired.
13488 (Freeze_Type): Generate a list controller for an access type whenever
13489 its designated type has controlled anonymous access discriminants.
13490 (Build_Equivalent_Aggregate): New procedure to compute a static
13491 aggregate to be used as default initialization for composite types,
13492 instead of a generating a call to the initialization procedure for the
13494 (Build_Initialization_Call): When available, replace a call to the
13495 initialization procedure with a copy of the equivalent static aggregate
13497 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
13498 declarations for objects of a class-wide interface type, rather than
13499 just identifiers, to prevent visibility problems.
13500 (Expand_N_Object_Declaration): When expanding the declaration for an
13501 object of a class-wide interface type, preserve the homonym chain of
13502 the original entity before exchanging it with that of the generated
13503 renaming declaration.
13504 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13505 active, because there is no way to handle the exception.
13506 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13507 to do a minimum decoration of the Access_Disp_Table list.
13508 (Expand_Record_Controller): Avoid the addition of the controller between
13509 the component containing the tag of a secondary dispatch table and its
13510 adjacent component that stores the offset to the base of the object.
13511 This latter component is only generated when the parent type has
13512 discriminants ---documented in Add_Interface_Tag_Components).
13513 (Apply_Array_Size_Check): Removed, no longer needed.
13514 (Expand_N_Full_Type_Declaration): If the type has anonymous access
13515 components, create a Master_Entity for it only if it contains tasks.
13516 (Build_Init_Procedure): Suppress the tag assignment compiling under
13518 (Freeze_Record_Type): Remove code associated with creation of dispatch
13520 (Init_Secondary_Tags): Update type of actuals when generating calls to
13521 Ada.Tags.Set_Offset_To_Top
13522 (Stream_Operation_OK): Disable use of streams compiling under no
13524 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13525 if Has_Init_Expression set.
13526 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13527 Register_Primitive, which provides the same functionality.
13528 (Requires_Init_Proc): Return false in case of interface types.
13529 (Add_Secondary_Tables): Use the new attribute Related_Interface to
13531 (Predefined_Primitive_Freeze): Do not assume that an internal entity
13532 is always associated with a predefined primitive because the internal
13533 entities associated with interface types are not predefined primitives.
13534 Therefore, the call to Is_Internal is replaced by a call to the
13535 function Is_Predefined_Dispatching_Operation.
13536 (Make_Eq_If): When generating the list of comparisons for the
13537 components of a given variant, omit the controller component that is
13538 present if the variant has controlled components.
13540 2007-06-06 Javier Miranda <miranda@adacore.com>
13541 Hristian Kirtchev <kirtchev@adacore.com>
13542 Bob Duff <duff@adacore.com>
13544 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13545 handle the creation of finalization lists and calls for nested
13546 coextensions when the root of the chains is part of a return statement.
13547 (Inside_A_Return_Statement): New function inside Complete_Coextension_
13549 (Expand_Record_Equality): Skip components that are interface types.
13550 (Displace_Allocator_Pointer): Add missing support for interface subtypes
13551 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13552 with Rewrite_Coextension. Change the condition for detecting coextension
13554 (Is_Local_Access_Discriminant): Removed.
13555 (Rewrite_Coextension): New routine which rewrites a static coextension
13556 as a temporary and uses its unrestricted access in the construction of
13558 (Complete_Coextension_Finalization): New routine. Generate finalization
13559 attachment calls to all delayed coextensions.
13560 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13561 the allocator is not a coextension itself and has delayed coextensions.
13562 If the current allocator is controlled, but also a coextension, delay
13563 the generation of the finalization attachment call.
13564 Rename local variable "Node" to "Nod" in order to avoid confusion with
13566 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13567 limited types that are not inherently limited. Such an allocator is
13568 illegal, but is generated by the expander for a return statement, to
13569 copy the result onto the secondary stack. This is the only case where a
13570 limited object can be copied. Generate code to displace the pointer
13571 to the object if the qualified expression is a class-wide interface
13572 object. Such displacement was missing and hence the copy of the object
13574 (Apply_Accessibility_Check): Handle allocated objects initialized in
13576 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13577 and Expand_Allocator_Expression. Allocating class-wide interface objects
13578 this routine displaces the pointer to the allocated object to reference
13579 the component referencing the corresponding secondary dispatch table.
13580 Expand_Allocator_Expression): Add missing support to allocate class-wide
13581 interface objects initialized with a qualified expression.
13582 (Get_Allocator_Final_List): Test for an anonymous access type that is a
13583 function result type, and use the finalization list associated with the
13584 function scope in that case (such an anonymous type should not be
13585 treated like an access parameter's type).
13587 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13588 Gary Dismukes <dismukes@adacore.com>
13589 Javier Miranda <miranda@adacore.com>
13591 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13592 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13593 required exception handler.
13594 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13595 properly the case of a function whose return type is a limited
13596 class-wide interface type. Modify the code of the accessibility
13597 check to handle class-wide interface objects. In this case we need to
13598 displace "this" to reference the primary dispatch table to get access
13599 to the TSD of the object (to evaluate its accessibility level).
13600 (Expand_N_Extended_Return_Statement): Test for a tagged result type
13601 rather than a controlling result as one of the conditions for
13602 generating tests of the implicit BIP_Alloc_Form formal. The
13603 initialization assignment is also handled according to whether the
13604 result is tagged instead of controlling.
13605 In the case where the init assignment is inserted in the "then" part of
13606 the allocation conditional, rewrite the target to be a dereference of
13607 the implicit BIP_Object_Access formal.
13608 If the returned value is unconstrained and created on the secondary
13609 stack, mark the enclosing block and function so that the secondary
13610 stack is not reclaimed on return.
13611 Treat returns from functions with controlling results similarly to
13612 returns from functions with unconstrained result subtypes.
13613 If the object returned is unconstrained, and an allocator must be
13614 created for it, analyze the allocator once the block for the extended
13615 return is installed, to ensure that finalizable components
13616 of the expression use the proper finalization list. Guard the call to
13617 Move_Final_List with a check that there is something to finalize.
13618 (Make_Tag_Ctrl_Assignment): Use "old" handling
13619 of controlled type assignment for virtual machines, since new code uses
13620 unsupported features (such as direct access to bytes in memory).
13622 2007-06-06 Gary Dismukes <dismukes@adacore.com>
13623 Ed Schonberg <schonberg@adacore.com>
13625 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13626 accessibility actual, check for the case of an aliased object that has
13627 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13628 we fall into processing for the attribute rather than the name of the
13630 (Expand_Inline_Call): If an actual is a literal, and the corresponding
13631 formal has its address taken in the body, create a temporary to capture
13632 value. If the return type is a limited interface, do not treat the
13633 return value as Controlled.
13634 (Is_In_Place_Function): If the return type is a limited interface,
13635 treat as returning in place. The actual returned object may not always
13636 be limited, but the caller has to assume that it is returned in place.
13637 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
13638 context of an allocator, use the correct finalization chain (that is,
13639 the chain belonging to the access type, rather than the chain belonging
13640 to the current scope).
13641 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
13642 result type rather than a controlling result as a precondition for
13643 adding an allocation form actual to a build-in-place call.
13644 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
13645 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
13646 primitive in the dispatch tables. This work is now done by Make_DT when
13647 the type is frozen.
13648 (Register_Predefined_DT_Entry): Removed.
13649 (Add_Return): If end label is not present, use sloc of last statement
13650 for generated return statement in procedure, for better gdb behavior
13652 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
13653 object address nodes to ensure proper processing by routines like
13655 (Expand_Call): Fix generation of validity check for parameter
13656 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
13657 the allocation form parameter if the result subtype is constrained,
13658 except when the function has a controlling result.
13659 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
13660 rather than Is_Controlled and Has_Controlled_Component, since we want to
13661 include class-wide result types in this treatment. Also test for a
13662 controlling result, since that also requires passing a finalization
13664 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
13665 even when the result subtype is constrained, to handle calls involving
13666 controlling results.
13667 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
13668 is now called even when the result subtype is constrained, to handle
13669 calls involving controlling results.
13670 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
13671 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
13672 now performs the test).
13673 (Make_Build_In_Place_Call_In_Object_Declaration):
13674 Add_Alloc_Form_Actual_* is now called even when the result subtype is
13675 constrained, to handle calls involving controlling results.
13676 (Add_Return): Accomodate rewritten pattern from local raise to goto
13677 transformation, so that we still recognize an transfer statement
13678 and do the right thing here in that case.
13679 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
13680 and end of subprogram code.
13681 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
13682 support for primitives that are functions (without formals) with a
13683 controlling result.
13684 (Inherited_From_Formal): If the actual subtype has not generic parent
13685 type, it is not an actual for a formal derived type, and there is no
13686 operation to inherit from the formal.
13688 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13689 Thomas Quinot <quinot@adacore.com>
13691 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
13692 inserted cleanup code appropriately for GDB use.
13693 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
13694 exception handler for Deep_Adjust or Deep_Finalize.
13695 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
13696 Raise_From_Controlled_Operation is available, use a call to that
13697 subprogram instead of a plain "raise Program_Error" node to raise
13698 Program_Error if an exception is propagated from an Adjust or Finalize
13700 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
13701 appears in the optional statement list of a triggering alternative, the
13702 scope actions can be inserted directly there, and not in the list that
13703 includes the asynchronous select itself.
13705 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13706 Robert Dewar <dewar@adacore.com>
13707 Hristian Kirtchev <kirtchev@adacore.com>
13709 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
13710 generated exception handler appropriately when debugging generated code.
13711 Deal properly with No_Exception_Propagation restriction mode.
13712 (Expand_N_Abort_Statement): Add an unchecked type conversion from
13713 System.Address to System.Tasking.Task_Id when processing the result of
13714 the predefined primitive _disp_get_task_id.
13715 (Expand_N_Asynchronous_Select): Clarify comment.
13716 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
13717 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
13718 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
13719 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
13720 privals and for generated call to Complete_Entry_Body, for better gdb
13722 (Copy_Result_Type): Utility to construct a parameter and result profile
13723 for protected functions whose return type is an anonymous access to
13725 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
13727 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
13728 point when the local-raise-to-goto transformation has taken place.
13730 2007-06-06 Javier Miranda <miranda@adacore.com>
13731 Nicolas Setton <setton@adacore.com>
13733 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
13734 functionality when the backend is generating code.
13735 Otherwise any serious error
13736 reported by the backend calling the frontend routine Error_Msg
13737 changes the Compilation_Mode to Check_Semantics, disables the
13738 functionality of this routine and causes the generation of
13739 spureous additional errors.
13741 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
13742 debugging information now generated by the compiler for fat-pointer
13744 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
13746 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
13748 2007-06-06 Thomas Quinot <quinot@adacore.com>
13750 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
13751 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
13752 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
13753 For a remote call to a function with a classwide return type, apply an
13754 E.4(18) check to the returned value.
13755 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
13756 stream attributes of the designated type of an RACW, as they are not
13757 dispatching primitive operations.
13759 2007-06-06 Geert Bosch <bosch@adacore.com>
13761 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
13763 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
13765 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
13766 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
13768 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
13770 2007-06-06 Javier Miranda <miranda@adacore.com>
13772 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
13773 attribute compiling package Ada.Tags under No_Run_Time_Mode.
13775 2007-06-06 Javier Miranda <miranda@adacore.com>
13777 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
13778 deallocation of class-wide interface objects.
13779 (Expand_Dispatching_Constructor_Call): Take into account that if the
13780 result of the dispatching constructor is an interface type, the
13781 function returns a class-wide interface type; otherwise the returned
13782 object would be actual. The frontend previously accepted returning
13783 interface types because Expand_Interface_Actuals silently performed
13784 the management of the returned type "as if" it were a class-wide
13786 (Expand_Dispatching_Constructor_Call): Replace call to
13787 Make_DT_Access_Action by direct call to Make_Function_Call.
13789 2007-06-06 Robert Dewar <dewar@adacore.com>
13790 Ed Schonberg <schonberg@adacore.com>
13792 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
13793 compute masking constant, since we now set Esize properly to the
13795 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
13796 to match the alignment.
13797 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
13798 packed arrays of 8 bits or less.
13800 * freeze.adb (Freeze_Entity): When freezing the formals of a
13801 subprogram, freeze the designated type of a parameter of an access type
13802 only if it is an access parameter.
13803 Increase size of C convention enumeration object
13804 (Freeze_Entity, array type case): Make sure Esize value is properly
13805 adjusted for the alignment if it is known.
13806 (Freeze_Entity, array type case): When checking bit packed arrays for
13807 the size being incorrect, check RM_Size, not Esize.
13808 (Freeze_Record_Type): Check for bad discriminated record convention
13809 (In_Exp_Body): Return true if the body is generated for a subprogram
13810 renaming, either an attribute renaming or a renaming as body.
13811 (Check_Itype): If the designated type of an anonymous access component
13812 is a non-protected subprogram type, indicate that it is frozen, to
13813 prevent out-of-scope freeze node at some subsequent call.
13814 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
13815 only if the subprogram is neither imported nor exported, as well as the
13816 NCA descriptor class if the subprogram is exported.
13818 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13819 Arnaud Charlet <charlet@adacore.com>
13820 Robert Dewar <dewar@adacore.com>
13821 Gary Dismukes <dismukes@adacore.com>
13823 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
13824 default initialization on an imported object, when there is no
13825 initialization call generated for it.
13826 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
13829 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
13830 Static_Elaboration_Desired.
13831 Remove pragma Thread_Body.
13832 Implement a new pragma No_Body
13833 Removes the Explicit_Overriding pragma
13834 Remove Optional_Overriding pragma
13835 (Prag): Deal with Universal_Aliasing.
13836 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
13837 Pragma_CIL_Constructor): New names.
13839 * sem_cat.adb (Validate_Object_Declaration): An initialization that
13840 uses the equivalent aggregate of a type must be treated as an implicit
13842 (Get_Categorization): Check a unit for pragma Preelaborate only if it
13843 has none of the other categories.
13844 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
13845 to apply Import to an object renaming declaration.
13847 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
13848 from a C++ class should be declared as limited and that it will be
13849 considererd limited.
13850 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
13851 should be declared as limited and that it will be considererd limited.
13852 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
13853 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
13854 (Analyze_Pragma): Deal with Universal_Aliasing.
13855 (Sig_Flags): Likewise.
13856 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
13857 (Overflow_Checks_Unsuppressed): New flag.
13858 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13859 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
13860 case of JVM or .NET targets, and compiling user code.
13861 Add debugging convenience routine rv
13863 2007-06-06 Robert Dewar <dewar@adacore.com>
13865 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
13866 are interface type.
13867 (Build_Elementary_Input_Call): For floating-point use right type in the
13868 absence of strange size or stream size clauses.
13869 (Build_Elementary_Write_Call): Same fix
13870 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
13871 set to value that does not match base type size.
13873 2007-06-06 Ed Schonberg <schonberg@adacore.com>
13875 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
13876 object of a limited type can be initialized with a call to a function
13877 that returns in place. If the limited type has unknown discriminants,
13878 and the underlying type is a constrained composite type, build an actual
13879 subtype from the function call, as is done for private types.
13880 (Side_Effect_Free): An expression that is the renaming of an object or
13881 whose prefix is the renaming of a object, is not side-effect free
13882 because it may be assigned through the renaming and its value must be
13883 captured in a temporary.
13884 (Has_Controlled_Coextensions): New routine.
13885 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
13886 as is done for other limited types.
13887 (Non_Limited_Designated_Type): new predicate.
13888 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
13890 Remove all handling of with_type clauses.
13892 * par-ch10.adb: Remove all handling of with_type clauses.
13894 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
13895 checksum if the main source could not be parsed.
13896 (Loat_Unit): When processing a child unit, determine properly whether
13897 the parent unit is a renaming when the parent is itself a child unit.
13898 Remove handling of with_type clauses.
13900 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
13901 (Set_Is_Static_Coextension): New procedure.
13902 (Has_Local_Raise): New function
13903 (Set_Has_Local_Raise): New procedure
13904 (Renaming_Exception): New field
13905 (Has_Init_Expression): New flag
13906 (Delay_Finalize_Attach): Remove because flag is obsolete.
13907 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
13908 Remove all handling of with_type clauses.
13909 (Exception_Junk): Can now be set in N_Block_Statement
13911 2007-06-06 Vincent Celier <celier@adacore.com>
13912 Robert Dewar <dewar@adacore.com>
13914 * frontend.adb (Frontend): Return immediately if the main source could
13915 not be parsed, because of preprocessing errors.
13917 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
13918 (Gnat1drv): Exit with errors if the main source could not be parsed,
13919 because of preprocessing errors.
13920 (Check_Rep_Info): New procedure
13922 2007-06-06 Robert Dewar <dewar@adacore.com>
13924 * g-hesorg.ads, g-heasor.ads,
13925 g-busorg.ads, g-bubsor.ads: Update documentation
13926 GNAT.Heap/Bubble_Sort_G is now pure
13928 2007-06-06 Robert Dewar <dewar@adacore.com>
13930 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
13932 2007-06-06 Robert Dewar <dewar@adacore.com>
13933 Ed Schonberg <schonberg@adacore.com>
13935 * g-comlin.ads, g-comlin.adb:
13936 Add new warning for renaming of function return objects
13938 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
13939 (Tree_Read): Use size of object instead of type'object_size, since the
13940 latter is incorrect for packed array types.
13941 (Tree_Write): Same fix
13943 * opt.ads: Add new warning for renaming of function return objects
13944 (Generating_Code): New boolean variable used to indicate that the
13945 frontend as finished its work and has called the backend to process
13946 the tree and generate the object file.
13947 (GCC_Version): Is now private
13948 (Static_Dispatch_Tables): New constant declaration.
13949 (Overflow_Checks_Unsuppressed): New flag.
13950 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
13951 (List_Closure): New flag for gnatbind (-R)
13952 Zero_Formatting: New flag for gnatbind (-Z)
13953 (Special_Exception_Package_Used): New flag.
13954 (Warn_On_Unrepped_Components): New flag.
13956 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
13957 unit is a compilation unit, rather than relying on its scope, so that
13958 Standard can be renamed.
13959 (Analyze_Object_Renaming): Add new warning for renaming of function
13961 Also reject attempt to rename function return object in Ada 83 mode.
13962 (Attribute_Renaming): In case of tagged types, add the body of the
13963 generated function to the freezing actions of the type.
13964 (Find_Type): A protected type is visible right after the reserved word
13965 "is" is encountered in its type declaration. Set the entity and type
13966 rather than emitting an error message.
13967 (New_Scope): Properly propagate Discard_Names to inner scopes
13968 (Check_Nested_Access): New procedure.
13969 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
13970 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13972 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
13973 Add new warning for renaming of function return objects
13974 (Check_References): Suppress warnings for objects whose type or
13975 base type has Warnings suppressed.
13976 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
13977 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
13979 2007-06-06 Vincent Celier <celier@adacore.com>
13980 Emmanuel Briot <briot@adacore.com>
13981 Olivier Hainque <hainque@adacore.com>
13983 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
13984 absolute value of Header.Block_Size when displaying the freed physical
13986 (Allocate): Compute Storage_Address using Integer_Address, not
13987 Storage_Offset, because the range of Storage_Offset may not be large
13989 (Configure): New parameter Low_Level_Traces
13990 (Allocate, Deallocation, Free_Physically): Added low-level traces
13991 (Configure): new parameter Errors_To_Stdout.
13992 (Output_File): new subprogram
13993 (Deallocate, Dereference): Send error messages to the proper stream
13994 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
13995 documented. Previous code would send it to the current output file
13996 defined in GNAT.IO, which might not be stdout
13997 (Is_Valid): Adjust comment to mention that a positive reply means that
13998 Header_Of may be used to retrieve the allocation header associated with
13999 the subprogram Storage address argument. Return False early if this
14000 address argument is misaligned.
14002 2007-06-06 Vincent Celier <celier@adacore.com>
14004 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14006 (ASIS_Main): New global variable
14007 (Get_Closure): New procedure
14008 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14009 check, metric or pretty. Call Get_Closure in this case.
14010 (Check_Files): For GNAT LIST, check all sources of all projects when
14011 All_Projects is True.
14012 (GNATCmd): Accept -U for GNAT LIST
14014 2007-06-06 Vincent Celier <celier@adacore.com>
14016 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14018 Correct error message when invocation of the linker fails
14019 Add explicit size clause for the C imported variables
14020 Object_List_File_Supported and Using_GNU_Linker to emphasize that
14021 we expect char size.
14022 Read target parameters earlier, since this is needed to set
14023 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14026 2007-06-06 Vincent Celier <celier@adacore.com>
14029 Add 3 spaces before the default project directory when displaying
14030 the project search path.
14031 Add new command line switch '-l' to display license information.
14033 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
14035 * gmem.c: Add support for timestamps on memory operations.
14037 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14038 operations (not used currently, just foundation for future
14039 enhancements). Add possibility to perform full dump of gmem.out file.
14040 (Print_Back_Traces): Declare accesses to root arrays constants since
14041 they aren't modified.
14042 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14044 2007-06-06 Vincent Celier <celier@adacore.com>
14046 * gnatsym.adb: Update Copyright notice
14047 (Parse_Cmd_Line): Accept new switch -D
14048 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14051 * prj.ads (Policy): New policy Direct
14052 (Yes_No_Unknown): New enumeration type
14053 (Project_Data): New component Libgnarl_Needed
14055 * prj-nmsc.adb (Check_For_Source): When recording a source file make
14056 use the untouched pathname casing.
14057 (Get_Directories): Ensure that the Display_Exec_Directory is using the
14058 proper casing on non case-sensitive platforms like Windows.
14059 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14060 on all platforms, as it is not possible to know which one is allowed
14061 before processing the project files.
14062 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14063 specified when symbol policy is Direct. Check that when there is a
14064 symbol file defined (either by default or with attribute
14065 Library_Symbol_File) it is not the same as the reference symbol file.
14066 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14067 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14068 extending projects.
14069 (Record_Ada_Source): Record a source that has been locally removed in an
14072 * symbols.ads (Policy): New policy Direct
14074 * symbols-vms.adb (Initialize): Take new policy Direct in case
14077 2007-06-06 Vincent Celier <celier@adacore.com>
14079 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14080 Correct obvious bug (return Dir; instead of return Directory;).
14081 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14083 2007-06-06 Thomas Quinot <quinot@adacore.com>
14085 * g-pehage.adb (Produce): Open output files in Binary mode, so that
14086 they have UNIX line endings (LF only) even on Windows, and thus pass
14087 all GNAT style checks.
14089 2007-06-06 Emmanuel Briot <briot@adacore.com>
14091 * g-regpat.adb (Quote): Fix improper quoting of '.'
14093 2007-06-06 Thomas Quinot <quinot@adacore.com>
14095 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14096 default, set False on a per-runtime basis.
14097 (Need_Netdb_Buffer): New constant.
14099 * g-socket.ads, g-socket.adb: Import new package
14100 GNAT.Sockets.Thin.Task_Safe_NetDB.
14101 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14102 binding to obtain proper message.
14103 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14104 Replace various occurrences of Arry (Arry'First)'Address with the
14105 equivalent Arry'Address (GNAT always follows implementation advice from
14107 (Get_Host_By_Address, Get_Host_By_Name,
14108 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14109 instead, rely on platform-specific task safe netdb operations provided
14112 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14113 parameter Process_Blocking_IO.
14114 (Host_Error_Messages): Add stub body.
14115 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14116 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14117 Safe_Getservbyport): Move functions into new child package
14119 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14120 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14121 (In_Addr): Add alignment clause.
14123 2007-06-06 Robert Dewar <dewar@adacore.com>
14125 * g-trasym.ads, g-traceb.ads: Update list of supported targets
14126 Add note about symbolic traceback
14128 2007-06-06 Pascal Obry <obry@adacore.com>
14130 * hostparm.ads (Normalized_CWD): Use the host directory separator
14131 instead of the hardcoded forward slash which is not the proper
14132 character on Windows for example.
14133 (Java_VM): Removed.
14135 2007-06-06 Vincent Celier <celier@adacore.com>
14136 Arnaud Charlet <charlet@adacore.com>
14138 * a-clrefi.adb, a-clrefi.ads: New files
14140 * impunit.adb: Add s-os_lib in the list of user visible units.
14141 (Non_Imp_File_Names_95): Add a-clrefi to this list
14142 Remove obsolete run-time entries.
14143 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14144 "a-exetim" -- Ada.Execution_Time
14145 "a-extiti" -- Ada.Execution_Time.Timers
14147 * mlib-prj.ads, mlib-prj.adb
14148 (Build_Library): Use untouched object dir and library dir. At the
14149 same time makes sure that the checks are done using the canonical
14150 form. Removes hard-coded directory separator and use the proper host
14152 (Process_Project): Do not look in object directory to check if libgnarl
14153 is needed for a library, if there is no object directory.
14154 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14156 (Build_Library): When invoking gnatbind, use a response file if the
14157 total size of the arguments is too large.
14159 * Makefile.rtl: (g-sttsne): New object file.
14160 Add entry for a-clrefi, s-utf_32, System.Exceptions
14162 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14163 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14164 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14165 Change g-string to s-string, g-os_lib to s-os_lib
14166 Change all g-utf_32 references to s-utf_32
14168 2007-06-06 Tristan Gingold <gingold@adacore.com>
14169 Olivier Hainque <hainque@adacore.com>
14171 * init.c: Do not adjust IP of an imported VMS exception of ia64.
14172 LIB$STOP is called to raise an exception and the IP of the exception
14173 is the instruction right after the call.
14174 (__gnat_adjust_context_for_raise, AIX): Implement.
14175 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14176 adjust_context_for_raise before Raise_From_Signal_Hanler.
14177 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14178 siginfo is passed to the handler, necessary to let the zcx propagation
14179 engine unwind past it.
14181 2007-06-06 Olivier Hainque <hainque@adacore.com>
14183 * initialize.c (__gnat_initialize for vxworks): Update documentation
14184 on the ZCX support, using different sets of crtstuff objects than with
14187 2007-06-06 Robert Dewar <dewar@adacore.com>
14189 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14191 (Layout_Type): Fix recomputation of size from alignment.
14193 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14194 Javier Miranda <miranda@adacore.com>
14196 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14197 association in an instance.
14198 (Copy_Generic_Node): If the node is a string literal, no need to copy
14200 (Is_Generic_Formal): For a formal subprogram, the declaration is the
14201 grandparent of the entity.
14202 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14203 to simplify handling of formal interfaces that derive from other formal
14205 (Instantiate_Subprogram_Body): The defining unit name of the body of
14206 the instance should be a defining identifier.
14207 (Install_Formal_Packages): make global to the package, for use in
14208 instantiations of child units.
14209 (Analyze_Package_Instantiation): Do not attempt to set information on an
14210 enclosing master of an entry when expansion is disabled.
14211 (Instantiate_Type): If the actual is a tagged synchronized type and the
14212 generic ancestor is an interface, create a generic actual for the
14213 corresponding record.
14214 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14215 declaration, to ensure that the interface list is processed correctly.
14216 (Inline_Instance_Body): If enclosing scope is an instance body, remove
14217 its entities from visibiility as well.
14218 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
14219 given with a named association, analyze the expression only, not the
14220 discriminant association itself.
14221 (Reset_Entity): If the analysis of a selected component is transformed
14222 into an expanded name in the prefix of a call with parameters, do not
14223 transform the original node into an expanded name, to prevent visibility
14224 errors in the case of nested generics.
14225 (Check_Private_View): For an array type, check whether the index types
14226 may need exchanging.
14228 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14229 Vincent Celier <celier@adacore.com>
14231 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14232 since both are separated.
14233 Add support for imported CIL packages.
14234 Add further special handling of "value_type" for CIL.
14235 Add special handling of pragma Import for CIL.
14237 * make.ads, make.adb: When switch -eS is used, direct all outputs to
14238 standard output instead of standard error, except errors.
14239 (Absolute_Path): Use untouched casing for the parent directory.
14240 (Add_Library_Search_Dir): Use the untouched directory name.
14241 (Add_Source_Search_Dir): Idem.
14242 (Change_To_Object_Directory): Update output to use proper casing.
14243 (Create_Binder_Mapping_File): Use the untouched filename to set
14245 (Gnatmake): Use untouched library and executable directory names.
14246 (Insert_Project_Sources): Use untouched filename for spec and body.
14247 (Is_In_Object_Directory): Use untouched object directory.
14248 (Mark_Directory): Idem.
14249 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14250 contains the non-canonical filename in all cases.
14251 (Change_To_Object_Directory): In verbose mode, display the name of the
14252 object directory we're changing to.
14253 (Compile_Sources): Make sure, when a project file is used, to compile
14254 the body of the unit, when there is one, even when only the spec is
14255 recorded in an ALI file.
14256 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14258 (Report_Compilation_Failed): New procedure
14259 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14260 procedures moved from the spec to the body.
14261 (Extract_Failure): Removed, not used
14262 Replace explicit raises of exception Bind_Failed and Link_Failed with
14263 calls to Make_Failed with the proper message.
14264 Replace explicit raises of exception Compilation_Failed with calls to
14265 procedure Report_Compilation_Failed.
14266 (Initialize): Create mapping files unconditionally when using project
14269 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14270 Pragma_CIL_Constructor): New names.
14272 * targparm.ads, targparm.adb
14273 (Compiler_System_Version): Removed, no longer used.
14274 (Get_Target_Parameters): Relax checks on system.ads validity. Add
14275 handling of two new system flags: JVM and CLI.
14277 2007-06-06 Jose Ruiz <ruiz@adacore.com>
14278 Arnaud Charlet <charlet@adacore.com>
14280 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14281 time, use the default s-interr body that provides interrupt support
14283 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14284 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14285 g-soccon.ads, and s-taprop.adb for the marte run time.
14286 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14287 timers are supported on marte.
14288 (EH_MECHANISM for marte): Do not use ZCX.
14289 (THREADSLIB for marte): Use -lmarte.
14290 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14291 Add mlib-tgt-specific.o to gnatmake objects
14292 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14293 longer of MLib.Tgt.
14294 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14295 6, either kernel or rtp, use a specialized version of s-osinte.ads.
14297 2007-06-06 Pascal Obry <obry@adacore.com>
14299 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14301 2007-06-06 Vincent Celier <celier@adacore.com>
14303 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14304 separator, use instead the proper host directory separator.
14305 (Copy_ALI_Files): Make sure that an already existing ALI file in the
14306 ALI copy dir is writable, before doing the copy.
14308 * mlib-utl.ads, mlib-utl.adb:
14309 (Gcc): If length of command line is too long, put the list of object
14310 files in a response file, if this is supported by the platform.
14311 (Ar): If invocation of the archive builder is allowed to be done in
14312 chunks and building it in one shot would go above an OS dependent
14313 limit on the number of characters on the command line, build the archive
14316 2007-06-06 Vincent Celier <celier@adacore.com>
14318 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14319 of specified object file is not equal to base name of source.
14321 2007-06-06 Javier Miranda <miranda@adacore.com>
14322 Hristian Kirtchev <kirtchev@adacore.com>
14323 Ed Schonberg <schonberg@adacore.com>
14325 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14326 the full type declaration.
14327 (Analyze_Component_Declaration): Add local variable E to capture the
14328 initialization expression of the declaration. Replace the occurences of
14329 Expression (N) with E.
14330 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14331 limited interface object with a function call.
14332 (Array_Type_Declaration): If the declaration lacks subtype marks for
14333 indices, create a simple index list to prevent cascaded errors.
14334 (Is_Null_Extension): Ignore internal components created for secondary
14335 tags when checking whether a record extension is a null extension.
14336 (Check_Abstract_Interfaces): Add missing support for interface subtypes
14337 and generic formals.
14338 (Derived_Type_Declaration): Add missing support for interface subtypes
14339 and generic formals.
14340 (Analyze_Object_Declaration): If an initialization expression is
14341 present, traverse its subtree and mark all allocators as static
14343 (Add_Interface_Tag_Component): When looking for components that may be
14344 secondary tags, ignore pragmas that can appear within a record
14346 (Check_Abstract_Overriding): an inherited function that dispatches on
14347 result does not need to be overriden if the controlling type is a null
14349 (Mentions_T): Handle properly a 'class attribute in an anonymous access
14350 component declaration, when the prefix is an expanded name.
14351 (Inherit_Component): If the derivation is for a private extension,
14352 inherited components remain visible and their ekind should not be set
14354 (Find_Type_Of_Object): In the case of an access definition, always set
14355 Is_Local_Anonymous_Access. We were previously not marking the anonymous
14356 access type of a return object as a local anonymous type.
14357 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14358 range with character literal bounds.
14359 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14360 (Access_Subprogram_Declaration): Indicate that the type declaration
14361 depends on an incomplete type only if the incomplete type is declared
14363 (Analyze_Subtype_Declaration): Handle properly subtypes of
14364 synchronized types that are tagged, and that may appear as generic
14366 (Access_Subprogram_Declaration): An anonymous access to subprogram can
14367 appear as an access discriminant in a private type declaration.
14368 (Add_Interface_Tag_Components): Complete decoration of the component
14369 containing the tag of a secondary dispatch table and the component
14370 containing the offset to the base of the object (this latter component
14371 is only generated when the parent type has discriminants --as documented
14373 (Inherit_Components): Use the new decoration of the tag components to
14374 improve the condition that avoids inheriting the components associated
14375 with secondary tags of the parent.
14376 (Build_Discriminanted_Subtype): Indicate to the backend that the
14377 size of record types associated with dispatch tables is known at
14379 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14380 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14381 to include task, protected, and synchronized interfaces as limited
14383 (Process_Discriminants): Remove the setting of
14384 Is_Local_Anonymous_Access on the type of (anonymous) access
14385 discriminants of nonlimited types.
14386 (Analyze_Interface_Type_Declaration): Complete the decoration of the
14387 class-wide entity it is is already present. This situation occurs if
14388 the limited-view has been previously built.
14389 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14391 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14394 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14396 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14397 of the type that specify the position of interface tags when the type
14398 inherits discriminated array components from the parent type.
14399 If a component is initialized with a box, check for the presence of a
14400 default expression in its declaration before using its default
14401 initialization procedure.
14402 (Resolve_Record_Aggregate): If a component is box-initialized, and the
14403 component type has a discriminants, create a partial aggregate for it
14404 by copying the discriminants of the component subtype.
14405 Reject attempt to initialize a discriminant with a box.
14406 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14407 associated with dispatch tables is known at compile time.
14408 (Get_Value): If an association in a record aggregate has a box
14409 association, and the corresponding record component has a default
14410 expression, always copy the default expression, even when the
14411 association has a single choice, in order to create a proper
14412 association for the expanded aggregate.
14414 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14415 Robert Dewar <dewar@adacore.com>
14417 * par-ch12.adb (P_Generic_Associations): The source position of an
14418 Others association is that of the others keyword, not that of the token
14419 that follows the box.
14420 (P_Formal_Type_Definition): Handle formal access types that carry a
14421 not null indicator.
14423 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14424 multiple identifier are present, save Scan_State before scanning the
14425 colon, to ensure that separate trees are constructed for each
14427 (P_Identifier_Declarations): For object declaration, set new flag
14428 Has_Init_Expression if initialization expression present.
14429 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14430 Improve NOT NULL error messages
14432 2007-06-06 Robert Dewar <dewar@adacore.com>
14434 * par-ch4.adb: (P_Name): Recover from literal used as name
14436 2007-06-06 Vincent Celier <celier@adacore.com>
14438 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14439 defaulted to False.
14440 In the "not" case, recursive call with Complemented set to True.
14441 Do not allow "or" or "and" operators when Complemented is True.
14443 2007-06-06 Vincent Celier <celier@adacore.com>
14445 * prj.adb (Project_Empty): Gives default value for new component
14448 * prj-attr.ads: Minor reformatting
14450 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14451 directory using the untouched casing.
14452 (For_All_Source_Dirs): Idem.
14454 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14455 directories specified with switches -aP.
14456 (Add_Search_Project_Directory): New procedure
14457 (Initialize_Project_Path): Put the directories in table
14458 Search_Directories in the project search path.
14459 (Initialize_Project_Path): For VMS, transform into canonical form the
14462 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14464 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14465 true if configurable run-time or No_Run_Time is set.
14466 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14467 processing an unit which is not the one being compiled.
14469 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14471 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14472 Replace UC by Ada.UC
14474 * s-bitops.adb: Get rid of System.Pure_Exceptions.
14475 Replace UC by Ada.UC
14477 2007-06-06 Robert Dewar <dewar@adacore.com>
14479 * scng.adb: (Check_End_Of_Line): Deal with very long lines
14481 2007-06-06 Robert Dewar <dewar@adacore.com>
14483 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14484 Remove no longer used nodes.
14486 2007-06-06 Javier Miranda <miranda@adacore.com>
14487 Ed Schonberg <schonberg@adacore.com>
14488 Robert Dewar <dewar@adacore.com>
14490 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14491 on obsolescent withed unit in case of limited-withed units.
14492 (Analyze_Compilation_Unit): Add guard to code that removed an
14493 instantiation from visibility, to prevent compiler aborts when
14494 instantiation is abandoned early on.
14495 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14496 current unit being analyzed, and Distinguish local incomplete types
14497 from limited views of types declared elsewhere.
14498 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14499 to state that the class-wide entity is shared by the limited-view
14501 (Analyze_With_Clause): Improve placement of flag for case of
14502 unimplemented unit.
14503 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14504 manner similar to GNAT.Current_Exception. This is a violation of
14505 restriction (No_Exception_Propagation), and also inhibits the
14506 optimization of local raise to goto.
14507 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14508 and if so set Most_Recent_Exception_Used flag in Opt, and also check
14509 for violation of restriction No_Exception_Propagation.
14511 2007-06-06 Javier Miranda <miranda@adacore.com>
14512 Hristian Kirtchev <kirtchev@adacore.com>
14513 Gary Dismukes <dismukes@adacore.com>
14515 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14516 use of entity Exception_Occurrence if it is not available in the
14519 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14520 concurrent types are declared within an Ada 2005 generic, build their
14521 corresponding record types since they are needed for overriding-related
14523 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14524 protected type does not implement a task interface or a nonlimited
14526 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14527 type does not implement a protected interface or a nonlimited interface.
14528 (Single_Task_Declaration, Single_Protected_Declaration): use original
14529 entity for variable declaration, to ensure that debugging information
14530 is correcty generated.
14531 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14532 routines if the expander is not active.
14533 (Analyze_Task_Body): Mark all handlers to stop optimization of local
14534 raise, since special things happen for task exception handlers.
14536 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14537 concurrent types declared within a generic.
14538 (Check_Dispatching_Operation): Do not emit warning about late interface
14539 operations in the context of an instance.
14540 (Check_Dispatching_Call): Remove restriction against calling a
14541 dispatching operation with a limited controlling result.
14542 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14543 Register_Interface_DT_Entry by calls to Register_Primitive.
14544 (Check_Dispatching_Formals): Handle properly a function with a
14545 controlling access result.
14547 2007-06-06 Robert Dewar <dewar@adacore.com>
14548 Arnaud Charlet <charlet@adacore.com>
14550 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14551 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14552 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14553 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14554 message when using a VM, since this attribute is not supported.
14555 (Analyze_Record_Representation_Clause): Give unrepped component warnings
14557 * usage.adb: Add new warning for renaming of function return objects
14558 Indicate that -gnatwp and -gnatwP concern front-end inlining
14559 Add line for -gnatyg
14560 Add usage information for -gnatw.c/C
14562 2007-06-06 Robert Dewar <dewar@adacore.com>
14563 Ed Schonberg <schonberg@adacore.com>
14566 (Find_Var): Do not consider function call in test for infinite loop
14567 warning if warnings set off for function entity.
14568 (One_Bound): Do not create a temporary for a loop bound if it is a
14570 (Analyze_Assignment): Traverse the right hand side of an assignment and
14571 mark all allocators as static coextensions.
14572 (Analyze_Assignment): Exempt assignments involving a dispatching call
14573 to a function with a controlling access result from the check requiring
14574 the target to be class-wide.
14576 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14577 Ed Schonberg <schonberg@adacore.com>
14578 Robert Dewar <dewar@adacore.com>
14579 Javier Miranda <miranda@adacore.com>
14581 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14582 chain of coextensions when an allocator serves as the root of such a
14584 (Propagate_Coextensions): Remove the test for the root being an
14586 (Resolve_Allocator): Add condition to ensure that all future decoration
14587 occurs on an allocator node. Add processing and cleanup for static
14589 (Valid_Conversion): If the operand type is the limited view of a
14590 class-wide type, use the non-limited view is available to determine
14591 legality of operation.
14592 (Ambiguous_Character): move to spec, for use elsewhere.
14593 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14594 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14595 character literals.
14596 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14597 Do_Division_Check flag explicitly.
14598 (Resolve_Actuals): If the actual is of a synchronized type, and the
14599 formal is of the corresponding record type, this is a call to a
14600 primitive operation of the type, that is declared outside of the type;
14601 the actual must be unchecked-converted to the type of the actual
14602 (Resolve_Call): Kill all current values for any subprogram call if
14603 flag Suppress_Value_Tracking_On_Call is set.
14604 (Resolve_Type_Conversion): Generate error message the the operand
14605 or target of interface conversions come from a limited view.
14606 (Check_Infinite_Recursion): Ignore generated calls
14607 (Check_Allocator_Discrim_Accessibility): New procedure for checking
14608 that an expression that constrains an access discriminant in an
14609 allocator does not denote an object with a deeper level than the
14610 allocator's access type.
14611 (Resolve_Allocator): In the case of an allocator initialized by an
14612 aggregate of a discriminated type, check that associations for any
14613 access discriminants satisfy accessibility requirements by calling
14614 Check_Allocator_Discrim_Accessibility.
14615 (Resolve_Equality_Op): Handle comparisons of anonymous access to
14616 subprogram types in the same fashion as other anonymous access types.
14617 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14618 message that is not a continuation message.
14619 (Resolve_Type_Conversion): Add missing support for conversion to
14621 (Resolve_Actuals): Introduce a transient scope around the call if an
14622 actual is a call to a function returning a limited type, because the
14623 resulting value must be finalized after the call.
14624 (Resolve_Actuals): If the call was given in prefix notations, check
14625 whether an implicit 'Access reference or implicit dereference must be
14626 added to make the actual conform to the controlling formal.
14628 2007-06-06 Robert Dewar <dewar@adacore.com>
14629 Javier Miranda <miranda@adacore.com>
14631 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14632 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14633 overriding of an inherited private subprogram now there is no need to
14634 inherit its dispatching slot and reduce the size of the dispatch table.
14635 Set_All_DT_Position now ensures that the same slot is now assigned to
14636 both entities. This is required to statically build the dispatch table.
14637 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
14638 of calling Set_All_DT_Position to re-evaluate the position of the
14639 entries in the dispatch table. Such reevaluation is not desired if
14640 the tagged type is already frozen.
14642 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14643 Gary Dismukes <dismukes@adacore.com>
14644 Robert Dewar <dewar@adacore.com>
14645 Javier Miranda <miranda@adacore.com>
14647 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
14648 reference acts as an lvalue when the attribute name modifies the prefix
14649 (Is_Coextension_Root): New routine.
14650 (Mark_Static_Coextensions): New routine.
14651 (Type_Access_Level): Revise code for checking the level of the
14652 anonymous access type of a return object.
14653 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
14654 (Matches_Prefixed_View_Profile): Remove the no longer necessary
14655 retrieval of the corresponding controlling record type.
14656 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
14657 concurrent types declared within a generic as well as class wide types.
14658 Emit a mode incompatibility error whenever a protected entry or routine
14659 override an interface routine whose first parameter is not of mode
14660 "out", "in out" or access to variable.
14661 (Overrides_Synchronized_Primitive): Rename to
14662 Find_Overridden_Synchronized_Primitive.
14663 (Collect_Interface_Components): New subprogram that collects all the
14664 components of a tagged record containing tags of secondary dispatch
14666 (Add_Global_Declaration): New procedure
14667 (Abstract_Interface_List): Handle properly the case of a subtype of a
14669 (Type_Access_Level): In the case of a type whose parent scope is a
14670 return statement, call Type_Access_Level recursively on the enclosing
14671 function's result type to determine the level of the return object's
14673 (Build_Elaboration_Entity): Build name of elaboration entity from the
14674 scope chain of the entity, rather than the unit name of the file name.
14675 (Check_Nested_Access): New procedure.
14676 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
14677 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14678 (Get_Renamed_Entity): Utility routine for performing common operation
14679 of chasing the Renamed_Entity field of an entity.
14681 2007-06-06 Robert Dewar <dewar@adacore.com>
14683 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
14685 (Check_A_Call): Add check for entry call which was causing blowup
14687 2007-06-06 Olivier Hainque <hainque@adacore.com>
14689 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
14690 special code on ia64-vms to handle major incompatibilities between the
14691 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
14692 this routine with a very different set of arguments and expectations on
14695 2007-06-06 Thomas Quinot <quinot@adacore.com>
14697 * socket.c (__gnat_close_signalling_fd): New function.
14698 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
14699 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
14700 New supporting functions for task safe Netdb operations.
14702 2007-06-06 Thomas Quinot <quinot@adacore.com>
14703 Olivier Hainque <hainque@adacore.com>
14705 * a-except-2005.ads, a-except-2005.adb
14706 (Raise_From_Controlled_Operation): New procedure in
14707 (private part of) Ada.Exceptions (standard runtime version). Used to
14708 provide informational exception message when Program_Error is raised as
14709 a result of an Adjust or Finalize operation propagating an exception.
14710 (Rmsg_28): Fix description for E.4(18) check.
14711 (Raise_Current_Excep): Call Debug_Raise_Exception just before
14712 propagation starts, to let debuggers know about the event in a reliable
14714 Take the address of E and dereference to make sure it is homed on stack
14715 and prevent the stores from being deleted, necessary for proper
14716 debugger behavior on "break exception" hits.
14717 (Local_Raise): Moved to System.Exceptions
14719 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
14720 exception message from the current occurrence and raise Program_Error
14721 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
14723 2007-06-06 Jose Ruiz <ruiz@adacore.com>
14724 Arnaud Charlet <charlet@adacore.com>
14726 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
14729 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
14730 priority associated to a lock.
14732 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
14733 assertion to take into account case of no abort restriction.
14734 (Initialize_Protection_Entries): Add initialization for the field
14735 New_Ceiling associated to the protected object.
14736 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
14739 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14740 since this function needs to be set consistently with Update_Exception.
14742 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
14743 since this function needs to be set consistently with Update_Exception.
14745 * s-taskin.ads: Update comments on
14746 Interrupt_Server_Blocked_On_Event_Flag.
14747 (Unbind_Handler): Fix handling of server_task wakeup
14748 (Server_Task): Set self's state so that Unbind_Handler can take
14749 appropriate actions.
14750 (Common_ATCB): Now use a constant from System.Parameters to determine
14751 the max size of the Task_Image field.
14753 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
14754 Initialize_Analyzer function.
14755 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
14756 take into account case of no abort restriction.
14757 ([Vulnerable_]Complete_Master): Modify assertion.
14759 * s-tataat.adb (Finalize): Use the nestable versions of
14760 Defer/Undefer_Abort.
14762 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
14764 * s-tpobop.ads: Update comments.
14766 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
14767 of locking the object manually, to avoid inconsistencies between
14768 Lock/Unlock_Entry assertions.
14770 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
14772 application and System.Parameters.No_Abort is True.
14773 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
14774 (Unbind_Handler): Fix handling of server_task wakeup
14775 (Server_Task): Set self's state so that Unbind_Handler can take
14776 appropriate actions.
14778 2007-06-06 Thomas Quinot <quinot@adacore.com>
14780 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
14781 declarations instead of an explicit null body, for conciseness.
14783 2007-06-06 Robert Dewar <dewar@adacore.com>
14785 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
14786 illegal aggregate and the type is still Any_Composite.
14787 (Subtypes_Statically_Match): Fix problem of empty discriminant list
14789 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14791 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
14792 to prevent subsequent expansion.
14794 2007-06-06 Robert Dewar <dewar@adacore.com>
14796 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
14798 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14799 Robert Dewar <dewar@adacore.com>
14801 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
14803 (Write_Itype): Handle case of string literal subtype, which
14804 comes up in this context.
14805 (Update_Itype): when debugging expanded code, update sloc of itypes
14806 associated with defining_identifiers and ranges, for gdb use.
14807 (Sprint_Node_Actual): Add static keyword to object or exception
14808 declaration output if Is_Statically_Allocated is True.
14809 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
14810 or task body, so that the tree carries the proper Sloc information for
14812 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
14814 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14816 * s-secsta.adb (Chunk): Ensure this object has a static size known at
14817 compile time, to avoid dynamic memory allocation
14818 (Elaboration code): Only use dynamic memory allocation when needed.
14820 2007-06-06 Quentin Ochem <ochem@adacore.com>
14822 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
14824 (Stack_Analyzer): Added field "Overflow_Guard"
14825 (Task_Result): Added field "Overflow_Guard".
14826 (Index_Str): New constant.
14827 (Task_Name_Str): New constant.
14828 (Actual_Size_Str): New constant.
14829 (Pattern_Array_Element_Size): New constant.
14830 (Get_Usage_Range): New subprogram.
14831 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
14832 Now align the output.
14834 (Initialize): Added value for Overflow_Guard.
14835 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
14836 Update the value of the overflow guard according to the actual
14837 beginning of the pattern array.
14838 (Initialize_Analyzer): Added parameter Overflow_Guard.
14839 Take this parameter into accound when computing the max size.
14840 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
14841 (Report_Result): Removed extra useless procedure.
14842 Updated call to Output_Result.
14843 Moved full computation of the Task_Result here.
14845 2007-06-06 Thomas Quinot <quinot@adacore.com>
14847 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
14848 Thread_Blocking_IO, always True by default, set False on a per-runtime
14850 Add Windows-specific constants
14851 Add new constant Need_Netdb_Buffer.
14852 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14853 not, whether to use getXXXbyYYY_r.
14855 * gsocket.h: Add new constant Need_Netdb_Buffer.
14856 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
14857 not, whether to use getXXXbyYYY_r.
14859 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14861 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
14862 than their first call.
14863 Add type Dummy_Communication_Block used in the generation of the pre-
14864 defined dispatching primitive _disp_asynchronous_select.
14865 (Storage_Element): Put Pragma Universal_Aliasing on it.
14867 2007-06-06 Vincent Celier <celier@adacore.com>
14869 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
14872 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
14873 letter if it is not followed by a '/' or a '\'.
14874 (Windows): New Boolean function
14876 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
14878 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
14880 (Containing_Directory): Raise Use_Error when the directory is a root
14882 (Extension): When returning the result, use a conversion to Result_Type,
14883 not a qualification.
14885 2007-06-06 Robert Dewar <dewar@adacore.com>
14887 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
14888 (Set_Style_Check_Options): Recognize new -gnatyg style switch
14890 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
14891 Warn_On_Non_Local_Exception to False, to turn off warnings for
14892 No_Exception_Propagation in ZFP runtime.
14893 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
14895 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
14897 2007-06-06 Vincent Celier <celier@adacore.com>
14899 * switch-b.adb (Scan_Binder_Switches): Add processing for new
14902 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
14903 (Scan_Make_Switches): Recognize new switch -aP
14905 2007-06-06 Matthew Gingell <gingell@adacore.com>
14906 Jose Ruiz <ruiz@adacore.com>
14908 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
14909 VxWorks task descriptor in the Ada run time, call a C subprogram
14910 (__gnat_get_stack_info) that extracts the required information.
14912 * sysdep.c: Back out temporary lynxos workaround.
14913 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
14914 time the stack information associated to the currently executing task.
14915 Only VxWorks systems require this function.
14917 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
14919 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
14920 add the stack bias if the offset is computed from a frame address.
14921 (__gnat_backtrace): Adjust for above change.
14923 2007-06-06 Thomas Quinot <quinot@adacore.com>
14925 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
14926 PE_Non_Transportable_Actual.
14927 (By_Descriptor_Last): New constant.
14928 (By_Copy_Return): Likewise.
14930 2007-06-06 Vincent Celier <celier@adacore.com>
14932 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
14935 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
14936 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
14937 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
14938 Add missing comment for /OPTIMIZE=SPACE
14939 Add entry for OPTIMIZE=SPACE
14940 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
14941 Add documentation for new qualifiers corresponding to -gnatw.c/.C
14943 2007-06-06 Vincent Celier <celier@adacore.com>
14944 Robert Dewar <dewar@adacore.com>
14946 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
14949 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
14950 Document gnatbind switch -a
14951 (case Constructions): Document that variables declarations are allowed
14952 for previously declared variables.
14953 Fix external lib project example
14954 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
14955 Indicate that "#if not X or Y then" is not allowed in input files to
14957 Document gnatw.x and gnatw.X warning flags
14958 Mention -Winline switch to activate warnings when back-end inlining is
14960 Add gnatcheck rule descriptions
14961 Describe how to use the GNAT driver to call a tool on a closure.
14962 Describe how to run project-wide checks or metrics.
14963 Document gnatbind's -R option
14964 Updated to account for Ada 2005 support
14966 * gnat_rm.texi (Case Construction): Allow variable declarations for
14967 previously declared variables.
14968 (Representation Clauses and Pragmas): Lift restriction on alignment
14969 clauses for record types.
14970 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
14971 Document No_Exception_Propagation restriction
14972 Document No_Body pragma
14973 Updated to account for Ada 2005 support; corrected some typos
14974 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
14976 * gnat-style.texi: Make it clear that we never use mode IN for
14977 procedures or functions
14979 * ug_words: Add entries for -gnatw.x and -gnatw.X
14980 Add entries for -gnatw.c/.C
14982 2007-06-06 Pascal Obry <obry@adacore.com>
14983 Vincent Celier <celier@adacore.com>
14985 * makegpr.adb (Add_Archive_Path): Use untouched object and library
14986 dirs and library name.
14987 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
14989 (Build_Library): Idem.
14990 (Compile_Individual_Sources): Idem.
14991 (Compile_Link_With_Gnatmake): Idem.
14992 (Compile_Sources): Idem.
14993 (Get_Imported_Directories): Idem.
14994 (Link_Executables): Idem. Same change for the executable dir.
14995 (Check_Compilation_Needed): C_Source_Path new variable containing
14996 the canonical form of Source_Path to check against the source names
14997 in the dependency file.
14998 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
14999 verbose mode, display the name of the object directory we're changing
15001 (Saved_Switches): New name of table X_Switches
15002 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15003 (Usage): New line for switch -aP
15004 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15005 testing if a directory should be added to the search path.
15007 2007-06-06 Javier Miranda <miranda@adacore.com>
15009 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
15010 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15011 declaration after freezing point of all its associated tagged types;
15012 otherwise such types are frozen too early.
15014 2007-06-06 Robert Dewar <dewar@adacore.com>
15016 * a-reatim.adb: Documentation addition
15018 * g-cgideb.adb: Minor code reorganization
15020 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15021 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15022 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15024 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15025 function. Change name New_Scope to Push_Scope
15026 (Get_Debug_Flag_K): Remove unused obsolete function.
15028 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15031 * makeusg.adb: Update Copyright notice
15032 Add line for switch -aP
15034 * makeusg.adb: Fix wording of some usage messages
15036 * s-assert.adb (Raise_Assert_Failure): Add call to
15037 Debug_Raise_Assert_Failure.
15039 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15040 (2, Standard'Alignment) for compatibility with AAMP (where alignment
15041 is restricted to 1).
15043 * s-wchjis.adb: Remove use of System.Pure_Exceptions
15045 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15046 node location to No_Location when we're not debugging the expanded
15049 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
15051 * misc.c (enumerate_modes): Consider log2_b to always be one.
15053 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
15055 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15057 2007-05-02 Pascal Obry <obry@adacore.com>
15059 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15060 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15061 encoding support of Stream_IO.
15062 (Write_Unit): Idem.
15064 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15065 filename and corresponding encoding to match the OS requirement.
15066 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15067 routine will fail on specific devices like CON: AUX: ...
15069 PR ada/29856: Add missing braces
15071 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
15074 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15076 2007-04-21 Jan Hubicka <jh@suse.cz>
15078 * misc.c (gnat_expand_body): Don't call target for destructors,
15079 avoid redundant check on syntax errors.
15081 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
15083 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15084 instead of checking GIMPLE_STMT_P in chain_next.
15086 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
15089 * system-linux-alpha.ads: Disable constant condition warning for the
15090 Default_Bit_Order variable.
15091 * system-linux-s390.ads: Likewise.
15092 * system-linux-s390x.ads: Likewise.
15093 * system-linux-sparc.ads: Likewise.
15095 2007-04-06 Javier Miranda <miranda@adacore.com>
15096 Matt Heaney <heaney@adacore.com>
15097 Robert Dewar <dewar@adacore.com>
15099 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15100 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15101 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15102 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15103 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15104 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15105 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15106 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15107 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15108 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15109 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15110 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15111 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15112 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15113 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15114 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15115 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15116 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15117 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15118 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15119 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15120 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15121 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15122 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15123 s-taprop-tru64.adb, s-taprop-irix.adb,
15124 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15125 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15126 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
15127 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15128 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15129 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15130 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15131 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15132 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15133 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15134 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15135 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15136 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15137 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15138 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15139 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15140 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
15141 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
15142 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
15143 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15145 Update documentation.
15148 2007-04-06 Robert Dewar <dewar@adacore.com>
15150 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15151 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15152 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15153 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15154 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15155 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15156 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15157 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15158 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
15159 system-hpux-ia64.ads, targparm.adb,
15160 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15162 * system.ads: Move Functions_Return_By_DSP to obsolete section,
15163 kept for bootstrap purposes only.
15165 2007-04-06 Arnaud Charlet <charlet@adacore.com>
15167 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15168 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15169 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15170 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15172 2007-04-06 Robert Dewar <dewar@adacore.com>
15174 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15175 (Local_Raise): New dummy procedure called when a raise is converted
15176 to a local goto. Used for debugger to detect that the exception
15179 * debug.adb: Document new d.g flag (expand local raise statements to
15180 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15182 * exp_sel.adb: Use Make_Implicit_Exception_Handler
15184 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15185 suppress warnings for unused handlers.
15186 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
15187 warnings for raise statements not handled locally.
15188 (Get_RT_Exception_Entity): New function
15189 (Get_Local_Call_Entity): New function
15190 (Find_Local_Handler): New function
15191 (Warn_If_No_Propagation): New procedure
15192 (Expand_At_End_Handler): Call Make_Implicit_Handler
15193 (Expand_Exception_Handlers): Major additions to deal with local handlers
15194 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15195 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15198 * exp_ch11.ads (Get_RT_Exception_Entity): New function
15199 (Get_Local_Call_Entity): New function
15201 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15202 of restrictions that the binder will never suggest adding.
15204 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15207 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15208 be with'ed in the presence of pragma Restriction
15209 (No_Exception_Propagation).
15211 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15213 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15214 parameter, then the handler is not a suitable target for a local raise,
15215 and this is a violation of restriction No_Exception_Propagation.
15216 (Analyze_Handled_Statements): Analyze choice parameters in exception
15217 handlers before analyzing statement sequence (needed for proper
15218 detection of local raise statements).
15219 (Analyze_Raise_Statement): Reraise statement is a violation of the
15220 No_Exception_Propagation restriction.
15222 * s-rident.ads: Add new restriction No_Exception_Propagation
15224 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15225 function, like Make_Exception_Handler but sets Local_Raise_Statements
15227 (Add_Unique_Serial_Number): Deal with case where this is called during
15228 processing of configuration pragmas.
15230 2007-04-06 Thomas Quinot <quinot@adacore.com>
15231 Pat Rogers <rogers@adacore.com>
15232 Pascal Obry <obry@adacore.com>
15234 * g-stsifd-sockets.adb: New file.
15236 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15237 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15238 g-socthi-vms.adb: Move signalling
15239 fd management to a nested package, so that they can conveniently be
15240 moved to a subunit that is shared across Windows, VMS, and VxWorks
15241 (Ada implementation) or completed with imported bodies from socket.c
15243 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15245 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15246 the signalling file descriptor.
15247 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15248 signalling file descriptor.
15249 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15250 instead of creating a pair of sockets for signalling here.
15252 * g-socthi.adb: Ditto.
15253 Set the runtime process to ignore SIGPIPEs on platforms that support
15254 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15256 * g-socthi-mingw.adb: Ditto.
15257 (WS_Version): Use Windows 2.2.
15258 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15260 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15261 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15263 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15264 added GNAT byte swapping facility
15265 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15267 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15269 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15271 (__gnat_create_signalling_fds): New subprogram.
15272 Set the runtime process to ignore SIGPIPEs on platforms that support
15273 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15275 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
15276 Vincent Celier <celier@adacore.com>
15278 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15279 New version of Ada.Calendar which supports the new upper bound of Ada
15280 time (2399-12-31 86_399.999999999).
15281 The following modifications have been made to the package:
15282 - New representation of time as count of nanoseconds since the start of
15283 Ada time (1901-1-1 0.0).
15284 - Target independent Split and Time_Of routines which service both
15285 Ada 95 and Ada 2005 code.
15286 - Target independent interface to the Ada 2005 children of Calendar.
15287 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15288 - Handling of non-leap centenial years.
15289 - Updated clock function.
15290 - Updated arithmetic and comparison operators.
15292 * a-caldel.adb (To_Duration): Add call to target independent routine in
15293 Ada.Calendar to handle the conversion of time to duration.
15295 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15297 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15299 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15300 targets do not have a natural time zone, GMT is used as a default.
15301 (__gnat_get_task_options): New.
15303 * a-direct.adb (Modification_Time): Add with and use clauses for
15304 Ada.Calendar and Ada.
15305 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15306 since it is no longer needed.
15307 (Duration_To_Time): Removed.
15308 (OS_Time_To_Long_Integer): Removed.
15309 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15310 Formatting Time_Of routines which automatically handle time zones,
15311 buffer periods and leap seconds.
15313 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15314 target independent routines in Ada.Calendar.
15316 * a-calfor.ads, a-calfor.adb:
15317 Code cleanup and addition of validity checks in various routines.
15318 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15321 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15322 independent routine in Ada.Calendar.
15324 2007-04-06 Olivier Hainque <hainque@adacore.com>
15327 (convert_addresses): Adjust prototype and dummy definition to expect an
15328 extra file_name argument.
15330 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15331 filling the now expected file_name argument with the appropriate
15333 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15334 (tracebk): Array of void * instead of char *, corresponding to what
15335 convert_addresses expects.
15336 (exename): New static global, to hold the executable file name to be
15337 used in all convert_addresses invocations.
15338 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15340 (__gnat_gmem_a2l_initialize): Resolve exename.
15341 (__gnat_convert_addresses): Use exename as the convert_addresses
15342 file_name argument.
15344 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15345 "convert_addresses", now expecting a filename argument. Import the
15346 necessary entities to compute the filename to use and pass it to
15349 2007-04-06 Matt Gingell <gingell@adacore.com>
15351 * system-aix.ads: Back out previous change.
15352 (Functions_Return_By_DSP): Removed
15354 2007-04-06 Pascal Obry <obry@adacore.com>
15356 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15357 or the monotonic used by Ada.Real_Time) to compute the sleep duration
15360 2007-04-06 Jose Ruiz <ruiz@adacore.com>
15362 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15363 function. Its value changes in different VxWorks versions, and it is
15364 now handled by the function __gnat_get_task_options.
15366 * s-taprop-vxworks.adb (Create_Task): Call the function
15367 __gnat_get_task_options to get the required options for creating a task.
15369 2007-04-06 Pascal Obry <obry@adacore.com>
15370 Thomas Quinot <quinot@adacore.com>
15372 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15373 dealing with filename.
15374 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15375 filename from a standard string to a wide-string depending on the
15377 (__gnat_freopen): Idem.
15378 (__gnat_current_time): New function (wrapper for time(3) standard C
15381 * g-os_lib.ads (Current_Time): New function. Returns the current
15382 system time as an OS_Time value.
15384 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15385 (Monotonic_Clock): Same.
15387 2007-04-06 Quentin Ochem <ochem@adacore.com>
15389 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15391 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15393 2007-04-06 Jose Ruiz <ruiz@adacore.com>
15395 * a-retide.adb: Add elaboration code to ensure that the tasking run
15396 time is initialized when using delay operations even when no task is
15399 2007-04-06 Javier Miranda <miranda@adacore.com>
15401 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15402 component Num_Prim_Ops.
15403 (Set_Num_Prim_Ops): Removed.
15404 Remove all the assertions because all the routines of this
15405 package are inline always.
15406 (Get_Offset_Index): Add support to primary dispatch tables.
15407 Move the documentation about the dispatch table to a-tags.ads
15408 (Set_External_Tag): Removed
15409 (Inherit_TSD): Removed.
15410 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15411 moved to a-tags.ads
15412 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15413 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15414 of the TSD field "Table" because this field has been renamed to
15416 (Inherit_CPP_DT): Removed.
15417 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15418 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15419 declarations have been moved to a-tags.ads
15420 (Check_Size): Removed.
15421 (Expanded_Name): Updated to get access to the new field of TSD
15422 containing the address of the expanded name.
15423 (Get_Access_Level/Set_Access_Level): Removed.
15424 (Get_Predefined_Prim_Op_Address): Removed.
15425 (Set_Predefined_Prim_Op_Address): Removed.
15426 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15427 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15428 (Set_Expanded_Name): Removed.
15429 (Inherit_DT): Removed.
15430 (Inherit_CPP_DT): Removed.
15431 (Set_RC_Offset): Removed.
15432 (Set_TSD): Removed.
15433 (Base_Address): New function that displaces "this" to point to the base
15434 of the object (that is, to point to the primary tag of the object).
15436 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15437 Javier Miranda <miranda@adacore.com>
15439 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15440 anonymous access component, do not create a master_id if type already
15441 has one, as may happen if the type is a subcomponent of a packed array
15443 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15444 Initialize_Tag): Remove code associated with the old CPP pragmas.
15445 CPP_Virtual and CPP_Vtable are no longer supported.
15446 (Build_Offset_To_Top_Internal): Add support for concurrent record types
15447 (Build_Offset_To_Top_Functions): Add support for concurrent record types
15448 (Freeze_Record_Type): Remove call to
15449 Init_Predefined_Interface_Primitives.
15450 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15451 code required to initialize the tags of the secondary dispatch tables.
15452 This leaves the algoritm more clear.
15453 (Init_Secondary_Tags): Add support for concurrent record types
15454 (Make_Predefined_Primitive_Specs): Code cleanup.
15455 (Predefined_Primitive_Bodies): Code cleanup.
15456 (Build_Master_Renaming): New local subprogram.
15457 (Expand_N_Full_Type_Declaration): Build the master_id associated with
15458 anonymous access to task type components.
15459 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15460 subtype indication are resolved during analysis, and must not be done
15462 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15464 2007-04-06 Geert Bosch <bosch@adacore.com>
15465 Ed Schonberg <schonberg@adacore.com>
15466 Javier Miranda <miranda@adacore.com>
15467 Bob Duff <duff@adacore.com>
15469 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15470 for conversion of a Float_Type'Truncation to integer.
15472 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15473 check if a node is an attribute that can be handled directly by the
15475 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15476 attributes that can be handled directly by the back end.
15477 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15478 use new predicate Is_Access_Protected_Subprogram_Type.
15479 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15480 and Unchecked_Union if it is generated as part of the default Output
15481 procedure for a type with default discriminants.
15482 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15483 if we are compiling under restriction No_Dispatching_Calls.
15484 (Constrained): Use Underlying_Type, in case the type is private without
15485 discriminants, but the full type has discriminants.
15486 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15487 call to Build_Get_Access_Level.
15488 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15489 interface objects requires a call to the run-time subprogram that
15490 returns the base address of the object.
15491 (Valid_Conversion): Improve error message on illegal attempt to store
15492 an anonymous access to subprogram value into a record component.
15494 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15496 (Simplify_Type_Conversion): New procedure that performs simplification
15497 of Int_Type (Float_Type'Truncation (X)).
15498 (Resolve_Type_Conversion): Call above procedure after resolving operand
15499 and before performing checks. This replaces the existing ineffective
15501 (Set_String_Literal_Subtype): When creating the internal static lower
15502 bound subtype for a string literal, use a newly created copy of the
15503 subtree representing the lower bound.
15504 (Resolve_Call): Exclude build-in-place function calls from transient
15505 scope treatment. Update comments to describe this exception.
15506 (Resolve_Equality_Op): In case of dispatching call check violation of
15507 restriction No_Dispatching_Calls.
15508 (Resolve_Call): If the call returns an array, the context imposes the
15509 component type of the array, and the function has one non-defaulted
15510 parameter, rewrite the call as the indexing of a call with a single
15511 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15513 (Resolve_Actuals): If an actual is an allocator for an access parameter,
15514 the master of the created object is the innermost enclosing statement.
15515 (Remove_Conversions): For a binary operator, check if type of second
15516 formal is numeric, to check if an abstract interpretation is present
15517 in the case of exponentiation as well.
15519 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15520 Bob Duff <duff@adacore.com>
15522 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15523 copying a parameter list in a call, set properly the First_Named_Formal
15524 and Next_Named_Formal fields in the new list and in the enclosing call.
15525 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15526 names, to ease typing in the debugger. Improve comments.
15527 (Watch_Node): New variable, intended to be set in the debugger.
15528 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15529 called when the watched node is created.
15530 (New_Node_Debugging_Output): Combined version of local procedures
15531 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15532 with a parameter so that conditional breakpoints like "if Node = 12345"
15534 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15535 Add Elist1 function
15537 2007-04-06 Thomas Quinot <quinot@adacore.com>
15538 Ed Schonberg <schonberg@adacore.com>
15539 Gary Dismukes <dismukes@adacore.com>
15541 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15542 required for a conversion between two access-to-unconstrained-array
15544 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15545 to discriminant constraints on discriminant objects. This rule must
15546 apply as well to discriminants of protected types in private components.
15547 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15548 object of a null-excluding access type then don't require the
15549 the object declaration to have an expression and don't emit a
15552 2007-04-06 Arnaud Charlet <charlet@adacore.com>
15553 Eric Botcazou <botcazou@adacore.com>
15555 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15558 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15559 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15562 * fe.h (Compiler_Abort): Add third parameter.
15564 * misc.c (internal_error_function): Build third argument from current
15565 input location and pass it to Compiler_Abort.
15567 2007-04-06 Gary Dismukes <dismukes@adacore.com>
15569 * cstand.adb (Create_Standard): When the target's storage unit size is
15570 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15573 2007-04-06 Nicolas Roche <roche@adacore.com>
15575 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15576 absolute path can have the following form: device:/a/b. In this case
15577 '/' should be inserted between the path and the filename.
15579 2007-04-06 Olivier Hainque <hainque@adacore.com>
15580 Eric Botcazou <botcazou@adacore.com>
15582 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15583 VAR_DECL to a CONST_DECL we make for a public constant when we know the
15584 corresponding definition has created the so made visible variable.
15585 Handle anonymous access to protected subprogram.
15586 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15587 object with an address clause volatile. Re-enable original fix.
15588 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15590 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15591 associated with either the Equivalent or Root type, instead of the
15593 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15594 subtree for every field of a global record type.
15595 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15596 discriminants, invoke again variable_size on its newly computed sizes.
15598 2007-04-06 Robert Dewar <dewar@adacore.com>
15599 Thomas Quinot <quinot@adacore.com>
15600 Ed Schonberg <schonberg@adacore.com>
15601 Bob Duff <duff@adacore.com>
15603 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15604 (Next_Component_Or_Discriminant): New function and procedure
15605 (First_Index, First_Literal, Master_Id,
15606 Set_First_Index, Set_First_Literal, Set_Master_Id):
15607 Add missing Ekind assertions.
15608 (Is_Access_Protected_Subprogram_Type): New predicate.
15609 (Has_RACW): New entity flag, set on package entities to indicate that
15610 the package contains the declaration of a remote accecss-to-classwide
15612 (E_Return_Statement): This node type has the Finalization_Chain_Entity
15613 attribute, in case the result type has controlled parts.
15614 (Requires_Overriding): Add this new flag, because "requires
15615 overriding" is subtly different from "is abstract" (see AI-228).
15616 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15617 Is_Abstract_Type. Make sure these are called only when appropriate.
15618 (Has_Pragma_Unreferenced_Objects): New flag
15620 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15621 class-wide, the tag of the right-hand side must be an exact match, not
15622 an ancestor of that of the object on left-hand side.
15623 (Move_Activation_Chain): New procedure to create the call to
15624 System.Tasking.Stages.Move_Activation_Chain.
15625 (Expand_N_Extended_Return_Statement): Generate code to call
15626 System.Finalization_Implementation.Move_Final_List at the end of a
15627 return statement if the function's result type has controlled parts.
15628 Move asserts to Build_In_Place_Formal.
15629 (Move_Final_List): New function to create the call statement.
15630 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15631 tagged type, replace generation of call to the run-time subprogram
15632 CW_Membership by call to Build_CW_Membership.
15633 (Expand_N_Return_Statement): Replace generation of call to the run-time
15634 subprogram Get_Access_Level by call to Build_Get_Access_Level.
15635 (Expand_N_Simple_Function_Return): Replace generation of call to the
15636 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15638 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
15639 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
15640 access to protected operations.
15641 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
15642 master and chain actual parameters to a build-in-place function call
15644 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
15646 (Make_Build_In_Place_Call_In_Allocator,
15647 Make_Build_In_Place_Call_In_Anonymous_Context,
15648 Make_Build_In_Place_Call_In_Assignment,
15649 Make_Build_In_Place_Call_In_Object_Declaration): Call
15650 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
15651 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
15652 stubbed procedure with a null body, replace the call with a null
15653 statement without using the full inlining machinery, for efficiency
15654 and to avoid invalid values in source file table entries.
15656 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
15657 renamings of calls to build-in-place functions.
15659 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
15660 provides the functionality of RTE_Available to record components.
15661 (RTU_Entity): The function Entity has been renamed to RTU_Entity
15662 to avoid undesired overloading.
15663 (Entity): New subprogram that returns the entity for the referened
15664 unit. If this unit has not been loaded, it returns Empty.
15665 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
15666 Remove no longer used entities.
15667 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
15668 (RE_Type_Specific_Data): New entity.
15669 (RE_Move_Any_Value): New entity.
15670 (RE_TA_A, RE_Get_Any_Type): New entities.
15671 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
15672 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
15673 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
15674 (Entity): New subprogram that returns the entity for the referened
15675 unit. If this unit has not been loaded, it returns Empty.
15676 (RTE): Addition of a new formal that extends the search to the scopes
15677 of the record types found in the chain of the package.
15679 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
15680 "abstract subprograms must be visible" message, whether or not the type
15681 is an interface; that is, remove the special case for interface types.
15682 (Analyze_Function_Return): Remove error message "return of task objects
15683 is not yet implemented" because this is now implemented.
15684 (Create_Extra_Formals): Add the extra master and activation chain
15685 formals in case the result type has tasks.
15686 Remove error message "return of limited controlled objects is not yet
15688 (Create_Extra_Formals): Add the extra caller's finalization list formal
15689 in case the result type has controlled parts.
15690 (Process_Formals): In case of access formal types there is no need
15691 to continue with the analysis of the formals if we already notified
15693 (Check_Overriding_Indicator): Add code to check overriding of predefined
15695 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
15696 flags for formals that do not require them,.
15697 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
15698 hidden entity is use visible or directly visible.
15699 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
15700 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
15701 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
15702 New_Overloaded_Entity): Split Is_Abstract flag into
15703 Is_Abstract_Subprogram and Is_Abstract_Type.
15705 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
15706 a return statement's finalization list to the caller's list, used for
15707 build-in-place functions with result type with controlled parts.
15708 Remove no longer used entities.
15710 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
15711 longer needed, because the full type is now limited, and therefore a
15712 pass-by-reference type.
15713 (Foreign_Task_Level): New constant.
15715 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
15716 move tasks from the activation chain belonging to a return statement to
15717 the one passed in by the caller, and update the master to the one
15718 passed in by the caller.
15719 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
15720 of unactivated tasks, so we don't kill the ones that are being returned
15721 by a build-in-place function.
15722 (Create_Task): Ignore AI-280 for foreign threads.
15724 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15725 Robert Dewar <dewar@adacore.com>
15726 Bob Duff <duff@adacore.com>
15727 Gary Dismukes <dismukes@adacore.com>
15729 * errout.adb (Unwind_Internal_Type): Use predicate
15730 Is_Access__Protected_Subprogram_Type.
15732 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
15733 (Freeze_Entity, packed array case): Do not override explicitly set
15734 alignment and size clauses.
15735 (Freeze_Entity): An entity declared in an outer scope can be frozen if
15736 the enclosing subprogram is a child unit body that acts as a spec.
15737 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
15738 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
15739 Remove all code for DSP option
15741 * layout.adb (Layout_Record_Type): Use First/
15742 Next_Component_Or_Discriminant
15743 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
15744 to handle properly the anonymous access case.
15746 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
15747 for all access attributes, because overload resolution should work the
15748 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
15749 causes the error message for the ambiguous "X'Access = Y'Access" and
15750 "X'Unrestricted_Access = Y'Access" and so forth to match.
15751 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
15752 now that anonymous access to protected operations have their own kind.
15753 (Resolve_Attribute): In case of dispatching call check the violation of
15754 restriction No_Dispatching_Calls.
15755 (Check_Array_Type): Check new -gnatyA array index style option
15757 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
15758 attempt to derive from a synchronized tagged type.
15759 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
15760 type, inherit the class-wide type already created, because it may
15761 already have been used in a self-referential anonymous access component.
15762 (Mentions_T): Recognize self-referential anonymous access components
15763 that use (a subtype of) the class-wide type of the enclosing type.
15764 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
15765 Derived_Type for Prev formal on call to
15766 Check_Anonymous_Access_Components rather than Empty.
15767 (Make_Incomplete_Type_Declaration): Add test for case where the type has
15768 a record extension in deciding whether to create a class-wide type,
15769 rather than just checking Tagged_Present.
15770 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
15771 to stand-alone object declarations as well as component declarations.
15772 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
15773 prevent accidental overwriting when enclosing package appears in
15774 a limited_with_clause.
15775 (Array_Type_Declaration): If the component type is an anonymous access,
15776 the associated_node for the itype is the type declaration itself.
15777 (Add_Interface_Tag_Components): Modified to support concurrent
15778 types with abstract interfaces.
15779 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
15780 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
15781 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
15782 to complete the decoration of synchronized interface types. Add also
15783 a call to Check_Abstract_Interfaces to verify the ARM rules.
15784 (Derive_Interface_Subprograms): Modified to support concurrent types
15785 with abstract interfaces.
15786 (Analyze_Subtype_Indication): Resolve the range with the given subtype
15787 mark, rather than delaying the full resolution depending on context.
15788 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
15789 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
15790 Array_Type_Declaration,Build_Derived_Record_Type,
15791 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
15792 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
15793 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
15794 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
15795 called only when appropriate.
15796 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
15798 (Analyze_Subtype_Declaration): For an access subtype declaration, create
15799 an itype reference for the anonymous designated subtype, to prevent
15800 scope anonmalies in gigi.
15801 (Build_Itype_Reference): New utility, to simplify construction of such
15804 2007-04-06 Vincent Celier <celier@adacore.com>
15806 * errutil.adb (Initialize): Initialize warnings table, if all warnings
15807 are suppressed, supply an initial dummy entry covering all possible
15810 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
15811 and start with only one, such as "-RTS=none".
15812 (Collect_Arguments): Do not check for sources outside of projects.
15813 Do not collect arguments if project is externally built.
15814 (Compile_Sources): Do nothing, not even check if the source is up to
15815 date, if its project is externally built.
15816 (Compile): When compiling a predefined source, add -gnatpg
15817 as the second switch, after -c.
15818 (Compile_Sources): Allow compilation of Annex J renames without -a
15819 (Is_In_Object_Directory): Check if the ALI file is in the object
15820 even if there is no project extension.
15821 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
15822 gnatbind if the ALI file effectively exists.
15823 (Initialize): Add the directory where gnatmake is invoked in front of
15824 the path if it is invoked from a bin directory, even without directory
15825 information, so that the correct GNAT tools will be used when spawned
15826 without directory information.
15828 * makeusg.adb: Change switch -S to -eS
15829 Add lines for new switches -we, -wn and -ws
15830 Add line for new switch -p
15832 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
15833 Treat_As_Error and there are warnings.
15835 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
15836 -gnatww Change gnatmake switch -S to -eS
15837 (Scan_Make_Switches): Code reorganisation. Process separately multi
15838 character switches and single character switches.
15839 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
15840 False when switch is not recognized by gnatmake.
15841 (Scan_Make_Switches): Set Setup_Projects True when -p or
15842 --create-missing-dirs is specified.
15844 * fname.adb (Is_Predefined_File_Name): Return True for annex J
15845 renamings Calendar, Machine_Code, Unchecked_Conversion and
15846 Unchecked_Deallocation only when Renamings_Included is True.
15848 * par.adb: Allow library units Calendar, Machine_Code,
15849 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
15850 when -gnatg is not specified.
15851 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
15852 there is no need to generate always a record_definition_node in case
15853 of synchronized interface types.
15854 (SIS_Entry_Active): Initialize global variable to False
15855 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
15856 indicate cases where AI-447 says "not null" is legal.
15858 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
15860 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
15861 files with with several lines starting with the object fileb name.
15862 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
15864 (Initialize): Add the directory where gprmake is invoked in front of the
15865 path, if it is invoked from a bin directory or with directory
15866 information, so that the correct GNAT tools will be used when invoked
15868 (Check_Compilation_Needed): Process correctly backslashes on Windows.
15870 * vms_data.ads: Update switches/qualifiers
15872 2007-04-06 Ed Schonberg <schonberg@adacore.com>
15873 Thomas Quinot <quinot@adacore.com>
15876 If the array component is a discriminated record, the array aggregate
15877 is non-static even if the component is given by an aggregate with
15879 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
15880 (Convert_Aggr_In_Allocator): If the allocator is for an access
15881 discriminant and the type is controlled. do not place on a finalization
15882 list at this point. The proper list will be determined from the
15884 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
15885 initialize record controller if needed, before the components, to ensure
15886 that they are properly finalized.
15887 (Build_Record_Aggr_Code): For the case of an array component that has a
15888 corresponding array aggregate in the record aggregate, perform sliding
15891 2007-04-06 Javier Miranda <miranda@adacore.com>
15892 Gary Dismukes <dismukes@adacore.com>
15893 Ed Schonberg <schonberg@adacore.com>
15895 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
15896 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
15898 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
15899 accessibility on class-wide allocators if the allocator occurs at the
15900 same scope level as the allocator's type. The check is guaranteed to
15901 succeed in that case, even when the expression originates from a
15902 parameter of the containing subprogram.
15903 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
15904 under No_Dispatching_Calls restriction. During the semantic analysis
15905 we already notified such violation.
15906 (Tagged_Membership): Constant folding. There is no need to check
15907 the tag at run-time if the type of the right operand is non
15908 class-wide abstract.
15909 Replace call to Is_Ancestor by call to Is_Parent
15910 to support concurrent types with interface types.
15911 (Expand_N_Allocator): Add an assertion associated with the generation
15913 (Expand_N_Slice): Do not enable range check to nodes associated
15914 with the frontend expansion of the dispatch table.
15915 (Is_Local_Access_Discriminant): Subsidiary function to
15916 Expand_N_Allocator.
15917 (Tagged_Membership): Replace generation of call to the run-time
15918 subprogram CW_Membership by call to Build_CW_Membership.
15919 (Expand_Allocator_Expression): Replace generation of call to the
15920 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
15922 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
15923 initialize most the TSD components by means of an aggregate.
15924 Modify the declaration of the object containing the TSD
15925 because we now expand code that has a higher level of abstraction.
15926 The TSD has a discriminant containing the Inheritance Depth Level,
15927 value that is used in the membership test but also to fix the size
15928 of the table of ancestors.
15929 (Expand_Interface_Conversion): Insert function body at the closest place
15930 to the conversion expression, to prevent access-before-elaboration
15931 errors in the backend.
15932 Code improved to reduce the size of the dispatch table if
15933 compiling under restriction No_Dispatching_Calls plus code cleanup.
15934 Code reorganization plus removal of calls to Set_Num_Prim_Ops
15935 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
15936 (Expand_Dispatching_Call): Minor code reorganization plus addition of
15937 code to return immediately if compiling under No_Dispatching_Calls
15939 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
15940 CPP_Virtual and CPP_Vtable are no longer supported.
15941 (Expand_Interface_Conversion): Add missing support for interface type
15943 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
15944 Is_Parent to support concurrent types with interfaces.
15945 (Init_Predefined_Interface_Primitives): Removed.
15946 (Make_Secondary_DT): Modified to support concurrent record types.
15947 (Set_All_DT_Position): Modified to support concurrent record types.
15948 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15949 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
15950 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
15951 with CW_Membership.
15952 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
15953 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
15954 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
15955 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
15956 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
15957 (Expand_Dispatching_Call): Replace generation of call to the run-time
15958 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
15959 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
15961 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
15962 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
15963 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
15964 Build_Set_Prim_Op_Address.
15965 (Get_Remotely_Callable): Subprogram removed.
15966 (Init_Predefined_Interface_Primitives): Replace generation of call to
15967 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
15970 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
15971 First (Parameter_Associations ()) with the call to First_Actual that
15972 returns an actual parameter expression for both named and positional
15975 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
15976 check violation of restriction No_Dispatching_Calls.
15977 (Check_Controlling_Type): A formal of a tagged incomplete type is a
15978 controlling argument.
15980 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
15981 First/Next_Component_Or_Discriminant
15982 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
15983 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15984 specify Any_Limited_Interface, and this functionality is already
15985 provided by the function Has_Abstract_Interfaces.
15986 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
15987 support concurrent types implementing interfaces.
15988 (Find_Implemented_Interface): Removed. All the calls to this subprogram
15989 specify kind Any_Limited_Interface, and this functionality is already
15990 provided by the function Has_Abstract_Interfaces.
15991 (Remove_Side_Effects): replace Controlled_Type by
15992 CW_Or_Controlled_Type whenever the issue is related to
15993 using or not the secondary stack.
15995 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
15996 P_Interface_Type_Definition to fulfill the new interface (the formal
15997 Is_Synchronized is no longer required).
15999 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16000 Update dependencies.
16002 * exp_atag.ads, exp_atag.adb: New file
16004 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16005 Bob Duff <duff@adacore.com>
16006 Cyrille Comar <comar@adacore.com>
16008 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16009 anonymous, use finalization list of enclosing dynamic scope.
16010 (Expand_N_Package_Declaration): For a library package declaration
16011 without a corresponding body, generate RACW subprogram bodies in the
16012 spec (just as we do for the task activation call).
16013 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16014 Is_Abstract_Type. Make sure these are called only when appropriate.
16015 Remove all code for DSP option
16016 (CW_Or_Controlled_Type): new subprogram.
16018 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16019 Ed Schonberg <schonberg@adacore.com>
16020 Gary Dismukes <dismukes@adacore.com>
16022 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16023 parameter. If it is set to true, return a result capped according to
16024 the global upper bound for the index of an entry family.
16025 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16026 (Build_Find_Body_Index): Adjust for above change.
16027 (Entry_Index_Expression): Likewise.
16028 (Is_Potentially_Large_Family): New function extracted from...
16029 (Collect_Entry_Families): ...here. Call it to detect whether the family
16030 is potentially large.
16031 (Build_Entry_Count_Expression): If the family is potentially large, call
16032 Family_Size with 'Cap' set to true.
16033 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16034 a protected version of an operation declared in the private part of
16035 a protected object, because they may be invoked through a callback.
16036 (Set_Privals): If the type of a private component is an anonymous access
16037 type, do not create a new itype for each protected body.
16038 If the body of a protected operation creates
16039 controlled types (including allocators for class-widetypes), the
16040 body of the corresponding protected subprogram must include a
16042 (Build_Activation_Chain_Entity): Build the chain entity for extended
16044 (Type_Conformant_Parameters): Use common predicate Conforming_Types
16045 to determine whether operation overrides an inherited primitive.
16046 (Build_Wrapper_Spec): Add code to examine the parents while looking
16047 for a possible overriding candidate.
16048 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16049 hold an actual parameter value since its initialization is separated
16050 from the the declaration. Prevents errors on null-excluding access
16053 2007-04-06 Thomas Quinot <quinot@adacore.com>
16054 Pablo Oliveira <oliveira@adacore.com>
16056 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16057 Do an Unchecked_Conversion to handle the passage from the Underlying
16058 Type to the Base Type when calling Build_To_Any_Call and
16059 Build_From_Any_Call.
16060 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16061 E_Constant, depending upon Variable formal.
16062 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16063 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16064 parameter that requires an extra constrained parameter, declare
16065 temporary for actual as a variable, not a constant.
16066 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16067 the unit being compiled is the one that contains the stub type.
16068 Change primitive operation name for the RACW associated with a RAS
16069 from Call to _Call so it cannot clash with any legal identifier.
16070 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16072 (Append_RACW_Bodies): New subprogram.
16073 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16074 Add_Receiving_Stubs_To_Declarations functions.
16075 When expanding a package body, this list correspond to the
16076 statements in the HSS at the end of the pacakge.
16077 When expanding a package spec, this list correspond to the
16079 (Add_Receiving_Stubs_To_Declarations): Append the function
16080 registering the receiving stubs at the end of the 'Stmts' list.
16081 (RCI_Package_Locator): Pass the new Version generic formal when
16082 instantiating a RCI_Locator package.
16083 (Build_From_Any_Function): To compute the High bound for an
16084 unconstrained array actual, we add the Low bound with the length.
16085 Thus we must convert the low bound and the length to an appropriate
16086 type before doing the sum.
16087 (Build_Subprogram_Receiving_Stubs, PolyORB):
16088 * Retrieve the extra formals parameters at the
16089 end of the parameter stream.
16090 * Use Move_Any_Value to write back out parameters
16091 after executing the request as it is more efficient
16092 than Copy_Any_Value.
16093 * Build the any containing Extra Formals with the
16094 appropriate typecode.
16095 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16096 empty Component_List.
16097 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16098 the tree the declaration for an object that serves as actual parameter
16099 in server-side stubs.
16100 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16101 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16102 Use Build_Actual_Object_Declaration to prepare the actuals.
16103 (Add_Parameter_To_NVList): Set the parameter mode to In for
16104 Extra Constrained Parameters.
16105 (Build_General_Calling_Stubs): Set the parameter type to boolean for
16106 Extra Constrained parameters.
16107 (Build_To_Any_Function, Build_From_Any_Function,
16108 Built_TypeCode_Function): When Typ is implicit, call the correct
16109 function with the first not implicit parent type.
16110 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16111 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16112 typecode from the Etype. Therefore we retrieve the correct typecode
16113 with a call to Get_Any_Type.
16114 (Copy_Specification): Do controlling formal type substitution based on
16115 Is_Controlling_Formal flag, instead of caller-provided object type.
16116 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16117 a RACW primitive operation, we might get a subprogram declaration for an
16118 ancestor of the RACW designated type (not for the designated type
16119 itself), in the case where this operation is inherited. In this case we
16120 have no easy means of determining the original tagged type for which
16121 the primitive was declared, so instead we now rely on
16122 Copy_Specification to use the Is_Controlling_Formal flag to determine
16123 which formals require type substitution.
16125 2007-04-06 Robert Dewar <dewar@adacore.com>
16126 Ed Schonberg <schonberg@adacore.com>
16128 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16129 GNAT.Current_Exception are not allowed if pragma Restrictions
16130 (No_Exception_Propagation) is set and in any case make the associated
16131 handler unsuitable as a target for a local raise statement.
16132 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16133 run-time subprogram CW_Membership by call to Build_CW_Membership.
16134 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16135 by a function call, a temporary must be created before expanding the
16136 Constructor_Call itself, to prevent out-of-order elaboration in the
16137 back-end when stack checking is enabled..
16139 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16141 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16142 result are the bounds of the left operand, not the right.
16144 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16147 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16148 discriminant defaults.
16149 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16150 (Make_Component_List_Attributes): Ditto.
16152 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16153 Bob Duff <duff@adacore.com>
16155 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16156 an association with a box as providing a value even though the
16157 initialization procedure for the type is not available.
16158 (Resolve_Record_Aggregate): Check that a choice of an association with a
16159 box corresponds to a component of the type.
16160 (Resolve_Record_Aggregate): Split Is_Abstract flag into
16161 Is_Abstract_Subprogram and Is_Abstract_Type.
16163 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16166 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16167 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16168 called only when appropriate.
16170 2007-04-06 Olivier Hainque <hainque@adacore.com>
16172 * g-alleve.ads (Low Level Vector type definitions): Map each to the
16173 associated vector view instead of all to the unsigned char view.
16175 * g-altcon.adb (Generic_Conversions): New internal generic package,
16176 offering facilities for all the Vector/View conversion routines
16177 implemented by this unit.
16178 (To_View/To_Vector - all versions): Reimplemented in a systematic
16179 manner, using the internal Generic_Conversions facilities.
16181 2007-04-06 Pascal Obry <obry@adacore.com>
16183 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16185 (Create): Free the source string before storing the new one.
16187 2007-04-06 Vincent Celier <celier@adacore.com>
16189 * g-debpoo.adb (Validity): New package with a complete new
16190 implementation of subprograms Is_Valid and Set_Valid.
16191 (Is_Valid): Move to local package Validity
16192 (Set_Valid): Move to local package Validity
16194 2007-04-06 Arnaud Charlet <charlet@adacore.com>
16195 Pablo Oliveira <oliveira@adacore.com>
16197 * g-expect.adb (Get_Command_Output): When expanding the output buffer
16198 we must ensure that there is enough place for the new data we are going
16201 2007-04-06 Thomas Quinot <quinot@adacore.com>
16203 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16206 2007-04-06 Jose Ruiz <ruiz@adacore.com>
16207 Vincent Celier <celier@adacore.com>
16209 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16210 (Stack_String): Add this String that contains the name of the Stack
16211 package in the project file.
16212 (Packages_To_Check_By_Stack): Add this list that contains the packages
16213 to be checked by gnatstack, which are the naming and the stack packages.
16214 (Check_Files): If no .ci files were specified for gnatstack we add all
16215 the .ci files belonging to the projects, including binder generated
16217 (Non_VMS_Usage): Document that gnatstack accept project file switches.
16218 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16219 Add gnatstack to the list of commands that use project file related
16220 switches, and get the single attribute Switches from the stack package
16221 in a project file when calling gnatstack. Parse the -U flag for
16222 processing files belonging to all projects in the project tree.
16223 Remove all processing for command Setup
16225 * prj-attr.adb: Add new package Stack with single attribute Switches
16227 * vms_conv.ads (Command_Type): Add command Stack.
16228 Move to body declarations that are only used in the body: types Item_Id,
16229 Translation_Type, Item_Ptr, Item and its subtypes.
16231 * vms_conv.adb: (Initialize): Add data for new command Stack.
16232 Add declarations moved from the spec: types Item_Id, Translation_Type,
16233 Item_Ptr, Item and its subtypes.
16234 (Cargs_Buffer): New table
16235 (Cargs): New Boolean global variable
16236 (Process_Buffer): New procedure to create arguments
16237 (Place): Put character in table Buffer or Cargs_Buffer depending on the
16239 (Process_Argument): Set Cargs when processing qualifiers for GNAT
16241 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16242 empty, for table Cargs_Buffer.
16243 (Initialize): Remove component Setup in Command_List
16245 2007-04-06 Vincent Celier <celier@adacore.com>
16247 * gprep.adb (Process_Files.Process_One_File): Use full file name when
16248 issuing pragma Source_Reference.
16250 2007-04-06 Emmanuel Briot <briot@adacore.com>
16252 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16253 [[:xdigit:]] character class.
16254 Also raise an exception when an invalid character class is used.
16256 2007-04-06 Pascal Obry <obry@adacore.com>
16258 * i-cstrea.ads: (fopen): Add encoding parameter.
16260 Change reference from a-sysdep.c to sysdep.c in comment.
16261 Update copyright notice.
16262 This set of patch add support for the encoding form parameter.
16264 * mingw32.h (S2WSU): New macro to convert from a string to a
16265 wide-string using the UTF-8 encoding. The S2WS macro supports now only
16266 standard 8bits encoding.
16267 (WS2SU): As above but converting from wide-sring to string.
16268 This is needed as it is necessary to have access to both versions in the
16269 runtime for the form parameter encoding support.
16270 This set of patch add support for the encoding form parameter.
16271 (S2WS): Improve implementation to handle cases where the filename is not
16272 UTF-8 encoded. In this case we default to using the current code page
16273 for the conversion.
16275 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16276 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16277 the constants defined in adaint.h.
16278 (fopen): Add encoding parameter.
16281 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16282 encoding. This is needed for the Reset routine (freopen low level-call).
16284 * s-fileio.adb (Open): Decode encoding form parameter and set the
16285 corresponding encoding value into AFCB structure.
16286 (Reset): Pass the encoding value to freopen.
16287 (Close): Move the call to Lock_Task to the beginning of the procedure.
16289 2007-04-06 Geert Bosch <bosch@adacore.com>
16290 Robert Dewar <dewar@adacore.com>
16292 * i-fortra.ads: Add Double_Complex type.
16294 * impunit.adb: (Is_Known_Unit): New function
16295 Add Gnat.Byte_Swapping
16297 Add new Ada 2005 units
16298 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16299 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16300 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16301 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16303 * impunit.ads (Is_Known_Unit): New function
16305 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16306 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16307 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16308 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16309 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16310 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16313 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16315 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16317 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16318 Arnaud Charlet <charlet@adacore.com>
16320 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16321 __gnat_adjust_context_for_raise.
16322 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16323 implementation of floating point operations as native x86 targets.
16324 So the FPU should be initialized in the same way using finit. Fix
16325 floating point operations accuracy issues.
16326 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16327 member in struct sigaction, so as to avoid warning for incompatible
16330 2007-04-06 Serguei Rybin <rybin@adacore.com>
16332 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16333 switches from previously loaded tree
16335 2007-04-06 Thomas Quinot <quinot@adacore.com>
16337 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16338 cases where a given dependency has a body or not.
16339 (Write_With_File_Names): New subprogram, common code for the two cases
16342 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16343 Javier Miranda <miranda@adacore.com>
16345 * lib-xref.ads, lib-xref.adb:
16346 Modify the loop that collects type references, to include interface
16347 types that the type implements. List each of these interfaces when
16348 building the entry for the type.
16349 (Generate_Definition): Initialize component Def and Typ of new entry
16350 in table Xrefs, to avoid to have these components unitialized.
16351 (Output_References): Split Is_Abstract flag into
16352 Is_Abstract_Subprogram and Is_Abstract_Type.
16353 (Generate_Reference): Add barrier to do not generate the warning
16354 associated with Ada 2005 entities with entities generated by the
16357 2007-04-06 Robert Dewar <dewar@adacore.com>
16358 Arnaud Charlet <charlet@adacore.com>
16359 Vincent Celier <celier@adacore.com>
16361 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16362 Update 'Exception Handling Control' chapter which was outdated.
16363 Minor fix to documentation of -gnatwq
16364 Remove section "Adapting the Run Time to a New C++ Compiler" because
16365 it is now obsolete.
16366 Add passage on need of -nostart-files in some non-ada-main cases.
16367 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16368 Update documentation about Interfacing with C++
16369 Add documentation for new gnatmake switch -p
16370 Add missing protocol part in URLs.
16372 Document pragma Compile_Time_Error
16373 Add documentation for Object_Size indicating that stand alone
16374 objects can have a larger size in some cases.
16375 Add node for GNAT.Byte_Swapping, GNAT.SHA1
16376 Update reference to the Ravenscar profile.
16377 Document pragma Unreferenced_Objects
16379 * gnat-style.texi: Fix typo
16381 2007-04-06 Vincent Celier <celier@adacore.com>
16383 * mlib.adb (Building_Library): Only output "building a library..." in
16386 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16387 files in verbose mode.
16389 * mlib-utl.adb (Ar): Only output the first object files when not in
16391 (Gcc): Do not display all the object files if not in verbose mode, only
16394 2007-04-06 Robert Dewar <dewar@adacore.com>
16396 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16397 it no longer destroys the contents of Name_Buffer or Name_Len and
16398 non-standard and invalid names are handled better.
16399 (Get_Decoded_Name_String): Improve performance by using
16400 Name_Has_No_Encodings flag in the name table.
16401 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16402 Used for debugging printouts.
16404 2007-04-06 Robert Dewar <dewar@adacore.com>
16405 Javier Miranda <miranda@adacore.com>
16406 Bob Duff <duff@adacore.com>
16408 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16409 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16410 there is no need to generate always a record_definition_node in case
16411 of synchronized interface types.
16412 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16413 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16414 illegal in Ada 95, in cases where it is legal. Change the warnings to
16415 errors in other cases. Don't give the error unless the "not null"
16416 parses properly. Correct the source position at which the error occurs.
16417 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16418 P_Null_Exclusion, to suppress "not null" warnings.
16419 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16420 associated goto statements.
16422 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16425 * scans.ads (Type_Token_Location): New flag
16427 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16428 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16429 P_Null_Exclusion, to suppress "not null" warnings.
16431 2007-04-06 Robert Dewar <dewar@adacore.com>
16432 Javier Miranda <miranda@adacore.com>
16433 Bob Duff <duff@adacore.com>
16434 Vincent Celier <celier@adacore.com>
16436 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16437 (Extensions_Allowed): No longer sets Ada_Version
16438 Entry for pragma Unreferenced_Objects
16440 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16441 system.tasking if pragma priority used in a procedure
16442 (Analyze_Pragma, case Warning): Handle dot warning switches
16443 (Process_Compile_Time_Warning_Or_Error): New procedure
16444 (Analyze_Pragma): Add processing for Compile_Time_Error
16445 Add support for extra arguments External_Name and Link_Name.
16446 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16447 (Process_Import_Or_Interface): Add support for the use of pragma Import
16449 (Extensions_Allowed): No longer affects Ada_Version
16450 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16451 Is_Abstract_Type. Make sure these are called only when appropriate.
16452 Add processing for pragma Unreferenced_Objects
16454 * snames.h, snames.ads, snames.adb: Add entry for pragma
16456 Add new standard name Minimum_Binder_Options for new gprmake
16457 Add new standard names for gprmake: Archive_Suffix,
16458 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16459 Library_Support, Library_Version_Options,
16460 Shared_Library_Minimum_Options,
16461 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16462 Change Name_Call to Name_uCall so that it cannot clash with a legal
16464 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16465 Append C_Plus_Plus to convention identifiers as synonym for CPP
16466 Add new standard names Stack and Builder_Switches
16467 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16468 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16469 Run_Path_Option, Toolchain_Version.
16470 Entry for pragma Unreferenced_Objects
16472 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16473 switches, without repetition of "eD". Make sure that last character of
16474 -gnatep= switch is not taken as -gnat switch character.
16475 Complete rewrite of circuit for handling saving compilation options
16476 Occasioned by need to support dot switchs for -gnatw, but cleans up
16478 -gnatX does not affect Ada_Version
16479 Include -gnatyA in -gnatg style switches
16481 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16482 warnings on return objects.
16483 (Warn_On_Useless_Assignment): Exclude warnings on return objects
16484 (Set_Dot_Warning_Switch): New procedure
16485 (Check_References): Add missing case of test for
16486 Has_Pragma_Unreferenced_Objects
16487 (Output_Unreferenced_Messages): Implement effect of new pragma
16488 Unreferenced_Objects, remove special casing of limited controlled
16491 2007-04-06 Vincent Celier <celier@adacore.com>
16493 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16494 the default project path, initially done during elaboration of the
16496 If the prefix returned by Sdefault is null, get the prefix from a call
16497 to Executable_Prefix_Path.
16498 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16501 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16502 canonical directory name to open the directory from which files are
16504 (Record_Other_Sources): Idem.
16505 (Locate_Directory): Add the possibility to create automatically missing
16506 directories when Setup_Projects is True.
16507 Call Locate_Directory so that the directory will be created when
16508 Setup_Projects is True, for object dir, library dir, library ALI dir,
16509 library source copy dir and exec dir.
16511 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16514 2007-04-06 Robert Dewar <dewar@adacore.com>
16516 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16517 Use First/Next_Component_Or_Discriminant
16518 (Analyze_Record_Representation_Clause):
16519 Use First/Next_Component_Or_Discriminant
16520 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16521 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16522 definition if type is unconstrained.
16523 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16524 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16525 Is_Abstract_Subprogram and Is_Abstract_Type.
16526 (Adjust_Record_For_Reverse_Bit_Order): New procedure
16528 * repinfo.adb (List_Record_Info): Use First/
16529 Next_Component_Or_Discriminant.
16531 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16534 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16535 Include -gnatyA in default switches
16537 * opt.ads: (Warn_On_Non_Local_Exception): New flag
16538 (Warn_On_Reverse_Bit_Order): New flag
16539 (Extensions_Allowed): Update the documentation.
16540 (Warn_On_Questionable_Missing_Parens): Now on by default
16542 * usage.adb: Add documentation of -gnatw.x/X switches
16543 Document new -gnatyA style switch
16544 -gnatq warnings are on by default
16546 2007-04-06 Ed Falis <falis@adacore.com>
16548 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16549 full word is no longer compared twice.
16551 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16553 * sem_ch10.adb (Install_Limited_Context_Clauses.
16554 Expand_Limited_With_Clause): Use a new copy of selector name in the
16555 call to Make_With_Clause. This fixes the tree structure for ASIS
16556 purposes. Nothing is changed in the compiler behaviour.
16557 (Process_Body_Clauses): Handle properly use clauses whose prefix is
16558 a package renaming.
16559 (Install_Limited_With_Clauses): Do not install non-limited view when it
16560 is still incomplete.
16562 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16563 Gary Dismukes <dismukes@adacore.com>
16565 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16566 when capturing size information, instead of base type, which for a
16567 formal array type will be the unconstrained type.
16568 (Analyze_Formal_Object_Declaration): Add check for illegal default
16569 expressions for a formal in object of a limited type.
16570 (Instantiate_Object): Ditto.
16571 (Check_Formal_Package_Instance): Skip entities that are formal objects,
16572 because they were defaulted in the formal package and no check applies
16574 (Check_Formal_Package_Instance): Extend conformance check to other
16575 discrete types beyond Integer.
16576 (Process_Default): Copy directly the unmatched formal. A generic copy
16577 has already been performed in Analyze_Formal_Package.
16578 (Analyze_Associations): If a formal subprogram has no match, check for
16579 partial parametrization before looking for a default, to prevent
16581 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16582 not set the instantiation environment before analyzing the actuals.
16583 Fixes regression on 8515-003 with implementation of AI-133.
16584 Set_Instance_Env checks whether the generic unit is a predefined
16585 unit, in which case the instance must be analyzed with the latest Ada
16586 mode. This setting must take place after analysis of the actuals,
16587 because the actuals must be analyzed and frozen in the Ada mode extant
16588 outside of the current instantiation.
16589 (Save_Env, Restore_Env): Preserve and restore the configuration
16590 parameters so that predefined units can be compiled in the proper Ada
16592 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16593 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16594 and Is_Abstract_Type.
16595 (Analyze_Formal_Package): For better error recovery, Add exception
16596 handler to catch Instantion_Error, which can be raised in
16597 Analyze_Associations
16599 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16600 Bob Duff <duff@adacore.com>
16601 Gary Dismukes <dismukes@adacore.com>
16603 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16604 prefix type is a discriminated subtype of the type of the formal.
16605 (Analyze_Allocator): Collect all coextensions regardless of the context.
16606 Whether they can be allocated statically is determined in exp_ch4.
16607 (Analyze_Selected_Component): If the prefix is a limited view and the
16608 non-limited view is available, use the non-limited one.
16609 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16610 therefore illegal), suggest a qualified expression rather than a type
16611 conversion, because a type conversion would be illegal in this context.
16612 (Anayze_Allocator): Trace recursively all nested allocators so that all
16613 coextensions are on the corresponding list for the root. Do no mark
16614 coextensions if the root allocator is within a declaration for a stack-
16615 allocated object, because the access discriminants will be allocated on
16617 (Analyze_Call): Remove restriction on calls to limited functions for the
16618 cases of generic actuals for formal objects, defaults for formal objects
16619 and defaults for record components.
16620 (Analyze_Allocator): Before analysis, chain coextensions on the proper
16621 element list. Their expansion is delayed until the enclosing allocator
16622 is processed and its finalization list constructed.
16623 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16624 for an operation with the given name among the primitive operations of
16625 the corresponding record type.
16626 (Analyze_Selected_Component): If the prefix is a task type that
16627 implements an interface, and there is no entry with the given name,
16628 check whether there is another primitive operation (e.g. a function)
16630 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16631 properly the indexing of a function call written in prefix form, where
16632 the function returns an array type, and all parameters of the function
16633 except the first have defaults.
16634 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
16635 the original operands, rather than relocating them, for efficiency and
16636 to work properly when an operand is overloaded.
16637 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
16638 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
16639 (Analyze_Selected_Component): If the prefix is a private extension, only
16640 scan the visible components, not those of the full view.
16641 (Try_Primitive_Operation): If the operation is a procedure, collect all
16642 possible interpretations, as for a function, because in the presence of
16643 classwide parameters several primitive operations of the type can match
16644 the given arguments.
16646 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16647 Robert Dewar <dewar@adacore.com>
16649 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
16650 tag-indeterminate call to an abstract function, when the left-hand side
16652 (Analyze_Loop_Statement): Improve detection of infinite loops
16654 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16655 Thomas Quinot <quinot@adacore.com>
16657 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
16658 out of Analyze_Package_Declaration, because processing must be applied
16659 to package bodies as well, for deferred constants completed by pragmas.
16660 (Analyze_Package_Declaration): When the package declaration being
16661 analyzed does not require an explicit body, call Check_Completion.
16662 (May_Need_Implicit_Body): An implicit body is required when a package
16663 spec contains the declaration of a remote access-to-classwide type.
16664 (Analyze_Package_Body): If the package contains RACWs, append the
16665 pending subprogram bodies generated by exp_dist at the end of the body.
16666 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
16667 Is_Abstract_Subprogram and Is_Abstract_Type.
16668 (Preserve_Full_Attributes): The full entity list is not an attribute
16669 that must be preserved from full to partial view.
16671 * sem_dist.adb (Add_RAS_Dereference_TSS):
16672 Change primitive name to _Call so it cannot clash with any legal
16673 identifier, and be special-cased in Check_Completion.
16674 Mark the full view of the designated type for the RACW associated with
16675 a RAS as Comes_From_Source to get proper view switching when installing
16676 private declarations.
16677 Provite a placeholder nested package body along with the nested spec
16678 to have a place for Append_RACW_Bodies to generate the calling stubs
16679 and stream attributes.
16681 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16682 Robert Dewar <dewar@adacore.com>
16684 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
16685 that is a limited view, check the non-limited view if available.
16686 (Undefined): Refine error message for missing with of Text_IO
16687 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
16688 to distinguish real missing with cases.
16689 Fix format of all missing with messages
16690 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
16691 renaming as body when renamed entity is abstract.
16693 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16694 Javier Miranda <miranda@adacore.com>
16696 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
16697 predicate recursive, to handle complex expressions on literals whose
16698 spurious ambiguity comes from the abstract interpretation of some
16700 (Interface_Present_In_Ancestor): Add support to concurrent record
16702 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
16703 Is_Abstract_Subprogram and Is_Abstract_Type.
16705 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16706 Javier Miranda <miranda@adacore.com>
16708 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
16709 dereference of a local object R created as a reference to another
16710 object O, use the access level of O.
16711 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
16712 rather than local Same_Formal_Type, to check whether protected operation
16713 overrides an inherited one.
16714 (Same_Formal_Type): New predicate, used when matching signatures of
16715 overriding synchronized operations, to handle the case when a formal
16716 has a type that is a generic actual.
16717 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
16718 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
16719 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
16720 syntactic ambiguities involving indexing of function calls that return
16722 (Abstract_Interface_List): New subprogram that returns the list of
16723 abstract interfaces associated with a concurrent type or a
16724 concurrent record type.
16725 (Interface_Present_In_Parent): New subprogram used to check if a
16726 given type or some of its parents implement a given interface.
16727 (Collect_Abstract_Interfaces): Add support for concurrent types
16728 with interface types.
16729 (Has_Abstract_Interfaces): Add support for concurrent types with
16731 (Is_Parent): New subprogram that determines whether E1 is a parent
16732 of E2. For a concurrent type its parent is the first element of its
16733 list of interface types; for other types this function provides the
16734 same result than Is_Ancestor.
16735 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
16736 (Collect_Synchronized_Interfaces): Removed because the subprogram
16737 Collect_Abstract_Interfaces provides this functionality.
16738 (Collect_Abstract_Interfaces): Minor update to give support to
16739 concurrent types and thus avoid undesired code duplication.
16740 (Get_Subprogram_Entity): Handle entry calls.
16741 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
16743 (Enter_Name): Do not give -gnatwh hiding warning for record component
16744 entities, they never result in hiding.
16746 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16747 Robert Dewar <dewar@adacore.com>
16749 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
16750 to chain nested components that are allocators for access discriminants
16751 of the enclosing object.
16752 Add N_Push and N_Pop nodes
16753 New field Exception_Label added
16754 (Local_Raise_Statements): New field in N_Exception_Handler_Node
16755 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
16756 (Is_Coextension): New flag for allocators, to mark allocators that
16757 correspond to access discriminants of dynamically allocated objects.
16758 (N_Block_Statement): Document the fact that the corresponding entity
16759 can be an E_Return_Statement.
16760 (Is_Coextension): New flag for allocators.
16761 Remove all code for DSP option
16763 * sprint.ads, sprint.adb: Display basic information for class_wide
16764 subtypes. Add handling of N_Push and N_Pop nodes
16766 2007-04-06 Arnaud Charlet <charlet@adacore.com>
16768 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
16769 before propagating exception.
16771 2007-04-06 Olivier Hainque <hainque@adacore.com>
16773 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
16774 an address always within the call instruction from a return address.
16776 2007-04-06 Olivier Hainque <hainque@adacore.com>
16777 Eric Botcazou <botcazou@adacore.com>
16779 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
16780 expression with a COMPOUND_EXPR including the call instead of emitting
16781 the call directly here.
16782 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
16783 high bound is constant and the slice is empty. Tidy.
16784 (tree_transform, case N_Op_Not): Handle properly the case where the
16785 operation applies to a private type whose full view is a modular type.
16786 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
16787 Address_Clause, use the associated Expression as the GNAT tree
16788 representing the choice value to ensure the corresponding GCC tree is
16789 of the proper kind.
16790 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
16791 instead of just the operands, as the base GCC stabilize_reference does.
16792 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
16793 requested; otherwise fail.
16794 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
16796 2007-04-06 Thomas Quinot <quinot@adacore.com>
16798 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
16799 implementation of UI_Div.
16800 (UI_Div): Reimplement as a call to UI_Div_Rem.
16801 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
16802 remainder, avoiding the cost of a multiplication and a subtraction.
16803 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
16804 provides both quotient and remainder in a single computation.
16805 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
16806 functions for uint.
16807 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
16808 is undefined if the given n is not inversible.
16810 2007-04-06 Olivier Hainque <hainque@adacore.com>
16812 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
16813 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
16816 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16817 Olivier Hainque <hainque@adacore.com>
16819 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
16820 when updating the contents of the old pointer to an unconstrained array.
16821 (end_subprog_body): Set error_gnat_node to Empty.
16822 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
16823 (unchecked_convert): For subtype to base type conversions, require that
16824 the source be a subtype if it is an integer type.
16825 (builtin_decls): New global, vector of available builtin functions.
16826 (gnat_pushdecl): Add global builtin function declaration nodes to the
16827 builtin_decls list.
16828 (gnat_install_builtins): Adjust comments.
16829 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
16830 calling gnat_pushdecl, so that it knows when it handed a builtin
16831 function declaration node.
16832 (builtin_decl_for): Search the builtin_decls list.
16834 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16836 * s-stchop-vxworks.adb:
16837 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
16839 2007-04-06 Robert Dewar <dewar@adacore.com>
16840 Arnaud Charlet <charlet@adacore.com>
16842 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
16844 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
16846 Add mention of -Sev (set initialize_scalars option from environment
16847 variable at run time) in gnatbind usage message.
16849 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
16851 * fname-uf.ads: Minor comment fix
16853 * osint.ads: Change pragma Elaborate to Elaborate_All
16855 * par-load.adb: Add documentation.
16857 * sem_cat.ads, sem_cat.adb: Minor code reorganization
16859 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
16861 * s-secsta.ads: Extra comments
16863 * s-soflin.ads: Minor comment fixes
16865 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
16867 * s-wchcon.ads: Minor comment addition
16869 * treepr.adb: Minor change in message
16870 (Print_Name,Print_Node): Make these debug printouts more robust: print
16871 "no such..." instead of crashing on bad input.
16873 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
16875 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
16876 instead of gnat_signed_or_unsigned_type.
16877 * utils.c (gnat_signed_or_unsigned_type): Remove.
16878 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
16879 * gigi.h (gnat_signed_or_unsigned_type): Remove
16881 2007-03-09 Roger Sayle <roger@eyesopen.com>
16883 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
16884 fold with the result of buildN.
16885 * decl.c (gnat_to_gnu_entity): Likewise.
16886 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
16887 * utils.c (finish_record_type, merge_sizes, max_size, convert):
16889 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
16890 nonbinary_modular_operation, build_binary_op, build_unary_op,
16891 build_cond_expr): Likewise.
16893 * utils.c (convert): Use fold_build1 when casting values to void.
16894 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
16895 fold_convert instead of convert when appropriate.
16897 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
16899 * Make-lang.in: Add install-pdf target as copied from
16900 automake v1.10 rules.
16902 2007-02-28 Andreas Schwab <schwab@suse.de>
16904 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
16905 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
16906 (doc/gnat-style.info): Likewise.
16908 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16910 * gnat-style.texi: Standardize title page.
16911 * gnat_rm.texi: Likewise.
16912 * gnat_ugn.texi: Likewise.
16914 2007-02-25 Mark Mitchell <mark@codesourcery.com>
16916 * decl.c (annotate_value): Adjust for refactoring of tree_map
16919 2007-02-24 Mark Mitchell <mark@codesourcery.com>
16921 * decl.c (annotate_value): Adjust for refactoring of tree_map
16924 2007-02-21 Ed Schonberg <schonberg@adacore.com>
16927 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
16928 untagged derived type, add hidden components to keep discriminant
16929 layout consistent, when a given discriminant of the derived type
16930 constraints several discriminants of the parent type.
16932 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
16933 Sandra Loosemore <sandra@codesourcery.com>
16935 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
16936 build the call expression.
16937 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
16938 * utils.c (max_size) <tcc_exceptional>: Delete.
16939 <tcc_vl_exp>: New case.
16940 <tcc_expression>: Delete CALL_EXPR subcase.
16941 (build_global_cdtor): Use build_call_nary instead of build3.
16942 * utils2.c (build_call_1_expr): Likewise.
16943 (build_call_2_expr): Likewise.
16944 (build_call_0_expr): Likewise.
16945 (build_call_alloc_dealloc): Likewise.
16947 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
16949 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
16950 get_action_description_for): Replace _Unwind_Word with _uleb128_t
16951 and _Unwind_SWord with _sleb128_t.
16953 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
16955 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
16956 * decl.c: Include gt-ada-decl.h.
16957 (annotate_value_cache): New.
16958 (annotate_value): Use it instead of TREE_COMPLEXITY.
16960 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
16962 * misc.c, utils2.c: Fix comment typos.
16964 2007-01-24 Roger Sayle <roger@eyesopen.com>
16966 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
16967 TREE_CONSTANT_OVERFLOW.
16968 (allocatable_size_p, annotate_value): Likewise.
16969 * trans.c (gnat_to_gnu): Likewise.
16970 * utils.c (unchecked_convert): Likewise.
16971 * utils2.c (build_simple_component_ref): Likewise.
16973 2007-01-23 Richard Guenther <rguenther@suse.de>
16976 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
16977 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
16978 (gnatboot3): Likewise.
16979 (GNATBIND): Do not define.
16980 * Makefile.in (GNATBIND): Do not define.
16982 2007-01-08 Richard Guenther <rguenther@suse.de>
16984 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
16985 * trans.c (gnat_to_gnu): Likewise.
16987 2006-12-07 Geoffrey Keating <geoffk@apple.com>
16989 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
16990 * adaint.c: Likewise.
16992 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
16994 Merge from gimple-tuples-branch:
16995 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
16997 * ada-tree.h (lang_tree_node): Handle gimple tuples.
16998 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
16999 GIMPLE_MODIFY_STMT.
17001 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
17003 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17004 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17007 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
17010 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17011 if the initializer takes into account the padding.
17013 2006-11-11 Richard Guenther <rguenther@suse.de>
17015 * trans.c (maybe_stabilize_reference): Remove handling of
17016 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17018 2006-11-05 Arnaud Charlet <charlet@adacore.com>
17021 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17022 (To_Target_Priority): New function.
17024 2006-10-31 Robert Dewar <dewar@adacore.com>
17026 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17027 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17028 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17029 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17030 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17031 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17032 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17033 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17034 a-szbzha.adb: Minor reformatting. Fix header.
17036 * a-numaux-x86.adb: Add parentheses for use of unary minus
17037 * a-ngcefu.adb: Supply missing parentheses for unary minus
17038 * a-ngcoty.adb: Add parens for use of unary minus
17039 * a-ngelfu.adb: Add missing parens for unary minus
17040 * a-tifiio.adb: Add parentheses for uses of unary minus
17042 2006-10-31 Robert Dewar <dewar@adacore.com>
17043 Bob Duff <duff@adacore.com>
17044 Ed Schonberg <schonberg@adacore.com>
17046 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
17047 with multiplying operator.
17048 (Expected_Type_Is_Any_Real): New function to determine from the Parent
17049 pointer whether the context expects "any real type".
17050 (Resolve_Arithmetic_Op): Do not give an error on calls to the
17051 universal_fixed "*" and "/" operators when they are used in a context
17052 that expects any real type. Also set the type of the node to
17053 Universal_Real in this case, because downstream processing requires it
17054 (mainly static expression evaluation).
17055 Reword some continuation messages
17056 Add some \\ sequences to continuation messages
17057 (Resolve_Call): Refine infinite recursion case. The test has been
17058 sharpened to eliminate some false positives.
17059 Check for Current_Task usage now includes entry barrier, and is now a
17060 warning, not an error.
17061 (Resolve): If the call is ambiguous, indicate whether an interpretation
17062 is an inherited operation.
17063 (Check_Aggr): When resolving aggregates, skip associations with a box,
17064 which are priori correct, and will be replaced by an actual default
17065 expression in the course of expansion.
17066 (Resolve_Type_Conversion): Add missing support for conversion from
17067 a class-wide interface to a tagged type. Minor code cleanup.
17068 (Valid_Tagged_Converion): Add support for abstact interface type
17070 (Resolve_Selected_Component): Call Generate_Reference here rather than
17071 during analysis, and use May_Be_Lvalue to distinguish read/write.
17072 (Valid_Array_Conversion): New procedure, abstracted from
17073 Valid_Conversion, to incorporate accessibility checks for arrays of
17074 anonymous access types.
17075 (Valid_Conversion): For a conversion to a numeric type occurring in an
17076 instance or inlined body, no need to check that the operand type is
17077 numeric, since this has been checked during analysis of the template.
17078 Remove legacy test for scope name Unchecked_Conversion.
17080 * sem_res.ads: Minor reformatting
17082 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17083 (PE_Current_Task_In_Entry_Body): New exception code
17084 (SE_Restriction_Violation): Removed, not used
17086 * a-except.ads: Update comments.
17088 * types.h, types.ads: Add definition for Validity_Check
17089 (PE_Current_Task_In_Entry_Body): New exception code
17090 (SE_Restriction_Violation): Removed, not used
17092 2006-10-31 Thomas Quinot <quinot@adacore.com>
17094 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17097 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
17098 Jose Ruiz <ruiz@adacore.com>
17100 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17101 part of Ada.Calendar: all subprogram raise Unimplemented.
17102 (Split_W_Offset): Temp function body, raising Unimplemented
17104 * a-calend.ads, a-calend-vms.ads:
17105 Add imported variable Invalid_TZ_Offset used to designate targets unable
17106 to support time zones.
17107 (Unimplemented): Temporary function raised by the body of new
17109 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17110 unit provides handling of leap seconds and is used by the new Ada 2005
17111 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17112 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17113 version returns an extra value which is the offset to UTC.
17115 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17116 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17117 (Split_W_Offset): New function body.
17118 (Time_Of): When a date is close to UNIX epoch, compute the time for
17119 that date plus one day (that amount is later substracted after
17120 executing mktime) so there are no problems with time zone adjustments.
17122 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17124 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17125 a-catizo.ads, a-catizo.adb: New files.
17127 * impunit.adb: Add new Ada 2005 entries
17129 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17130 Rename all occurences of "__gnat_localtime_r" to
17131 "__gnat_localtime_tzoff".
17132 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17133 zone data and calculate the GMT offset.
17134 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17135 Use the field "tm_gmtoff" to extract the GMT offset.
17136 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17137 the external variable "timezone" to calculate the GMT offset.
17139 2006-10-31 Arnaud Charlet <charlet@adacore.com>
17140 Jose Ruiz <ruiz@adacore.com>
17142 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17143 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
17144 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17145 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17146 System.Any_Priority to a POSIX priority on the target.
17148 * system-linux-ia64.ads:
17149 Extend range of Priority types on Linux to use the whole range made
17150 available by the system.
17152 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17153 function maps from System.Any_Priority to a POSIX priority on the
17155 (PTHREAD_PRIO_PROTECT): Set real value.
17156 (PTHREAD_PRIO_INHERIT): Now a function.
17157 (SIGCPUFAIL): New signal.
17158 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17159 are documented as reserved by the OS.
17161 * system-aix.ads: Use the full range of priorities provided by the
17164 * s-taprop-posix.adb: Call new function To_Target_Priority.
17165 (Set_Priority): Take into account Task_Dispatching_Policy and
17166 Priority_Specific_Dispatching pragmas when determining if Round Robin
17167 must be used for scheduling the task.
17169 * system-linux-x86_64.ads, system-linux-x86.ads,
17170 system-linux-ppc.ads: Extend range of Priority types on Linux to use
17171 the whole range made available by the system.
17173 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17174 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
17175 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17176 when deallocating the TCB in order to avoid potential references to
17178 (Set_Priority): Take into account Task_Dispatching_Policy and
17179 Priority_Specific_Dispatching pragmas when determining if Round Robin
17180 or FIFO within priorities must be used for scheduling the task.
17182 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17183 the Thread field (to be used internally by the run-time system) and the
17184 kernel-level task id in the LWP field (to be used by the debugger).
17185 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17186 instance, and propagate the current task options to the spawned task.
17187 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17188 (Initialize): Set Round Robin dispatching when the corresponding pragma
17191 2006-10-31 Robert Dewar <dewar@adacore.com>
17193 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17194 system-linux-hppa.ads, system-hpux-ia64.ads,
17195 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17196 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17197 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17198 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17199 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17200 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
17201 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17202 Default_Bit_Order) to kill constant condition warnings for references
17205 2006-10-31 Vincent Celier <celier@adacore.com>
17206 Eric Botcazou <ebotcazou@adacore.com>
17208 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17209 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17210 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17211 Ext_To, when building the library file name
17213 * mlib-tgt-vxworks.adb: ditto.
17214 (Get_Target_Suffix): Add support for x86 targets.
17216 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17218 * mlib-tgt-darwin.adb:
17219 Use Append_To, instead of Ext_To, when building the library file name
17220 (Flat_Namespace): New global variable.
17221 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17222 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17223 (Link_Shared_Libgcc): Delete.
17224 (Build_Dynamic_Library): Adjust for above changes.
17226 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17228 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17230 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17231 (Initialize): Add type conversions required by above change.
17233 2006-10-31 Jose Ruiz <ruiz@adacore.com>
17235 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17236 (getpid): New body for this function that uses the underlying taskIdSelf
17237 function for VxWorks 5 and VxWorks 6 in kernel mode.
17238 (unsigned_int): New type, modular to allow logical bit operations.
17239 (taskOptionsGet): New imported function.
17241 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17242 field to be compliant with the type used by the corresponding operating
17245 2006-10-31 Pascal Obry <obry@adacore.com>
17246 Eric Botcazou <ebotcazou@adacore.com>
17247 Vincent Celier <celier@adacore.com>
17249 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17250 ASCII version of the registry API. This is needed as the GNAT runtime
17251 is now UNICODE by default.
17253 (get_gcc_version): Do not hardcode the return value.
17254 (__gnat_file_time_name): On Windows properly set the default returned
17255 value to -1 which corresponds to Invalid_Time.
17256 (__gnat_fopen): New routine. A simple wrapper on all plateforms
17257 except on Windows where it does conversion for unicode support.
17258 (__gnat_freopen): Idem.
17259 (__gnat_locate_exec_on_path): If environment variable PATH does not
17260 exist, return a NULL pointer
17262 * adaint.h: (__gnat_fopen): Declare.
17263 (__gnat_freopen): Likewise.
17265 * mingw32.h (_tfreopen): Define this macro here for older MingW
17267 Activate the unicode support on platforms using a MingW runtime
17268 version 3.9 or newer.
17270 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17271 This is needed for proper unicode support on Windows.
17274 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17275 Nicolas Setton <setton@adacore.com>
17276 Olivier Hainque <hainque@adacore.com>
17277 Gary Dismukes <dismukes@adacore.com>
17279 * gigi.h: (tree_code_for_record_type): Declare.
17280 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17281 (get_global_renaming_pointers): Rename to
17282 invalidate_global_renaming_pointers.
17283 (static_ctors): Delete.
17284 (static_dtors): Likewise.
17285 (gnat_write_global_declarations): Declare.
17286 (create_var_decl): Adjust descriptive comment to indicate that the
17287 subprogram may return a CONST_DECL node.
17288 (create_true_var_decl): Declare new function, similar to
17289 create_var_decl but forcing the creation of a VAR_DECL node.
17290 (get_global_renaming_pointers): Declare.
17291 (add_global_renaming_pointer): Likewise.
17293 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17295 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17296 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17298 (gnat_to_gnu_entity): Remove From_With_Type from computation for
17300 <E_Access_Type>: Use the Non_Limited_View as the full view of the
17301 designated type if the pointer comes from a limited_with clause. Make
17302 incomplete designated type if it is in the main unit and has a freeze
17304 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17305 Underlying_Full_View similarly. Return earlier if the full view already
17306 has an associated tree.
17307 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17308 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17309 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17310 reference type built for objects with an address clause.
17311 Use create_true_var_decl with const_flag set for
17312 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17314 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17315 for Character and Wide_Character types. This info is read by the
17316 dwarf-2 writer, and is needed to be able to use the command "ptype
17317 character" in the debugger.
17318 (gnat_to_gnu_entity): When generating a type representing
17319 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17320 so that debug writers can distinguish it from ordinary integers.
17321 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17322 addition to TREE_READONLY to assert the constantness of variables for
17323 elaboration purposes.
17324 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17325 parameters to call new Einfo function First_Formal_With_Extras.
17326 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17327 protected type with its corresponding discriminant, to obtain a usable
17329 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17330 for a multiple elaboration of the "equivalent" type.
17331 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17332 into record_global_renaming_pointer.
17333 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17334 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17335 <E_Array_Subtype>: Likewise.
17336 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17337 incomplete subtypes and incomplete subtypes of incomplete types visible
17338 through a limited with clause.
17339 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17340 the base index type for the maximum size of the array only if they are
17342 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17343 expression into a SAVE_EXPR if stabilization failed.
17345 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17346 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17347 by lower level compilation passes.
17348 (gnat_genericize): New function, lowering a function body to GENERIC.
17349 Turn the type of RESULT_DECL into a real reference type if the decl
17350 has been marked DECL_BY_REFERENCE, and adjust references to the latter
17352 (gnat_genericize_r): New function. Tree walking callback for
17354 (convert_from_reference, is_byref_result): New functions. Helpers for
17356 (create_type_decl): Call gnat_pushdecl before calling
17357 rest_of_decl_compilation, to make sure that field TYPE_NAME of
17358 type_decl is properly set before calling the debug information writers.
17359 (write_record_type_debug_info): The heuristics which compute the
17360 alignment of a field in a variant record might not be accurate. Add a
17361 safety test to make sure no alignment is set to a smaller value than
17362 the alignment of the field type.
17363 (make_dummy_type): Use the Non_Limited_View as the underlying type if
17364 the type comes from a limited_with clause. Do not loop on the full view.
17365 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17366 (dummy_node_table): New global variable, moved from decl.c.
17367 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17368 (save_gnu_tree): Use above macros.
17369 (get_gnu_tree): Likewise.
17370 (present_gnu_tree): Likewise.
17371 (init_dummy_type): New function, moved from decl.c. Use above macros.
17372 (make_dummy_type): Likewise.
17373 (tree_code_for_record_type): New function extracted from make_dummy_type
17374 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17375 (static_ctors): Change it to a vector, make static.
17376 (static_dtors): Likewise.
17377 (end_subprog_body): Adjust for above change.
17378 (build_global_cdtor): Moved from trans.c.
17379 (gnat_write_global_declarations): Emit global constructor and
17380 destructor, and call cgraph_optimize before emitting debug info for
17381 global declarations.
17382 (global_decls): New global variable.
17383 (gnat_pushdecl): Store the global declarations in global_decls, for
17385 (gnat_write_global_declarations): Emit debug information for global
17387 (create_var_decl_1): Former create_var_decl, with an extra argument to
17388 state whether the creation of a CONST_DECL is allowed.
17389 (create_var_decl): Behavior unchanged. Now a wrapper around
17390 create_var_decl_1 allowing CONST_DECL creation.
17391 (create_true_var_decl): New function, similar to create_var_decl but
17392 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17393 (create_field_decl): Do not always mark the field as addressable
17394 if its type is an aggregate.
17395 (global_renaming_pointers): New static variable.
17396 (add_global_renaming_pointer): New function.
17397 (get_global_renaming_pointers): Likewise.
17399 * misc.c (gnat_dwarf_name): New function.
17400 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17401 (gnat_post_options): Add comment about structural alias analysis.
17402 (gnat_parse_file): Do not call cgraph_optimize here.
17403 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17405 * trans.c (process_freeze_entity): Don't abort if we already have a
17406 non dummy GCC tree for a Concurrent_Record_Type, as it might
17407 legitimately have been elaborated while processing the associated
17408 Concurrent_Type prior to this explicit freeze node.
17409 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17410 exception handler volatile if it is of variable size.
17411 (process_type): Remove bypass for types coming from a limited_with
17413 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17414 actual, convert the corresponding gnu_actual to the real destination
17415 type when necessary.
17416 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17417 originally TREE_READONLY but whose elaboration cannot be performed
17419 Part of fix for F504-021.
17420 (tree_transform, subprogram cases): Change loops on formal parameters to
17421 call new Einfo function First_Formal_With_Extras.
17422 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17423 stemming from type conversion for the lhs.
17424 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17425 number of bits per unit for components of records.
17426 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17427 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17428 with At_End_Proc after the SJLJ EH cleanup.
17429 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17431 (elaborate_all_entities): Do not retest type_annotate_only.
17432 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17433 result type of an abstract subprogram, which may be an itype associated
17434 with an anonymous access result (related to AI-318-02).
17435 (build_global_cdtor): Move to utils.c.
17436 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17437 this choice is not a null tree nor an integer constant.
17438 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17439 on the body of elaboration routines instead of mark_unvisited.
17440 (add_stmt): Do not mark the tree.
17441 (add_decl_expr): Tweak comment.
17442 (mark_unvisited): Delete.
17443 (unshare_save_expr): New static function.
17444 (call_to_gnu): Issue an error when making a temporary around a
17445 procedure call because of non-addressable actual parameter if the
17446 type of the formal is by_reference.
17447 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17448 after building the elaboration routine.
17450 2006-10-31 Bob Duff <duff@adacore.com>
17452 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17453 as finalization-started, so we can raise Program_Error on 'new'.
17455 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17456 collection has already started.
17458 * s-finimp.ads (Collection_Finalization_Started): Added new special
17459 flag value for indicating that a collection's finalization has started.
17461 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17462 create a task whose master has already waited for dependent tasks.
17464 2006-10-31 Robert Dewar <dewar@adacore.com>
17466 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17468 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17469 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17470 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17471 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17472 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17473 a-except-2005.ads: Add pragma Preelaborable_Warning
17475 2006-10-31 Robert Dewar <dewar@adacore.com>
17476 Jose Ruiz <ruiz@adacore.com>
17478 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17480 * ali.adb (Get_Name): Properly handle scanning of wide character names
17481 encoded with brackets notation.
17482 (Known_ALI_Lines): Add S lines to this list.
17483 (Scan_ALI): Acquire S (priority specific dispatching) lines.
17484 New flag Elaborate_All_Desirable in unit table
17486 * ali.ads (Priority_Specific_Dispatching): Add this range of
17487 identifiers to be used for Priority_Specific_Dispatching table entries.
17488 (ALIs_Record): Add First_Specific_Dispatching and
17489 Last_Specific_Dispatching that point to the first and last entries
17490 respectively in the priority specific dispatching table for this unit.
17491 (Specific_Dispatching): Add this table for storing each S (priority
17492 specific dispatching) line encountered in the input ALI file.
17493 New flag Elaborate_All_Desirable in unit table
17495 * bcheck.adb: (Check_Configuration_Consistency): Add call to
17496 Check_Consistent_Dispatching_Policy.
17497 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17498 verifying that the use of Priority_Specific_Dispatching,
17499 Task_Dispatching_Policy, and Locking_Policy is consistent across the
17502 * bindgen.adb: (Public_Version_Warning): function removed.
17503 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17504 required information from ALI files in order to initialize the table
17505 containing the specific dispatching policy.
17506 (Gen_Adainit_Ada): Generate the variables required for priority specific
17507 dispatching entries (__gl_priority_specific_dispatching and
17508 __gl_num_specific_dispatching).
17509 (Gen_Adainit_C): Generate the variables required for priority specific
17510 dispatching entries (__gl_priority_specific_dispatching and
17511 __gl_num_specific_dispatching).
17512 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17514 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17515 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17517 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17518 a call to gnat_set_globals.
17519 Generate a string containing settings from
17520 Priority_Specific_Dispatching pragma entries.
17521 (Gen_Object_Files_Options): Do not include the runtime libraries when
17522 pragma No_Run_Time is specified.
17524 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17525 consistency with s-intman-posix.adb.
17526 (__gnat_error_handler, case FreeBSD): Account for the fact that the
17527 handler is installed with SA_SIGINFO.
17528 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17529 FreeBSD ZCX support, copied from Linux version.
17530 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17531 sigfillset, and sigemptyset so the routines defined by MaRTE.
17532 (__gl_priority_specific_dispatching): Add this variable that stores the
17533 string containing priority specific dispatching policies in the
17535 (__gl_num_specific_dispatching): Add this variable that indicates the
17536 highest priority for which a priority specific dispatching pragma
17538 (__gnat_get_specific_dispatching): Add this routine that returns the
17539 priority specific dispatching policy, as set by a
17540 Priority_Specific_Dispatching pragma appearing anywhere in the current
17541 partition. The input argument is the priority number, and the result
17542 is the upper case first character of the policy name.
17543 (__gnat_set_globals): Now a dummy function.
17544 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17545 mechargs instead of sigargs, as the latter can be retrieved from the
17546 former and sigargs is not what we want on ia64.
17547 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17549 (__gnat_adjust_context_for_raise, ia64-vms): New function.
17550 (tasking_error): Remove unused symbol.
17551 (_abort_signal): Move this symbol to the IRIX specific part since this
17552 is the only target that uses this definition.
17553 (Check_Abort_Status): Move this symbol to the IRIX specific part since
17554 this is the only target that uses this definition.
17555 (Lock_Task): Remove unused symbol.
17556 (Unlock_Task): Remove unused symbol.
17558 * lib-writ.adb (Write_ALI): Output new S lines for
17559 Priority_Specific_Dispatching pragmas.
17560 Implement new flag BD for elaborate body desirable
17562 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17563 (Specific_Dispatching): Add this table for storing the entries
17564 corresponding to Priority_Specific_Dispatching pragmas.
17565 Document new BD flag for elaborate body desirable
17567 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17570 2006-10-31 Javier Miranda <miranda@adacore.com>
17572 * a-tags.ads, a-tags.adb:
17573 (Predefined_DT): New function that improves readability of the code.
17574 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17575 Inherit_DT): Use the new function Predefined_DT to improve code
17577 (Register_Interface_Tag): Update assertion.
17578 (Set_Interface_Table): Update assertion.
17579 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17580 determining progenitor interfaces in Tags.
17581 (Inherit_CPP_DT): New subprogram.
17583 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17584 analysis of the thunk code.
17585 (Expand_Interface_Conversion): Handle run-time conversion of
17586 access to class wide types.
17587 (Expand_Dispatching_Call): When generating the profile for the
17588 subprogram itype for a dispatching operation, properly terminate the
17589 formal parameters chaind list (set the Next_Entity of the last formal
17591 (Collect_All_Interfaces): Removed. This routine has been moved to
17592 sem_util and renamed as Collect_All_Abstract_Interfaces.
17593 (Set_All_DT_Position): Hidden entities associated with abstract
17594 interface primitives are not taken into account in the check for
17595 3.9.3(10); this check is done with the aliased entity.
17596 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17597 interfacing with CPP by default.
17598 (Expand_Interface_Conversion): Add missing support for static conversion
17599 from an interface to a tagged type.
17600 (Collect_All_Interfaces): Add new out formal containing the list of
17601 abstract interface types to cleanup the subprogram Make_DT.
17602 (Make_DT): Update the code to generate the table of interfaces in case
17603 of abstract interface types.
17604 (Is_Predefined_Dispatching_Alias): New function that returns true if
17605 a primitive is not a predefined dispatching primitive but it is an
17606 alias of a predefined dispatching primitive.
17607 (Make_DT): If the ancestor of the type is a CPP_Class and we are
17608 compiling under full ABI compatibility mode we avoid the generation of
17609 calls to run-time services that fill the dispatch tables because under
17610 this mode we currently inherit the dispatch tables in the IP subprogram.
17611 (Write_DT): Emit an "is null" indication for a null procedure primitive.
17612 (Expand_Interface_Conversion): Use an address as the type of the formal
17613 of the internally built function that handles the case in which the
17614 target type is an access type.
17616 2006-10-31 Robert Dewar <dewar@adacore.com>
17618 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17620 2006-10-31 Robert Dewar <dewar@adacore.com>
17622 * bindusg.ads, bindusg.adb:
17623 Change to package and rename procedure as Display, which
17624 now ensures that it only outputs usage information once.
17626 2006-10-31 Jose Ruiz <ruiz@adacore.com>
17628 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17631 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17634 2006-10-31 Robert Dewar <dewar@adacore.com>
17635 Ed Schonberg <schonberg@adacore.com>
17637 * treepr.adb: Use new subtype N_Membership_Test
17639 * checks.ads, checks.adb: Add definition for Validity_Check
17640 (Range_Or_Validity_Checks_Suppressed): New function
17641 (Ensure_Valid): Test Validity_Check suppressed
17642 (Insert_Valid_Check): Test Validity_Check suppressed
17643 (Insert_Valid_Check): Preserve Do_Range_Check flag
17644 (Validity_Check_Range): New procedure
17645 (Expr_Known_Valid): Result of membership test is always valid
17646 (Selected_Range_Checks): Range checks cannot be applied to discriminants
17647 by themselves. Disabling those checks must also be done for task types,
17648 where discriminants may be used for the bounds of entry families.
17649 (Apply_Address_Clause_Check): Remove side-effects if address expression
17650 is non-static and is not the name of a declared constant.
17651 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
17652 Code cleanup and new error messages.
17653 (Enable_Range_Check): Test for some cases of suppressed checks
17654 (Generate_Index_Checks): Suppress index checks if index checks are
17655 suppressed for array object or array type.
17656 (Apply_Selected_Length_Checks): Give warning for compile-time detected
17657 length check failure, even if checks are off.
17658 (Ensure_Valid): Do not generate a check on an indexed component whose
17659 prefix is a packed boolean array.
17660 * checks.adb: (Alignment_Checks_Suppressed): New function
17661 (Apply_Address_Clause_Check): New procedure, this is a completely
17662 rewritten replacement for Apply_Alignment_Check
17663 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
17664 we request a discriminal value only in case of discriminants.
17665 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
17666 assignments where the target subtype is unconstrained and the target
17667 object is a parameter or dereference (other aliased cases are known
17668 to be unconstrained).
17670 2006-10-31 Robert Dewar <dewar@adacore.com>
17672 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
17673 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
17674 vms_conv.adb: Fix bad table increment values (much too small)
17676 * table.adb (Realloc): Make sure we get at least some new elements
17677 Defends against silly small values for table increment
17679 2006-10-31 Robert Dewar <dewar@adacore.com>
17680 Ed Schonberg <schonberg@adacore.com>
17681 Bob Duff <duff@adacore.com>
17683 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
17684 entities. Move other fields around to make this possible
17685 (Is_Derived_Type): Add missing call to Is_Type.
17686 (Extra_Formals): New function for subprograms, entries, subprogram
17688 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
17689 (First_Formal_With_Extras): New function for subprogs, entries, subp
17691 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
17692 Add node information for E_Return_Statement.
17693 (Elaborate_Body_Desirable): New flag
17694 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
17695 to be Is_Inherently_Limited_Type, because return-by-reference has
17696 no meaning in Ada 2005.
17697 (E_Return_Statement): New entity kind.
17698 (Return_Applies_To): Field of E_Return_Statement.
17699 (Is_Return_Object): New flag in object entities.
17700 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
17701 (Must_Have_Preelab_Init): New flag
17702 (Known_To_Have_Preelab_Init): New flag
17703 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
17704 (Is_Visible_Formal): New flag on entities in formal packages.
17705 (Low_Bound_Known): New flag
17706 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
17708 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
17709 output when Id is an incomplete subtype.
17711 2006-10-31 Robert Dewar <dewar@adacore.com>
17713 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
17714 Avoid abbreviation Creat
17715 (Finalize): List all sources in extended mail source if -gnatl
17717 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
17718 (Finalize): Implement new -gnatl=xxx switch to output listing to file
17719 (Set_Specific_Warning_On): New procedure
17720 (Set_Specific_Warning_Off): New procedure
17721 Add implementation of new insertion \\
17722 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
17723 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
17725 (Error_Msg_Internal): Make sure that we set Last_Killed to
17726 True when a message from another package is suppressed.
17727 Implement insertion character ~ (insert string)
17728 (First_Node): Minor adjustments to get better placement.
17731 Implement new -gnatl=xxx switch to output listing to file
17734 Implement new -gnatl=xxx switch to output listing to file
17736 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
17737 (Commands_To_Stdout): New flag
17738 Implement new -gnatl=xxx switch to output listing to file
17739 New switch Dump_Source_Text
17740 (Warn_On_Deleted_Code): New warning flag for -gnatwt
17741 Define Error_Msg_Line_Length
17742 (Warn_On_Assumed_Low_Bound): New switch
17744 * osint.ads, osint.adb
17745 (Normalize_Directory_Name): Fix bug.
17746 Implement new -gnatl=xxx switch to output listing to file
17747 (Concat): Removed, replaced by real concatenation
17748 Make use of concatenation now allowed in compiler
17749 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
17750 we find the 'lib' or 'bin' directory even when the tool has been
17751 invoked with a relative path.
17752 (Executable_Name): New function taking string parameters.
17754 * osint-c.ads, osint-c.adb:
17755 Implement new -gnatl=xxx switch to output listing to file
17757 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
17760 Implement new -gnatl=xxx switch to output listing to file
17761 Recognize new -gnatL switch
17762 (no longer keep in old warning about old style usage)
17763 Use concatenation to simplify code
17764 Recognize -gnatjnn switch
17765 (Scan_Front_End_Switches): Clean up handling of -gnatW
17766 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
17768 2006-10-31 Robert Dewar <dewar@adacore.com>
17770 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
17771 (Set_Specific_Warning_Off): New procedure
17772 (Warning_Specifically_Suppressed): New function
17773 (Validate_Specific_Warnings): New procedure
17774 (Output_Msg_Text): Complete rewrite to support -gnatjnn
17776 * err_vars.ads: Implement insertion character ~ (insert string)
17778 2006-10-31 Bob Duff <duff@adacore.com>
17779 Ed Schonberg <schonberg@adacore.com>
17781 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
17782 the parent part is a build-in-place function call, generate assignments.
17783 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
17784 are build-in-place function calls.
17785 (Replace_Self_Reference): New subsidiary of
17786 Make_OK_Assignment_Statement, to replace an access attribute that is a
17787 self-reference into an access to the appropriate component of the
17788 target object. Generalizes previous mechanism to handle self-references
17789 nested at any level.
17790 (Is_Self_Referential_Init): Remove, not needed.
17791 (Is_Self_Referential_Init): New predicate to simplify handling of self
17792 referential components in record aggregates.
17793 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
17794 check for presence of entity before checking for self-reference.
17795 (Has_Default_Init_Comps): Return True if a component association is a
17796 self-reference to the enclosing type, which can only come from a
17797 default initialization.
17798 (Make_OK_Assignment_Statement): If the expression is of the form
17799 Typ'Acc, where Acc is an access attribute, the expression comes from a
17800 default initialized self-referential component.
17801 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
17802 that has been derived from several abstract interfaces we must also
17803 initialize the tags of the secondary dispatch tables.
17805 2006-10-31 Ed Schonberg <schonberg@adacore.com>
17806 Thomas Quinot <quinot@adacore.com>
17807 Javier Miranda <miranda@adacore.com>
17808 Robert Dewar <dewar@adacore.com>
17811 (Expand_Access_To_Protected_Op): If the context indicates that an access
17812 to a local operation may be transfered outside of the object, create an
17813 access to the wrapper operation that must be used in an external call.
17814 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
17815 target, pass the Valid attribute applied to a floating-point prefix on
17816 to the back end without expansion.
17817 (Storage_Size): Use the new run-time function Storage_Size to retrieve
17818 the allocated storage when it is specified by a per-object expression.
17819 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
17820 Nothing to do here, the attribute has been rewritten during semantic
17822 (Expand_Attribute_Reference): Handle expansion of the new Priority
17824 (Find_Fat_Info): Handle case of universal real
17825 (Expand_Access_To_Protected_Op): Fix use of access to protected
17826 subprogram from inside the body of a protected entry.
17827 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
17828 'Access and 'Unrestricted_Access, to transform the attribute reference
17829 into a fat pointer.
17830 (Is_Constrained_Aliased_View): New predicate to help determine whether a
17831 subcomponent's enclosing variable is aliased with a constrained subtype.
17832 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
17833 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
17834 an aliased prefix must be known to be constrained in order to use True
17835 for the attribute value, and now it's possible for some aliased views
17836 to be unconstrained.
17838 2006-10-31 Robert Dewar <dewar@adacore.com>
17840 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
17841 (Expand_Entity_Reference): Correct error of not handling subprogram
17842 formals in current_value processing.
17844 2006-10-31 Javier Miranda <miranda@adacore.com>
17845 Robert Dewar <dewar@adacore.com>
17846 Ed Schonberg <schonberg@adacore.com>
17847 Gary Dismukes <dismukes@adacore.com>
17849 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
17850 register in the final list objects containing class-wide interfaces;
17851 otherwise we incorrectly register the tag of the interface in the final
17853 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
17854 generate the wrapper if the parent primitive is abstract. This is
17855 required to report the correct error message.
17856 (Expand_N_Subtype_Indication): Do validity checks on range
17857 (Clean_Task_Names): If an initialization procedure includes a call to
17858 initialize a task (sub)component, indicate that the procedure will use
17859 the secondary stack.
17860 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
17861 compatibility for interfacing with CPP by default.
17862 (Expand_N_Object_Declaration): Only build an Adjust call when the
17863 object's type is a nonlimited controlled type.
17864 * exp_ch3.adb: Add with and use of Exp_Ch6.
17865 (Expand_N_Object_Declaration): Check for object initialization that is a
17866 call to build-in-place function and apply Make_Build_In_Place_Call_In_
17867 Object_Declaration to the call.
17868 (Freeze_Type): When the designated type of an RACW was not frozen at the
17869 point where the RACW was declared, validate the primitive operations
17870 with respect to E.2.2(14) when it finally is frozen.
17871 (Build_Initialization_Call,Expand_Record_Controller): Rename
17872 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
17873 return-by-reference has no meaning in Ada 2005.
17874 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
17875 to register tag of the immediate ancestor interfaces in the
17876 run-time structure.
17877 (Init_Secondary_Tags): Moved to the specification to allow the
17878 initialization of extension aggregates with abstract interfaces.
17879 (Build_Master_Renaming): Make public, for use by function declarations
17880 whose return type is an anonymous access type.
17881 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
17882 Insert_List_Before_And_Analyze after the generation of the specs
17883 associated with null procedures.
17884 (Expand_Tagged_Root): Update documentation in its specification.
17885 (Init_Secondary_Tags): Update documentation.
17886 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
17887 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
17888 then generate code to inherit the contents of the dispatch table
17889 directly from the ancestor.
17890 (Expand_Record_Controller): Insert controller component after tags of
17891 implemented interfaces.
17892 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
17893 create null procedure overridings when null procedures are inherited
17895 (Make_Null_Procedure_Specs): New procedure to generate null procedure
17896 declarations for overriding null primitives inherited from interfaces.
17897 (Is_Null_Interface_Procedure): New function in
17898 Make_Null_Procedure_Specs.
17899 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
17900 immediate ancestor of a tagged type is an abstract interface type we
17901 must generate the specification of the predefined primitives associated
17902 with controlled types (because the dispatch table of the ancestor is
17903 null and hence these entries cannot be inherited). This is required to
17904 elaborate well the dispatch table.
17906 2006-10-31 Javier Miranda <miranda@adacore.com>
17907 Ed Schonberg <schonberg@adacore.com>
17908 Bob Duff <duff@adacore.com>
17909 Gary Dismukes <dismukes@adacore.com>
17910 Robert Dewar <dewar@adacore.com>
17912 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
17914 (Expand_N_In): Do validity checks on range
17915 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
17916 (Expand_N_Allocator): For "new T", if the object is constrained by
17917 discriminant defaults, allocate the right amount of memory, rather than
17918 the maximum for type T.
17919 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
17920 when the allocator is initialized by a build-in-place call, since the
17921 allocator is already rewritten as a reference to the function result,
17922 and this prevents an unwanted duplication of the function call.
17923 Add with and use of Exp_Ch6.
17924 (Expand_Allocator_Expresssion): Check for an allocator whose expression
17925 is a call to build-in-place function and apply
17926 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
17927 untagged designated types).
17928 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
17929 optimization if source or target is biased.
17930 (Expand_N_Allocator): Add comments for case of an allocator within a
17931 function that returns an anonymous access type designating tasks.
17932 (Expand_N_Allocator): apply discriminant checks for access
17933 discriminants of anonymous access types (AI-402, AI-416)
17935 2006-10-31 Bob Duff <duff@adacore.com>
17936 Robert Dewar <dewar@adacore.com>
17937 Gary Dismukes <dismukes@adacore.com>
17938 Ed Schonberg <schonberg@adacore.com>
17940 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
17942 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
17943 (Expand_N_Assignment_Statement): Call
17944 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
17945 build-in-place function call. Currently, this can happen only for
17946 assignments that come from aggregates.
17947 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
17948 in order to alleviate the upward compatibility introduced by AI-318.
17949 (Expand_N_Extended_Return_Statement): Add support for handling the
17950 return object as a build-in-place result.
17951 (Expand_Non_Function_Return): Implement simple return statements nested
17952 within an extended return.
17953 (Enable_New_Return_Processing): Turn on the new processing of return
17955 (Expand_Non_Function_Return): For a return within an extended return,
17956 don't raise Program_Error, because Sem_Ch6 now gives a warning.
17957 (Expand_N_Extended_Return_Statement): Implement AI-318
17958 (Expand_Simple_Function_Return): Ditto.
17959 (Expand_N_If_Statement): Handle new -gnatwt warning
17960 (Expand_N_Case_Statement): Handle new -gnatwt warning
17961 (Expand_N_Assignment): Handle assignment to the Priority attribute of
17962 a protected object.
17963 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
17964 validity checking of assignments to elementary record components.
17965 (Expand_N_Return_Statement): return Class Wide types on the secondary
17966 stack independantly of their controlled status since with HIE runtimes,
17967 class wide types are not potentially controlled anymore.
17969 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
17972 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
17973 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
17974 it expects a block, procedure, or task. The return statement will get
17975 turned into a block, and Expand_Cleanup_Actions will happen then.
17977 2006-10-31 Robert Dewar <dewar@adacore.com>
17978 Ed Schonberg <schonberg@adacore.com>
17979 Bob Duff <duff@adacore.com>
17980 Gary Dismukes <dismukes@adacore.com>
17982 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
17984 (Expand_Inlined_Call): Tagged types are by-reference types, and
17985 therefore should be replaced by a renaming declaration in the expanded
17986 body, as is done for limited types.
17987 (Expand_Call): If this is a call to a function with dispatching access
17988 result, propagate tag from context.
17989 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
17991 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
17992 build-in-place when the right-hand side of an assignment is a
17993 build-in-place function call.
17994 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
17995 of the explicit dereference of the allocator to the result subtype of
17996 the build-in-place function. This is needed to satisfy type checking
17997 in cases where the caller's return object is created by an allocator for
17998 a class-wide access type and the type named in the allocator is a
18000 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18001 conversion of the reference to the declared object to the result subtype
18002 of the build-in-place function. This is needed to satisfy type checking
18003 in cases where the declared object has a class-wide type. Also, in the
18004 class-wide case, change the type of the object entity to the specific
18005 result subtype of the function, to avoid passing a class-wide object
18006 without explicit initialization to the back end.
18007 (Register_Interface_DT_Entry): Moved outside the body of
18008 Freeze_Subprogram because this routine is now public; it is called from
18009 Check_Dispatching_Overriding to handle late overriding of abstract
18010 interface primitives.
18011 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18012 adding an implicit access actual on a call to a build-in-place function.
18013 (Expand_Actuals): Test for an actual parameter that is a call to a
18014 build-in-place function and apply
18015 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18016 (Is_Build_In_Place_Function): New function to determine whether an
18017 entity is a function whose calls should be handled as build-in-place.
18018 (Is_Build_In_Place_Function_Call): New function to determine whether an
18019 expression is a function call that should handled as build-in-place.
18020 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18021 calls to build-in-place functions as the initialization of an allocator.
18022 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18023 handling calls to build-in-place functions in contexts that do not
18024 involve init of a separate object (for example, actuals of subprogram
18026 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18027 handling calls to build-in-place functions as the initialization of an
18028 object declaration.
18029 (Detect_Infinite_Recursion): Add explicit parameter Process to
18030 instantiation of Traverse_Body to avoid unreferenced warning.
18031 (Check_Overriding_Inherited_Interfaces): Removed.
18032 (Register_Interface_DT_Entry): Code cleanup.
18033 (Register_Predefined_DT_Entry): Code cleanup.
18034 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18035 inlined statements if within a transient scope.
18036 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18037 formal parameters with occurrences of actuals in inlined body, establish
18038 visibility on the proper view of the actual's subtype for the body's
18040 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18041 compatibility mode and we have an imported CPP subprogram because
18042 for now we assume that imported CPP primitives correspond with
18043 objects whose constructor is in the CPP side (and therefore we
18044 don't need to generate code to register them in the dispatch table).
18045 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18046 aligned selected component.
18047 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18048 the actual of an in-mode parameter is a type conversion.
18049 (Expand_Actuals): If the call does not come from source and the actual
18050 is potentially misaligned, let gigi handle it rather than rejecting the
18051 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18052 Class Wide types as returning by reference independantly of their
18053 controlled status since with HIE runtimes class wide types are not
18054 potentially controlled anymore.
18056 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18058 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
18059 references that are private components of the protected object.
18060 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18061 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18062 instantiation to deal with warnings.
18063 (Initialize_Protection): If expression for priority is non-static, use
18064 System_Priority as its expected type, in case the expression has not
18067 2006-10-31 Robert Dewar <dewar@adacore.com>
18069 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18070 initialization of Homonym_Len.
18071 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18072 names from fully qualified name. Fixes problem of duplicate
18073 external names differing only in the presence of such a block name.
18075 2006-10-31 Thomas Quinot <quinot@adacore.com>
18076 Pablo Oliveira <oliveira@adacore.com>
18078 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
18079 subprogram Ids, even if they are not yet assigned.
18080 (Build_Subprogram_Id): It is now this function that will take care of
18081 calling Assign_Subprogram_Ids if necessary.
18082 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18083 should be done only once they are assigned.
18084 (Build_From_Any_Function, case of tagged types): Add missing call to
18086 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18087 type for an RACW type.
18088 (Add_RACW_Features): When processing an RACW declaration for which the
18089 designated type is already frozen, enforce E.2.2(14) rules immediately.
18090 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18091 special reordering of controlling formals.
18093 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18094 associated stub type for an RACW type.
18096 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18098 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18099 fixed-point operations in an integer context, i.e. as operands of a
18100 conversion to an integer type, indicate that result must be rounded.
18102 2006-10-31 Robert Dewar <dewar@adacore.com>
18104 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18105 cases, pass the encoding method, since it is now required by the run
18108 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18109 assumption that Str'First = 1.
18110 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18111 it on to the Value_Wide_Wide_Character call.
18112 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18113 properly handles a string of the form quote-encoded_wide_char-quote.
18115 * s-wchcnv.adb: Minor reformatting
18117 2006-10-31 Javier Miranda <miranda@adacore.com>
18119 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18120 run-time membership test to ensure that the constructed object
18121 implements the target abstract interface.
18123 2006-10-31 Robert Dewar <dewar@adacore.com>
18125 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18126 Machine_Attribute pragma internally to implement the user pragma.
18127 Add processing for pragma Interface so that it is now completely
18128 equivalent to pragma Import.
18130 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18131 so that it can be applied to all entities, including record components
18132 and enumeration literals.
18133 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18134 priority ranges are correct, verify compatibility against task
18135 dispatching and locking policies, and if everything is correct an entry
18136 is added to the table containing priority specific dispatching entries
18137 for this compilation unit.
18138 (Delay_Config_Pragma_Analyze): Delay processing
18139 Priority_Specific_Dispatching pragmas because when processing the
18140 pragma we need to access run-time data, such as the range of
18141 System.Any_Priority.
18142 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18143 Allow pragma Unreferenced as a context item
18144 Add pragma Preelaborable_Initialization
18145 (Analyze_Pragma, case Interface): Interface is extended so that it is
18146 now syntactically and semantically equivalent to Import.
18147 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18148 insertion characters.
18149 Add handling for Pragma_Wide_Character_Encoding
18150 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18151 never supercedes a real restriction, and that a real restriction
18152 always supercedes a warning.
18153 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18156 2006-10-31 Bob Duff <duff@adacore.com>
18157 Ed Schonberg <schonberg@adacore.com>
18158 Robert Dewar <dewar@adacore.com>
18160 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18161 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18162 Is_Inherently_Limited_Type, because return-by-reference has no meaning
18164 (Find_Node_To_Be_Wrapped): Use new method of determining the result
18165 type of the function containing a return statement, because the
18166 Return_Type field was removed. We now use the Return_Applies_To field.
18168 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
18169 (Build_Task_Image_Decl): If procedure is not called from an
18170 initialization procedure, indicate that function that builds task name
18171 uses the sec. stack. Otherwise the enclosing initialization procedure
18172 will carry the indication.
18173 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18174 N_Object_Declaration instead.
18175 (Kill_Dead_Code): New interface to implement -gnatwt warning for
18176 conditional dead code killed, and change implementation accordingly.
18177 (Insert_Actions): Add N_Return_Object_Declaration case.
18178 Correct comment to mention N_Extension_Aggregate node.
18179 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18180 attempts to save information for global variables which cannot be
18182 (Get_Current_Value_Condition): Handle conditions the other way round
18183 (constant on left). Also handle right operand of AND and AND THEN
18184 (Set_Current_Value_Condition): Corresponding changes
18185 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18186 (Get_Current_Value_Condition): Handle simple boolean operands
18187 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18188 (Get_Current_Value_Condition): If the variable reference is within an
18189 if-statement, does not appear in the list of then_statments, and does
18190 not come from source, treat it as being at unknown location.
18191 (Get_Current_Value_Condition): Enhance to allow while statements to be
18192 processed as well as if statements.
18193 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18195 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18196 of loop. This is safe now that we fixed Kill_Current_Values.
18197 (OK_To_Do_Constant_Replacement): Check whether current scope is
18198 Standard, before examining outer scopes.
18200 2006-10-31 Vincent Celier <celier@adacore.com>
18202 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18203 When True, apply VMS treatment to children of packages A, G, I and S.
18206 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18208 2006-10-31 Robert Dewar <dewar@adacore.com>
18209 Ed Schonberg <schonberg@adacore.com>
18211 * freeze.adb: Add handling of Last_Assignment field
18212 (Warn_Overlay): Supply missing continuation marks in error msgs
18213 (Freeze_Entity): Add check for Preelaborable_Initialization
18215 * g-comlin.adb: Add Warnings (Off) to prevent new warning
18217 * g-expect.adb: Add Warnings (Off) to prevent new warning
18219 * lib-xref.adb: Add handling of Last_Assignment field
18220 (Generate_Reference): Centralize handling of pragma Obsolescent here
18221 (Generate_Reference): Accept an implicit reference generated for a
18222 default in an instance.
18223 (Generate_Reference): Accept a reference for a node that is not in the
18224 main unit, if it is the generic body corresponding to an subprogram
18227 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18229 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18231 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18233 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18234 use clauses, to avoid messages on packages used to qualify, and also
18235 to avoid messages from obsolescent units.
18236 (Warn_On_Useless_Assignments): Don't generate messages for imported
18237 and exported variables.
18238 (Warn_On_Useless_Assignments): New procedure
18239 (Output_Obsolescent_Entity_Warnings): New procedure
18240 (Check_Code_Statement): New procedure
18242 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18243 Change name Is_Ada_2005 to Is_Ada_2005_Only
18244 (Last_Assignment): New field for useless assignment warning
18246 2006-10-31 Olivier Hainque <hainque@adacore.com>
18248 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18249 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18251 2006-10-31 Bob Duff <duff@adacore.com>
18252 Robert Dewar <dewar@adacore.com>
18253 Ed Schonberg <schonberg@adacore.com>
18255 * g-awk.adb (Default_Session, Current_Session): Compile this file in
18256 Ada 95 mode, because it violates the new rules for AI-318.
18258 * g-awk.ads: Use overloaded subprograms in every case where we used to
18259 have a default of Current_Session. This makes the code closer to be
18260 correct for both Ada 95 and 2005.
18262 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18263 code, relying on the fact that the compiler generates a warning
18264 instead of an error in -gnatg mode.
18266 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18267 E_Return_Statement entity kind.
18268 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18270 * par.adb (P_Interface_Type_Definition): Addition of one formal to
18271 report an error if the reserved word abstract has been previously found.
18272 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18274 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18275 parenthesized range attribute usage
18276 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18278 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18279 in the syntax for extended_return_statement. This is not in the latest
18280 RM, but the ARG is expected to issue an AI allowing this.
18281 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18282 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18283 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18284 P_Return_Statement): Parse the new syntax for extended_return_statement.
18286 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18287 Output_End_Missing): Add error-recovery code for the new
18288 extended_return_statement syntax; that is, the new E_Return entry on
18291 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18292 limited to nonlimited, because otherwise we violate the new Ada 2005
18293 rules about returning limited types in function Create_AST_Handler in
18296 * sem.adb (Analyze): Add cases for new node kinds
18297 N_Extended_Return_Statement and N_Return_Object_Declaration.
18299 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18300 type is in the same category as type of context before applying check,
18301 to prevent anomalies in instantiations.
18302 (Resolve_Aggregate): Remove test for limited components in aggregates.
18303 It's unnecessary in Ada 95, because if it has limited components, then
18304 it must be limited. It's wrong in Ada 2005, because limited aggregates
18306 (Resolve_Record_Aggregate): Move check for limited types later, because
18307 OK_For_Limited_Init requires its argument to have been resolved.
18308 (Get_Value): When copying the component default expression for a
18309 defaulted association in an aggregate, use the sloc of the aggregate
18310 and not that of the original expression, to prevent spurious
18311 elaboration errors, when the expression includes function calls.
18312 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18313 were missing. We also didn't handle qualified expressions. Now also
18314 allow function calls. Use new common routine OK_For_Limited_Init.
18315 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18316 with space can upper case letter).
18318 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18319 Has_Static_Discriminants flag
18320 (Record_Type_Declaration): Diagnose an attempt to declare an interface
18321 type with discriminants.
18322 (Process_Range_Expr_In_Decl): Do validity checks on range
18323 (Build_Discriminant_Constraints): Use updated form of
18324 Denotes_Discriminant.
18325 (Process_Subtype): If the subtype is a private subtype whose full view
18326 is a concurrent subtype, introduce an itype reference to prevent scope
18328 (Build_Derived_Record_Type, Collect_Interface_Primitives,
18329 Record_Type_Declaration): The functionality of the subprograms
18330 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18331 is now performed by a single routine.
18332 (Build_Derived_Record_Type): If the type definition includes an explicit
18333 indication of limitedness, then the type must be marked as limited here
18334 to ensure that any access discriminants will not be treated as having
18335 a local anonymous access type.
18336 (Check_Abstract_Overriding): Issue a detailed error message when an
18337 abstract subprogram was not overridden due to incorrect mode of its
18339 (Analyze_Private_Extension_Declaration): Add support for the analysis of
18340 synchronized private extension declarations. Verify that the ancestor is
18341 a limited or synchronized interface or in the generic case, the ancestor
18342 is a tagged limited type or synchronized interface and all progenitors
18343 are either limited or synchronized interfaces.
18344 Derived_Type_Declaration): Check for presence of private extension when
18345 dealing with synchronized formal derived types.
18346 Process_Full_View): Enchance the check done on the usage of "limited" by
18347 testing whether the private view is synchronized.
18348 Verify that a synchronized private view is completed by a protected or
18350 (OK_For_Limited_Init_In_05): New function.
18351 (Analyze_Object_Declaration): Move check for limited types later,
18352 because OK_For_Limited_Init requires its argument to have been resolved.
18353 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18354 in order to alleviate the upward compatibility introduced by AI-318.
18355 (Constrain_Corresponding_Record): If the constraint is for a component
18356 subtype, mark the itype as frozen, to avoid out-of-scope references to
18357 discriminants in the back-end.
18358 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18359 this subprogram against wrong sources.
18360 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18361 discriminant of limited type completed with a protected type, when the
18362 discriminant is used to constrain a private component of the type, and
18363 expansion is disabled.
18364 (Find_Type_Of_Object): Do not treat a return subtype that is an
18365 anonymous subtype as a local_anonymous_type, because its accessibility
18366 level is the return type of the enclosing function.
18367 (Check_Initialization): In -gnatg mode, turn the error "cannot
18368 initialize entities of limited type" into a warning.
18369 (OK_For_Limited_Init): Return true for generated nodes, since it
18370 sometimes violates the legality rules.
18371 (Make_Incomplete_Declaration): If the type for which an incomplete
18372 declaration is created happens to be the currently visible entity,
18373 preserve the homonym chain when removing it from visibility.
18374 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18375 inherited subprograms.
18376 (Access_Definition): If this is an access to function that is the return
18377 type of an access_to_function definition, context is a type declaration
18378 and the scope of the anonymous type is the current one.
18379 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18380 incomplete subtype to the set of private dependents of the original
18382 (Constrain_Discriminated_Type): Emit an error message whenever an
18383 incomplete subtype is being constrained.
18384 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18385 corresponding subtype of the full view of the original incomplete type.
18386 (Check_Incomplete): Properly detect invalid usage of incomplete types
18389 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18391 * g-catiio.ads, g-catiio.adb (Value): New function.
18392 Given an input String, try and parse a valid Time value.
18394 2006-10-31 Vincent Celier <celier@adacore.com>
18396 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18397 Integer_Address arithmetic, as in Set_Valid.
18399 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18400 Robert Dewar <dewar@adacore.com>
18402 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18403 handling executable extension manually and duplicating code.
18405 * make.adb: Implement new -S switch
18406 (Gnatmake): Use new function Osint.Executable_Name instead
18407 of handling executable extension manually.
18409 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18410 is specified, the executable name ends with this suffix.
18411 Take advantage of Osint.Executable_Name instead of duplicating code.
18413 * switch-m.adb: Recognize new gnatmake -S switch
18415 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18417 (Get_Target_Parameters): Set Executable_Extension_On_Target if
18420 * makeusg.adb: Add line for gnatmake -S switch
18422 2006-10-31 Vincent Celier <celier@adacore.com>
18424 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18425 call it with -static-libgcc, as there are some platforms, such as
18426 Darwin, where one of these two switches is compulsory to link.
18428 2006-10-31 Vincent Celier <celier@adacore.com>
18430 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18431 instead of ADA_PROJECT_PATH, for the project path.
18432 (Gnatls): When displaying the project path directories, use host dir
18435 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18436 names in the project path, as absolute paths may correspond to
18437 multi-valued VMS logical names.
18439 2006-10-31 Vincent Celier <celier@adacore.com>
18441 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18442 absolute path name.
18443 (Locate_Regular_File): Ditto
18444 (Change_Dir): Remove, no longer used
18445 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18446 on Windows. Get it calling Get_Current_Dir.
18447 (OpenVMS): Remove imported boolean, no longer needed.
18448 (Normalize_Pathname)[VMS]: Do not resolve directory names.
18449 (Pid_To_Integer): New function to convert a Process_Id to Integer
18451 2006-10-31 Thomas Quinot <quinot@adacore.com>
18453 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18454 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18456 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18459 2006-10-31 Robert Dewar <dewar@adacore.com>
18461 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18462 initial letter o as a zero.
18464 2006-10-31 Robert Dewar <dewar@adacore.com>
18466 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18468 2006-10-31 Robert Dewar <dewar@adacore.com>
18470 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18472 (Layout_Variant_Record): Retrieve the discriminants from the entity
18473 rather than from the type definition, because in the case of a full
18474 type for a private type we need to take the discriminants from the
18476 (Layout_Component_List): When applying the Max operator to variants with
18477 a nonstatic size, check whether either operand is static and scale that
18478 operand from bits to storage units before applying Max.
18479 (Layout_Type): In VMS, if a C-convention access type has no explicit
18480 size clause (and does not inherit one in the case of a derived type),
18481 then the size is reset to 32 from 64.
18483 2006-10-31 Vincent Celier <celier@adacore.com>
18485 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18486 its file has already been loaded, according to the unit being loaded,
18487 not to the current value of Multiple_Unit_Index.
18489 2006-10-31 Thomas Quinot <quinot@adacore.com>
18490 Eric Botcazou <ebotcazou@adacore.com>
18491 Arnaud Charlet <charlet@adacore.com>
18493 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18494 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18496 (a-except.o): Pass it to the compiler.
18497 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18498 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18499 a-calend-mingw.adb version.
18501 * Makefile.rtl: Added s-dsaser.
18502 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18503 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18504 Ada.Dispatching.Round_Robin.
18505 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18507 * Make-lang.in: Remove all references to gt-ada-decl.h.
18508 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18510 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18511 Update dependencies.
18513 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18515 2006-10-31 Vincent Celier <celier@adacore.com>
18517 * mlib-utl.adb (Initialized): Remove, no longer used
18518 (Initialize): Remove, no longer used
18519 (Ar): If Ar_Exec is null, get the location of the archive builder and,
18520 if there is one, the archive indexer. Fail if the archive builder cannot
18522 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18525 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18527 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18528 Process_Body_Clauses): If the context of a body includes a use clause
18529 for P.Q then a with_clause for P in the same body is not redundant,
18530 even if the spec also has a with_clause on P.
18531 Add missing continuation mark to error msg
18532 (Build_Limited_Views): A limited view of a type is tagged if its
18533 declaration includes a record extension.
18534 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18535 node, even if the subunit has errors. This avoids malfunction by
18536 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18537 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18538 generation of obsolescent messages for with statements (cannot do
18539 this too early, or we cannot implement avoiding the messages in the
18540 case of obsolescent units withing obsolescent units).
18541 (Install_Siblings): If the with_clause is on a remote descendant of
18542 an ancestor of the current compilation unit, find whether there is
18543 a sibling child unit that is immediately visible.
18544 (Remove_Private_With_Clauses): New procedure, invoked after completing
18545 the analysis of the private part of a nested package, to remove from
18546 visibility the private with_clauses of the enclosing package
18548 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18549 now centralized in Generate_Reference.
18550 (Install_Limited_Context_Clauses): Remove superfluous error
18551 message associated with unlimited view visible through use
18552 and renamings. In addition, at the point in which the error
18553 is reported, we add the backslash to the text of the error
18554 to ensure that it is reported as a single error message.
18555 Use new // insertion for some continuation messages
18556 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18557 to create implicit with_clause for parent unit mentioned in original
18558 limited_with_clause.
18559 (Install_Limited_With_Unit): Set entity of parent identifiers if the
18560 unit is a child unit. For ASIS queries.
18561 (Analyze_Subunit): If the subunit appears within a child unit, make all
18562 ancestor child units directly visible again.
18564 2006-10-31 Robert Dewar <dewar@adacore.com>
18566 * par-ch10.adb (P_Context_Clause): Minor error message fix
18568 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18569 Javier Miranda <miranda@adacore.com>
18571 * par-ch12.adb: Grammar update and cleanup.
18572 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18573 support for synchronized derived type definitions.
18574 Add the new actual Abstract_Present to every call to
18575 P_Interface_Type_Definition.
18576 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18577 a formal object declaration with an access definition or a subtype mark
18578 with a null exclusion.
18579 (P_Generic_Association): Handle association with box, and others_choice
18580 with box, to support Ada 2005 partially parametrized formal packages.
18582 2006-10-31 Robert Dewar <dewar@adacore.com>
18583 Javier Miranda <miranda@adacore.com>
18585 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18586 (P_Type_Declaration): Remove barrier against the reserved word "limited"
18587 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18588 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18589 private extensions.
18590 (P_Type_Declaration): Add the new actual Abstract_Present to every call
18591 to P_Interface_Type_Definition.
18592 (P_Interface_Type_Definition): Addition of one formal to report an error
18593 if the reserved word abstract has been previously found.
18594 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18595 object renaming declaration with an access definition or subtype mark
18596 with a possible null exclusion.
18598 * par-ch9.adb: Minor error msg fix
18600 * par-load.adb: Add missing continuation mark to error msg
18602 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18604 2006-10-31 Vincent Celier <celier@adacore.com>
18606 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18607 unknown attribute in unknown package or in package that does not need
18609 (Parse_Package_Declaration): Do not issue warning for unknown package in
18612 2006-10-31 Vincent Celier <celier@adacore.com>
18614 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18615 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18618 2006-10-31 Vincent Celier <celier@adacore.com>
18620 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18621 on VMS, change "__" to '.' before checking the name.
18622 (Record_Ada_Source): Always add the source file name in the list of
18623 of sources, even if it is not the first time, as it is for another
18625 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18626 dot, instead of replacing only the first '_'.
18628 * prj-part.adb (Parse): Convert project file path to canonical form
18630 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18631 extended, the project id of the project extending it is recorded in its
18632 data, even when it has already been processed as an imported project.
18634 2006-10-31 Robert Dewar <dewar@adacore.com>
18636 * repinfo.adb (List_Entities): Don't list entities from renaming
18639 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18640 Robert Dewar <dewar@adacore.com>
18642 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
18643 only a restriction warning is active for the given restriction. This is
18644 desirable because we do not want to modify code in the case where only
18646 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
18647 causes overriding of real restrictions.
18648 Take advantage of new No_Restrictions constant.
18650 * raise.h: (__gnat_set_globals): Change profile.
18652 2006-10-31 Arnaud Charlet <charlet@adacore.com>
18654 * rtsfind.adb: Remove s-polint from comment as it exists no more.
18657 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
18658 Move all the entities in obsolete package System.PolyORB_Interface to
18659 System.Partition_Interface.
18660 (RE_Storage_Size): New function in System.Tasking.
18661 (RE_Get_Ceiling): New entity.
18662 (RE_Set_Ceiling): New entity.
18663 (RO_PE_Get_Ceiling): New entity.
18664 (RO_RE_Set_Ceiling): New entity.
18665 (Inherit_CPP_DT): New entity
18667 2006-10-31 Robert Dewar <dewar@adacore.com>
18669 * scng.adb (Scan, case of numeric literal): Better msg for identifier
18670 starting with a digit.
18672 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18673 Thomas Quinot <quinot@adacore.com>
18674 Javier Miranda <miranda@adacore.com>
18675 Gary Dismukes <dismukes@adacore.com>
18677 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
18678 properly an attempt to apply Unchecked_Access to a protected operation.
18679 (OK_Self_Reference): New subprogram to check the legality of an access
18680 attribute whose prefix is the type of an enclosing aggregate.
18681 Generalizes previous mechanism to handle attribute references nested
18682 arbitrarily deep within the aggregate.
18683 (Analyze_Access_Attribute): An access attribute whose prefix is a type
18684 can appear in an aggregate if this is a default-initialized aggregate
18685 for a self-referential type.
18686 (Resolve_Attribute, case Access): Ditto.
18687 Add support for new implementation defined attribute Stub_Type.
18688 (Eval_Attribute, case Attribute_Stub_Type): New case.
18689 (Analyze_Attribute, case Attribute_Stub_Type): New case.
18690 (Stream_Attribute_Available): Implement using new subprogram from
18691 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
18692 Has_Specified_Stream_Attribute flag.
18693 Disallow Storage_Size and Storage_Pool for access to subprogram
18694 (Resolve_Attribute, case 'Access et al): Take into account anonymous
18695 access types of return subtypes in extended return statements. Remove
18696 accessibility checks on anonymous access types when Unchecked_Access is
18698 (Analyze_Attribute): Add support for the use of 'Class to convert
18699 a class-wide interface to a tagged type.
18700 Add support for the attribute Priority.
18701 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
18702 whether the designated type is discriminated with a constrained partial
18703 view and require static matching in that case.
18704 Add local variable Des_Btyp. The Designated_Type
18705 of an access to incomplete subtype is either its non-limited view if
18706 coming from a limited with or its etype if regular incomplete subtype.
18708 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
18709 Fix predicate to identify and allow cases of (expander-generated)
18710 references to tag of designated object of a RACW.
18711 (Validate_Static_Object_Name): In Ada 2005, a formal object is
18712 non-static, and therefore cannot appear as a primary in a preelaborable
18714 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
18715 Has_Read_Write_Attributes.
18716 (Has_Read_Write_Attributes): Reimplement in termes of
18717 Has_Stream_Attribute_Definition.
18718 (Missing_Read_Write_Attributes): When checking component types in a
18719 record, unconditionally call Missing_Read_Write_Attributes recursively
18720 (remove guard checking for Is_Record_Type / Is_Access_Type).
18722 2006-10-31 Robert Dewar <dewar@adacore.com>
18724 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
18725 useless assignments here and conditionalize it on absence of exception
18727 (Analyze_Exception_Handlers): Small code reorganization of error
18728 detection code, for new handling of formal packages.
18730 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18731 Hristian Kirtchev <kirtchev@adacore.com>
18733 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
18734 that has been constant-folded, preserve information of original tree,
18736 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
18737 generated private extension declaration if the formal derived type is
18738 synchronized. Carry synchronized present over to the generated private
18740 (Validate_Derived_Type_Instance): Ensure that the actual of a
18741 synchronized formal derived type is a synchronized tagged type.
18742 (Instantiate_Formal_Package): When creating the instantiation used to
18743 validate the actual package of a formal declared without a box, check
18744 whether the formal itself depends on a prior actual.
18745 (Instantiate_Formal_Subprogram): Create new entities for the defining
18746 identifiers of the formals in the renaming declaration, for ASIS use.
18747 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
18748 a renaming declaration or a subtype declaration for an actual in an
18749 instance, capture location information of declaration in generic, for
18751 (Instantiate_Formal_Package): Add comments on needed additional tests.
18752 AI-317 (partial parametrization) is fully implemented.
18753 (Validate_Private_Type_Instance): Add check for actual which
18754 must have preelaborable initialization
18755 Use new // insertion for some continuation messages
18756 (Analyze_Formal_Object_Declaration): Change usage of Expression to
18757 Default_Expression. Add type retrieval when the declaration has an
18758 access definition. Update premature usage of incomplete type check.
18759 (Check_Access_Definition): New subsidiary routine. Check whether the
18760 current compilation version is Ada 05 and the supplied node has an
18762 (Instantiate object): Alphabetize local variables. Handle the creation
18763 of new renaming declarations with respect to the kind of definition
18764 used - either an access definition or a subtype mark. Guard against
18765 unnecessary error message in the context of anonymous access types after
18766 they have been resolved. Add check for required null exclusion in a
18767 formal object declaration.
18768 (Switch_View): A private subtype of a non-private type needs to be
18769 switched (the base type can have been switched without its private
18770 dependents because of the last branch of Check_Private_View.
18771 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
18773 (Instantiate_Type): Emit an error message whenever a class-wide type of
18774 a tagged incomplete type is used as a generic actual.
18775 (Find_Actual_Type): Extend routine to handle a component type in a child
18776 unit that is imported from a formal package in a parent.
18777 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
18778 agree on constrainedness, rather than checking against ultimate ancestor
18779 (Instantiate_Subprogram_Body): Create a cross-reference link to the
18780 generic body, for navigation purposes.
18782 2006-10-31 Robert Dewar <dewar@adacore.com>
18783 Thomas Quinot <quinot@adacore.com>
18785 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
18787 (New_Stream_Subprogram): When processing an attribute definition clause
18788 for a stream-oriented subprogram, record an entity node occurring at
18789 the point of clause to use for checking the visibility of the clause,
18790 as defined by 8.3(23) as amended by AI-195.
18791 (New_Stream_Subprogram): New procedure, factoring behaviour from both
18792 New_Stream_Function and New_Stream_Procedure.
18793 (New_Stream_Function, New_Stream_Procedure): Removed.
18794 (Analyze_Attribute_Definition_Clause, case Address): Check new
18795 Alignment_Check check
18797 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18798 Javier Miranda <miranda@adacore.com>
18799 Robert Dewar <dewar@adacore.com>
18801 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
18802 generate the same errors compiling under -gnatc.
18803 (Try_Object_Operation): If no candidate interpretation succeeds, but
18804 there is at least one primitive operation with the right name, report
18805 error in call rather than on a malformed selected component.
18806 (Analyze_Selected_Component): If the prefix is an incomplete type from
18807 a limited view, and the full view is available, use the full view to
18808 determine whether this is a prefixed call to a primitive operation.
18809 (Operator_Check): Verify that a candidate interpretation is a binary
18810 operation before checking the type of its second formal.
18811 (Analyze_Call): Add additional warnings for function call contexts not
18813 (Analyze_Allocator): Move the check for "initialization not allowed for
18814 limited types" after analyzing the expression. This is necessary,
18815 because OK_For_Limited_Init looks at the structure of the expression.
18816 Before analysis, we don't necessarily know what sort of expression it
18817 is. For example, we don't know whether F(X) is a function call or an
18818 indexed component; the former is legal in Ada 2005; the latter is not.
18819 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
18820 were missing. We also didn't handle qualified expressions. Now also
18821 allow function calls. Use new common routine OK_For_Limited_Init.
18822 (Analyze_Type_Conversion): Do not perform some legality checks in an
18823 instance, because the error message will be redundant or spurious.
18824 (Analyze_Overloaded_Selected_Component): Do not do style check when
18825 setting an entity, since we do not know it is the right entity yet.
18826 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
18827 (Analyze_Overloaded_Selected_Component): Same change
18828 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
18829 since regular incomplete subtypes are transformed into corresponding
18830 subtypes of their full views.
18831 (Complete_Object_Operation): Treat name of transformed subprogram call
18832 as coming from source, for browsing purposes.
18833 (Try_Primitive_Operation): If formal is an access parameter, compare
18834 with base type of object to determine whether it is a primitive
18836 (Operator_Check): If no interpretation of the operator matches, check
18837 whether a use clause on any candidate might make the operation legal.
18838 (Try_Class_Wide_Operation): Check whether the first parameter is an
18839 access type whose designated type is class-wide.
18841 2006-10-31 Robert Dewar <dewar@adacore.com>
18842 Ed Schonberg <schonberg@adacore.com>
18843 Gary Dismukes <dismukes@adacore.com>
18845 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
18846 warn on infinite loops.
18847 Add \\ to some continuation messages
18848 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
18849 (Process_Bounds): If the bounds are integer literals that result from
18850 constant-folding, and they carry a user-defined type, preserve that type
18851 rather than treating this as an integer range.
18852 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
18853 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
18854 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
18855 left hand side of assignment.
18856 (Analyze_Assignment): Add suport to manage assigments to the attribute
18857 priority of a protected object.
18858 (Check_Possible_Current_Value_Condition): Allow fully qualified names
18859 not just identifiers.
18860 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
18861 or AND THEN for possible tracking.
18862 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
18863 case of while loops so we can track values in the loop body.
18865 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18866 Hristian Kirtchev <kirtchev@adacore.com>
18867 Bob Duff <duff@adacore.com>
18869 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
18870 procedure cannot be a protected operation (it is a basic_declaration,
18871 not a subprogram_declaration).
18872 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
18873 Subp. Add logic for entry processing.
18874 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
18875 Determine whether an entry or subprogram of a protected or task type
18876 override an inherited primitive of an implemented interface.
18877 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
18878 Update the actual used in calls to Check_Overriding_Indicator.
18879 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
18880 generate the proper reference to the parent unit, for cross-reference.
18881 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
18883 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18884 (Add_Extra_Formal): Revise procedure to allow passing in associated
18885 entity, scope, and name suffix, and handle setting of the new
18886 Extra_Formals field.
18887 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
18888 pass new parameters. Add support for adding the new extra access formal
18889 for functions whose calls are treated as build-in-place.
18890 (Analyze_A_Return_Statement): Correct casing in error message.
18891 Move Pop_Scope to after Analyze_Function_Return, because an extended
18892 return statement really is a full-fledged scope. Otherwise, visibility
18893 doesn't work right. Correct use of "\" for continuation messages.
18894 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
18895 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
18896 the node doesn't get properly marked as analyzed.
18897 (Analyze_Subprogram_Body): If subprogram is a function that returns
18898 an anonymous access type that denotes a task, build a Master Entity
18900 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
18901 proper usage of null exclusion in a result definition.
18902 (Process_Formals): Code cleanup and new error message.
18903 (Process_Formals): Detect incorrect application of null exclusion to
18905 (Conforming_Types): Handle conformance between [sub]types and itypes
18906 generated for entities that have null exclusions applied to them.
18907 (Maybe_Primitive_Operation): Add an additional type retrieval when the
18908 base type is an access subtype. This case arrises with null exclusions.
18909 (New_Overloaded_Entity): Do not remove the overriden entity from the
18910 homonym chain if it corresponds with an abstract interface primitive.
18911 (Process_Formals): Replace membership test agains Incomplete_Kind with a
18912 call to the synthesized predicate Is_Incomplete_Type.
18913 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
18915 (Analyze_Subprogram_Declaration): Check that abstract interface
18916 primitives are abstract or null.
18917 (Analyze_Subprogram_Specification): Remove previous check for abstract
18918 interfaces because it was not complete.
18919 (Has_Interface_Formals): Removed.
18921 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18922 Javier Miranda <miranda@adacore.com>
18924 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
18925 of Analyze_Package_Body, to create Itype references for anonymous
18926 access types created in the package declaration, whose designated types
18927 may have only a limited view.
18928 (Analyze_Package_Specification): For the private part of a nested
18929 package, install private_with_clauses of enclosing compilation unit if
18930 we are in its visible part.
18931 (Declare_Inherited_Private_Subprograms): Complete barrier
18932 to ensure that the primitive operation has an alias to some parent
18933 primitive. This is now required because, after the changes done for the
18934 implementation of abstract interfaces, the contents of the list of
18935 primitives has entities whose alias attribute references entities of
18936 such list of primitives.
18937 (Analyze_Package_Specification): Simplify code that handles parent units
18938 of instances and formal packages.
18939 (Uninstall_Declarations): Check the convention consistency among
18940 primitive overriding operations of a tagged record type.
18942 2006-10-31 Robert Dewar <dewar@adacore.com>
18943 Hristian Kirtchev <kirtchev@adacore.com>
18944 Javier Miranda <miranda@adacore.com>
18945 Ed Schonberg <schonberg@adacore.com>
18947 * sem_ch8.adb: Minor error msg rewording
18948 (Undefined): When checking for misspellings, invert arguments (to get
18949 expected and found set right)
18950 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
18951 (Analyze_Generic_Renaming): Same fix
18952 (Use_One_Package): Do not take into account the internal entities of
18953 abstract interfaces during the analysis of entities that are marked
18954 as potentially use-visible.
18955 (Find_Type): Handle the case of an attribute reference for
18956 implementation defined attribute Stub_Type (simply let the analysis of
18957 the attribute reference rewrite it).
18958 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
18959 type that appears in a Use_Type clause.
18960 (Analyze_Object_Renaming): Add support for renaming of the Priority
18962 (Find_Type): In Ada 2005, a task type can be used within its own body,
18963 when it appears in an access definition.
18964 (Analyze_Object_Renaming): Remove warning on null_exclusion.
18965 (Analyze_Object_Renaming): Introduce checks for required null exclusion
18966 in a formal object declaration or in a subtype declaration.
18967 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
18968 (Check_Null_Exclusion): New local routine to
18969 Analyze_Subprogram_Renaming. Check whether the formals and return
18970 profile of a renamed subprogram have required null exclusions when
18971 their counterparts of the renaming already impose them.
18972 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
18973 Determine whether an entity is inside a generic scope.
18974 (In_Open_Scope): First pass of documentation update.
18975 (Find_Expanded_Name): Add support for shadow entities associated with
18976 limited withed packages. This is required to handle nested packages.
18977 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
18978 that makes a renaming of a limited withed package illegal.
18980 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
18981 Ed Schonberg <schonberg@adacore.com>
18983 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
18984 Check_Overriding_Indicator.
18985 (Analyze_Task_Definition): Ditto.
18986 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
18987 (Check_Overriding_Indicator): To find overridden interface operation,
18988 examine only homonyms that have an explicit subprogram declaration, not
18989 inherited operations created by an unrelated type derivation.
18990 (Check_Overriding_Indicator): When checking for the presence of "null"
18991 in a procedure, ensure that the queried node is a procedure
18993 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
18994 type when the formal is an access to variable.
18995 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
18996 (Analyze_Task_Type): Same addition
18997 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
18998 provide navigation capabilities for entries.
19000 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19001 Ed Schonberg <schonberg@adacore.com>
19002 Javier Miranda <miranda@adacore.com>
19003 Gary Dismukes <dismukes@adacore.com>
19005 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19006 inherited from an interface ancestor by another interface in the
19007 context of an instance as 'late'.
19008 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19009 of a call to a function that dispatches on access result.
19010 (Check_Dispatching_Operation): In case of late overriding of a primitive
19011 that covers abstract interface subprograms we register it in all the
19012 secondary dispatch tables associated with abstract interfaces.
19013 (Check_Dispatching_Call): Add check that a dispatching call is not made
19014 to a function with a controlling result of a limited type. This is a
19015 current implementation restriction.
19016 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19017 (Check_Dispatching_Operation): Do no emit a warning if the controlling
19018 argument is an interface type that is a generic formal.
19019 (Is_Interface_Subprogram): Removed.
19020 (Check_Dispatching_Operation): If the subprogram is not a dispatching
19021 operation, check the formals to handle the case in which it is
19022 associated with an abstract interface type.
19024 2006-10-31 Robert Dewar <dewar@adacore.com>
19025 Ed Schonberg <schonberg@adacore.com>
19027 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19028 Add new calls to this procedure during traversal
19029 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19030 another unit if expansion is disabled.
19032 2006-10-31 Robert Dewar <dewar@adacore.com>
19034 * sem_eval.adb (Compile_Time_Compare): Make use of information from
19035 Current_Value in the conditional case, to evaluate additional
19036 comparisons at compile time.
19038 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19039 Hristian Kirtchev <kirtchev@adacore.com>
19040 Javier Miranda <miranda@adacore.com>
19042 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19043 subprogram type to provide better diagnostics in case of ambiguity.
19044 (Covers): Handle coverage of formal and actual anonymous access types in
19045 the context of generic instantiation.
19046 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19047 abstract interface types; this is required to handle concurrent types
19048 with discriminants and abstract interface types.
19049 (Covers): Include type coverage of both regular incomplete subtypes and
19050 incomplete subtypes of incomplete type visibles through a limited with
19053 2006-10-31 Robert Dewar <dewar@adacore.com>
19054 Hristian Kirtchev <kirtchev@adacore.com>
19055 Ed Schonberg <schonberg@adacore.com>
19057 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
19058 messages for entities in packages which are not used.
19059 (Collect_Synchronized_Interfaces): New procedure.
19060 (Overrides_Synchronized_Primitive): New function.
19061 (Denotes_Discriminant): Extend predicate to apply to task types.
19062 Add missing continuation marks in error msgs
19063 (Unqualify): New function for removing zero or more levels of
19064 qualification from an expression. There are numerous places where this
19065 ought to be used, but we currently only deal properly with zero or one
19067 (In_Instance); The analysis of the actuals in the instantiation of a
19068 child unit is not within an instantiation, even though the parent
19069 instance is on the scope stack.
19070 (Safe_To_Capture_Value): Exclude the case of variables that are
19072 (Check_Obsolescent): Removed
19073 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19074 is an aliased view, even when rewritten as a reference to the target
19075 object in an assignment.
19076 (Get_Subprogram_Entity): New function
19077 (Known_To_Be_Assigned): New function
19078 (Type_Access_Level): Compute properly the access level of a return
19079 subtype that is an anonymous access type.
19080 (Explain_Limited_Type): Correct use of "\" for continuation messages.
19081 (Is_Transfer): The new extended_return_statement causes a transfer of
19083 (Has_Preelaborable_Initialization): New function
19084 (Has_Null_Exclusion): New function. Given a node N, determine whether it
19085 has a null exclusion depending on its Nkind.
19086 Change Is_Lvalue to May_Be_Lvalue
19087 (May_Be_Lvalue): Extensive additional code to deal with subprogram
19088 arguments (IN parameters are not Lvalues, IN OUT parameters are).
19089 (Safe_To_Capture_Value): Extend functionality so it can be used for
19090 the current value condition case.
19091 (Has_Compatible_Alignment): New function
19092 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19093 objects to handle the Ada 2005 case, where aliasedness no longer implies
19094 that the object is constrained. In particular, for dereferenced names,
19095 the designated object must be assumed to be unconstrained.
19096 (Kill_Current_Values): Properly deal with the case where we encounter
19097 a loop in the scope chain.
19098 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19100 (Compile_Time_Constraint_Error): Improve error message in error case
19102 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19103 associated with entities of abstract interface primitives.
19104 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19106 2006-10-31 Robert Dewar <dewar@adacore.com>
19108 * s-osinte-tru64.adb:
19109 Mark Asm statements Volatile to prevent warnings (seems a
19110 reasonable change anyway)
19113 * s-mastop-irix.adb: Add Volatile to Asm statements
19114 Suppresses warning, and seems appropriate in any case
19116 * s-osinte-vms.adb: Add Volatile to Asm statement
19118 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19120 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19122 Add call to Check_Code_Statement
19124 2006-10-31 Robert Dewar <dewar@adacore.com>
19125 Ed Schonberg <schonberg@adacore.com>
19126 Bob Duff <duff@adacore.com>
19128 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19129 Synchronized_Present): Add Formal_Derived_Type_Definition and
19130 Private_Extension_Declaration to the list of assertions.
19131 (Is_Entry_Barrier_Function): New flag
19132 (Has_Self_Reference): New flag on aggregates, to indicate that they
19133 contain a reference to the enclosing type, inserted through a default
19135 (Next_Rep_Item): Move from Node4 to Node5.
19136 (Entity): Add this field for N_Attribute_Definition_Clause.
19137 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19138 (N_Return_Object_Declaration): Remove this node kind. We now use
19139 N_Object_Declaration instead.
19140 (Actual_Designated_Subtype): Move to a different place to make room in
19141 N_Extended_Return_Statement.
19142 (Procedure_To_Call): Move to a different place to make room in
19143 N_Extended_Return_Statement.
19144 (Return_Type): Removed this field to make room in return statements
19146 (Return_Statement_Entity): New field in return statements, in part to
19147 replace Return_Type, and in part to support the fact that return
19148 statements are now pushed on the scope stack during semantic analysis.
19149 (Return_Object_Declarations): New field to support extended return
19151 (N_Extended_Return_Statement): New node for extended_return_statement
19153 (N_Return_Object_Declaration): New node for part of
19154 extended_return_statement nonterminal. Needed because all the necessary
19155 fields won't fit in N_Extended_Return_Statement.
19156 Generic_associations now carry the Box_Present flag, to indicate a
19157 default for an actual in a partially parametrized formal package.
19159 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
19160 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19161 and for the new predefined dispatching policies: EDF_Across_Priorities,
19162 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19163 Introduce new name Stub_Type for implementation defined attribute.
19164 Add pragma Preelaborable_Initialization
19165 Add entry for Priority attribute.
19166 Add Pragma_Wide_Character_Encoding
19167 (Get_Convention_Name): Given a convention id, this function returns the
19168 corresponding name id from the names table.
19170 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19171 Robert Dewar <dewar@adacore.com>
19172 Bob Duff <duff@adacore.com>
19174 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19175 print null exclusion twice in the case of an access definition,
19176 Implement new -gnatL switch
19177 Remove N_Return_Object_Declaration. We now use
19178 N_Object_Declaration instead. Implement the case for
19179 N_Extended_Return_Statement. Alphabetize the cases.
19180 Add cases for new nodes N_Extended_Return_Statement and
19181 N_Return_Object_Declaration. The code is not yet written.
19182 Update the output for N_Formal_Object_Declaration
19183 and N_Object_Renaming_Declaration.
19184 (Write_Itype): Account for the case of a modular integer subtype whose
19185 base type is private.
19187 2006-10-31 Arnaud Charlet <charlet@adacore.com>
19189 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19190 Remove elaboration code, now done in the binder.
19192 * s-rident.ads: Make this unit Preelaborate.
19193 (No_Restrictions): New constant used to clean up code and follow
19194 preelaborate constraints.
19197 Add System.Restrictions dependence, referenced directly from the
19198 binder generated file.
19200 2006-10-31 Gary Dismukes <dismukes@adacore.com>
19202 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19203 True when AAMP extended floating-point is in use (48-bit). Change type
19204 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19205 the two byte array types on AFloat. Change type of IV_Ilf overlay
19206 variable from Byte8 to ByteLF. Add appropriate initializations of
19207 floating-point overlays for AAMP cases.
19209 2006-10-31 Javier Miranda <miranda@adacore.com>
19211 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19212 (Get_Ceiling): New subprogram that returns
19213 the ceiling priority of the protected object.
19214 (Set_Ceiling): New subprogram that sets the new ceiling priority of
19215 the protected object.
19217 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19219 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19221 2006-10-31 Jose Ruiz <ruiz@adacore.com>
19223 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19224 requeuing to the same protected object to give higher priority tasks
19225 the opportunity to execute.
19227 2006-10-31 Robert Dewar <dewar@adacore.com>
19229 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19230 add more precise check for the character sequence that follows '[' to
19231 avoid possible confusion in case if '[' is the last character of a
19233 (Scan_Wide): Always allow brackets encoding
19235 2006-10-31 Olivier Hainque <hainque@adacore.com>
19237 * s-stchop.ads: make this unit preelaborate. This is desirable in
19238 general and made mandatory by the use of this unit by s-taprop which
19239 is itself preelaborate.
19241 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19242 Td_Events component.
19244 2006-10-31 Vincent Celier <celier@adacore.com>
19246 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19249 2006-10-31 Vincent Celier <celier@adacore.com>
19251 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19253 2006-10-31 Vincent Celier <celier@adacore.com>
19255 * makegpr.adb (Check_Compilation_Needed): Take into account path names
19257 (Check_Compilation_Needed): When checking a C or C++ source, do not
19258 resolve symbolic links.
19259 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19260 When not in verbose mode and Ellipse is True, display "..." for the
19261 first argument with Display set to False.
19262 (Build_Global_Archive): Always set Display True for the first object
19263 file. Call Display_Command with Ellipse set to True.
19265 2006-10-31 Matt Heaney <heaney@adacore.com>
19267 * a-crbtgo.ads: Commented each subprogram
19269 * a-crbtgo.adb: Added reference to book from which algorithms were
19272 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19273 indicate which child.
19274 (Generic_Conditional_Insert): changed parameter name from "Success" to
19276 (Generic_Unconditional_Insert_With_Hint): improved algorithm
19278 * a-coorse.adb (Replace_Element): changed parameter name in call to
19279 conditional insert operation.
19281 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19283 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19286 * a-ciorse.adb (Replace_Element): changed parameter name in call to
19287 conditional insert operation.
19289 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19292 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19293 instead of mode inout.
19295 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19297 (Generic_Read): preserve existing buckets array if possible
19298 (Generic_Write): don't send buckets array length anymore
19300 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19301 instead of mode inout.
19303 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19304 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19306 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19307 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19308 (Replace_Element): local operation is now an instantiation
19310 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19311 check current length.
19312 (Generic_Replace_Element): new operation
19314 2006-10-31 Doug Rupp <rupp@adacore.com>
19316 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19317 Call TBK$SYMBOLIZE without omitting parameters.
19319 2006-10-31 Vincent Celier <celier@adacore.com>
19321 * symbols-processing-vms-ia64.adb,
19322 symbols-processing-vms-alpha.adb (Process): Do not include symbols
19323 that come from generic instantiations in bodies.
19325 2006-10-31 Pat Rogers <rogers@adacore.com>
19327 * a-rttiev.ads, a-rttiev.adb:
19328 This is a significant redesign primarily for the sake of automatic
19329 timer task termination but also to fix a design flaw.
19330 Therefore we are now using an RTS lock, instead of a protected
19331 object, to provide mutual exclusion to the queue of pending events
19332 and the type Timing_Event is no longer a protected type.
19334 2006-10-31 Robert Dewar <dewar@adacore.com>
19335 Cyrille Comar <comar@adacore.com>
19336 Ben Brosgol <brosgol@adacore.com>
19338 * debug.adb: Update flags documentation
19340 * gnat_ugn.texi: Add documentation for new -gnatwq switch
19341 Clean up documentation for several other warning switches
19342 Clarify how task stack size can be specified with various
19343 versions of Windows.
19344 Add note that -gnatVo includes ranges including loops
19345 Add documentation for -gnatL switch
19346 Add note on elaboration warning for initializing variables
19347 Add documentation for new -gnatwt warning switch
19348 Document new form of pragma Warnings (On|Off, string)
19349 Add comment on use of pragma Warnings to control warnings
19350 Add documentation for -gnatjnn switch
19351 Modify section on interfacing with C for VMS 64-bit.
19352 Add doc for -gnatVe/E
19353 Add documentation of new warning flags -gnatww/-gnatwW
19354 Add warnings about address clause overlays to list of warnings
19355 (Exception Handling Control): Document that the option --RTS must be
19356 used consistently for gcc and gnatbind.
19357 Clarify that inlining is not always possible
19358 Update documentation on pragma Unchecked_Union.
19361 Add documentation for new extended version of pragma Obsolescent
19362 Add documentation for implementation defined attribute 'Stub_Type.
19363 Add note on use of Volatile in asm statements
19364 Add documentation on use of pragma Unreferenced in context clause
19365 Document new form of pragma Warnings (On|Off, pattern)
19366 Document pragma Wide_Character_Encoding
19367 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19368 enforced if code generation is active.
19369 Add section on pragma Suppress to document GNAT specific check
19371 Clarify difference between No_Dispatching_Calls & No_Dispatch.
19372 Add documentation for pragma Restrictions (No_Elaboration_Code)
19375 Add comments on layout of subprogram local variables in the
19376 presence of nested subprograms.
19378 * ug_words: Resync.
19380 * elists.ads: Minor reformatting
19381 Node returns Node_Or_Entity_Id (doc change only)
19383 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19385 * g-arrspl.ads (Create): Update comments.
19387 * sem.ads: Add details on the handling of the scope stack.
19389 * usage.adb: Update documentation.
19391 * validsw.ads, validsw.adb:
19392 Add definition of Validity_Check_Components and implement -gnatVe/E
19394 * vms_data.ads: Add missing VMS qualifiers.
19396 * s-addope.ads: Add documentation on overflow and divide by zero
19398 2006-10-31 Robert Dewar <dewar@adacore.com>
19399 Thomas Quinot <quinot@adacore.com>
19400 Arnaud Charlet <charlet@adacore.com>
19402 * fmap.adb: Put routines in alpha order
19404 * g-boumai.ads: Remove redundant 'in' keywords
19406 * g-cgi.adb: Minor reformatting
19408 * g-cgi.ads: Remove redundant 'in' keywords
19410 * get_targ.adb: Put routines in alpha order
19412 * prj-attr.ads: Minor reformatting
19414 * s-atacco.ads: Minor reformatting
19416 * scn.adb: Put routines in alpha order
19418 * sinput-l.adb: Minor comment fix
19420 * sinput-p.adb: Minor comment fix
19422 * s-maccod.ads: Minor reformatting
19424 * s-memory.adb: Minor reformatting
19426 * s-htable.adb: Fix typo in comment.
19428 * s-secsta.adb: Minor comment update.
19430 * s-soflin.adb: Minor reformatting
19433 Add comment about odd qualification in Storage_Offset declaration
19436 Remove unnecessary 'in' keywords for formal parameters.
19438 * treeprs.adt: Minor reformatting
19440 * urealp.adb: Put routines in alpha order
19442 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19445 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19447 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19449 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19450 workaround as on other platforms.
19452 * g-eacodu-vms.adb: Remove redundant 'in' keywords
19453 * g-expect-vms.adb: Remove redundant 'in' keywords
19455 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19456 clear error message if the list-of-files file cannot be opened.
19458 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19459 equality operator is always visible.
19461 * lang.opt: Woverlength-strings: New option.
19464 Update copyright, since nmake.ads and nmake.adb have changed.
19466 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19467 (Binder_Output_Time_Stamps_Set): removed.
19468 (Old_Binder_Output_Time_Stamp): idem.
19469 (New_Binder_Output_Time_Stamp): idem.
19470 (Recording_Time_From_Last_Bind): idem.
19471 (Recording_Time_From_Last_Bind): Make constant.
19473 * output.ads, output.adb (Write_Str): Allow LF characters
19474 (Write_Spaces): New procedure
19476 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19478 * inline.adb: Minor reformatting
19480 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19482 * s-mastop-vms.adb: Remove redundant 'in' keywords
19484 * s-osprim-vms.adb: Remove redundant 'in' keywords
19486 * s-trafor-default.adb: Remove redundant 'in' keywords
19488 * 9drpc.adb: Remove redundant 'in' keywords
19490 * s-osinte-mingw.ads: Minor reformatting
19492 * s-inmaop-posix.adb: Minor reformatting
19494 * a-direio.ads: Remove quotes from Compile_Time_Warning message
19496 * a-exexda.adb: Minor code reorganization
19498 * a-filico.adb: Minor reformatting
19500 * a-finali.adb: Minor reformatting
19502 * a-nudira.ads: Remove quote from Compile_Time_Warning message
19504 * a-numeri.ads: Minor reformatting
19506 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19508 * exp_pakd.ads: Fix obsolete comment
19510 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19511 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19512 Probably not a bug, but certainly neater and more efficient.
19514 * a-tienio.adb: Minor reformatting
19516 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19517 Avoid assuming low bound of string is 1.
19519 * gnatbind.adb: Change Bindusg to package and rename procedure as
19520 Display, which now ensures that it only outputs usage information once.
19521 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19523 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19526 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19528 (Match): Add pragma Assert to ensure that Matches'First is zero
19530 * g-regpat.ads (Match): Document that Matches lower bound must be zero
19532 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19533 documented preconditions (also kills warnings about bad indexes).
19535 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19537 (Build_Import_Library): Ditto;
19539 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19541 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19543 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19544 lower bound of choice table is 1.
19546 * sem_case.ads (Analyze_Choices): Document that lower bound of
19549 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19552 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19553 and add appropriate Assert pragma to suppress warnings.
19555 * atree.h, atree.ads, atree.adb
19556 Change Elist24 to Elist25
19557 Add definitions of Field28 and Node28
19558 (Traverse_Field): Use new syntactic parent table in sinfo.
19560 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19562 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19564 * exp_tss.adb: Put routines in alpha order
19566 * fe.h: Remove redundant declarations.
19568 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
19570 * utils.c (builtin_function): Rename to gnat_builtin_function.
19571 Move common code to add_builtin_function.
19572 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19573 gnat_builtin_function.
19574 * gigi.h (builtin_function): Rename to gnat_builtin_function.
19575 Change the signature.
19577 2006-10-16 Brooks Moses <bmoses@stanford.edu>
19579 * Makefile.in: Add TEXI2PDF definition.
19580 * Make-lang.in: Add "ada.pdf" target.
19582 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
19584 * decl.c, utils.c: Fix comment typos.
19585 * utils.c: Fix a typo.
19587 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
19589 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19590 on "pure" Ada subprograms if SJLJ exceptions are used.
19591 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19592 on the declaration node of JMPBUF_SAVE.
19593 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19594 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19595 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19597 2006-08-20 Laurent Guerby <laurent@guerby.net>
19600 g-socket.adb (Bind_Socket): Call Set_Address.
19602 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
19605 * decl.c (same_discriminant_p): New static function.
19606 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19607 subtype and we have discriminants, fix up the COMPONENT_REFs
19608 for the discriminants to make them reference the corresponding
19609 fields of the parent subtype after it has been built.
19611 2006-09-15 Roger Sayle <roger@eyesopen.com>
19614 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19615 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19617 2006-09-13 Olivier Hainque <hainque@adacore.com>
19620 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19621 of a SAVE_EXPR, just make the operand addressable/not-readonly and
19622 let the common gimplifier code make and propagate a temporary copy.
19623 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19624 out/in-out actuals and defer setting the addressable/readonly bits
19627 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19630 * decl.c (components_to_record): Defer emitting debug info for the
19631 record type associated with the variant until after we are sure to
19634 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
19637 * gigi.h (gnat_internal_attribute_table): Declare.
19638 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
19639 * utils.c (gnat_internal_attribute_table): New global variable.
19640 (builtin_function): Always call decl_attributes on the builtin.
19641 (handle_const_attribute): New static function.
19642 (handle_nothrow_attribute): Likewise.
19644 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
19646 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
19648 2006-06-23 Olivier Hainque <hainque@adacore.com>
19650 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
19651 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
19653 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
19654 Eric Botcazou <ebotcazou@adacore.com>
19657 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
19658 check-gnat into check-acats.
19660 2006-06-17 Karl Berry <karl@gnu.org>
19662 * gnat-style.texi (@dircategory): Use "Software development"
19663 instead of "Programming", following the Free Software Directory.
19665 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19668 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
19670 2006-06-06 Laurent Guerby <laurent@guerby.net>
19673 mlib-utl.adb: Use Program_Name.
19675 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
19677 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
19678 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
19679 trans.c, utils.c: Fix comment typos. Follow spelling
19681 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
19684 2006-05-19 Nicolas Setton <setton@adacore.com>
19686 * misc.c (gnat_dwarf_name): New function.
19687 (LANG_HOOKS_DWARF_NAME): Define to it.
19689 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
19691 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
19692 (ada/misc.o): Likewise.
19693 (ada/utils.o): Likewise.
19695 2006-04-08 Aurelien Jarno <aurel32@debian.org>
19697 * Makefile.in: Add Ada support for GNU/kFreeBSD.
19698 * s-osinte-kfreebsd-gnu.ads: New file.
19700 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
19702 * Make-lang.in: Rename docdir to gcc_docdir.
19704 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
19706 * gigi.h (get_ada_base_type): Delete.
19707 * utils2.c (get_ada_base_type): Likewise.
19708 * trans.c (convert_with_check): Operate in the real base type.
19710 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19712 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
19714 2006-03-02 Richard Sandiford <richard@codesourcery.com>
19716 * utils.c (create_var_decl): Use have_global_bss_p when deciding
19717 whether to make the decl common.
19719 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
19721 * Make-lang.in (Ada): Remove.
19722 (.PHONY): Remove Ada
19724 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19726 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
19727 aggregate, check the interpretations of the other operand to find one
19728 that may be a boolean array.
19730 (Analyze_Selected_Component): Fix flow-of-control typo in case where
19731 the prefix is a private extension.
19733 2006-02-17 Eric Botcazou <botcazou@adacore.com>
19736 * utils2.c (find_common_type): If both input types are BLKmode and
19737 have the same constant size, keep using the first one.
19739 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
19741 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
19743 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
19745 2006-02-17 Jose Ruiz <ruiz@adacore.com>
19747 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
19748 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
19749 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
19750 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
19751 Abort_Defer/Undefer pairs to avoid the possibility of a task being
19752 aborted while owning a lock.
19754 2006-02-17 Javier Miranda <miranda@adacore.com>
19755 Robert Dewar <dewar@adacore.com>
19757 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
19758 through an access to class-wide interface we force the displacement of
19759 the pointer to the allocated object to reference the corresponding
19760 secondary dispatch table.
19761 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
19762 if Long_Shifts are supported on the target, even if 64 bit divides
19763 are not supported (configurable run time mode).
19764 (Expand_N_Type_Conversion): Do validity check if validity checks on
19765 operands are enabled.
19766 (Expand_N_Qualified_Expression): Do validity check if validity checks
19767 on operands are enabled.
19769 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19771 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
19772 must be materialized when the renamed expression is an explicit
19775 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19777 * freeze.adb (Statically_Discriminated_Components): Return false if
19778 the bounds of the type of the discriminant are not static expressions.
19780 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
19781 the bounds of the discriminant type are not static.
19783 2006-02-17 Robert Dewar <dewar@adacore.com>
19785 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
19786 then we close To if it is valid.
19788 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19790 * init.c (facility_resignal_table): new array
19791 (__gnat_default_resignal_p): enhance default predicate to resignal if
19792 VMS condition has one of the predefined facility codes.
19794 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
19796 * Makefile.in: Use VMS64 specialized versions of several units in
19797 Interfaces.C hierarchy to be compatible with HP C default size choices.
19798 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
19800 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19802 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
19803 instantiation, the corresponding entity is the related_instance of the
19804 wrapper package created for the instance.
19806 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19808 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
19809 the current instance is nested within another instance in a child unit.
19811 2006-02-17 Javier Miranda <miranda@adacore.com>
19812 Ed Schonberg <schonberg@adacore.com>
19814 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
19815 type we cannot inherit the primitive operations; we inherit the
19816 Corresponding_Record_Type (which has the list of primitive operations).
19817 (Check_Anonymous_Access_Types): When creating anonymous access types for
19818 access components, use Rewrite in order to preserve the tree structure,
19820 (Analyze_Object_Declaration): For limited types with access
19821 discriminants with defaults initialized by an aggregate, obtain
19822 subtype from aggregate as for other mutable types.
19823 (Derived_Type_Declaration): If the derived type is a limited interface,
19824 set the corresponding flag (Is_Limited_Record is not sufficient).
19826 2006-02-17 Ed Schonberg <schonberg@adacore.com>
19828 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
19829 to inline a function that returns an unconstrained type, the return
19830 expression must be the first variable declared in the body of the
19833 2006-02-17 Javier Miranda <miranda@adacore.com>
19835 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
19836 abstract interface type, the static analysis is not enough to know if
19837 the interface is implemented or not by the source tagged type. Hence
19838 we must pass the work to the expander to generate the required code to
19839 evaluate the conversion at run-time.
19840 (Resolve_Equality_Op): Do not apply previous
19841 transformation if expansion is disasbled, to prevent anomalies when
19842 locating global references in a generic unit.
19844 2006-02-17 Vincent Celier <celier@adacore.com>
19846 * snames.ads, snames.adb: New standard names for new project attributes:
19847 archive_builder, archive_indexer, compiler_pic_option,
19848 config_body_file_name, config_body_file_name_pattern,
19849 config_file_switches, config_file_unique, config_spec_file_name,
19850 config_spec_file_name_pattern, default_builder_switches,
19851 default_global_compiler_switches, default_language,
19852 dependency_file_kind, global_compiler_switches, include_path,
19853 include_path_file, language_kind, linker_executable_option,
19854 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
19855 roots, runtime_project.
19857 2006-02-17 Matthew Heaney <heaney@adacore.com>
19859 * a-convec.ads, a-convec.adb:
19860 (operator "&"): handle potential overflow for large index types
19861 (Insert): removed Contraint_Error when using large index types
19862 (Insert_Space): removed Constraint_Error for large index types
19863 (Length): moved constraint check from Length to Insert
19865 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
19866 as not null access.
19867 Explicit raise statements now include an exception message.
19868 (operator "&"): handle potential overflow for large index types
19869 (Insert): removed Contraint_Error when using large index types
19870 (Insert_Space): removed Constraint_Error for large index types
19871 (Length): moved constraint check from Length to Insert
19873 2006-02-17 Robert Dewar <dewar@adacore.com>
19875 * s-wchcnv.adb: Document handling of [ on output (we do not change
19876 this to ["5B"] and the new comments say why not.
19879 Add note for -gnatVo that this now includes the cases of type
19880 conversions and qualified expressions.
19881 Add comments on handling of brackets encoding for Text_IO
19883 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
19884 Thomas Quinot <quinot@adacore.com>
19885 Robert Dewar <dewar@adacore.com>
19886 Javier Miranda <miranda@adacore.com>
19888 * expander.adb: Fix typo in comment
19890 * exp_pakd.adb: Fix typo
19891 Minor comment reformatting.
19893 * g-dyntab.adb: Minor reformatting
19895 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
19896 aliased subprograms to look for the abstract interface subprogram.
19898 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
19900 * env.c (__gnat_setenv): Use size_t.
19901 (__gnat_unsetenv): Likewise.
19902 (__gnat_clearenv): Likewise.
19904 2006-02-16 Arnaud Charlet <charlet@adacore.com>
19906 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
19908 2006-02-13 Arnaud Charlet <charlet@adacore.com>
19910 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
19911 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
19912 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
19913 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
19914 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
19915 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
19916 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
19917 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
19918 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
19921 2006-02-13 Jose Ruiz <ruiz@adacore.com>
19923 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
19924 protection against race conditions is not needed.
19925 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
19927 (Set_Specific_Handler): Add mutual exclusive access to the specific
19929 (Specific_Handler): Add mutual exclusive access for retrieving the
19932 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
19935 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
19936 Fall_Back_Handler and Specific_Handler.
19938 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
19939 termination handlers.
19940 Set two different owerflow depending on the maximal stack size.
19942 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
19943 protection against race conditions is not needed when executing the
19944 task termination handler.
19946 2006-02-13 Robert Dewar <dewar@adacore.com>
19948 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
19949 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
19950 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
19951 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
19952 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
19953 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
19954 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
19955 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
19956 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
19957 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
19958 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
19959 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
19960 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
19961 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
19962 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
19963 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
19964 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
19965 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
19966 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
19967 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
19968 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
19969 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
19970 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
19971 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
19972 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
19973 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
19974 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
19975 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
19976 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
19977 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
19978 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
19979 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
19980 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
19981 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
19984 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
19986 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
19987 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
19988 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
19989 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
19990 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
19991 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
19992 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
19993 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
19994 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
19996 2006-02-13 Arnaud Charlet <charlet@adacore.com>
19998 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
19999 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20000 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20001 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20002 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
20003 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20004 replaced by anonymous access type.
20005 (pthread_sigmask): Now take an access sigset_t
20007 * s-osinte-hpux.ads: Ditto.
20008 (pthread_mutex_t, pthread_cond_t): Update definitions to support
20009 properly 32 and 64 bit ABIs.
20011 2006-02-13 Pascal Obry <obry@adacore.com>
20013 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20014 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
20015 s-taprop-linux.adb, s-taprop-solaris.adb,
20016 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20017 adjustement is already done when calling this routine.
20019 2006-02-13 Pascal Obry <obry@adacore.com>
20021 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20022 table to take advantage of the 16 priority levels available on Windows
20023 2000 and XP. On NT4 there are only 7 priority levels, this is properly
20024 supported by this new mapping.
20026 2006-02-13 Nicolas Setton <setton@adacore.com>
20028 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20029 (get_encoding): New subprogram. Extracts the encodings from an encoded
20032 2006-02-13 Pascal Obry <obry@adacore.com>
20033 Nicolas Roche <roche@adacore.com>
20034 Arnaud Charlet <charlet@adacore.com>
20036 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20038 (__gnat_try_lock): Add unicode support by using a specific section on
20040 (__gnat_get_current_dir): Idem.
20041 (__gnat_open_read): Idem.
20042 (__gnat_open_rw): Idem.
20043 (__gnat_open_create): Idem.
20044 (__gnat_create_output_file): Idem.
20045 (__gnat_open_append): Idem.
20046 (__gnat_open_new): Idem.
20047 (__gnat_file_time_name): Idem.
20048 (__gnat_set_file_time_name): Idem.
20049 (__gnat_stat): Idem.
20050 (win32_no_block_spawn): Idem.
20051 (__gnat_locate_exec_on_path): Idem.
20052 (__gnat_opendir): New routine.
20053 (__gnat_closedir): Idem.
20054 (__gnat_readdir): Add new parameter length (pointer to int). Update
20055 implementation to use it and add specific Win32 code for Unicode
20057 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20058 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20059 (convert_addresses): Do not define this dummy routine on VMS.
20061 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20062 runtime Unicode support will be activated.
20063 (S2WS): String to Wide-String conversion. This version just copy a
20064 string in non Unicode version.
20065 (WS2S): Wide-String to String conversion. This version just copy a
20066 string in non Unicode version.
20068 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20069 (Open): Now import __gnat_opendir from adaint.c.
20070 (Read): Change the implementation to support unicode characters. It is
20071 not possible to use strlen() on Windows as this version supports only
20072 standard ASCII characters. So the length of the directory entry is now
20073 returned from the imported __gnat_readdir routine.
20074 Update copyright notice.
20076 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20077 (opendir): Moved to adaint.c.
20079 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20080 (Get_Directory): Fix wrong indexing.
20081 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20082 __gnat_getenv from env.c
20083 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20086 * env.h, env.c: New file.
20088 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20089 adaint.c by __gnat_getenv from env.c
20091 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20092 adaint.c by __gnat_getenv from env.c
20094 * Make-lang.in: Add env.o in the list of C object needed by gnat1
20096 Update dependencies.
20098 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20099 Olivier Hainque <hainque@adacore.com>
20100 Eric Botcazou <ebotcazou@adacore.com>
20102 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
20104 * gigi.h (value_factor_p): Add prototype and description, now public.
20106 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20107 promotion for field with rep clause if the associated size was proven
20109 Expand comments describing attempts to use a packable type.
20110 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20111 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20112 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20113 necessary since these are not different types and pointers may
20114 actually designate any subtype in this hierarchy.
20115 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20116 discriminants but put them into record only if not Unchecked_Union;
20117 pass flag to components_to_record showing Unchecked_Union.
20118 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20119 components before variants; don't set TYPE_UNCHECKED_UNION_P.
20120 (components_to_record): New argument UNCHECKED_UNION.
20121 Remove special case code for Unchecked_Union and instead use main code
20122 with small changes.
20125 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20126 variable with the expression being built, only its inner field.
20128 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20129 emit_sequence_entry_statements.
20130 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20131 (establish_gnat_vms_condition_handler): Move before
20132 Subprogram_Body_to_gnu.
20133 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20134 for a subprogram if it has a foreign convention or is exported.
20135 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20136 substituted for a CONST_DECL.
20137 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20138 Etype to assoc_to_constructor.
20139 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20140 discriminants of Unchecked_Union.
20141 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20142 don't need cluttering preprocessor directives.
20143 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20144 condition handler as current in the compiled function.
20145 (body_with_handlers_p): New function. Tell whether a given sequence of
20146 statements node is attached to a package or subprogram body and involves
20147 exception handlers possibly nested within inner block statements.
20148 (emit_sequence_entry_statements): New function, to emit special
20149 statements on entry of sequences when necessary. Establish GNAT
20150 condition handler in the proper cases for VMS.
20151 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20152 emit_sequence_entry_statements.
20154 * utils2.c (find_common_type): If both input types are BLKmode and
20155 have a constant size, use the smaller one.
20156 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20159 * utils.c (value_factor_p): Make public, to allow uses from other gigi
20161 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20162 (convert, case UNION_TYPE): Remove special treatment for unchecked
20166 (update_pointer_to): Update variants of pointer types to unconstrained
20167 arrays by attaching the list of fields of the main variant.
20169 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20170 Robert Dewar <dewar@adacore.com>
20172 * a-exexpr.adb, a-exexpr-gcc.adb
20173 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20174 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20175 Remove code unused for exception propagation for the compiler itself
20176 from a-except.adb and update to still share separate packages.
20178 * a-except.ads, a-except.adb: Ditto.
20179 Add comments that this version is now used only by the compiler and
20180 other basic tools. The full version that includes the Ada 2005 stuff
20181 is in separate files a-except-2005.ads/adb. The reason is that we do
20182 not want to cause bootstrap problems with compilers not recognizing
20184 Add exception reason code PE_Implicit_Return
20185 Add new exception reason code (Null Exception_Id)
20187 * a-except-2005.adb, a-except-2005.ads: New files.
20189 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20191 * s-wchcon.adb: New file.
20193 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20194 (traceback.o deps): Likewise.
20195 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20196 Activate build of GMEM instrumentation library on VMS targets.
20197 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20198 Use a-except-2005.ads/adb for all run-time library builds unless
20199 specified otherwise.
20200 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20201 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20202 Use s-parame.adb on all native platforms.
20203 Use s-parame-vxworks.adb on all vxworks platforms.
20204 Add env.c env.h in LIBGNAT_SRCS
20205 Add env.o in LIBGNAT_OBJS
20206 (GNATMAKE_OBJS): Remove ctrl_c.o object.
20207 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20208 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20209 supports VxWorks 6 RTPs.
20210 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20211 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20213 * types.h, types.ads (Terminate_Program): New exception
20214 Add comment on modifying multiple versions of a-except.adb when the
20215 table of exception reasons is modified.
20216 Add exception reason code PE_Implicit_Return
20217 Add new exception reason code (Null Exception_Id)
20219 * clean.adb (Initialize): Get the target parameters before checking
20220 if target is OpenVMS. Move the OpenVMS specific code here from package
20221 body elaboration code.
20223 2006-02-13 Thomas Quinot <quinot@adacore.com>
20224 Vincent Celier <celier@adacore.com>
20225 Robert Dewar <dewar@adacore.com>
20227 * ali-util.adb (Get_File_Checksum): Update to account for change in
20228 profile of Initialize_Scanner.
20230 * gprep.adb (Gnatprep): Update to account for change in profile of
20231 Initialize_Scanner.
20232 (Process_One_File): Same.
20234 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20235 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20236 that behaviour using the new Unit information recorded in the source
20237 files table, rather than going through all units every time.
20238 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20239 (Get_Source_Unit): Same.
20241 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20242 change in profile of Initialize_Scanner.
20243 (Prepare_To_Preprocess): Same.
20245 * lib.ads: Fix typo in comment (templace -> template).
20247 * prj-part.adb (Parse_Single_Project): Update to account for change in
20248 profile of Initialize_Scanner.
20250 * scn.adb (Initialize_Scanner): Account for change in profile of
20251 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20252 Also record the association of the given Source_File_Index to the
20253 corresponding Unit_Number_Type.
20255 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20257 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20258 Remove Unit formal for generic scanner: this formal
20259 is only relevant to Scn (the scanner instance used to parse Ada source
20260 files), not to other instances. Update comment accordingly.
20261 (Scan): Use new function Snames.Is_Keyword_Name.
20263 * sinfo-cn.adb: Fix typo in comment.
20265 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20268 * sinput.ads (Source_File_Record): New component Unit, used to capture
20269 the unit identifier (if any) associated to a source file.
20271 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20272 Unit in Source_File_Record.
20274 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20275 in profile of Initialize_Scanner.
20277 * scans.adb (Initialize_Ada_Keywords): New procedure
20279 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20280 Ada keywords in the Namet table, without the need to call
20281 Initialize_Scanner.
20283 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20284 (Is_Keyword_Name): New function
20286 * snames.ads: Add subtype Configuration_Pragma_Names
20287 Add pragma Ada_2005 (synonym for Ada_05)
20288 (Is_Keyword_Name): New function
20290 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20292 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20294 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20297 * a-stwima.adb (To_Set): Add extra check when N = 0.
20299 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20301 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20303 * s-parame-mingw.adb, s-parame-linux.adb,
20304 s-parame-solaris.adb: Removed, replaced by s-parame.adb
20306 * s-parame-vxworks.ads: Fix typo.
20308 * s-parame-vxworks.adb: New file.
20310 * s-parame.adb: Version now used by all native platforms.
20311 (Default_Stack_Size): Use 2 megs for default stack size and use
20312 __gl_default_stack_size when available.
20313 (Minimum_Stack_Size): Use 12K.
20315 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20316 (Create_Task): Refine implementation taking advantage of the XP stack
20317 size support. On XP, we now create the thread using the flag
20318 STACK_SIZE_PARAM_IS_A_RESERVATION.
20320 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20322 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20323 XP and 0 on older Windows versions.
20325 * interfac-vms.ads: Removed, no longer used.
20327 2006-02-13 Matthew Heaney <heaney@adacore.com>
20329 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20330 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20331 a-cohase.adb: All explicit raise statements now include an exception
20334 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20335 (Update_Element_Preserving_Key): renamed op to just Update_Element.
20336 Explicit raise statements now include an exception message
20338 * a-cihase.ads, a-cohase.ads: Removed comment.
20340 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20341 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20342 a-szbzha.adb, a-szfzha.ads: New files.
20344 2006-02-13 Matthew Heaney <heaney@adacore.com>
20346 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20349 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20351 * lang.opt: Wvariadic-macros: New option.
20352 Wold-style-definition: Likewise.
20353 Wmissing-format-attribute: Likewise.
20355 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20356 -Wold-style-definition and -Wmissing-format-attribute.
20358 2006-02-13 Robert Dewar <dewar@adacore.com>
20360 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20362 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20364 2006-02-13 Nicolas Roche <roche@adacore.com>
20366 * a-envvar.adb, a-envvar.ads: New files.
20368 2006-02-13 Douglas Rupp <rupp@adacore.com>
20370 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20372 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20374 2006-02-13 Pat Rogers <rogers@adacore.com>
20376 * a-rttiev.adb, a-rttiev.ads: New files.
20378 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20380 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20381 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
20383 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20385 2006-02-13 Robert Dewar <dewar@adacore.com>
20387 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20388 sem_case.adb: Minor code reorganization (not Present should be No)
20390 2006-02-13 Geert Bosch <bosch@adacore.com>
20391 Gary Dismukes <dismukes@adacore.com>
20393 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20394 0, since the lower bound of the actual string may be greater than one.
20397 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20398 layout is requested.
20400 2006-02-13 Vincent Celier <celier@adacore.com>
20402 * back_end.adb (Scan_Compiler_Arguments): Check if
20403 Search_Directory_Present is True and, if it is, add the argument in
20404 the source search directory path.
20406 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20407 Search_Directory_Present to True.
20409 2006-02-13 Joel Brobecker <brobecke@adacore.com>
20411 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20412 volatile, to tell the compiler to preserve this variable at any level
20414 (Gen_Versions_Ada): Temporarily work around codegen bug.
20416 2006-02-13 Vincent Celier <celier@adacore.com>
20418 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20419 gcc to link with option -shared-libgcc.
20420 (Gnatlink): Remove duplicate switches -shared-libgcc
20422 2006-02-13 Robert Dewar <dewar@adacore.com>
20424 * gnatvsn.ads (Current_Year): New constant, used to easily update
20425 copyright on all GNAT tools.
20427 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20430 2006-02-13 Robert Dewar <dewar@adacore.com>
20432 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20433 after hyphen (small aesthetic change useful for a range of numbers
20435 Suppress range checks for a couple of assignments which otherwise
20436 cause validity checks with validity checking turned on.
20438 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20439 Improvement in error message for object.
20440 (Rep_Item_Too_Late): Remove '!' in warning message.
20442 2006-02-13 Robert Dewar <dewar@adacore.com>
20443 Eric Botcazou <ebotcazou@adacore.com>
20445 * err_vars.ads: Suppress range checks for a couple of assignments
20446 which otherwise cause validity checks with validity checking turned on.
20449 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20450 Make message unconditional if it is a warning.
20451 (Error_Msg_NEL): Always output warning messages.
20452 Suppress range checks for a couple of assignments which otherwise
20453 cause validity checks with validity checking turned on.
20455 * errout.ads (Message Insertion Characters): Document that '!' is
20456 implied by '?' in error messages.
20458 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20459 (Gnat1drv): Use a goto to end of main subprogram instead of
20460 Exit_Program (E_Success) so that finalization can occur normally.
20462 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
20464 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20467 2006-02-13 Vincent Celier <celier@adacore.com>
20469 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20470 Unchecked_Conversion functions.
20471 (Modification_Time): Use direct conversion of OS_Time to Calendar time
20472 when OpenVMS returns False.
20474 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20475 a-dirval.adb (OpenVMS): New Boolean function
20477 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20478 Thomas Quinot <quinot@adacore.com>
20480 * checks.adb (Build_Discriminant_Checks): If the expression being
20481 checks is an aggregate retrieve the values of its discriminants to
20482 generate the check, rather than creating a temporary and a reference
20484 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20485 (Install_Null_Excluding_Check): Ditto
20486 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20487 not for the renamed object, so that the actual itype is attached in the
20490 2006-02-13 Robert Dewar <dewar@adacore.com>
20491 Vincent Celier <celier@adacore.com>
20493 * debug.adb: Eliminate numeric switches for binder/gnatmake
20495 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20496 switches for the compiler.
20497 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20498 (Scan_Make_Switches): When failing with an illegal switch, output an
20499 error message with the full switch.
20500 Eliminate numeric switches for binder/gnatmake
20502 * switch.ads, switch.adb (Bad_Switch): New procedure
20504 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20505 Remove 0-9 as debug flag character possibilities
20506 -d is now controlling the primary stack size when its value is a
20507 positive. Also add checks against invalid values, and support for kb,
20508 mb. Ditto for -D switch.
20510 2006-02-13 Robert Dewar <dewar@adacore.com>
20511 Serguei Rybin <rybin@adacore.com>
20513 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20514 save/restore routines.
20515 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20516 were not always properly handled previously.
20517 Since we are changing the tree format anyway, also get rid of the
20518 junk obsolete Immediate_Errors flag.
20519 (Tree_Read): Change the way of reading Tree_Version_String - now we
20520 read the version string from the tree even if its length is not the
20521 same as the length of the version string computed from Gnatvsn.
20522 (Search_Directory_Present): New Boolean flag for the compiler.
20523 Define Tree_Version_String as a dynamic string.
20524 (Default_Stack_Size): new variable, used to handle switch -d.
20527 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20528 only for main unit.
20529 Add pragma Ada_2005 (synonym for Ada_05)
20530 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20531 were not always properly handled previously.
20533 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20534 explicit Ada_95 to Ada_2005.
20536 2006-02-13 Javier Miranda <miranda@adacore.com>
20537 Robert Dewar <dewar@adacore.com>
20538 Ed Schonberg <schonberg@adacore.com>
20540 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20541 against errors in the source program: a private types for which the
20542 corresponding full type declaration is missing and pragma CPP_Virtual
20544 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20545 (Is_Known_Null): New flag
20546 (Has_Pragma_Pure): New flag
20547 (No_Return): Present in all entities, set only for procedures
20548 (Is_Limited_Type): A type whose ancestor is an interface is limited if
20549 explicitly declared limited.
20550 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20551 entities. Only used for component marked Is_Tag. If present it stores
20552 the Offset_To_Top function used to provide this value in tagged types
20553 whose ancestor has discriminants.
20555 * exp_ch2.adb: Update status of new Is_Known_Null flag
20557 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20559 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20560 the categorization sense if Is_Pure was set by pragma Pure_Function.
20562 2006-02-13 Quentin Ochem <ochem@adacore.com>
20563 Olivier Hainque <hainque@adacore.com>
20565 * bindusg.adb: Updated documentation for -d and -D switches.
20567 * raise.h (__gnat_set_globals): added new parameter for
20568 Default_Stack_Size.
20570 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20571 (__gnat_handle_vms_condition): Adjust context before raise.
20572 (__gnat_install_handler): Restore the global vector setup for GCC
20573 versions before 3.4, as the frame based circtuitry is not available
20575 (__gnat_set_globals): added a parameter default_stack_size
20576 (__gl_default_stack_size): new variable.
20578 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20580 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20581 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20582 does not exist in the Ada RM.
20583 (Compatible_Int_Bounds): Determine whether two integer range bounds
20584 are of equal length and have the same start and end values.
20585 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20586 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20587 aggregate when it is part of an object declaration.
20588 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
20589 constrains discriminants of its parent, add explicitly the discriminant
20590 constraints of the ancestor by retrieving them from the
20591 stored_constraint of the parent.
20593 2006-02-13 Robert Dewar <dewar@adacore.com>
20595 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20596 attribute Mechanism_Code is applied to renamed subprogram, modify
20597 prefix to point to base subprogram.
20598 Max/Min attributes now violate Restriction No_Implicit_Conditionals
20600 * sinfo.ads: Document that Mechanism_Code cannot be applied to
20601 renamed subprograms so that the front-end must replace the prefix
20604 2006-02-13 Javier Miranda <miranda@adacore.com>
20605 Gary Dismukes <dismukes@adacore.com>
20607 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20608 availability of RE_Interface_Tag.
20609 (Build_Initialization_Call): Fix wrong access to the discriminant value.
20610 (Freeze_Record_Type): Do not generate the tables associated with
20611 timed and conditional dispatching calls through synchronized
20612 interfaces if compiling under No_Dispatching_Calls restriction.
20613 When compiling for Ada 2005, for a nonabstract
20614 type with a null extension, call Make_Controlling_Function_Wrappers
20615 and insert the wrapper function declarations and bodies (the latter
20616 being appended as freeze actions).
20617 (Predefined_Primitive_Bodies): Do not generate the bodies of the
20618 predefined primitives associated with timed and conditional
20619 dispatching calls through synchronized interfaces if we are
20620 compiling under No_Dispatching_Calls.
20621 (Build_Init_Procedure): Use RTE_Available to check if a run-time
20622 service is available before generating a call.
20623 (Make_Controlling_Function_Wrappers): New procedure.
20624 (Expand_N_Full_Type_Declaration): Create a class-wide master for
20625 access-to-limited-interfaces because they can be used to reference
20626 tasks that implement such limited interface.
20627 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20628 procedure spec and body of the Offset_To_Top function that is generated
20629 when the parent of a type with discriminants has secondary dispatch
20631 (Init_Secondary_Tags): Handle the case in which the parent of the type
20632 containing secondary dispatch tables has discriminants to generate the
20633 correct arguments to call Set_Offset_To_Top.
20634 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
20636 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
20637 Add Wide_[Wide_]Expanded_Name.
20638 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
20639 the same functionality of Get_Prim_Op_Address but applied to predefined
20640 primitive operations because the pointers to the predefined primitives
20641 are now saved in a separate table.
20642 (Parent_Size): Modified to get access to the separate table of primitive
20643 operations or the parent type.
20644 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
20645 functionality of Set_Prim_Op_Address but applied to predefined primitive
20647 (Set_Signature): New subprogram used to store the signature of a DT.
20648 (Displace): If the Offset_To_Top value is not static then call the
20649 function generated by the expander to get such value; otherwise use
20650 the value stored in the table of interfaces.
20651 (Offset_To_Top): The type of the actual has been changed to Address to
20652 give the correct support to tagged types with discriminants. In this
20653 case this value is stored just immediately after the tag field.
20654 (Set_Offset_To_Top): Two new formals have been added to indicate if the
20655 offset_to_top value is static and hence pass this value to the run-time
20656 to store it in the table of interfaces, or else if this value is dynamic
20657 and then pass to the run-time the address of a function that is
20658 generated by the expander to provide this value for each object of the
20661 * rtsfind.ads (Default_Prin_Op_Count): Removed.
20662 (Default_Prim_Op_Count): New entity
20663 (Get_Predefined_Prim_Op_Address): New entity
20664 (Set_Predefined_Prim_Op_Address): New entity
20665 (RE_Set_Signature): New entity
20667 2006-02-13 Thomas Quinot <quinot@adacore.com>
20668 Ed Schonberg <schonberg@adacore.com>
20670 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
20671 Make_Adjust_Call done for a newly-allocated object.
20673 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
20674 in a subprogram are wrapped in a cleanup block, indicate that the
20675 subprogram contains an inner block with an exception handler.
20676 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
20677 Adjust call is for a newly-allocated object. In that case we must not
20678 assume that the finalization list chain pointers are correct (since they
20679 come from a bit-for-bit copy of the original object's pointers) so if
20680 the attach level would otherwise be zero (no change), we set it to 4
20681 instead to cause the pointers to be reset to null.
20683 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
20684 reset chain pointers to null.
20686 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20688 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
20689 string, and the context requires a loop for the assignment (e.g.
20690 because the left-hand side is packed), generate a unique name for the
20691 temporary that holds the string, to prevent spurious name clashes.
20693 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20694 Javier Miranda <miranda@adacore.com>
20695 Robert Dewar <dewar@adacore.com>
20696 Gary Dismukes <dismukes@adacore.com>
20698 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
20699 return unconstrained arrays.
20701 (Expand_Call): An indirect call through an access parameter of a
20702 protected operation is not a protected call.
20703 Add circuit to raise CE in Ada 2005 mode following call
20704 to Raise_Exception.
20705 (Register_DT_Entry): Do nothing if
20706 the run-time does not give support to abstract interfaces.
20707 (Freeze_Subprogram): In case of dispatching operations, do not generate
20708 code to register the operation in the dispatch table if the source
20709 is compiled with No_Dispatching_Calls.
20710 (Register_Predefined_DT_Entry): Generate code that calls the new
20711 run-time subprogram Set_Predefined_Prim_Op_Address instead of
20712 Set_Prim_Op_Address.
20714 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
20715 on array assignments if the right-hand side is a function call that has
20716 been inlined. Check is performed on the assignment in the block.
20717 (Process_Bounds): If bounds and range are overloaded, apply preference
20718 rule for root operations to disambiguate, and diagnose true ambiguity.
20719 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
20720 a tag-indeterminate right-hand side even when Expander_Active is True.
20721 Needed to ensure that dispatching calls to T'Input are allowed and
20722 get the tag of the target class-wide object.
20724 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
20725 an inherited primitive operation that already overrides several
20726 abstract interface primitives. For transitivity, the new entity must
20727 also override all the abstract interface primitives covered by the
20728 inherited overriden primitive.
20729 Emit warning if new entity differs from homograph in same scope only in
20730 that one has an access parameter and the other one has a parameter of
20731 a general access type with the same designated type, at the same
20732 position in the signature.
20733 (Make_Inequality_Operator): Use source locations of parameters and
20734 subtype marks from corresponding equality operator when creating the
20735 tree structure for the implicit declaration of "/=". This does not
20736 change anything in behaviour except that the decoration of the
20737 components of the subtree created for "/=" allows ASIS to get the
20738 string images of the corresponding identifiers.
20739 (Analyze_Return_Statement): Remove '!' in warning message.
20740 (Check_Statement_Sequence): Likewise.
20741 (Analyze_Subprogram_Body): For an access parameter whose designated type
20742 is an incomplete type imported through a limited_with clause, use the
20743 type of the corresponding formal in the body.
20744 (Check_Returns): Implicit return in No_Return procedure now raises
20745 Program_Error with a compile time warning, instead of beging illegal.
20746 (Has_Single_Return): Function returning unconstrained type cannot be
20747 inlined if expression in unique return statement is not an identifier.
20748 (Build_Body_To_Inline): It is possible to inline a function call that
20749 returns an unconstrained type if all return statements in the function
20750 return the same local variable. Subsidiary procedure Has_Single_Return
20751 verifies that the body conforms to this restriction.
20753 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
20754 same type, and one of them is of an anonymous access type, convert
20755 the other operand to it, so that this is a valid binary operation for
20757 (Resolve_Type_Conversion): Handle subtypes of protected types and
20758 task types when accessing to the corresponding record type.
20759 (Resolve_Allocator): Add '\' in 2-line warning message.
20760 Remove '!' in warning message.
20761 (Resolve_Call): Add '\' in 2-line warning message.
20762 (Valid_Conversion): Likewise.
20763 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
20764 resulting type may be an access type with an implicit dereference.
20765 Obtain the proper component from the designated type.
20766 (Make_Call_Into_Operator): Handle properly a call to predefined equality
20767 given by an expanded name with prefix Standard, when the operands are
20768 of an anonymous access type.
20769 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
20770 Explicit_Dereference and Resolve_Selected_Component, to verify that the
20771 prefix of the expression is not of an incomplete type. Allows full
20772 diagnoses of all semantic errors.
20773 (Resolve_Actuals): If the actual is an allocator whose directly
20774 designated type is a class-wide interface we build an anonymous
20775 access type to use it as the type of the allocator. Later, when
20776 the subprogram call is expanded, if the interface has a secondary
20777 dispatch table the expander will add a type conversion to force
20778 the displacement of the pointer.
20779 (Resolve_Call): If a function that returns an unconstrained type is
20780 marked Inlined_Always and inlined, the call will be inlined and does
20781 not require the creation of a transient scope.
20782 (Check_Direct_Boolean_Op): Removed
20783 (Resolve_Comparison_Op): Remove call to above
20784 (Resolve_Equality_Op): Remove call to above
20785 (Resolve_Logical_Op): Inline above, since this is only call.
20786 (Valid_Conversion): Handle properly conversions between arrays of
20787 convertible anonymous access types.
20790 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
20791 the literal in an unchecked conversion, because GCC 4.x needs a static
20792 value for a string bound.
20794 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20795 Hristian Kirtchev <kirtchev@adacore.com>
20797 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
20798 components of the corresponding record, take into account component
20799 definitions that are access definitions.
20800 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
20801 procedure is not considered a dispatching call and will be expanded
20804 2006-02-13 Javier Miranda <miranda@adacore.com>
20806 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
20807 controlling argument of the dispatching call is an abstract interface
20808 class-wide type then we use it directly.
20809 Check No_Dispatching_Calls restriction.
20810 (Default_Prim_Op_Position): Remove the code that looks for the last
20811 entity in the list of aliased subprograms. This code was wrong in
20813 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
20814 when the source is compiled with the No_Dispatching_Calls restriction.
20815 (Init_Predefined_Interface_Primitives): No need to inherit primitives
20816 if we are compiling with restriction No_Dispatching_Calls.
20817 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
20818 subprograms if we are compiling under No_Dispatching_Calls restriction.
20819 (Make_DT): Generate a dispatch table with a single dummy entry if
20820 we are compiling with the No_Dispatching_Calls restriction. In
20821 addition, in this case we don't generate code that calls to the
20822 following run-time subprograms: Set_Type_Kind, Inherit_DT.
20823 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
20824 of this subprogram if compiling with the No_Dispatching_Calls
20826 (Expand_Type_Conversion): Instead of using the actual parameter,
20827 the argument passed as parameter to the conversion function was
20828 erroneously referenced by the expander.
20829 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
20830 Set_Predefined_Primitive_Op_Address and Set_Signature.
20831 (Expand_Dispatching_Call): Generate call to
20832 Get_Predefined_Prim_Op_Address for predefined primitives.
20833 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
20834 predefined primitives.
20835 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
20836 primitives we reserve one dummy entry to ensure that the tag does not
20837 point to some memory that is associated with some other object. In
20838 addition, remove all the old code that generated the assignments
20839 associated with the signature of the dispatch table and replace them
20840 by a call to the new subprogram Set_Signature.
20841 (Set_All_DT_Position): Change the algorithm because now we have a
20842 separate dispatch table associated with predefined primitive operations.
20843 (Expand_Interface_Conversion): In case of non-static offset_to_top
20844 add explicit dereference to get access to the object after the call
20845 to displace the pointer to the object.
20846 (Expand_Interface_Thunk): Modify the generation of the actual used
20847 in the calls to the run-time function Offset_To_Top to fulfil its
20849 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
20851 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20853 * exp_dist.adb (Copy_Specification): For access parameters, copy
20854 Null_Exclusion flag, which will have been set for stream subprograms
20857 2006-02-13 Pascal Obry <obry@adacore.com>
20859 * expect.c (__gnat_expect_portable_execvp): New implementation. The
20860 previous implementation was using the C runtime spawnve routine but
20861 the corresponding wait was using directly the Win32 API. This was
20862 causing some times a lock when waiting for an event using
20863 WaitForSingleObject in __gnat_waitpid. This new implementation uses
20864 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
20865 API fixes this problem.
20867 2006-02-13 Robert Dewar <dewar@adacore.com>
20869 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
20872 2006-02-13 Thomas Quinot <quinot@adacore.com>
20874 * exp_pakd.ads: Fix typos in comments.
20876 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
20877 array reference that is an explicit dereference, mark the converted
20878 (packed) array reference as analyzed to prevent a forthcoming
20879 reanalysis from resetting its type to the original (non-packed) array
20882 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20883 Javier Miranda <miranda@adacore.com>
20884 Eric Botcazou <ebotcazou@adacore.com>
20886 * exp_util.ads, exp_util.adb (Find_Prim_Op,
20887 Is_Predefined_Primitive_Operation): When
20888 searching for the predefined equality operator, verify that operands
20889 have the same type.
20890 (Is_Predefined_Dispatching_Operation): Remove the code that looks
20891 for the last entity in the list of aliased subprograms. This code
20892 was wrong in case of renamings.
20893 (Set_Renamed_Subprogram): New procedure
20894 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
20895 Exp_Type constant computed when entering this subprogram.
20896 (Known_Null): New function
20897 (OK_To_Do_Constant_Replacement): New function
20898 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
20899 (Side_Effect_Free): An attribute reference 'Input is not free of
20900 side effect, unlike other attributes that are functions. (from code
20902 (Remove_Side_Effects): Expressions that involve packed arrays or records
20903 are copied at the point of reference, and therefore must be marked as
20904 renamings of objects.
20905 (Is_Predefined_Dispatching_Operation): Return false if the operation is
20906 not a dispatching operation.
20909 (Remove_Side_Effects): Lift enclosing type conversion nodes for
20910 elementary types in all cases.
20912 2006-02-13 Javier Miranda <miranda@adacore.com>
20914 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
20915 task types when accessing to the corresponding record type.
20916 Remove '!' in warning message.
20918 2006-02-13 Olivier Hainque <hainque@adacore.com>
20920 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
20921 to avoid useless and space inefficient overalignments on targets where
20922 Max_Alignment is larger than 16.
20924 2006-02-13 Pascal Obry <obry@adacore.com>
20926 * g-catiio.adb (Sec_Number): New type used to compute the number of
20927 seconds since 1-1-1970.
20928 (Image) [Natural]: The parameter was an Integer, as we can't deal with
20929 negative numbers (years, months...) it is better to have a Natural here.
20931 (Image) [Number]: Change parameter from Long_Integer to Number.
20932 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
20933 overflow for dates past year 2038.
20935 2006-02-13 Matthew Heaney <heaney@adacore.com>
20937 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
20940 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20942 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
20944 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
20945 finalization can occur normally.
20947 2006-02-13 Vincent Celier <celier@adacore.com>
20949 * gnatcmd.adb (Rules_Switches): New table
20950 (Add_To_Rules_Switches): New procedure
20951 (GNATCmd): For command CHECK, put all options following "-rules" in the
20952 Rules_Switches table. Append these -rules switches after the -cargs
20955 2006-02-13 Robert Dewar <dewar@adacore.com>
20957 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
20958 These two cases were generating incorrect output, and if this unit
20959 was built with checks on, generated a discriminant mismatch constraint
20962 2006-02-13 Ed Schonberg <schonberg@adacore.com>
20963 Robert Dewar <dewar@adacore.com>
20965 * lib-xref.adb (Get_Type_Reference): For a private type whose full
20966 view is an array type, indicate the component type as well, for
20967 navigation purposes.
20968 (Generate_Reference): Don't consider array ref on LHS to be a case
20969 of violating pragma Unreferenced.
20970 Do not give Ada 2005 warning except on real reference.
20972 2006-02-13 Vincent Celier <celier@adacore.com>
20974 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
20975 main source, add switch -mdebug-main=_ada_ so that the executable can
20976 be debugged by the standard VMS debugger.
20977 (Gnatmake): Set No_Main_Subprogram to True when there is no main
20978 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
20979 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
20980 of the last source, as the binding and linking phases are never
20982 Set all executable obsolete when rebuilding a library.
20984 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
20987 2006-02-13 Javier Miranda <miranda@adacore.com>
20990 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
20991 code to improve the error message reported when the program has
20992 declarations of abstract interface types and it is not compiled with
20993 the -gnat05 switch.
20994 (P_Access_Definition): Reorganize the code to improve the error
20995 message reported when the new Ada 2005 syntax for anonymous
20996 access types is used and the program is not compiled with the
20999 2006-02-13 Robert Dewar <dewar@adacore.com>
21001 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21002 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21005 2006-02-13 Javier Miranda <miranda@adacore.com>
21007 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21008 against source containing syntax errors.
21010 2006-02-13 Vincent Celier <celier@adacore.com>
21012 * prj.adb (Reset): Initialize the first element of table Namings with
21013 the standard naming data.
21015 2006-02-13 Vincent Celier <celier@adacore.com>
21017 * prj.ads (Error_Warning): New enumeration type
21019 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21020 unknown, use the location of the project to report the error.
21021 (When_No_Sources): New global variable
21022 (Report_No_Ada_Sources): New procedure
21023 (Check): New parameter When_No_Sources. Set value of global variable
21025 (Find_Sources): Call Report_No_Ada_Sources when appropriate
21026 (Get_Sources_From_File): Ditto
21027 (Warn_If_Not_Sources): Better warning messages indicating the unit name
21030 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21031 Call Prj.Proc.Process with parameter When_No_Sources.
21033 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21034 Call Recursive_Check with parameter When_No_Sources.
21035 (Recursive_Check): New parameter When_No_Sources. Call itself and
21036 Prj.Nmsc.Check with parameter When_No_Sources.
21037 (Process): New parameter When_No_Sources. Call Check with parameter
21039 (Copy_Package_Declarations): New procedure to copy renamed parameters
21040 and setting the location of the declared attributes to the location
21041 of the renamed package.
21042 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21045 2006-02-13 Vincent Celier <celier@adacore.com>
21047 * prj-makr.adb (Make): Preserve the comments from the original project
21049 When removing nodes (attributes Source_Dirs, Source_Files,
21050 Source_List_File and package Naming), save the comments and attach the
21051 saved comments to the newly created nodes.
21052 Do not add a with clause for the naming package if one already exists.
21054 2006-02-13 Javier Miranda <miranda@adacore.com>
21055 Gary Dismukes <dismukes@adacore.com>
21056 Robert Dewar <dewar@adacore.com>
21058 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21060 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21061 aliased entities to look for the overriden abstract interface
21063 (Is_Interface_Subprogram): Complete documentation.
21064 (Check_Dispatching_Operation): Do not generate code to register the
21065 operation in the dispatch table if the source is compiled with
21066 restriction No_Dispatching_Calls.
21067 (Override_Dispatching_Operation): Check for illegal attempt to override
21068 No_Return procedure with procedure that is not No_Return
21069 (Check_Dispatching_Call): Suppress the check for an abstract operation
21070 when the original node of an actual is a tag-indeterminate attribute
21071 call, since the attribute, which must be 'Input, can never be abstract.
21072 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21073 call to the Input attribute (even when rewritten).
21074 (Propagate_Tag): Augment comment to indicate the possibility of a call
21075 to an Input attribute.
21077 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21078 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21080 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21081 No_Wide_Characters is no longer partition-wide
21082 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21085 2006-02-13 Douglas Rupp <rupp@adacore.com>
21087 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21089 2006-02-13 Javier Miranda <miranda@adacore.com>
21091 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21092 handles default-initialized components to keep separate the management
21093 of this feature but also avoid the unrequired resolution and
21094 expansion of components that do not have partially initialized
21096 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21097 (Check_Bounds): Likewise.
21098 (Check_Length): Likewise.
21100 2006-02-13 Javier Miranda <miranda@adacore.com>
21101 Ed Schonberg <schonberg@adacore.com>
21103 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21104 abstract interface type call analyze_and_resolve to expand the type
21105 conversion into the corresponding displacement of the
21106 reference to the base of the object.
21107 (Eval_Attribute, case Width): For systems where IEEE extended precision
21108 is supported, the maximum exponent occupies 4 decimal digits.
21109 (Accessibility_Message): Add '\' in 2-line warning message.
21110 (Resolve_Attribute): Likewise.
21111 (case Attribute_Access): Significantly revise checks
21112 for illegal access-to-subprogram Access attributes to properly enforce
21113 the rules of 3.10.2(32/2).
21114 Diagnose use of current instance with an illegal attribute.
21116 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21118 (Enclosing_Generic_Unit): New function to return a node's innermost
21119 enclosing generic declaration node.
21120 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21121 (Type_Access_Level): The accessibility level of anonymous acccess types
21122 associated with discriminants is that of the current instance of the
21123 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21124 (Compile_Time_Constraint_Error): Handle case of conditional expression.
21125 (Kill_Current_Values_For_Entity): New function
21126 (Enter_Name): Change formal type to Entity_Id
21128 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
21129 Ed Schonberg <schonberg@adacore.com>
21130 Gary Dismukes <dismukes@adacore.com>
21132 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21133 Analyze_Compilation_Unit.
21134 Detect and warn on redundant with clauses detected in a package spec
21135 and/or body when -gnatwr is used.
21136 (Analyze_Context): Analyze config pragmas before other items
21137 (Install_Context_Items): Don't analyze config pragmas here
21138 (Install_Limited_Withed_Unit): Set limited entity of package in
21139 with_clause so that cross-reference information or warning messages on
21140 unused packages can be properly generated
21141 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21142 has Error_Posted set. Prevent infinite loops in illegal programs.
21143 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21144 to the point of the error test requiring the current unit to be private.
21145 This ensures that private with clauses are not exempted from the basic
21146 checking for being a descendant of the same library unit parent as a
21147 withed private descendant unit.
21148 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21149 handle private with clauses properly, as well as to account for cases
21150 where the withed unit is a public descendant of a private ancestor
21151 (in which case the current unit must be a descendant of the private
21152 ancestor's parent). The spec comments were updated accordingly. Also,
21153 the old error message in this subprogram was replaced with error
21154 messages that mirror the errors tested and reported by
21155 Check_Private_Child_Unit.
21156 Parameter and variable names improved for readability.
21157 (Install_Limited_Context_Clauses): Remove test for a withed unit being
21158 private as the precondition for calling
21159 Check_Private_Limited_Withed_Unit since that subprogram has been
21160 revised to test public units as well as private units.
21162 2006-02-13 Thomas Quinot <quinot@adacore.com>
21163 Robert Dewar <dewar@adacore.com>
21164 Ed Schonberg <schonberg@adacore.com>
21165 Javier Miranda <miranda@adacore.com>
21167 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21168 that Scope_Stack.First = 1.
21169 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21170 were not always properly handled previously.
21171 (Formal_Entity): Complete rewrite, to handle properly some complex case
21172 with multiple levels of parametrization by formal packages.
21173 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21174 to the corresponding derived type declaration for proper semantics.
21176 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21177 (Check_Component): Enforce restriction on components of
21178 unchecked_unions: a component in a variant cannot contain tasks or
21180 (Unchecked_Union): Allow nested variants and multiple discriminants, to
21182 Add pragma Ada_2005 (synonym for Ada_05)
21183 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21184 were not always properly handled previously.
21185 Document that pragma Propagate_Exceptions has no effect
21186 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21187 (Set_Convention_From_Pragma): Check that if a convention is
21188 specified for a dispatching operation, then it must be
21189 consistent with the existing convention for the operation.
21190 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21191 longer required to specify an vtable-ptr component in the record. For
21192 compatibility reasons we leave the support for the previous definition.
21193 (Analyze_Pragma, case No_Return): Allow multiple arguments
21195 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21196 non-overrideen inherited operation with a controlling result as
21197 illegal only its implicit declaration comes from the derived type
21198 declaration of its result's type.
21199 (Check_Possible_Deferred_Completion): Relocate the object definition
21200 node of the subtype indication of a deferred constant completion rather
21201 than directly analyzing it. The analysis of the generated subtype will
21202 correctly decorate the GNAT tree.
21203 (Record_Type_Declaration): Check whether this is a declaration for a
21204 limited derived record before analyzing components.
21205 (Analyze_Component_Declaration): Diagnose record types not explicitly
21206 declared limited when a component has a limited type.
21207 (Build_Derived_Record_Type): Code reorganization to check if some of
21208 the inherited subprograms of a tagged type cover interface primitives.
21209 This check was missing in case of a full-type associated with a private
21211 (Constant_Redeclaration): Check that the subtypes of the partial and the
21212 full view of a constrained deferred constant statically match.
21213 (Mentions_T): A reference to the current type in an anonymous access
21214 component declaration must be an entity name.
21215 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21216 class_wide type to refer to full type, not to the incomplete one.
21217 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21218 available. Required to give support to the certified run-time.
21219 (Analyze_Component_Declaration): In case of anonymous access components
21220 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21221 (Process_Discriminants): For an access discriminant, use the
21222 discriminant specification as the associated_node_for_itype, to
21223 simplify accessibility checks.
21225 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21226 Javier Miranda <miranda@adacore.com>
21228 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21229 abstract interpretations on an operator, remove interpretations that
21230 yield Address or a type derived from it, if one of the operands is an
21232 (Try_Object_Operation.Try_Primitive_Operation,
21233 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21234 location when creating the new reference to a primitive or class-wide
21235 operation as a part of rewriting a subprogram call.
21236 (Try_Primitive_Operations): If context requires a function, collect all
21237 interpretations after the first match, because there may be primitive
21238 operations of the same type with the same profile and different return
21239 types. From code reading.
21240 (Try_Primitive_Operation): Use the node kind to choose the proper
21241 operation when a function and a procedure have the same parameter
21243 (Complete_Object_Operation): If formal is an access parameter and prefix
21244 is an object, rewrite as an Access reference, to match signature of
21245 primitive operation.
21246 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21247 by an expanded name with prefix Standard, when the operands are of an
21248 anonymous access type.
21249 (Remove_Abstract_Operations): If the operation is abstract because it is
21250 inherited by a user-defined type derived from Address, remove it as
21251 well from the set of candidate interpretations of an overloaded node.
21252 (Analyze_Membership_Op): Membership test not applicable to cpp-class
21255 2006-02-13 Bob Duff <duff@adacore.com>
21257 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21258 redundant use clauses.
21259 In particular, if the scope of two use clauses overlaps, but one is not
21260 entirely included in the other, we should not warn. This can happen
21261 with nested packages.
21262 (Analyze_Subprogram_Renaming): Protect the compiler against previously
21263 reported errors. The bug was reported when the compiler was built
21264 with assertions enabled.
21265 (Find_Type): If the node is a 'Class reference and the prefix is a
21266 synchronized type without a corresponding record, return the type
21269 2006-02-13 Javier Miranda <miranda@adacore.com>
21271 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21272 if this is the full-declaration associated with a private declaration
21273 that implement interfaces, then the private type declaration must be
21275 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21276 as aliased. The use of the 'access attribute is not available for such
21277 object (for this purpose the object should be explicitly marked as
21278 aliased, but being an anonymous type this is not possible).
21280 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21281 Robert Dewar <dewar@adacore.com>
21283 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21284 compilation unit is an elaboration scope.
21285 (Add_Task_Proc): Add '\' in 2-line warning message.
21286 (Activate_All_Desirable): Deal with case of unit with'ed by parent
21288 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21289 Javier Miranda <miranda@adacore.com>
21291 * sem_type.adb (Write_Overloads): Improve display of candidate
21293 (Add_One_Interp): Do not add to the list of interpretations aliased
21294 entities corresponding with an abstract interface type that is an
21295 immediate ancestor of a tagged type; otherwise we have a dummy
21296 conflict between this entity and the aliased entity.
21297 (Disambiguate): The predefined equality on universal_access is not
21298 usable if there is a user-defined equality with the proper signature,
21299 declared in the same declarative part as the designated type.
21300 (Find_Unique_Type): The universal_access equality operator defined under
21301 AI-230 does not cover pool specific access types.
21302 (Covers): If one of the types is a generic actual subtype, check whether
21303 it matches the partial view of the other type.
21305 2006-02-13 Thomas Quinot <quinot@adacore.com>
21307 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21308 line. This is necessary to allow In_Extended_Main_Unit to provide
21309 correct results for itypes while writing out expanded source.
21310 (Close_File): No need to update the source_index_table here since it's
21311 now done for each line.
21313 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21314 Robert Dewar <dewar@adacore.com>
21316 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21317 preserve the source unit where the itype is declared, and prevent a
21319 (Note_Implicit_Run_Time_Call): New procedure
21320 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21323 * sprint.ads: Document use of $ for implicit run time routine call
21325 2006-02-13 Quentin Ochem <ochem@adacore.com>
21327 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21330 2006-02-13 Bob Duff <duff@adacore.com>
21332 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21333 Scan_Unsigned, so we do not scan leading blanks and sign twice.
21334 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21335 raise Constraint_Error.
21337 * s-vallli.adb (Scan_Long_Long_Integer): Call
21338 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21339 do not scan leading blanks and sign twice.
21340 Integer'Value("- 5") and Integer'Value("-+5") now correctly
21341 raise Constraint_Error.
21343 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21344 Scan_Long_Long_Unsigned): Split out most of the processing from
21345 Scan_Long_Long_Unsigned out into
21346 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21347 This prevents scanning leading blanks and sign twice.
21348 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21351 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21352 out most of the processing from Scan_Unsigned out into
21353 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21354 This prevents scanning leading blanks and sign twice.
21356 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21357 use with Modular'Value attribute.
21358 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21361 2006-02-13 Robert Dewar <dewar@adacore.com>
21363 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21365 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21367 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21368 (PPC VxWorks): Likewise.
21369 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21370 (forced_callee): Make non-inlinable and non-pure.
21371 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21373 2006-02-13 Arnaud Charlet <charlet@adacore.com>
21374 Ben Brosgol <brosgol@adacore.com>
21375 Robert Dewar <dewar@adacore.com>
21377 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21379 Document that gnatbind -M option is for cross environments only.
21380 Added description of using gnatmem to trace gnat rtl allocs and deallocs
21381 Add note on use of $ to label implicit run time calls
21382 Add documentation for -gnatyI (check mode IN)
21383 Updated chapter on compatibility with HP Ada
21384 VMS-oriented edits.
21385 Ran spell and corrected errors
21386 Add documentation for gnatbind -d and rework documentation of -D
21388 Add subprogram/data elimination section.
21389 Minor editing of annex A.
21390 Add section for gnatcheck.
21391 Add documentation for restriction No_Dispatching_Calls
21392 Add documentation for pragma Ada_2005
21393 Remove mention of obsolete pragma Propagate_Exceptions
21394 Document that pragma Unreferenced can appear after DO in ACCEPT
21395 Clarify Pure_Function for library level units
21396 Mention Max/Min in connection with No_Implicit_Conditionals
21397 No_Wide_Characters restriction is no longer partition-wide
21398 Add a nice example for Universal_Literal_String attribute
21399 Document that pragma No_Return can take multiple arguments
21401 * ug_words: Added entry for gnatcheck
21403 * g-ctrl_c.ads (Install_Handler): Enhance comments
21405 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21407 * g-trasym.ads: Add documentation on how to do off line symbolic
21408 traceback computation.
21410 * s-fatgen.adb: Add comments for Unaligned_Valid
21412 * stand.ads: Fix typo in comment
21414 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
21416 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21418 2006-02-06 Roger Sayle <roger@eyesopen.com>
21420 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21422 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21425 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21426 implementation that calls __main.
21428 2006-01-25 Peter O'Gorman <peter@pogma.com>
21431 * Makefile.in (GCC_LINK): Remove quotes.
21432 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21435 (powerpc-darwin): Pass -shared-libgcc when building shared library.
21437 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21440 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21442 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21444 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21446 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21448 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21451 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21453 * Make-lang.in: Update dependencies
21455 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21457 * Make-lang.in: Add rule for ada/exp_sel.o
21459 2005-12-12 Arnaud Charlet <charlet@adacore.com>
21461 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21463 2005-12-09 Arnaud Charlet <charlet@adacore.com>
21465 * gnatvsn.ads (Library_Version): Bump to version 4.2
21466 (ASIS_Version_Number): Bumped.
21468 2005-12-09 Doug Rupp <rupp@adacore.com>
21470 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21471 Ada bind file prefix on VMS from b$ to b__.
21472 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21475 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21476 Targparm.OpenVMS_On_Target.
21477 (Object_Suffix): Initialize with target object suffix.
21478 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21480 * butil.adb: Change some Hostparm.OpenVMS checks to
21481 Targparm.OpenVMS_On_Target.
21483 * clean.adb: Change some Hostparm.OpenVMS checks to
21484 Targparm.OpenVMS_On_Target.
21485 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21486 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21487 Ada bind file prefix on VMS from b$ to b__.
21489 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21490 --GCC so that Get_Target_Parameters can find system.ads.
21491 (Gnatlink): Call Get_Target_Parameters in mainline.
21492 Initialize standard packages for Targparm.
21493 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21494 (Process_Args): Also Check for object files with target object
21496 (Make_Binder_File_Names): Create with target object extension.
21497 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21500 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21501 Targparm.OpenVMS_On_Target.
21502 ({declaration},Build_Library,Check_Library): Change Ada bind file
21503 prefix on VMS from b$ to b__.
21505 * osint-b.adb: Change some Hostparm.OpenVMS checks to
21506 Targparm.OpenVMS_On_Target.
21507 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21510 * targext.c: New file.
21512 * Makefile.in: add support for vxworks653 builds
21513 (../../vxaddr2line): gnatlink with targext.o.
21514 (TOOLS_LIBS): Move targext.o to precede libgnat.
21515 (init.o, initialize.o): Minor clean up in dependencies.
21516 (GNATLINK_OBJS): Add targparm.o, snames.o
21517 Add rules fo building targext.o and linking it explicitly with all
21519 Also add targext.o to gnatlib.
21521 * Make-lang.in: Add rules for building targext.o and linking it in
21522 with gnat1 and gnatbind.
21523 Add entry for exp_sel.o.
21525 * osint.adb Change some Hostparm.OpenVMS checks to
21526 Targparm.OpenVMS_On_Target.
21527 (Object_File_Name): Use target object suffix.
21529 * osint.ads (Object_Suffix): Remove, no longer used.
21530 (Target_Object_Suffix): Initialize with target object suffix.
21532 * rident.ads: Add special exception to license.
21534 * targparm.adb (Get_Target_Parameters): Set the value of
21535 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21537 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21539 * targparm.ads: Add special exception to license.
21541 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21543 (Copy_File): Make sure from file is closed if error on to file
21544 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21546 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21547 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21549 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21550 target object suffix.
21552 2005-12-09 Jose Ruiz <ruiz@adacore.com>
21553 Quentin Ochem <ochem@adacore.com>
21554 Florian Villoing <villoing@adacore.com>
21556 * a-taster.ads, a-taster.adb: New files.
21558 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21559 link to the version that does nothing. This way the task termination
21560 routine is not executed twice for the environment task when finishing
21561 because of an unhandled exception.
21563 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21564 handler because of an unhandled exception.
21566 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21567 System.Tasking.Utilities instead of that in System.Tasking.Stages.
21569 * s-finimp.adb (initialization code): Modify the soft link for the
21570 finalization of the global list instead of Adafinal.
21572 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21573 non-tasking version of the soft link for task termination. We do
21574 nothing since if we are using the non-tasking version it
21575 means that the task termination functionality is not used.
21576 (Null_Finalize_Global_List): Add this null version for the procedure
21577 in charge of finalizing the global list for controlled objects.
21578 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21579 instead for handling run-time termination in a more flexible way.
21580 (Adafinal_NT): This new procedure will take care of finalizing the
21581 global list for controlled objects if needed, but no tasking
21584 * s-tarest.adb (Task_Lock): Do not try to lock again the
21585 Global_Task_Lock if we already own it. Otherwise, we get blocked in
21586 some run-time operations.
21587 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21588 until all nested locks have been released.
21589 (Task_Wrapper): Call the fall-back task termination handler. It
21590 applies to all tasks but the environment task.
21591 (Finalize_Global_Tasks): Add the call for the task termination
21592 procedure for the environment task.
21593 (Task_Wrapper): suppress warnings around declaration of
21594 Secondary_Stack_Address.
21596 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21597 moved to the Common_ATCB record.
21598 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21599 Common_ATCB record.
21600 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21601 Common_ATCB record.
21603 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21604 Fall_Back_Handler, and Specific_Handler.
21606 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21607 defined in Ada.Task_Termination, to avoid circular dependencies.
21608 (Termination_Handler): Redefine this type here, alredy defined in
21609 Ada.Task_Termination, for avoiding circular dependencies.
21610 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21611 for storing task termination handlers. In addition,
21612 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21613 Common_ATCB because it is used by both the regular and the restricted
21615 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21616 Common_ATCB because it is used by both the regular and the restricted
21618 (Common_ATCB): Added a dynamic task analyzer field.
21620 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21621 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21622 (Task_Wrapper): Call the task termination handler. It applies to all
21623 tasks but the environment task.
21624 (Finalize_Global_Tasks): Call the task termination procedure for the
21625 environment task. The call to Finalize_Global_List is now performed
21626 using the soft links mechanism.
21627 (Task_Wrapper): added dynamic stack analysis.
21629 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21630 potentially blocking operations has been moved from
21631 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21632 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21633 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21634 this run-time check.
21636 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
21637 of task termination procedure.
21638 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
21639 link for the task termination procedure.
21641 * bindusg.adb: (Bindusg): Added documentation for -u option.
21643 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
21644 (Get_Main_C): Add handling of dynamic stack analysis.
21645 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
21647 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
21648 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
21649 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
21651 * opt.ads: Added flags used by dynamic stack measurement.
21652 (Max_Line_Length): Remove (not used anymore)
21654 * s-io.ads, s-io.adb (Standard_Error): new subprogram
21655 (Standart_Output): new subprogram
21656 (Set_Output): new subprogram
21657 (Put): now uses the value of Current_Out to know if the output has to be
21658 send to stderr or stdout.
21660 * s-stausa.ads: Complete implementation.
21662 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
21664 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
21665 list of Ada 05 files.
21666 (GNAT Library Units): Add AltiVec files.
21668 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
21669 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
21670 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
21672 2005-12-09 Nicolas Setton <setton@adacore.com>
21674 * adaint.c (__gnat_locate_regular_file): Return immediately if
21675 file_name is empty.
21677 2005-12-09 Javier Miranda <miranda@adacore.com>
21678 Hristian Kirtchev <kirtchev@adacore.com>
21680 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
21681 to the specification because the frontend generates code that uses this
21683 (Set_Interface_Table): Add missing assertion.
21684 Update documentation describing the run-time structure.
21685 (Displace): New subprogram that displaces the pointer to the object
21686 to reference one of its secondary dispatch tables.
21687 (IW_Membership): Modified to use the new table of interfaces.
21688 (Inherit_TSD): Modified to use the new table of interfaces.
21689 (Register_Interface_Tag): Use the additional formal to fill the
21690 contents of the new table of interfaces.
21691 (Set_Interface_Table): New subprogram that stores in the TSD the
21692 pointer to the table of interfaces.
21693 (Set_Offset_To_Top): Use the additional formal to save copy of
21694 the offset value in the table of interfaces.
21695 Update structure of GNAT Primary and Secondary dispatch table diagram.
21696 Add comment section on GNAT dispatch table prologue.
21697 (Offset_To_Signature): Update the constant value of the Signature field.
21698 (Dispatch_Table): Update comment on hidden fields in the prologue.
21699 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
21700 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
21701 the type of formal parameter T to Tag, introduce additional assertions.
21702 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
21704 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
21706 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
21707 in all the calls to Expand_Interface_Thunk. Instead of referencing the
21708 record component containing the tag of the secondary dispatch table we
21709 have to use the Offset_To_Top run-time function to get this information;
21710 otherwise if the pointer to the base of the object has been displace
21711 we get a wrong value if we use the 'position attribute.
21713 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
21714 all the calls to Expand_Interface_Thunk.
21715 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
21716 interfaces; hence the call to Set_Interface_Table was clearly wrong.
21717 (Collect_All_Interfaces): Modify the internal subprogram Collect to
21718 ensure that the interfaces implemented by the ancestors are placed
21719 at the header of the generated list.
21720 (Expand_Interface_Conversion): Handle the case in which the displacement
21721 associated with the interface conversion is not statically known. In
21722 this case we generate a call to the new run-time subprogram Displace.
21723 (Make_DT): Generate and fill the new table of interfaces.
21724 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
21725 Get_Tagged_Kind and Set_Tagged_Kind.
21726 (Tagged_Kind): New function that determines the tagged kind of a type
21727 with respect to limitedness and concurrency and returns a reference to
21729 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
21730 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
21731 primary dispatch table for a type.
21732 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
21733 secondary dispatch table respectively of a tagged type.
21735 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
21736 (Expand_Interface_Conversion): New subprogram to indicate if the
21737 displacement of the type conversion is statically known.
21738 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
21740 * rtsfind.ads (RE_Offset_To_Top): New entity
21741 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
21742 accessible to users.
21743 (Re_Displace): New entity
21744 (RE_Interface_Data): New entity
21745 (RE_Set_Interface_Data): New_Entity
21746 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
21747 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
21748 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
21749 RE_TK_Tagged, RE_TK_Task.
21751 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
21752 Init_Secondary_Tags_Internal to allow its use with interface types and
21753 also to generate the code for the new additional actual required
21754 by Set_Offset_To_Top.
21755 (Build_Init_Statements): In case of components associated with abstract
21756 interface types there is no need to generate a call to its IP.
21757 (Freeze_Record_Type): Generate Select Specific Data tables only for
21759 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
21760 the bodies and specifications of the predefined primitive operations
21761 dealing with dispatching selects and abort, 'Callable, 'Terminated only
21762 for concurrent types.
21764 * exp_sel.ads, exp_sel.adb: New files.
21766 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
21767 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
21768 properly protected objects and attach handler in the case of the
21769 restricted profile.
21770 Move embeded package Select_Expansion_Utilities into a separate external
21772 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
21773 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
21774 (Build_K, Build_S_Assignment): New subprograms, part of the select
21775 expansion utilities.
21776 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
21777 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
21778 where the trigger is a dispatching procedure of a limited tagged type.
21780 2005-12-09 Olivier Hainque <hainque@adacore.com>
21782 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
21783 pointer initialization values. Make a SAVE_EXPR instead. Add comments
21784 about the use and expansion of SAVE_EXPRs in the various possible
21785 renaming handling cases.
21786 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
21787 abusing DECL_FCONTEXT.
21789 2005-12-09 Matthew Heaney <heaney@adacore.com>
21791 * a-convec.adb (Merge): Added assertions to check whether vector params
21794 * a-coinve.adb (Merge): Added assertions to check whether vector params
21797 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
21799 (Cursor'Read): raises PE
21801 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
21802 to its default value.
21804 * a-cihama.adb: Manually check whether cursor's key and elem are
21807 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
21808 (Merge): Assert that target and source lists are in order
21809 (Swap): Declare non-const temporaries, to pass to Splice
21811 * a-cdlili.ads: (Splice): Changed param name and param mode
21813 * a-cdlili.adb: (Splice): Changed param name and param mode
21814 (Merge): Assert that target and source lists are in order
21815 (Swap): Declare non-const temporaries, to pass to Splice
21817 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
21818 (Write): declare Stream param as not null
21820 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
21821 an exception message.
21823 2005-12-09 Thomas Quinot <quinot@adacore.com>
21824 Robert Dewar <dewar@adacore.com>
21826 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
21827 which is the absolute maximum length we can support.
21829 * frontend.adb: For the processing of configuration pragma files,
21830 remove references to Opt.Max_Line_Length, which is not checked anymore.
21832 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
21835 * scn.adb, scng.adb:
21836 Always check line length against the absolute supported maximum,
21837 Hostparm.Max_Line_Length.
21839 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
21840 value for the maximum line length is Max_Line_Length (not
21841 Column_Number'Last).
21842 Minor error msg update
21843 (Set_Style_Check_Options): New interface returning error msg
21844 Minor code reorganization (processing for 'M' was out of alpha order)
21846 * switch-c.adb: New interface for Set_Style_Check_Options
21848 * stylesw.ads (Set_Style_Check_Options): New interface returning error
21851 2005-12-09 Javier Miranda <miranda@adacore.com>
21853 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
21854 with IP subprogram were only supported if there were limited types.
21856 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
21857 records with IP subprogram were only supported if there were limited
21860 2005-12-09 Olivier Hainque <hainque@adacore.com>
21861 Eric Botcazou <ebotcazou@adacore.com>
21863 * trans.c (tree_transform, emit_check): Adjust calls to
21864 build_call_raise, passing the now expected GNAT_NODE argument.
21866 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
21867 source line information than what the current global locus indicates
21870 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
21871 field has overflowed.
21872 (build_call_raise): Add a GNAT_NODE argument to convey better source
21873 line information than what the current global locus indicates when
21875 (build_component_ref): Adjust call to build_call_raise.
21877 2005-12-09 Pascal Obry <obry@adacore.com>
21879 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
21880 the iterator is quitting iteration on parent directory.
21882 2005-12-09 Javier Miranda <miranda@adacore.com>
21884 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
21885 and the assignment to a class-wide object, before the assignment we
21886 generate a run-time check to ensure that the tag of the Target is
21887 covered by the tag of the source.
21889 2005-12-09 Robert Dewar <dewar@adacore.com>
21891 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
21892 parameter in call to Image_Wide_Character.
21894 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
21895 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
21896 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
21897 annoying FFFE/FFFF inconsistency.
21899 2005-12-09 Robert Dewar <dewar@adacore.com>
21900 Javier Miranda <miranda@adacore.com>
21901 Ed Schonberg <schonberg@adacore.com>
21903 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
21904 of type conversion.
21905 (Find_Interface): New subprogram that given a tagged type and one of its
21906 component associated with the secondary table of an abstract interface
21907 type, return the entity associated with such abstract interface type.
21908 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
21909 base type to create anonymous subtype, because entity may be a locally
21910 declared subtype or generic actual.
21911 (Find_Interface): New subprogram that given a tagged type and one of its
21912 component associated with the secondary table of an abstract interface
21913 type, return the entity associated with such abstract interface type.
21915 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
21916 conversion cannot be handled at compile time. In this case we pass this
21917 information to the expander to generate the appropriate code.
21919 2005-12-09 Robert Dewar <dewar@adacore.com>
21920 Ed Schonberg <schonberg@adacore.com>
21921 Gary Dismukes <dismukes@adacore.com>
21922 Javier Miranda <miranda@adacore.com>
21923 Hristian Kirtchev <kirtchev@adacore.com>
21925 * einfo.adb (Itype_Printed): New flag
21926 (Is_Limited_Type): Derived types do not inherit limitedness from
21927 interface progenitors.
21928 (Is_Return_By_Reference_Type): Predicate does not apply to limited
21931 * einfo.ads (Itype_Printed): New flag
21932 Move Is_Wrapper_Package to proper section
21933 Add missing Inline for Is_Volatile
21935 * output.ads, output.adb (Write_Erase_Char): New procedure
21936 (Save/Restore_Output_Buffer): New procedures
21937 (Save/Restore_Output_Buffer): New procedures
21939 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
21940 Add missing support for anonymous access type
21941 (Write_Id): Insert calls to Write_Itype
21942 (Write_Itype): New procedure to output itypes
21944 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
21945 use of "limited" in declaration.
21947 * sinfo.ads, sinfo.adb:
21948 Formal derived types can carry an explicit "limited" indication.
21950 * sem_ch3.adb: Add with and use of Targparm.
21951 (Create_Component): If Frontend_Layout_On_Target is True and the
21952 copied component does not have a known static Esize, then reset
21953 the size and positional fields of the new component.
21954 (Analyze_Component_Declaration): A limited component is
21955 legal within a protected type that implements an interface.
21956 (Collect_Interfaces): Do not add to the list the interfaces that
21957 are implemented by the ancestors.
21958 (Derived_Type_Declaration): If the parent of the full-view is an
21959 interface perform a transformation of the tree to ensure that it has
21960 the same parent than the partial-view. This simplifies the job of the
21961 expander in order to generate the correct object layout, and it is
21962 needed because the list of interfaces of the full-view can be given in
21964 (Process_Full_View): The parent of the full-view does not need to be
21965 a descendant of the parent of the partial view if both parents are
21967 (Analyze_Private_Extension_Declaration): If declaration has an explicit
21968 "limited" the parent must be a limited type.
21969 (Build_Derived_Record_Type): A derived type that is explicitly limited
21970 must have limited ancestor and progenitors.
21971 (Build_Derived_Type): Ditto.
21972 (Process_Full_View): Verify that explicit uses of "limited" in partial
21973 and full declarations are consistent.
21974 (Find_Ancestor_Interface): Remove function.
21975 (Collect_Implemented_Interfaces): New procedure used to gather all
21976 implemented interfaces by a type.
21977 (Contain_Interface): New function used to check whether an interface is
21979 (Find_Hidden_Interface): New function used to determine whether two
21980 lists of interfaces constitute a set equality. If not, the first
21981 differing interface is returned.
21982 (Process_Full_View): Improve the check for the "no hidden interface"
21983 rule as defined by AI-396.
21985 2005-12-09 Robert Dewar <dewar@adacore.com>
21987 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
21988 types, not on record subtypes.
21989 (Freeze_Entity): Code cleanup. Add barrier to the loop
21990 that generates the references for primitive operations. This allows to
21991 remove an unnecessary exception handler.
21992 Code reformatting and comment clean ups.
21994 2005-12-09 Vincent Celier <celier@adacore.com>
21996 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
21997 If GNAT CHECK is called with a project file, but with no
21998 source on the command line, call gnatcheck with all the compilable
21999 sources of the project.
22000 Take into account the new command Check, for gnatcheck. Treat as for
22001 other ASIS tools: take into account project, specific package Check and
22003 For ASIS tools, add the switches in package Compiler for
22004 the invocation of the compiler.
22006 * prj-attr.adb: Add package Check and its attributes
22008 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22010 * vms_conv.adb (Initialize): Change Params of command Check to
22012 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22013 Add data for new command Check
22015 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22017 Add qualifiers for Check command options
22018 (Command_Type): New command Check
22020 2005-12-09 Thomas Quinot <quinot@adacore.com>
22022 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22023 command line switch overruns the output buffer.
22025 2005-12-09 Robert Dewar <dewar@adacore.com>
22027 * sem_prag.adb: Processing for new pragma Complete_Representation
22028 (Analyze_Pragma, case Debug): Implement two argument form.
22030 * par-prag.adb: Entry for new pragma Complete_Representation
22031 (Prag, case Debug): Recognize two argument form of pragma Debug
22032 New interface for Set_Style_Check_Options.
22034 * sem_ch13.adb: Implement new pragma Complete_Representation.
22036 * snames.adb, snames.ads, snames.h: Entry for new pragma
22037 Complete_Representation.
22039 2005-12-09 Gary Dismukes <dismukes@adacore.com>
22041 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22042 available user-specified stream attributes on limited parameters to
22043 also test the type directly rather than only its underlying type (for
22044 Ada 95) and, in the case of Ada 2005, to check that the user-specified
22045 attributes are visible at the point of the subprogram declaration.
22046 For Ada 2005, the error message is modified to indicate that the
22047 type's stream attributes must be visible (again, only for -gnat05).
22049 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22051 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22052 anonymous access types.
22054 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22055 matching of anonymous access types and anonymous access to subprogram
22056 types. 'R'M 4.9.1 (2/2).
22058 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22060 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22061 rule prematurely when operands are universal, remaining ambiguities
22062 will be removed during resolution.
22065 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22066 that are Ada 2005 functions.
22067 (Has_Abstract_Interpretation): Subsidiary to
22068 Remove_Conversions, to remove ambiguities caused by abstract operations
22069 on numeric types when operands are universal.
22071 2005-12-09 Robert Dewar <dewar@adacore.com>
22073 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22074 for case where spec is categorized.
22076 2005-12-09 Javier Miranda <miranda@adacore.com>
22078 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22079 types use the corresponding record type. This was not needed before
22080 the implementation of Ada 2005 synchronized types because
22081 concurrent types were never tagged types in Ada 95.
22083 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22085 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22086 first subtype of the type of the expression to verify that it is a
22089 2005-12-09 Robert Dewar <dewar@adacore.com>
22091 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22094 2005-12-09 Quentin Ochem <ochem@adacore.com>
22095 Robert Dewar <dewar@adacore.com>
22096 Ed Falis <falis@adacore.com>
22097 Florian Villoing <villoing@adacore.com>
22098 Thomas Quinot <quinot@adacore.com>
22099 Arnaud Charlet <charlet@adacore.com>
22101 * gnat_ugn.texi: Created section "Stack Related Tools"
22102 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22103 "Stack Related Tools"
22104 Added subsection "Static Stack Usage Analysis"
22105 Added subsection "Dynamic Stack Usage Analysis"
22106 Include documentation of itypes in sprint listing (-gnatG)
22107 Documented gnatbind -D switch (default sec stack size for fixed sec
22109 Added Interrupt_State and Persistent_BSS to list of configuration
22111 Add missing doc for maximum value of nnn in -gnatyMnnn
22113 * gnat_rm.texi: Document the AltiVec binding.
22114 Add documentation for pragma Complete_Representation
22115 Shortened an overly long line (> 79 chars)
22116 Clarify documentation of unchecked conversion in implementation
22118 Document two argument form of pragma Debug
22120 * types.ads (Column_Number): Update documentation.
22122 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22123 library level Finalize_Storage_Only objects (these are not attached to
22124 any finalization list).
22126 * system-mingw.ads: (Underlying_Priorities): Update comment.
22128 2005-12-09 Robert Dewar <dewar@adacore.com>
22130 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
22131 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
22132 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22133 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22134 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22135 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22136 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22137 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22140 2005-12-09 Robert Dewar <dewar@adacore.com>
22142 * s-vaflop-vms-alpha.adb: (Ne_F): New function
22143 (Ne_G): New function
22145 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22146 for tag assignment.
22147 (Rewrite_Comparison): Handle case where operation is not a comparison
22148 and ignore, and also handle type conversion case.
22150 2005-12-09 Thomas Quinot <quinot@adacore.com>
22152 * exp_aggr.ads: Fix typo in comment.
22153 ???-mark Convert_Aggr_In_Assignment as needing documentation.
22155 2005-12-09 Gary Dismukes <dismukes@adacore.com>
22157 * layout.adb: Replace various uses of byte by storage unit throughout.
22158 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22159 static size, convert to storage units before returning, to conform to
22162 2005-12-09 Matthew Gingell <gingell@adacore.com>
22164 * g-exctra.ads: Fix typo in comment.
22166 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22168 * utils.c: Minor reformatting.
22170 2005-12-09 Robert Dewar <dewar@adacore.com>
22173 Further comment fixes to make the status of the default file clear
22175 * s-bitops.adb: Clarify comment for Bits_Array
22177 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
22179 * Make-lang.in (ada.install-normal): Remove.
22181 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
22183 * Make-lang.in: Remove all dependencies on s-gtype.
22185 2005-12-05 Richard Guenther <rguenther@suse.de>
22187 * utils.c (convert): Use fold_convert where appropriate.
22189 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
22191 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
22194 2005-12-02 Richard Guenther <rguenther@suse.de>
22196 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22198 2005-12-01 Roger Sayle <roger@eyesopen.com>
22200 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22203 2005-11-23 Laurent Guerby <laurent@guerby.net>
22205 * mlib-prj.adb (Build_Library): Initialize Delete.
22207 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
22209 * socket.c: Add extern int h_errno for rtems since networking header
22210 files are not available at this point in a tool bootstrap. Newlib
22211 only has basic C library header files.
22213 2005-11-19 Richard Guenther <rguenther@suse.de>
22214 Roger Sayle <roger@eyesopen.com>
22217 * misc.c (internal_error_function): Don't use vsprintf to format
22218 the error message text, instead use pp_format_text and the new
22219 pretty printer APIs. This allows handling of %qs, %w, etc.
22221 2005-11-18 Laurent Guerby <laurent@guerby.net>
22224 * Makefile.in: Use s-auxdec-empty for RTEMS.
22226 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22229 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22230 a temporary if taking the address of something that is neither
22231 reference, declaration, or constant, since the gimplifier
22232 can't handle that case.
22234 2005-11-17 Laurent Guerby <laurent@guerby.net>
22237 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22239 2005-11-16 Richard Guenther <rguenther@suse.de>
22241 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22243 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
22246 * raise-gcc.c: Add missing stdarg.h include.
22248 2005-11-16 Richard Guenther <rguenther@suse.de>
22250 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22251 (ada/misc.o): Likewise.
22253 2005-11-14 Thomas Quinot <quinot@adacore.com>
22255 * g-soccon.ads: Minor reformatting. Update comments.
22257 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22258 gain visibility on the declaration of struct timeval.
22260 * g-soccon-freebsd.ads,
22261 g-soccon-darwin.ads,
22262 g-soccon-tru64.ads,
22266 g-soccon-solaris.ads,
22268 g-soccon-mingw.ads,
22269 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22271 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22272 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22273 g-soccon-linux-x86.ads: New files.
22275 * g-socthi-mingw.adb:
22276 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22278 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22279 (time_t, suseconds_t): New types constructed to match the tv_sec
22280 and tv_usec fields of C struct timeval.
22281 (Timeval): Construct structure in terms of the new types.
22282 (Host_Errno): New function (imported from socket.c), returns last hosts
22285 * g-socthi-vxworks.adb: Add error handling circuitry.
22287 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22288 components of struct timeval.
22289 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22290 (Check_Selector): In error conditions, clear internal socket sets to
22291 avoid a memory leak.
22292 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22293 Send_Timeout, Receive_Timeout.
22295 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22296 the tv_sec and tv_usec fields of C struct timeval.
22297 (Timeval): Construct structure in terms of the new types.
22298 (Host_Errno): New function (imported from socket.c), returns last hosts
22301 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22302 hosts database last error code.
22304 * gen-soccon.c: Complete value expansion should not be performed on
22305 TARGET, as it has the form of a math expression, and some components
22306 may be platform-defined macros.
22307 For VxWorks, generate the OK and ERROR values.
22308 New constants giving the sizes of the components of C struct timeval.
22310 2005-11-14 Robert Dewar <dewar@adacore.com>
22311 Ed Schonberg <schonberg@adacore.com>
22314 * types.ads: Include All_Checks in Suppress_Array
22316 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22317 not(a=b), since we no longer do this rewriting, and hence it is not
22319 (Elaboration_Checks_Suppressed): Add special casing to
22320 deal with different cases of static and dynamic elaboration checks (all
22321 checks does not count in the first case, but does in the second).
22322 (Expr_Known_Valid): Do not assume that the result of any arbitrary
22323 function call is valid, since this is not the case.
22324 (Ensure_Valid): Do not apply validity check to a real literal
22325 in a universal or fixed context
22327 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22328 elementary types using the operator in standard. It is cleaner not to
22329 modify the programmers intent, especially in the case of floating-point.
22330 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22331 it did not matter because we always rewrote a/=b to not(a=b).
22332 (Expand_Allocator_Expression): For an allocator expression whose nominal
22333 subtype is an unconstrained packed type, convert the expression to its
22334 actual constrained subtype.
22335 Implement warning for <= or >= where < or > not possible
22336 Fix to Vax_Float tests (too early in many routines, causing premature
22337 Vax_Float expansions.
22339 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22340 to be used with packages and generic packages as well as with
22342 (Suppress): Set All_Checks, but not Elaboration_Check, for case
22343 of pragma Suppress (All_Checks)
22344 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22345 a string literal for precise control over warnings.
22346 Avoid raise of pragma in case of unrecognized pragma and just return
22349 * sem_prag.ads: Minor reformatting
22351 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22352 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22353 Switch. Do not handle any exception.
22354 Include -gnatwx as part of -gnatg (warn on redundant parens)
22355 Allow optional = after -gnatm
22356 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22357 longer sets Elaboration_Checks.
22358 Code to set warning mode moved to Sem_Warn
22359 so that it can be shared by pragma processing.
22361 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22364 * s-taprop-solaris.adb:
22365 Change some <= to =, to avoid new warning
22367 * a-exexda.adb, prj-proc.adb:
22368 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22369 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22371 2005-11-14 Robert Dewar <dewar@adacore.com>
22373 * exp_vfpt.adb: Handle /= case
22374 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22375 so that we do not get duplicate scaling for fixed point conversions.
22377 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22379 2005-11-14 Matthew Gingell <gingell@adacore.com>
22381 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22382 Increase default priority on Lynx from 15 to 17, and meet the Ada
22383 requirement that Default_Priority be ((Priority'First +
22384 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22386 2005-11-14 Vincent Celier <celier@adacore.com>
22388 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22389 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22390 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22391 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22392 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22393 mlib-tgt-lynxos.adb (DLL_Prefix): New function
22395 2005-11-14 Doug Rupp <rupp@adacore.com>
22397 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22400 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22402 * s-traces-default.adb, s-trafor-default.ads,
22403 s-tratas-default.adb: Fix compilation errors.
22405 2005-11-14 Jose Ruiz <ruiz@adacore.com>
22407 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22408 raising the exception so the memory used is freed.
22410 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22412 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22413 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22414 (convert_address): Update comments and list of platforms using this.
22416 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22419 2005-11-14 Pascal Obry <obry@adacore.com>
22420 Vincent Celier <celier@adacore.com>
22422 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22425 * memroot.adb: Remove redundant with/use clause on
22426 System.Storage_Elements.
22428 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22430 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22431 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22432 related code to a-exexpr.adb
22433 (Save_Occurrence_And_Private): Move GCC EH related code to
22435 (Raise_Current_Excep): Add new variable Id with pragma
22436 volatile, to ensure that the variable lives on stack.
22438 * a-exexpr-gcc.adb, raise-gcc.c: New file.
22440 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22442 Move GCC EH related code to a-exexpr-gcc.adb
22444 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22446 Split the Linux version of g-soccon into separate variants for 32 and 64
22448 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22449 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22450 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22451 of host variable $(RANLIB_FLAGS).
22452 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22453 Code clean up: remove unused/obsolete targets.
22454 (EH_MECHANISM): New variable introduced to differenciate between the
22455 two EH mechanisms statically.
22456 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22457 (LIBGNAT_OBJS): Add raise-gcc.o
22458 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22459 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22460 supports VxWorks 6 RTPs.
22461 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22462 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22464 * raise.c: Move all GCC EH-related routines to raise-gcc.c
22466 2005-11-14 Jose Ruiz <ruiz@adacore.com>
22468 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22469 deferral level, when abort is not allowed, to a later stage (the
22471 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22472 it will not get changed by the generated code. It was previously done
22475 2005-11-14 Thomas Quinot <quinot@adacore.com>
22476 Olivier Hainque <hainque@adacore.com>
22477 Eric Botcazou <ebotcazou@adacore.com>
22480 Factor common code to build a storage type for an unconstrained object
22481 from a fat or thin pointer type and a constrained object type.
22482 (annotate_value): Handle BIT_AND_EXPR.
22483 (annotate_rep): Don't restrict the back annotation of inherited
22484 components to the type_annotate_only case.
22485 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22486 we are not defining the type.
22487 <E_Record_Type>: Likewise.
22488 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22489 to get advantage of the new maybe_stabilize_reference interface, to
22490 ensure that what we reference is indeed stabilized instead of relying
22491 on assumptions on what the stabilizer does.
22492 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22493 type imported through a limited_with clause, use its non-limited view.
22494 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22496 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22497 of #if sections + explicit comparisons of convention identifiers.
22498 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22499 before early-returning for certain types when code generation is
22501 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22502 nullification of gnu_expr we do for objects with address clause and
22503 that we are not defining.
22504 (elaborate_expression_1): Do not create constants when creating
22505 variables needed by the debug info: the dwarf2 writer considers that
22506 CONST_DECLs is used only to represent enumeration constants, and emits
22508 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22509 object with an address clause into an indirect reference, drop the
22510 initializing expression.
22512 (STACK_CHECK_BUILTIN): Delete.
22513 (STACK_CHECK_PROBE_INTERVAL): Likewise.
22514 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22515 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22516 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22517 corresponding to the renamed object as ignored for debugging purposes.
22519 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22520 related): For a prefix that is a dereference of a fat or thin pointer,
22521 if there is an actual subtype provided by the front-end, use that
22522 subtype to build an actual type with bounds template.
22523 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22524 is provided by the front-end, use that subtype to compute the size of
22525 the deallocated object.
22526 (gnat_to_gnu): When adding a statement into an elaboration procedure,
22527 check for a potential violation of a No_Elaboration_Code restriction.
22528 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22529 with extra arguments to control whether to recurse through non-values
22530 and to let the caller know if the stabilization has succeeded.
22531 (gnat_stabilize_reference): Now a simple wrapper around
22532 maybe_stabilize, for common uses without restriction on lvalues and
22533 without need to check for the success indication.
22534 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22535 pass false instead of 0 as the FORCE argument which is a bool.
22536 (Identifier_to_gnu): Remove checks ensuring that an renamed object
22537 attached to a renaming pointer has been properly stabilized, as no such
22538 object is attached otherwise.
22539 (call_to_gnu): Invoke create_var_decl to create the temporary when the
22540 function uses the "target pointer" return mechanism.
22541 Reinstate conversion of the actual to the type of the formal
22542 parameter before any other specific treatment based on the passing
22543 mechanism. This turns out to be necessary in order for PLACEHOLDER
22544 substitution to work properly when the latter type is unconstrained.
22546 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22548 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22549 with extra arguments to control whether to recurse through non-values
22550 and to let the caller know if the stabilization has succeeded.
22552 * utils2.c (gnat_build_constructor): Only sort the fields for possible
22553 static output of record constructor if all the components are constant.
22554 (gnat_build_constructor): For a record type, sort the list of field
22555 initializers in increasing bit position order.
22556 Factor common code to build a storage type for an unconstrained object
22557 from a fat or thin pointer type and a constrained object type.
22558 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22559 types variants, and process special cases of VIEW_CONVERT expressions
22560 as their NOP_EXPR counterpart to ensure we get to the
22561 CORRESPONDING_VARs associated with CONST_DECls.
22562 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22563 on the right-hand side.
22565 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22567 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22568 are converting back to its original type.
22569 (convert) <JM input>: Fallthrough regular conversion code instead of
22570 extracting the object if converting to a type variant.
22571 (create_var_decl): When a variable has an initializer requiring code
22572 generation and we are at the top level, check for a potential violation
22573 of a No_Elaboration_Code restriction.
22574 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22575 SIZE and SIZE_UNIT which we need for later back-annotations.
22576 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22577 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22578 is an unchecked union.
22579 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22580 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22581 main variant, just replace the VIEW_CONVERT_EXPR.
22582 <UNION_TYPE>: Revert 2005-03-02 change.
22584 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22586 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22588 2005-11-14 Matthew Heaney <heaney@adacore.com>
22590 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22591 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22592 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22593 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22594 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22595 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22596 Compiles against the spec for ordered maps described in sections
22597 A.18.6 of the most recent (August 2005) AI-302 draft.
22599 2005-11-14 Olivier Hainque <hainque@adacore.com>
22601 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22602 to ensure bias adjustments take place when need be and to prevent
22603 occurrences of intermediate overflows.
22605 2005-11-14 Matthew Gingell <gingell@adacore.com>
22606 Olivier Hainque <hainque@adacore.com>
22608 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22611 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22612 tracebacks on ia64 HP-UX and provide explanatory comment.
22613 Enable backtraces on ia64 GNU/Linux.
22614 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22615 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22617 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
22618 Javier Miranda <miranda@adacore.com>
22620 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22621 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22622 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22623 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22625 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22626 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22629 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22630 subprogram that generates the external name associated with a
22631 secondary dispatch table.
22632 (Get_Secondary_DT_External_Name): New subprogram that generates the
22633 external name associated with a secondary dispatch table.
22635 2005-11-14 Emmanuel Briot <briot@adacore.com>
22637 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
22638 line in the ALI file to include both an instantiation reference, and a
22641 2005-11-14 Vincent Celier <celier@adacore.com>
22643 * clean.adb (Check_Project): Look for Ada code in extending project,
22644 even if Ada is not specified as a language.
22645 Use new function DLL_Prefix for DLL_Name
22646 (Clean_Interface_Copy_Directory): New procedure
22647 (Clean_Library_Directory): New procedure
22648 (Clean_Directory): Remove procedure, no longer used
22649 (Clean_Project): Do not delete any file in an externally built project
22651 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
22652 directory of an extending project, even when there are no Ada source
22654 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
22655 (Set_Ada_Paths.Add.Recursive_Add): Ditto
22657 * mlib-prj.adb (Check_Library): For all library projects, get the
22658 library file timestamp.
22659 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
22660 (Build_Library): Use new function DLL_Prefix for the DLL_Name
22661 (Clean): Remove procedure, no longer used
22662 (Ultimate_Extension_Of): New function
22663 (Build_Library): When cleaning the library directory, only remove an
22664 existing library file and any ALI file of a source of the project.
22665 When cleaning the interface copy directory, remove any source that
22666 could be a source of the project.
22668 * prj.ads, prj.adb (Project_Empty): Add values of new components
22669 Library_TS and All_Imported_Projects.
22670 (Project_Empty): Add values for new components of Project_Data:
22671 Library_ALI_Dir and Display_Library_ALI_Dir
22673 * prj-attr.adb: New project level attribute name Library_ALI_Dir
22675 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
22676 attribute Library_ALI_Dir.
22677 (Check_Library_Attributes): The library directory cannot be the same as
22678 any source directory of the project tree.
22679 (Check_Stand_Alone_Library): The interface copy directory cannot be
22680 the same as any source directory of the project tree.
22682 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
22683 all temporary files.
22685 2005-11-14 Robert Dewar <dewar@adacore.com>
22686 Ed Schonberg <schonberg@adacore.com>
22688 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22689 (Check_Elab_Call): A call within a protected body is never an
22690 elaboration call, and does not require checking.
22691 (Same_Elaboration_Scope): Take into account protected types for both
22693 (Activate_Elaborate_All_Desirable): New procedure
22695 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
22698 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
22699 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
22701 * lib-writ.ads, lib-writ.adb:
22702 Implement new AD/ED for Elaborate_All/Elaborate desirable
22703 Use new Elaborate_All_Desirable flag in N_With_Clause node
22705 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
22706 N_Free_Statement nodes.
22707 Define new class N_Subprogram_Instantiation
22708 Add Elaborate_Desirable flag to N_With_Clause node
22709 Add N_Delay_Statement (covering two kinds of delay)
22711 * debug.adb: Introduce d.f flag for compiler
22712 Add -da switch for binder
22714 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22715 Cyrille Comar <comar@adacore.com>
22717 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
22718 for task component, in the case of a limited aggregate. The enclosed
22719 object declaration will create it earlier. Otherwise, in the case of a
22720 nested aggregate, the object may appear in the wrong scope.
22721 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
22722 (Gen_Assign): If the component being assigned is an array type and the
22723 expression is itself an aggregate, wrap the assignment in a block to
22724 force finalization actions on the temporary created for each row of the
22726 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
22727 structures are initialized after all discriminants are set so that
22728 they can be accessed even when their offset is dynamic.
22730 2005-11-14 Robert Dewar <dewar@adacore.com>
22731 Hristian Kirtchev <kirtchev@adacore.com>
22733 * sem_attr.adb: Implement Machine_Rounding attribute
22734 (Analyze_Access_Attribute): The access attribute may appear within an
22735 aggregate that has been expanded into a loop.
22736 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
22737 'Terminated whenever the prefix is of a task interface class-wide type.
22738 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
22739 the prefix is of a task interface class-wide type.
22741 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
22744 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
22745 Remove pragma Inline for [Unaligned_]Valid.
22746 Add comments that Valid routines do not work for Vax_Float
22748 * exp_attr.adb: Implement Machine_Rounding attribute
22750 * snames.h: Add entry for Machine_Rounding attribute
22752 2005-11-14 Javier Miranda <miranda@adacore.com>
22753 Robert Dewar <dewar@adacore.com>
22754 Hristian Kirtchev <kirtchev@adacore.com>
22756 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
22757 and related): For a prefix that is an explicit dereference of an
22758 access to unconstrained packed array type, annotate the dereference
22759 with an actual subtype so GIGI can make a correct size computation.
22760 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
22761 'Unrestricted_Access, if the designated type is an interface we
22762 add a type conversion to force the displacement of the pointer
22763 to the secondary dispatch table.
22764 Use Universal_Real instead of Long_Long_Float when we need a high
22765 precision float type for the generated code (prevents gratuitous
22766 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
22767 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
22768 'Terminated for task interface class-wide objects. Generate a call to
22769 the predefined dispatching routine used to retrieve the _task_id from
22770 a task corresponding record.
22771 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
22773 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
22774 (Check_Dispatching_Operation): Protect the frontend againts
22775 previously detected errors.
22777 * Makefile.rtl: Add new instantiations of system.fat_gen
22779 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
22780 Change name of instantiated package for better consistency
22781 with newly added system.fat_gen instantiations.
22783 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
22784 s-fvagfl.ads: New files.
22786 2005-11-14 Cyrille Comar <comar@adacore.com>
22787 Thomas Quinot <quinot@adacore.com>
22789 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
22790 assignment of a value of a tagged type that has been rewritten to a
22791 block statement, it is known by construction that no checks are
22792 necessary for the statements within the block: analyze it with checks
22794 (Expand_N_If_Statement): When killing a dead then-branch in an
22795 if-statement that has elsif_parts, recompute the Current_Value node
22796 for any entity whose value is known from the condition of the first
22798 (Expand_N_Return_Statement): When returning a mutable record, convert
22799 the return value into its actual subtype in order to help the backend
22800 to return the actual size instead of the maximum. This is another
22801 aftermath of not returning mutable records on the sec-stack anymore.
22803 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
22804 handling of error msg for suspicious reverse range iteration.
22805 (Check_Possible_Current_Value_Condition): Move declaration from body to
22806 spec, to allow this subprogram to be called from exp_ch5.
22808 2005-11-14 Thomas Quinot <quinot@adacore.com>
22810 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
22811 generate a set of nested array aggregates instead of a single flat
22812 aggregate for multi-dimensional arrays.
22814 2005-11-14 Pascal Obry <obry@adacore.com>
22816 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
22817 by spawnve is a process handle, no need to convert. Add a parameter
22818 close to control wether the process handle must be closed.
22819 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
22820 a process handle, not need to convert.
22821 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
22823 * g-expect.adb: (Kill): Document the new close parameter.
22824 (Close): Do not release the process handle in the kill there as
22825 waitpid() is using it.
22826 (Send_Signal): Release the process handle.
22828 2005-11-14 Robert Dewar <dewar@adacore.com>
22830 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
22831 need a high precision float type for the generated code (prevents
22832 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22835 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
22836 need a high precision float type for the generated code (prevents
22837 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
22839 (Expand_Width_Attribute): In configurable run-time, the attribute is not
22840 allowed on non-static enumeration subtypes. Force a load error to emit
22841 the correct diagnostic.
22843 2005-11-14 Thomas Quinot <quinot@adacore.com>
22844 Robert Dewar <dewar@adacore.com>
22845 Ed Schonberg <schonberg@adacore.com>
22847 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
22848 subtype to compute the size of the designated object at run-time,
22849 create such a subtype and store it in the Actual_Designated_Subtype
22850 attribute of the N_Free_Statement.
22851 Generate itype for classwide designated object in both cases of
22852 user-specified storage pool: specific and class-wide, not only in the
22854 Raise CE when trying to set a not null access type object to null.
22855 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
22856 an explicit loop, because freeze nodes make its position variable.
22858 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
22861 2005-11-14 Javier Miranda <miranda@adacore.com>
22863 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
22864 Build_Stream_Procedure): Add the null-excluding attribute to the first
22866 This has no semantic meaning under Ada95 mode but it is a
22867 requirement under Ada05 mode.
22869 * par-ch3.adb (P_Access_Definition): Addition of warning message if
22870 the null exclusion is used under Ada95 mode
22871 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
22872 (P_Access_Definition): Remove assertion that forbids the use of
22873 the null-exclusion feature in Ada95.
22875 2005-11-14 Robert Dewar <dewar@adacore.com>
22877 * impunit.adb: Exclude container helper units not intended for use by
22880 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22882 * freeze.adb (Freeze_Entity): For an access formal that is an access
22883 to subprogram, freeze the anonymous subprogram type at the same time,
22884 to prevent later freezing in the wrong scope, such as the enclosing
22886 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
22887 subprogram whenever available.
22889 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22892 * gnatvsn.ads (Library_Version): Bump to 4.1
22894 2005-11-14 Robert Dewar <dewar@adacore.com>
22896 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
22897 Storage_Offset to avoid wrap around causing invalid results.
22899 2005-11-14 Pascal Obry <obry@adacore.com>
22901 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
22903 (Scan_Bind_Arg): Fail with an error message if -M option is used
22904 on a native compiler.
22906 2005-11-14 Robert Dewar <dewar@adacore.com>
22907 Vincent Celier <celier@adacore.com>
22909 * gprep.adb: Implement -C switch to scan comments
22911 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
22913 * scans.ads: Comment updates (including new use of Tok_Comment in
22916 * opt.ads: Add documentation for flags that are used by gprmake,
22917 currently and in the next version of gprmake.
22918 (Verbosity_Level): New variable
22919 Add Replace_In_Comments switch
22921 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
22923 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
22925 2005-11-14 Arnaud Charlet <charlet@adacore.com>
22927 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
22928 message, friendlier.
22930 2005-11-14 Robert Dewar <dewar@adacore.com>
22932 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
22934 2005-11-14 Doug Rupp <rupp@adacore.com>
22936 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
22938 2005-11-14 Robert Dewar <dewar@adacore.com>
22940 * interfac.ads: Change declarations of IEEE float types so that we no
22941 longer need a separate version of this package for VMS.
22943 2005-11-14 Ed Schonberg <schonberg@adacore.com>
22945 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
22946 internal entity created for the declaration of a child subprogram body
22947 with no spec as coming from source, to generate proper cross-reference
22950 2005-11-14 Vincent Celier <celier@adacore.com>
22952 * make.adb (Compile_Sources): Change verbose message to minimum
22953 verbosity level High for "is in an Ada library", "is a read-only
22954 library" and "is an internal library",
22955 (Create_Binder_Mapping_File): Path name of ALI file for library project
22956 must include the library directory, not the object directory.
22957 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
22958 for new switches -vl, -vm and -vh.
22959 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
22960 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
22961 (Compile_Sources): Do not attempt to compile if an ALI file is missing
22962 in a project that is externally built.
22963 (Compute_All_Imported_Projects): New procedure
22964 (Gnatmake): Check if importing libraries should be regenerated because
22965 at least an imported library is more recent.
22966 (Initialize): For each project compute the list of the projects it
22967 imports directly or indirectly.
22968 (Add_Library_Search_Dir): New procedure, used in place of
22969 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22970 put in the search paths.
22971 (Add_Source_Search_Dir): New procedure, used in place of
22972 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
22973 put in the search paths.
22974 (Mark_Directory): Resolve the absolute path the directory before marking
22977 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
22978 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22979 Switch. Do not handle any exception.
22980 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
22981 so that the switch is recognized as valid.
22982 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
22984 2005-11-14 GNAT Script <nobody@adacore.com>
22986 * Make-lang.in: Makefile automatically updated
22988 2005-11-14 Pascal Obry <obry@adacore.com>
22990 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
22992 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
22993 In both cases the last argument was dropped.
22995 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
22997 * namet.h: (Column_Numbe): New type.
22998 (Get_Column_Number): Define to sinput__get_column_number.
22999 (Instantiation): Define to sinput__instantiation.
23000 (Get_Column_Number): Declare.
23001 (Instantiation): Likewise.
23003 2005-11-14 Robert Dewar <dewar@adacore.com>
23005 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23006 syntax, which could cause compiler hangs.
23008 2005-11-14 Vincent Celier <celier@adacore.com>
23010 * prj-ext.adb: Take into account new environment variable
23011 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23013 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23014 normalize its path name, making it absolute and resolving symbolic
23015 links, and replace the original if resolved path is different.
23017 2005-11-14 Vincent Celier <celier@adacore.com>
23019 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23020 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23022 2005-11-14 Emmanuel Briot <briot@adacore.com>
23024 * prj-pp.adb (Print): Do not output the with statement if the
23025 associated name is empty, which happens for virtual extending projects.
23026 (Print): Preserve the "extends all" attribute when printing the project.
23028 * prj-tree.ads (String_Value_Of): Add comment about returned value for
23029 a virtual extending project.
23031 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23033 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23034 rhs of an assignment even if the type is unconstrained, when the
23035 context is non-expanding.
23036 In an inlined body, if the context type is private,
23037 resolve with its full view, which must be a composite type.
23039 2005-11-14 Robert Dewar <dewar@adacore.com>
23040 Ed Schonberg <schonberg@adacore.com>
23042 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23043 Do not give obsolescent warning on with of subprogram (since we
23045 (Analyze_With_Clause): Add test for obsolescent package
23046 (Install_Context_Clauses): If the unit is the body of a child unit, do
23047 not install twice the private declarations of the parents, to prevent
23048 circular lists of Use_Clauses in a parent.
23049 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23050 compiling body of child unit.
23051 Use new class N_Subprogram_Instantiation
23052 (Expand_With_Clause): If this is a private with_clause for a child unit,
23053 appearing in the context of a package declaration, then the implicit
23054 with_clauses generated for parent units are private as well.
23055 (License_Check): Do not generate message if with'ed unit is internal
23057 2005-11-14 Gary Dismukes <dismukes@adacore.com>
23058 Ed Schonberg <schonberg@adacore.com>
23059 Thomas Quinot <quinot@adacore.com>
23061 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23062 names are internal, because they will not have a corresponding partner
23063 in the actual package.
23064 (Analyze_Formal_Package): Move the setting of the formal package spec's
23065 Generic_Parent field so that it occurs prior to analyzing the package,
23066 to allow proper operation of Install_Parent_Private_Declarations.
23067 (Analyze_Package_Instantiation): Set the instantiated package entity's
23068 Package_Instantiation field.
23069 (Get_Package_Instantiation_Node): Move declaration to package spec.
23070 Retrieve the N_Package_Instantiation node when the Package_Instantiation
23072 (Check_Generic_Child_Unit): Within an inlined call, the only possible
23073 instantiation is Unchecked_Conversion, for which no parents are needed.
23074 (Inline_Instance_Body): Deinstall and record the use_clauses for all
23075 parent scopes of a scope being removed prior to inlining an instance
23077 (Analyze_Package_Instantiation): Do not perform front-end inlining when
23078 the current context is itself an instance within a non-instance child
23079 unit, to prevent scope stack errors.
23080 (Save_References): If the node is an aggregate that is an actual in a
23081 call, rewrite as a qualified expression to preserve some type
23082 information, to resolve possible ambiguities in the instance.
23083 (Instance_Parent_Unit): New global variable to record the ultimate
23084 parent unit associated with a generic child unit instance (associated
23085 with the existing Parent_Unit_Visible flag).
23086 (type Instance_Env): New component Instance_Parent_Unit for stacking
23087 parents recorded in the global Instance_Parent_Unit.
23088 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23090 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23091 it's not a top-level unit, and only do this if Instance_Parent_Unit is
23092 not already set. Replace test of Is_Child_Unit with test of parent's
23093 scope against package Standard. Add comments and a ??? comment.
23094 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23095 on a child instance parent to test that the parent equals
23096 Instance_Parent rather than simply checking that the unit is not a
23098 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23099 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23100 a formal interface are ancestors of the corresponding actual.
23101 (Validate_Formal_Interface_Type): Additional legality checks.
23102 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23103 interface types with ancestors.
23104 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23105 to diagnose attempts to use generic within its own declaration.
23107 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23108 Javier Miranda <miranda@adacore.com>
23110 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23112 (Build_Private_Derived_Type): The entity of the created full view of the
23113 derived type does not come from source. If after installing the private
23114 declarations of the parent scope the parent is still private, use its
23115 full view to construct the full declaration of the derived type.
23116 (Build_Derived_Record_Type): Relax the condition that controls the
23117 execution of the check that verifies that the partial view and
23118 the full view agree in the set of implemented interfaces. In
23119 addition, this test now only takes into account the progenitors.
23120 (Derive_Interface_Subprograms): No need to derive subprograms
23121 of ancestors that are interfaces.
23122 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23124 Change name Is_Package to Is_Package_Or_Generic_Package
23125 (Complete_Subprograms_Derivation): Handle the case in which the full
23126 view is a transitive derivation of the ancestor of the partial view.
23127 (Process_Full_View): Rename local subprogram Find_Interface_In_
23128 Descendant to Find_Ancestor_Interface to leave the code more clear.
23129 Remove wrong code that avoids the generation of an error message
23130 when the immediate ancestor of the partial view is an interface.
23131 In addition some minor reorganization of the code has been done to
23132 leave it more clear.
23133 (Analyze_Type_Declaration): If type has previous incomplete tagged
23134 partial view, inherit properly its primitive operations.
23135 (Collect_Interfaces): Make public, for analysis of formal
23137 (Analyze_Interface_Declaration): New procedure for use for regular and
23138 formal interface declarations.
23139 (Build_Derived_Record_Type): Add support for private types to the code
23140 that checks if a tagged type implements abstract interfaces.
23141 (Check_Aliased_Component_Type): The test applies in the spec of an
23143 (Access_Type_Declaration): Clean up declaration of malformed type
23144 declared as an access to its own classwide type, to prevent cascaded
23146 (Collect_Interfaces): For private extensions and for derived task types
23147 and derived protected types, the parent may be an interface that must
23148 be included in the interface list.
23149 (Access_Definition): If the designated type is an interface that may
23150 contain tasks, create Master_Id for it before analyzing the expression
23151 of the declaration, which may be an allocator.
23152 (Record_Type_Declaration): Set properly the interface kind, for use
23153 in allocators, the creation of master id's for task interfaces, etc.
23155 2005-11-14 Javier Miranda <miranda@adacore.com>
23156 Ed Schonberg <schonberg@adacore.com>
23158 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23159 omitted in case of stream attribute subprograms.
23160 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23161 appear immediately after a subprogram body, when there is no previous
23162 subprogram declaration.
23163 Change name Is_Package to Is_Package_Or_Generic_Package
23164 (Process_Formals): A non null qualifier on a non null named access
23165 type is not an error, and is a warning only if Redundant_Constructs
23168 2005-11-14 Gary Dismukes <dismukes@adacore.com>
23169 Ed Schonberg <schonberg@adacore.com>
23171 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23172 nested within Analyze_Package_Specification to install the private
23173 declarations and use clauses within each of the parent units of a
23174 package instance of a generic child package.
23175 (Analyze_Package_Specification): When entering a private part of a
23176 package associated with a generic instance or formal package, the
23177 private declarations of the parent must be installed (by calling new
23178 procedure Install_Parent_Private_Declarations).
23179 Change name Is_Package to Is_Package_Or_Generic_Package
23180 (Preserve_Full_Attributes): For a synchronized type, the corresponding
23181 record is absent in a generic context, which does not indicate a
23184 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23186 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23187 not try to rewrite a renamed stream attribute, because the operations
23188 on the type may not have been generated.
23189 Handle properly a renaming_as_body generated for a stream operation
23190 whose default is abstract because the object type itself is abstract.
23191 (Find_Type): If the type is incomplete and appears as the prefix of a
23192 'Class reference, it is tagged, and its list of primitive operations
23193 must be initialized properly.
23194 (Chain_Use_Clauses): When chaining the use clauses that appear in the
23195 private declaration of a parent unit, prior to compiling the private
23196 part of a child unit, find on the scope stack the proper parent entity
23197 on which to link the use clause.
23198 (Note_Redundant_Use): Emit a warning when a redundant use clause is
23200 (Analyze_Object_Renaming): An attribute reference is not a legal object
23201 if it is not a function call.
23203 2005-11-14 Robert Dewar <dewar@adacore.com>
23204 Ed Schonberg <schonberg@adacore.com>
23206 * sem_eval.adb: Implement d.f flag
23207 (Subtype_Statically_Match): A generic actual type has unknown
23208 discriminants when the corresponding actual has a similar partial view.
23209 If the routine is called to validate the signature of an inherited
23210 operation in a child instance, the generic actual matches the full view,
23212 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
23213 Ed Schonberg <schonberg@adacore.com>
23214 Robert Dewar <dewar@adacore.com>
23215 Thomas Quinot <quinot@adacore.com>
23217 * sem_res.adb (Resolve_Call): Provide a better error message whenever
23218 a procedure call is used as a select statement trigger and is not an
23219 entry renaming or a primitive of a limited interface.
23220 (Valid_Conversion): If the operand has a single interpretation do not
23221 remove address operations.
23222 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23223 statement to inhibit warning.
23224 (Resolve_Unary_Op): Do not produce a warning when
23225 processing an expression of the form -(A mod B)
23226 Use Universal_Real instead of Long_Long_Float when we need a high
23227 precision float type for the generated code (prevents gratuitous
23228 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23229 (Resolve_Concatenation_Arg): Improve error message when argument is an
23230 ambiguous call to a function that returns an array.
23231 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23232 there is an implicit operator in the given scope if we are within an
23233 instance: legality check has been performed on the generic.
23234 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23235 after resolving operand, to avoid false warnings on overloaded calls.
23237 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23238 Javier Miranda <miranda@adacore.com>
23241 * sem_type.adb (Covers): In an inlined body, a composite type matches
23242 a private type whose full view is a composite type.
23243 (Interface_Present_In_Ancestor): Protect the frontend against
23244 previously detected errors to ensure that its compilation
23245 with assertions enabled gives the same output that its
23246 compilation without assertions.
23247 (Interface_Present_In_Ancestor): Add support for private types.
23248 Change name In_Actual to In_Generic_Actual (clean up)
23249 (Disambiguate): New predicate In_Actual, to recognize expressions that
23250 appear in the renaming declaration generated for generic actuals, and
23251 which must be resolved in the outer context.
23253 2005-11-14 Robert Dewar <dewar@adacore.com>
23254 Thomas Quinot <quinot@adacore.com>
23255 Hristian Kirtchev <kirtchev@adacore.com>
23256 Ed Schonberg <schonberg@adacore.com>
23258 * sem_util.ads, sem_util.adb: Change name Is_Package to
23259 Is_Package_Or_Generic_Package.
23260 (Check_Obsolescent): New procedure.
23261 (Set_Is_Public): Remove obsolete junk test.
23262 (Set_Public_Status): Do not set Is_Public on an object whose declaration
23263 occurs within a handled_sequence_of_statemets.
23264 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23265 for a parameterless procedure.
23266 (Enter_Name): Recognize renaming declarations created for private
23267 component of a protected type within protected operations, so that
23268 the source name of the component can be used in the debugger.
23270 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23271 Robert Dewar <dewar@adacore.com>
23273 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23274 of a generic subprogram are not visible outside the body.
23275 (Set_Warning_Switch): New procedure (code to set warning mode moved
23276 here from Switch.C so that it can be shared by pragma processing.
23277 (Check_References): Special case warning for non-modified non-imported
23279 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23280 form with a string literal argument
23282 2005-11-14 Javier Miranda <miranda@adacore.com>
23284 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23286 (Write): Addition of "not null" to the anonymous access.
23287 (Read): Addition of "not null" to the anonymous access.
23288 (Write): Addition of "not null" to the anonymous access.
23290 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23291 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23292 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23293 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23294 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23295 "not null" to the anonymous access.
23297 2005-11-14 Robert Dewar <dewar@adacore.com>
23299 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23302 2005-11-14 Vincent Celier <celier@adacore.com>
23304 * switch.adb (Bad_Switch): New procedure
23305 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23306 message when in error.
23308 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23309 Too_Many_Output_Files): Remove declarations, no longer used.
23310 (Scan_Nat): New parameter Switch
23312 (Bad_Switch): New procedure
23314 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23315 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23316 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23317 to Osint.Fail. Do not handle any exception.
23319 2005-11-14 Vincent Celier <celier@adacore.com>
23321 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23322 designates a non existent directory.
23324 2005-11-14 Robert Dewar <dewar@adacore.com>
23326 * xgnatugn.adb: Replace invalid membership test by 'Valid
23328 2005-11-14 Vincent Celier <celier@adacore.com>
23330 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23331 there is no object directory.
23333 2005-11-14 Robert Dewar <dewar@adacore.com>
23335 * usage.adb: Minor adjustment to output format, use nn instead of nnn
23336 (so that -gnateInnn does not run into next column)
23338 2005-11-14 Ed Falis <falis@adacore.com>
23340 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23343 2005-11-14 Cyrille Comar <comar@adacore.com>
23345 * s-chepoo.ads: Add comments on Dereference.
23346 Remove unnecessary inherited abstract primitives.
23349 2005-11-14 Robert Dewar <dewar@adacore.com>
23351 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23352 node parameter, not needed, since it is available as Declaration_Node.
23354 2005-11-14 Geert Bosch <bosch@adacore.com>
23356 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23357 grammatically correct.
23359 2005-11-14 Vincent Celier <celier@adacore.com>
23361 * s-fileio.ads: Correct spelling error in comment
23363 2005-11-14 Cyrille Comar <comar@adacore.com>
23364 Robert Dewar <dewar@adacore.com>
23365 Vincent Celier <celier@adacore.com>
23366 Ben Brosgol <brosgol@adacore.com>
23367 Jose Ruiz <ruiz@adacore.com>
23368 Pascal Obry <obry@adacore.com>
23371 Document that -fstack-check is needed for strict compliance with the
23372 Ada 95 Reference Manual.
23373 Correct reference to VAX systems to meet HP guidelines
23374 Add documentation for new gnatmake switches -vl, -vm and -vh
23375 Replace DEC Ada by HP Ada
23376 Replace DIGITAL by HP
23377 Remove empty section on tools in compatibility section
23378 Clarify the Windows convention semantics.
23379 Document the Win32 calling convention.
23380 The Stdcall, Win32 and DLL convention are synonyms.
23381 Add a note in -gnatR description about zero size record components
23382 Note on new >= and <= warnings for -gnatwc
23383 Document that equal sign after -gnatm is optional.
23384 Note that strip is working fine on DLL built with a Library
23385 Project. The restriction apply only to DLL built with gnatdll.
23386 Update section about the way to debug a DLL.
23387 Update information about the DLL convention.
23388 Document -C switch for gnatprep
23389 Document new attribute Library_ALI_Dir
23390 Update elaboration doc to include implicit Elaborate pragmas now
23391 generated for subprogram instantiations.
23392 Document limitation on executable names that include spaces for --GCC,
23393 --GNATBIND, and --GNATLINK switches.
23394 Document that -w causes -gnatws to be added at start of gcc switches
23396 * gnat_rm.texi: Document that -mieee is needed for generating infinite
23397 and NaN values in case of overflow on machines that are not fully
23398 compliant with the IEEE floating-point standard.
23399 Create a section describing the set of compiler options needed for
23400 strict compliance with the Ada 95 Reference Manual.
23401 Add documentation for pragma Obsolescent applied to a package
23402 Clarify potential issues of mixed language programs related to the
23403 I/O buffering enabling in the elaboration of the GNAT runtime.
23404 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23405 This documentation only patch adds extra documentsion for pragma
23406 Restrictions (No_Elaboration_Code), explaining why it is not possible
23407 to document this restriction in terms of allowed source constructs.
23408 Document string literal form of pragma Warnings
23409 Document new attribute Library_ALI_Dir
23410 Add documentation on stable attributes in project files that was missing
23412 * gnat-style.texi: Indicate that paragraphs within a single comment
23413 should be separated by empty comment lines
23415 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23418 * bindusg.adb: Minor cleanup, put -m before -M for consistency
23420 2005-11-14 Robert Dewar <dewar@adacore.com>
23422 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23423 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23424 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23425 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23426 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23427 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23428 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23429 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23430 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23431 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23432 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23433 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23434 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23435 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23436 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23437 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23438 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23439 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23440 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23441 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23442 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23443 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23444 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23445 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23446 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23447 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23448 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23449 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23450 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23451 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23452 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23453 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23454 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23455 system-interix.ads, system-solaris-sparc.ads,
23456 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23457 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23458 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23459 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23460 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23461 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23462 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23463 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23464 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23465 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23466 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23467 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23468 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23469 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23470 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23471 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23472 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23473 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23474 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23475 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23476 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23477 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23478 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23479 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23480 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23481 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23482 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23483 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23484 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23485 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23486 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23487 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23488 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23489 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23490 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23491 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23492 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23493 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23494 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23495 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23496 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23497 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23498 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23499 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23500 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23501 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23502 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23503 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23504 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23505 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23506 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23507 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23508 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23509 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23510 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23511 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23512 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23513 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23514 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23515 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23516 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23517 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23518 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23519 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23520 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23521 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23522 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23523 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23524 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23525 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23526 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23527 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23528 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23529 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23530 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23531 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23532 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23533 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23534 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23535 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23536 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23537 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23538 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23539 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23540 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23541 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23542 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23543 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23544 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23545 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23546 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23547 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23548 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23549 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23550 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23551 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23552 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23553 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23554 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23555 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23556 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23557 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23558 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23559 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23560 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23561 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23562 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23563 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23564 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23565 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23566 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23567 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23568 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23569 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23570 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23571 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23572 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23573 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23574 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23575 a-numaux-darwin.ads, a-numaux-darwin.adb,
23576 a-swuwha.ads, a-stunha.ads: Minor reformatting
23578 2005-11-14 Robert Dewar <dewar@adacore.com>
23581 * osint-m.adb: Add pragma Elaborate_All for Osint
23583 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
23586 * trans.c (call_to_gnu): Restore statement lost in translation.
23588 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
23590 * init.c: Use the Linux-specific section for the IA-64/Linux target.
23591 (__gnat_adjust_context_for_raise): Add conditional code so that the
23592 IA-64 is also supported.
23594 2005-11-03 James E Wilson <wilson@specifix.com>
23597 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23598 TREE_OVERFLOW check.
23600 2005-09-21 Olivier Hainque <hainque@adacore.com>
23603 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23604 as we create them to store a size in bits.
23606 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
23614 * utils2.c (build_return_expr): New helper function.
23615 * gigi.h (build_return_expr): Declare it.
23616 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23617 of manually building the RETURN_EXPR tree.
23618 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23619 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23620 build_binary_op for the "target pointer" case. Use build_return_expr
23621 instead of manually building the RETURN_EXPR tree.
23623 2005-09-16 Laurent Guerby <laurent@guerby.net>
23626 * s-tpinop.ads: Make this unit Preelaborate.
23628 2005-09-16 Andreas Jaeger <aj@suse.de>
23630 * socket.c: Add string.h for memcpy.
23632 2005-09-05 Arnaud Charlet <charlet@adacore.com>
23634 * dec-io.ads, dec-io.adb: Removed, no longer used.
23636 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23638 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
23640 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
23641 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
23642 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
23643 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
23644 dependent units are Preelaborate.
23645 (Initialize): Call Interrupt_Managemeent.Initialize and
23646 OS_Primitives.Initialize to ensure proper initialization of this unit.
23647 Remove use of System.Soft_Links
23648 Make this unit Preelaborate.
23650 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
23651 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
23652 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
23653 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
23654 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
23655 s-tratas.ads, s-tasinf.ads: Minor reformatting.
23656 Add pragma Preelaborate, since these packages are suitable for this
23660 * s-traent-vms.ads, s-intman-dummy.adb,
23661 s-taprop-dummy.adb: Make this unit Preelaborate.
23663 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
23664 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
23665 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
23666 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
23667 s-intman-solaris.adb, s-intman-irix-athread.adb,
23668 s-intman-irix.adb: Mark this unit Preelaborate.
23669 (Initialize): New procedure.
23672 * s-taspri-linux.ads: Removed.
23674 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
23675 as done by other implementations (e.g. posix).
23677 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
23678 responsible for deferring abort.
23679 Mark this unit Preelaborate.
23681 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
23682 proper initialization of the tasking run-time.
23684 * s-tasdeb.ads: Mark this unit Preelaborate.
23685 (Known_Tasks): Add explicit default value to avoid elaboration code.
23687 * s-inmaop-vms.adb (Elaboration code): Add call to
23688 Interrupt_Management.Initialize since the elaboration code depends on
23689 proper initialization of this package.
23691 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
23692 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
23693 s-osprim-posix.adb: Make this unit Preelaborate.
23695 * a-calend.adb: Add call to OS_Primitives.Initialize
23697 * a-elchha.adb: Update use of Except.Id.Full_Name.
23698 Minor reformatting.
23699 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
23701 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
23702 Move with clauses outside Warnings Off now that dependent units are
23704 Use raise xxx with "..."; Ada 2005 form.
23706 * a-taside.ads, a-taside.adb:
23707 Remove some dependencies, to make it easier to make this unit truly
23709 Rewrite some code to be conformant with Preelaborate rules.
23711 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
23712 marked Preelaborate in the future.
23714 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
23715 these units Preelaborate.
23717 * s-exctab.adb: Update use of Except.Id.Full_Name.
23719 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
23720 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
23721 Set_Exc_Stack_Addr): Removed, no longer used.
23722 Remove reference to *Machine_State_Addr*, no longer needed.
23724 * s-stalib.ads: Mark this unit as Preelaborate[_05].
23725 (Exception_Data): Full_Name is now a System.Address so that this unit
23726 can be made Preelaborate.
23727 Clean up/simplify code thanks to Full_Name being a System.Address.
23728 Remove obsolete pragma Suppress (All_Checks), no longer needed.
23730 * s-taskin.ads, s-taskin.adb:
23731 Move with clauses outside Warnings Off now that dependent units are
23733 Make this unit Preelaborate.
23734 (Initialize): New proceduure, replace elaboration code and makes the
23735 set up of the tasking run-time cleaner.
23736 (Detect_Blocking): Now a function instead of a deferred boolean, to
23737 obey Preelaborate rules.
23739 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
23740 soft links, no longer used.
23742 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
23743 packages are suitable for this categorization.
23745 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
23746 since we compile run-time sources in Ada 2005 mode.
23747 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
23748 avoid having s-taprop*.adb depend on s-soflin and to avoid code
23750 Remove reference to *Machine_State_Addr*, no longer needed.
23752 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23754 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
23755 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23756 Remove reference to System.Exceptions.
23758 * s-mastop-x86.adb: Removed, no longer used.
23760 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
23762 * a-excach.adb: Minor reformatting.
23764 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
23765 instead fix new warnings that were hidden by this change.
23766 (AAA, ZZZ): Removed, replaced by...
23767 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
23768 are used instead of constants, to help make Ada.Exception truly
23770 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
23771 Raise_Storage_Error): File is now a System.Address, to simplify code.
23772 (Elab code): Removed, no longer used.
23773 (Null_Occurrence): Remove Warnings Off and make this construct
23775 Remove code related to front-end zero cost exception handling, since
23776 it is no longer used.
23777 Remove -gnatL/-gnatZ switches.
23779 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
23780 Update use of Except.Msg.
23782 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
23783 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
23784 to front-end zero cost exception handling, since it is no longer used.
23785 Remove -gnatL/-gnatZ switches.
23787 * lib-writ.ads: Minor reformatting
23790 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
23792 * Make-lang.in: Remove references to s-except.ads
23794 * s-except.ads: Removed, no longer used.
23796 * s-mastop.ads, s-mastop.adb:
23797 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
23798 Remove reference to System.Exceptions.
23800 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
23801 switch-b.adb: Remove code related to front-end zero cost exception
23802 handling, since it is no longer used.
23803 Remove -gnatL/-gnatZ switches.
23805 2005-09-01 Robert Dewar <dewar@adacore.com>
23806 Gary Dismukes <dismukes@adacore.com>
23807 Javier Miranda <miranda@adacore.com>
23809 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
23810 type by valid test and generate warning.
23811 (Tagged_Membership): Generate call to the run-time
23812 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
23813 Change formal name Subtype_Mark to Result_Definition in several calls to
23814 Make_Function_Specification.
23815 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
23816 check for proper accessibility of the operand of a class-wide allocator.
23817 The check can be left out if checks are suppressed or if the expression
23818 has a specific tagged type whose level is known to be safe.
23820 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
23821 generates the run-time check associated with null-excluding entities.
23822 (Expand_N_Return_Statement): Add tests to determine if the accessibility
23823 check on the level of the return expression of a class-wide function
23824 can be elided. The check usually isn't needed if the expression has a
23825 specific type (unless it's a conversion or a formal parameter). Also
23826 add a test for whether accessibility checks are suppressed. Augment
23827 the comments to describe the conditions for performing the check.
23829 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
23830 Javier Miranda <miranda@adacore.com>
23831 Gary Dismukes <dismukes@adacore.com>
23832 Ed Schonberg <schonberg@adacore.com>
23834 * a-tags.adb (IW_Membership): Give support to
23835 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
23836 subprogram has been extended to look for the tag in the ancestors tag
23838 Update the structure of the GNAT Dispatch Table to reflect the
23839 additional two tables used in dispatching selects.
23840 Introduce appropriate array types and record components in
23841 Type_Specific_Data to reflect the two tables.
23842 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
23843 the TSD of a tag, indexed by position.
23844 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
23845 operation kind in the TSD of a tag, indexed by position.
23847 * a-tags.ads: Introduce an enumeration type to capture different
23848 primitive operation kinds. Define a constant reflecting the number of
23849 predefined primitive operations.
23850 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
23851 of an entry wrapper.
23852 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
23853 callable entity of a primitive operation.
23855 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
23856 primitive operations used in dispatching selects for limited
23857 interfaces, limited tagged, task and protected types what implement a
23859 (Freeze_Type): Generate the bodies of the primitive operations used in
23860 dispatching selects for limited tagged, task and protected types that
23861 implement a limited interface. Generate statements to populate the two
23862 auxiliary tables used for dispatching in select statements.
23863 (Freeze_Record_Type): Add call to initialize the dispatch table entries
23864 associated with predefined interface primitive operations.
23865 (Build_Dcheck_Function): Change Set_Subtype_Mark to
23866 Set_Result_Definition.
23867 (Build_Variant_Record_Equality): Change Subtype_Mark to
23869 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
23870 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
23871 (Build_Assignment): Simplify the code that adds the run-time-check.
23872 (Expand_N_Object_Declaration): Code cleanup.
23874 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
23875 entries when there is a protected type that implements a limited
23878 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
23879 common routines used in expansion of dispatching selects.
23880 (Add_Private_Declarations): Select the appropriate protection type when
23881 there is a protected type that implements a limited interface.
23882 (Build_Parameter_Block): Generate a wrapped parameter block.
23883 (Build_Protected_Subprogram_Body): Select the appropriate type for
23884 locking entries when there is a protected type that implements a
23886 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
23887 classified as entry wrappers.
23888 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
23889 asynchronous selects.
23890 (Expand_N_Conditional_Entry_Call): Add support for expansion of
23891 dispatching conditional selects.
23892 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
23893 protection when there is a protected type that implements limited
23895 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
23897 (Extract_Dispatching_Call): Extract the entity of the name of a
23898 dispatching call, the object parameter, actual parameters and
23899 corresponding formals.
23900 (Make_Initialize_Protection): Correct logic of protection initialization
23901 when there is a protected type that implements a limited interface.
23902 (Parameter_Block_Pack): Populate a wrapped parameter block with the
23903 values of actual parameters.
23904 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
23905 block and assign them to the original actual parameters.
23907 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
23908 (Build_Protected_Sub_Specification): Change the type and name of the
23909 last formal to account for the increased variety of protection modes.
23911 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
23912 entities. Used to save the value of the Is_Hidden attribute when the
23913 limited-view is installed.
23914 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
23915 the attribute of procedures classified as entry wrappers.
23916 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
23917 entity of a primitive wrapper.
23918 (Write_Entity_Flags): Output the name and value of the
23919 Is_Primitive_Wrapper attribute.
23920 (Write_Field27_Name): Output the name and entity of the field Wrapped_
23922 (Underlying_Type): If we have an incomplete entity that comes from
23923 the limited view then we return the Underlying_Type of its non-limited
23924 view if it is already available.
23925 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
23926 including operators.
23927 (Write_Field26_Name): Add entry for Overridden_Operation
23928 (Overridden_Operation): New attribute of functions and procedures.
23930 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
23931 predefined position in the dispatch table for the primitive operations
23932 used in dispatching selects.
23933 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
23934 predefined primitive operations and replace it with
23935 Default_Prim_Op_Count.
23936 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
23937 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
23938 the names of the generated primitive operations used in dispatching
23940 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
23941 case of abstract interface types. They will be inherit by the objects
23942 implementing the interface.
23943 (Make_DT): There is no need to inherit the dispatch table of the
23944 ancestor interface for the elaboration of abstract interface types.
23945 The dispatch table will be inherited by the object implementing the
23947 (Copy_Secondary_DTs): Add documentation.
23948 (Validate_Position): Improve this static check in case of
23949 aliased subprograms because aliased subprograms must have
23951 (Init_Predefined_Interface_Primitives): New subprogram that initializes
23952 the entries associated with predefined primitives of all the secondary
23954 (Build_Anonymous_Access_Type): Removed.
23955 (Expand_Interface_Actuals): With the previous cleanup there is no need
23956 to build an anonymous access type. This allows further cleanup in the
23957 code generated by the expander.
23958 (Expand_Interface_Conversion): If the actual is an access type then
23959 build an internal function to handle the displacement. If the actual
23960 is null this function returns null because no displacement is
23961 required; otherwise performs a type conversion that will be
23962 expanded in the code that returns the value of the displaced actual.
23963 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
23964 conversions that have no effect in the generated code because no
23965 displacement is required. Code cleanup; use local variables to
23966 avoid repeated calls to the subprogram directly_designated_type().
23968 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
23969 Classify the primitive operations used in dispatching selects as
23971 (Implements_Limited_Interface): Determine whether some type either
23972 directly implements a limited interface or extends a type that
23973 implements a limited interface.
23974 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
23975 (Expand_Subtype_From_Expr): Do not build actual subtype if the
23976 expression is limited.
23977 (Find_Interface_Tag): Add code to handle class-wide types and
23978 entities from the limited-view.
23980 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
23981 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
23982 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
23983 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
23986 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
23987 of procedure name or prefix that appears as a trigger in a triggering
23990 * uintp.ads: Introduce constants Uint_11 and Uint_13.
23992 2005-09-01 Arnaud Charlet <charlet@adacore.com>
23994 * s-tataat.adb, a-tasatt.adb:
23995 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
23997 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
23998 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
23999 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24002 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24003 Jose Ruiz <ruiz@adacore.com>
24005 * s-taprop-vxworks.adb:
24006 Move with clauses outside Warnings Off now that dependent units are
24008 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24009 initialization of this unit.
24010 (Specific): Add new procedures Initialize and Delete so that this
24011 package can be used for VxWorks 5.x and 6.x
24012 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24013 differences between VxWorks 5.x and 6.x
24014 Minor reformatting.
24015 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24017 Use only Preelaborate-compatible constructs.
24019 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24020 Primitives.Operations.
24021 (Delete, Initialize): New procedures.
24023 * s-osinte-vxworks.adb: Body used to handle differences between
24024 VxWorks 5.x and 6.x
24025 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24027 * s-osinte-vxworks.ads: Minor reformatting.
24028 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24029 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24031 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24032 between Vxworks 5 and 6.
24033 (taskLock, taskUnlock): Removeed, no longer used.
24035 * adaint.c: The wait.h header is not located in the sys directory on
24036 VxWorks when using RTPs.
24037 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24039 (__gnat_dup): dup is available on Vxworks when using RTPs.
24040 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24042 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24044 * expect.c: The wait.h header is not located in the sys directory on
24045 VxWorks when using RTPs.
24047 2005-09-01 Thomas Quinot <quinot@adacore.com>
24049 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24051 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24053 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24054 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24055 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24056 g-soccon-freebsd.ads: Add new constants:
24058 SO_RCVTIMEO/SO_SNDTIMEO
24062 Move all target-specific file inclusions and macro definitions to
24063 gsocket.h, in order to ensure that any C code in socket.c will see a
24064 set of constants that is consistent with the contents of g-soccon.ads.
24066 * gsocket.h: Code imported from gen-soccon.c:
24067 Move all target-specific file inclusions and macro definitions to
24068 gsocket.h, in order to ensure that any C code in socket.c will see a set
24069 of constants that is consistent with the contents of g-soccon.ads.
24070 This change also makes gen-soccon self-contained (removing dependencies
24071 upon GCC internal headers).
24073 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24075 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24077 * socket.c: Minor reformatting.
24079 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24080 Thomas Quinot <quinot@adacore.com>
24082 * fname-sf.adb, mlib-tgt.ads,
24083 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24084 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24085 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24086 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24087 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24088 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24089 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24090 makegpr.adb: Remove redundant use_clauses.
24092 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24094 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24095 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24096 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24097 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24098 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24099 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24100 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24101 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24102 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24103 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24104 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24105 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24106 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24107 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24108 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
24109 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
24110 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24111 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24112 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24113 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24114 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24115 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24116 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24117 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24118 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24119 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24120 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24121 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
24122 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24123 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
24124 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24125 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24126 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24127 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24128 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24129 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24130 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24131 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24132 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24133 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24134 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24135 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24136 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24137 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24138 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24139 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24140 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24141 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24142 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24143 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24144 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24145 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24146 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24147 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24148 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24149 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24150 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24151 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24152 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24153 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24154 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24155 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24156 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24157 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24158 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24159 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24160 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
24161 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24162 and always use the no parameter form for consistency.
24164 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24166 2005-09-01 Robert Dewar <dewar@adacore.com>
24168 * binde.adb: Minor reformatting
24169 (Find_Elab_Order): Output warning if -p used with static elab order
24171 2005-09-01 Robert Dewar <dewar@adacore.com>
24173 * checks.adb (Check_Needed): New procedure, deals with removing checks
24174 based on analysis of short-circuited forms. Also generates warnings for
24175 improper use of non-short-circuited forms.
24178 2005-09-01 Robert Dewar <dewar@adacore.com>
24180 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24183 2005-09-01 Robert Dewar <dewar@adacore.com>
24185 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24187 Implement new insertion char < (conditional warning)
24188 * errutil.adb, erroutc.adb: Implement new insertion char <
24189 (conditional warning).
24190 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24191 (Error_Msg_Warn): New variable for < insertion char.
24192 * prj-nmsc.adb: Implement new errout insertion char < (conditional
24194 (Check_For_Source): Change value of Source_Id only after the current
24195 source has been dealt with.
24197 2005-09-01 Robert Dewar <dewar@adacore.com>
24198 Doug Rupp <rupp@adacore.com>
24200 * exp_attr.adb: Handle vax fpt for 'Valid attribute
24201 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24202 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24203 (Valid_D, Valid_F, Valid_G): New functions
24205 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24206 Hristian Kirtchev <kirtchev@adacore.com>
24207 Javier Miranda <miranda@adacore.com>
24209 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24210 from object notation, the original node is unanalyzed and carries no
24211 semantic information, so that accessiblity checks must be performed on
24212 the type of the actual itself.
24213 (Expand_N_Subprogram_Declaration): Change last actual parameter for
24214 compatibility with Build_Protected_Sub_Specification.
24215 (Check_Overriding_Inherited_Interfaces): Add suport to handle
24216 overloaded primitives.
24217 (Register_Interface_DT_Entry): Use the new name of the formal
24218 the the calls to Expand_Interface_Thunk
24220 * exp_dbug.ads: Augment comments on encoding of protected types to
24221 include the generation of dispatching subprograms when the type
24222 implements at least one interface.
24224 * lib.ads: Extend information in Load_Stack to include whether a given
24225 load comes from a Limited_With_Clause.
24227 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24228 whether a potential circularity is harmless, because it includes units
24229 loaded through a limited_with clause. Extends previous treatment which
24230 did not handle properly arbitrary combinations of limited and
24231 non-limited clauses.
24233 2005-09-01 Nicolas Setton <setton@adacore.com>
24235 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24236 to be encoded as typ___XBLU_lowerbound__upperbound instead of
24237 typ___XB_lowerbound__upperbound.
24239 2005-09-01 Thomas Quinot <quinot@adacore.com>
24241 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24242 dummy access formal for RACW/RAS TypeCode TSS.
24243 (Build_TypeCode_Call): Do not generate dummy null access actual for
24244 calls to the TypeCode TSS.
24246 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24248 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24249 fully qualified name, to distinguish instances with the same local name.
24251 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24254 2005-09-01 Robert Dewar <dewar@adacore.com>
24256 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24259 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
24261 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24262 (Free): New deallocation procedure for filter elements
24263 (Close): Deallocate any existing filter for the concerned connection
24265 2005-09-01 Laurent Pautet <pautet@adacore.com>
24267 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24268 position set is provided, we compute one in order to reduce the maximum
24269 length of the keys. This computation first selects a character
24270 position between 1 and the minimum length of the keys in order to
24271 avoid reducing one of the keys to an empty string.
24272 (Initialize, Compute): When the ratio V to K is too low, the algorithm
24273 does not converge. The initialization procedure now comes with a
24274 maximum number of iterations such that when exceeded, an exception is
24275 raised in Compute. The user can initialize this ratio to another value
24277 Reformating and updated headers.
24279 2005-09-01 Javier Miranda <miranda@adacore.com>
24281 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24282 that given an entity T creates and returns an Itype that duplicates the
24283 contents of T. The returned Itype has the null-exclusion
24284 attribute set to True, and its Etype attribute references T
24285 to keep the association between the two entities.
24286 Update copyright notice
24288 * sem_aggr.adb (Check_Can_Never_Be_Null,
24289 Aggregate_Constraint_Checks, Resolve_Aggregate,
24290 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24292 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24294 2005-09-01 Gary Dismukes <dismukes@adacore.com>
24295 Robert Dewar <dewar@adacore.com>
24296 Hristian Kirtchev <kirtchev@adacore.com>
24298 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24301 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24303 Call Set_Result_Definition instead of Set_Subtype_Mark.
24304 (P_Subprogram_Specification): Add parsing of anonymous access result
24305 plus null exclusions. Call Set_Result_Definition instead of
24308 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24309 (P_Access_Type_Definition): Add parsing for an anonymous access result
24310 subtype, plus parsing for null exclusions. Call Set_Result_Definition
24311 instead of Set_Subtype_Mark.
24313 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24314 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24315 (Result_Definition): New function for N_Function_Specifications.
24316 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24317 N_Function_Specification.
24318 (Set_Null_Exclusion_Present): Allow this flag for
24319 N_Function_Specification.
24320 (Set_Result_Definition): New procedure for N_Function_Specifications.
24321 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24322 and N_Function_Specification.
24324 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24325 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24326 Add support for LIMITED NEW for Ada 2005 AI-419
24327 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24328 syntax for anonymous access results.
24329 Replace Subtype_Mark field by Result_Definition in
24330 N_Function_Specification and N_Access_Definition specs.
24331 Add Null_Exclusion_Present to spec of N_Function_Specification.
24332 (Result_Definition): New function for N_Function_Specification and
24333 N_Access_Function_Definition.
24334 (Set_Result_Definition): New procedure for N_Function_Specification and
24335 N_Access_Function_Definition.
24337 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24338 Result_Definition for cases of N_Access_Function_Definition and
24339 N_Function_Specification.
24340 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24342 2005-09-01 Vincent Celier <celier@adacore.com>
24344 * lib-writ.adb: Update Copyright notice
24345 (Write_With_Lines): On platforms where file names are case-insensitive,
24346 record the file names in lower case.
24347 (Write_ALI): For D lines, on platforms where file names are
24348 case-insensitive, record the file names in lower case.
24350 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24351 Emmanuel Briot <briot@adacore.com>
24353 * lib-xref.adb (Output_Overridden_Op): Display information on
24354 overridden operation.
24356 * lib-xref.ads: Add documentation on overridden operations.
24358 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24361 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24362 overriding entity information.
24364 2005-09-01 Vincent Celier <celier@adacore.com>
24366 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24367 including those that are inherited.
24369 2005-09-01 Robert Dewar <dewar@adacore.com>
24371 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24373 * par-prag.adb: Implement new pragma Debug_Policy
24375 * sem_prag.adb Implement new pragma Debug_Policy
24376 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24377 Component_Size attribute specification. Give warning for ignored pragma
24380 * snames.h, snames.ads, snames.adb: Introduce entries in
24381 Preset_Names for Name_Disp_Asynchronous_Select,
24382 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24383 Name_Disp_Timed_Select.
24384 New pragma Debug_Policy
24386 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24388 Switch -gnata also sets Debug_Pragmas_Enabled
24390 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24391 handle an explicit -gnata when compiling predefined files.
24393 2005-09-01 Vincent Celier <celier@adacore.com>
24395 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24396 directories of projects that have no Ada sources.
24398 2005-09-01 Robert Dewar <dewar@adacore.com>
24400 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24401 (makes a difference for wide characters)
24403 * widechar.adb, widechar.ads:
24404 Add Wide_Char_Byte_Count feature to count chars vs bytes
24406 2005-09-01 Thomas Quinot <quinot@adacore.com>
24407 Ed Schonberg <schonberg@adacore.com>
24408 Robert Dewar <dewar@adacore.com>
24410 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24411 'Address attribute reference with an overloaded prefix, use the
24412 location of the prefix (not the location of the attribute reference) as
24413 the error location.
24414 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24415 a function renaming thereof, is a valid prefix for 'Size (where it is
24416 intepreted as a function call).
24417 (Statically_Denotes_Entity): New predicate to determine whether the
24418 prefix of an array attribute can be considered static.
24421 (Eval_Attr): Fix failure to evaluate Component_Size for
24422 unconstrained arrays (resulted in wrong value in packed case, since
24423 back end cannot handle this case)
24425 2005-09-01 Robert Dewar <dewar@adacore.com>
24427 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24428 error msgs for most common cases.
24429 Use new errout insertion char < (conditional warning)
24431 2005-09-01 Javier Miranda <miranda@adacore.com>
24432 Ed Schonberg <schonberg@adacore.com>
24434 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24435 become local to the whole package.
24436 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24437 the package was already analyzed the new algorithm "replaces" the
24438 real entities by the shadow ones. This is required to ensure that
24439 the order of these entities in the homonym chains does not change;
24440 otherwise we can have undefined references at linking time because
24441 in case of conflicts the external name of the entities will have
24442 a suffix that depends on the order of the entities in the chain.
24443 (Remove_Limited_With_Clause): Complementary code that completes the
24444 new algorithm and replaces the shadow entities by the real ones.
24445 (Install_Limited_Withed_Unit): When unchaining entities before the
24446 installation of the shadow entities, only regular entities of the
24447 public part must be taken into account. This is required to
24448 keep this routine in synch with the work done by Remove_Limited_
24450 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24451 even if unit is analyzed, because the analysis of the unit is
24452 idempotent in any case, and the limited view of the unit may have to
24453 be installed for proper visibility.
24454 (Expand_Limited_With_Clause): Even if the unit in the implicit
24455 with_clause has been analyzed already, a limited view of the package
24456 must be built for the current context, if it does not exist yet.
24458 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24459 Javier Miranda <miranda@adacore.com>
24460 Gary Dismukes <dismukes@adacore.com>
24462 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24463 defining entity for the instance body, make a new defining identifier
24464 rather than copying the entity of the spec, to prevent accidental
24465 sharing of the entity list.
24466 (Check_Private_View): When exchanging views of private types, build the
24467 list of exchanged views as a stack, to ensure that on exit the exchanges
24468 are undone in the proper order.
24469 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24470 Restore the compilation environment in case of instantiation_error.
24471 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24472 for an anonymous access result.
24473 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24474 (Formal_Entity): Handle properly the case of a formal package that
24475 denotes a generic package renaming.
24477 2005-09-01 Thomas Quinot <quinot@adacore.com>
24479 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24480 clause if the array aggregate is surrounded by parentheses.
24482 2005-09-01 Cyrille Comar <comar@adacore.com>
24483 Gary Dismukes <dismukes@adacore.com>
24484 Ed Schonberg <schonberg@adacore.com>
24485 Javier Miranda <miranda@adacore.com>
24487 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24489 to check if a type is Constrained in cases related to code generation
24490 (rather than semantic checking) since otherwise we do not generate
24491 similar code for mutable private types depending if their
24492 discriminants are visible or not.
24493 (Check_Abstract_Overriding): Do not complain about failure to override
24494 the primitive operations used in dispatching selects since they will
24495 always be overriden at the freeze point of the type.
24496 (Access_Definition): Separate out handling for resetting the scope
24497 of an anonymous access function result type. Retrieve the scope
24498 of the associated function rather than using Current_Scope, which
24499 does not have a consistent value (depends on whether we're in the
24500 middle of analyzing formal parameters). Add ??? comment about
24501 finding a cleaner way to handle the special cases of scope setting.
24502 (Process_Incomplete_Dependents): A protected operation is never a
24503 dispatching operation (only its wrapper may be).
24504 (Build_Derived_Record_Type): In case of tagged private types that
24505 implement interfaces add derivation of predefined primitive
24507 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24508 by two parameters that are used in case of derivation from abstract
24509 interface types: No_Predefined_Prims is used to avoid the derivation
24510 of predefined primitives from the interface, and Predefined
24511 Prims_Only is used to complete the derivation predefined primitives
24512 in case of private tagged types implementing interfaces.
24513 Fix typo in comments
24514 (Find_Interface_In_Descendant): Protect the frontend against
24515 wrong code with large circularity chains.
24516 (Is_Private_Overriding): Add support for entities overriding interface
24517 subprograms. The test failed because Entities associated with overriden
24518 interface subprograms are always marked as hidden (and used to build
24519 the secondary dispatch table); in this case the overriden entity is
24520 available through the field abstract_interface_alias (cf. override_
24521 dispatching_operation)
24522 (Access_Definition): Set the scope of the type to Current_Scope for the
24523 case of a function with an anonymous access result type.
24524 (Access_Subprogram_Declaration): Handle creation of the type entity for
24525 an access-to-function type with an anonymous access result.
24526 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24527 in handling for N_Access_Function_Definition.
24528 (Analyze_Subtype_Declaration): Modify the text of error message.
24529 (Derived_Type_Declaration): Modify the text of error message.
24530 (Process_Subtype): Modify the text of error message plus cleanup
24531 of one redundant error message.
24532 (Analyze_Component_Declaration): Code cleanup.
24533 (Analyze_Object_Declaration): Code cleanup.
24534 (Analyze_Subtype_Declaration): Propagate the null-exclusion
24535 attribute in case of access types. Code cleanup.
24536 (Array_Type_Declaration): Code cleanup.
24537 (Process_Discriminants): Create the new null-excluding itype
24538 if required. Code cleanup.
24539 (Process_Subtype): Create the new null-excluding itype if
24540 required. Code cleanup.
24541 (Build_Derived_Record_Type): Code cleanup to avoid calling
24542 twice the subprogram derive_subprograms in case of private
24543 types that implement interfaces. In this particular case the
24544 subprogram Complete_Subprograms_Derivation already does the
24545 job associated with the second call.
24547 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24548 conversion to the full view when generating an operation for a
24549 discriminant whose type may currently be private.
24551 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24552 Javier Miranda <miranda@adacore.com>
24554 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24555 V (Obj.F), the rewriting does not involve the indexed component, but
24556 only the selected component itself.
24557 Do not apply the transformation if the analyzed node is an actual of a
24558 call to another subprogram.
24559 (Complete_Object_Operation): Retain the entity of the
24560 dispatching operation in the selector of the rewritten node. The
24561 entity will be used in the expansion of dispatching selects.
24562 (Analyze_One_Call): Improve location of the error message associated
24564 (Analyze_Selected_Component): No need to resolve prefix when it is a
24565 function call, resolution is done when parent node is resolved, as
24567 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24568 when attempting to resolve a call transformed from its object notation.
24569 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24570 of the argument list for each interpretation of the operation.
24571 (Try_Object_Operation): The designated type of an access parameter may
24572 be an incomplete type obtained through a limited_with clause, in which
24573 case the primitive operations of the type are retrieved from its full
24575 (Analyze_Call): If this is an indirect call, and the return type of the
24576 access_to_subprogram is incomplete, use its full view if available.
24578 2005-09-01 Javier Miranda <miranda@adacore.com>
24579 Gary Dismukes <dismukes@adacore.com>
24581 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24582 access types the null-exclusion and access-to-constant attributes must
24584 (Analyze_Return_Statement): When the result type is an anonymous access
24585 type, apply a conversion of the return expression to the access type
24586 to ensure that appropriate accessibility checks are performed.
24587 (Analyze_Return_Type): For the case of an anonymous access result type,
24588 generate the Itype and set Is_Local_Anonymous_Access on the type.
24589 Add ??? placeholder for check to disallow returning a limited object
24590 in Ada 2005 unless it's an aggregate or a result of a function call.
24591 Change calls from Subtype_Mark to Result_Definition.
24592 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24593 Result_Definition in call to Make_Function_Specification.
24594 (Build_Body_To_Inline): Change Set_Subtype_Mark to
24595 Set_Result_Definition.
24596 (Make_Inequality_Operator): Change formal Subtype_Mark to
24597 Result_Definition in call to Make_Function_Specification.
24598 (Process_Formals): Create the new null-excluding itype if required.
24599 (New_Overloaded_Entity): For an entity overriding an interface primitive
24600 check if the entity also covers other abstract subprograms in the same
24601 scope. This is required to handle the general case, that is, overriding
24602 other interface primitives and overriding abstract subprograms inherited
24603 from some abstract ancestor type.
24604 (New_Overloaded_Entity): For an overriding entity that comes from
24605 source, note the operation that it overrides.
24606 (Check_Conformance, Type_Conformant): Addition of one new formal
24607 to skip controlling formals in the analysis. This is used to
24608 handle overloading of abstract interfaces.
24609 (Base_Types_Match): Add missing case for types imported from
24610 limited-with clauses
24611 (New_Overloaded_Entity): Add barrier to protect the use of
24612 the "alias" attribute.
24614 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24616 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24617 verify that the procedure and the entry are mode conformant.
24618 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24619 as a different operator, which is often a cut-and-paste error.
24621 2005-09-01 Javier Miranda <miranda@adacore.com>
24622 Ed Schonberg <schonberg@adacore.com>
24624 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24625 used in controlling parameters exclude null because it is necessary to
24626 read the tag to dispatch, and null has no tag.
24627 (Override_Dispatching_Operation): If the previous operation is inherited
24628 from an interface, it becomes hidden and does not participate in later
24631 2005-09-01 Javier Miranda <miranda@adacore.com>
24632 Ed Schonberg <schonberg@adacore.com>
24633 Gary Dismukes <dismukes@adacore.com>
24635 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
24636 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
24637 the expander will generate the corresponding run-time check to evaluate
24639 (Resolve_Call): Check for legal type of procedure name or prefix that
24640 appears as a trigger in a triggering alternative.
24641 (Valid_Conversion): If expression is ambiguous and the context involves
24642 an extension of System, remove System.Address interpretations.
24643 (Resolve_Qualified_Expression): Reject the case of a specific-type
24644 qualification applied to a class-wide argument. Enhance comment
24645 to explain checking of Original_Node.
24646 (Resolve_Type_Conversion): The location of the error message was not
24647 general enough to handle the general case and hence it has been removed.
24648 In addition, this patch improves the text of the message.
24649 (Resolve_Type_Conversion): Add missing support for access to interface
24651 (Resolve_Type_Conversion): If the target is a class-wide interface type,
24652 do not expand if the expression is the actual in a call, because proper
24653 expansion will take place when the call itself is expanded.
24654 (Resolve_Allocator): If the context is an unchecked conversion, the
24655 allocator inherits its storage pool, if any, from the target type of
24658 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24659 Javier Miranda <miranda@adacore.com>
24661 * sem_type.adb (Add_One_Interp): If a candidate operation is an
24662 inherited interface operation that has an implementation, use the
24663 implementation to avoid spurious ambiguities.
24664 (Interface_Present_In_Ancestor): In case of concurrent types we can't
24665 use the Corresponding_Record_Typ attribute to look for the interface
24666 because it is set by the expander (and hence it is not always
24667 available). For this reason we traverse the list of interfaces
24668 (available in the parent of the concurrent type).
24669 (Interface_Present_In_Ancestor): Handle entities from the limited view
24671 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24673 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
24674 from the list of required components.
24675 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
24676 primitive procedure of a limited interface with a controlling first
24678 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
24680 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
24681 capture if it is generated in the second operand of a short-circuit
24683 Do not capture values for variables with address clauses.
24684 (Is_Object_Reference): Treat a function call as an object reference only
24685 if its type is not Standard_Void_Type.
24687 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24689 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
24690 to a variable that is statically known to be constant.
24692 2005-09-01 Geert Bosch <bosch@adacore.com>
24693 Robert Dewar <dewar@adacore.com>
24695 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
24696 (VAXGF_Safe_First): Idem.
24698 2005-09-01 Robert Dewar <dewar@adacore.com>
24699 Arnaud Charlet <charlet@adacore.com>
24701 * g-dirope.ads: Minor reformatting
24702 Document that bounds of result of Base_Name match the input index
24704 Add documentation on environment variable syntax for Expand_Path
24706 * gnat_ugn.texi: Update documentation to include mention of -m switches
24707 Document new treatment of wide characters in max line length
24709 Remove -gnatL/-gnatZ switches, no longer used.
24710 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
24713 * gnat_rm.texi: Add doc for two argument form of pragma
24714 Float_Representation.
24715 Add documentation for pragma No_Strict_Aliasing
24716 Add note that explicit component clause overrides pragma Pack.
24717 Add documentation of pragma Debug_Policy
24719 2005-09-01 Matthew Heaney <heaney@adacore.com>
24721 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
24722 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
24723 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
24724 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
24725 draft (Draft 13, August 2005) of Ada Amendment 1.
24727 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24729 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
24730 Note that the platform-specific version of g-soccon.ads for VMS is now
24731 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
24732 really is a package spec).
24733 Replace s-taspri-linux.ads by s-taspri-posix.ads
24734 Remove references to s-mastop-x86.adb
24736 * system-vxworks-xscale.ads: Removed, no longer used.
24737 * s-vxwork-xscale.ads: Removed, no longer used.
24739 2005-09-01 Robert Dewar <dewar@adacore.com>
24741 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
24742 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
24743 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
24744 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
24745 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
24746 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
24747 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
24748 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
24749 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
24750 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
24751 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
24752 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
24753 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
24754 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
24755 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
24756 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
24757 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
24758 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
24759 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
24760 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
24761 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
24763 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24767 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
24769 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24770 Doug Rupp <rupp@adacore.com>
24772 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
24774 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
24775 this code in the GNAT run-time.
24777 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
24780 * init.c (__gnat_error_handler [many]): Mark "msg" as const
24781 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
24783 (__gnat_inside_elab_final_code): Moved here from
24784 Standard_Library and only defined for the compiler.
24785 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
24786 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
24787 using RTPs because directly vectored Interrupt routines are not
24788 supported on this configuration.
24789 (getpid): Do not redefine this function on VxWorks when using RTPs
24790 because this primitive is well supported by the RTP libraries.
24791 (copy_msg): Correct the code that checks for buffer overflow.
24792 Discovered during code reading.
24794 2005-08-29 Olivier Hainque <hainque@adacore.com>
24796 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
24797 a library level mutable variable with an initializer, tell
24798 build_allocator to ignore the initializer's size. It may not be large
24799 enough for all the values that might be assigned to the variable later
24802 2005-08-29 Arnaud Charlet <charlet@adacore.com>
24803 Eric Botcazou <ebotcazou@adacore.com>
24805 * trans.c: Protect < in error msg with quote
24806 Replace GCC_ZCX by Back_End_Exceptions.
24807 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
24808 has been sufficiently aligned in the record.
24810 2005-08-15 James E. Wilson <wilson@specifix.com>
24812 * system-linux-alpha.ads: Change ia64 to alpha.
24814 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
24816 * decl.c, utils.c: Fix comment typos.
24818 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
24820 * decl.c, init.c, initialize.c: Fix comment typos.
24822 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
24824 Make CONSTRUCTOR use VEC to store initializers.
24825 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
24827 * trans.c (extract_values): Likewise.
24828 * utils.c (convert, remove_conversions): Likewise.
24829 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
24830 gnat_build_constructor): Likewise.
24832 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24834 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
24836 (compare_field_bitpos): Likewise.
24838 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
24840 * utils.c (create_var_decl): Only set DECL_COMMON on
24841 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
24842 VAR_OR_FUNCTION_DECL_P.
24844 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
24846 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
24849 2005-07-07 Pascal Obry <obry@adacore.com>
24851 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
24852 returned type on Windows.
24854 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
24857 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
24858 exception in this case.
24859 Simplify the code as "Image (Image'Range)" = "Image".
24861 2005-07-07 Vincent Celier <celier@adacore.com>
24863 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
24864 the destructor/constructor attributes for <lib>final/<lib>init.
24866 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24868 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
24870 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
24871 type if the parameter is not passed by copy but reference by default.
24873 2005-07-07 Javier Miranda <miranda@adacore.com>
24875 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
24876 Reimplementation of the support for abstract interface types in order
24877 to leave the code more clear and easy to maintain.
24879 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
24880 abstract interface types in order to leave the code clearer and easier
24883 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
24884 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
24885 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
24886 appropriate entry of the secondary dispatch table.
24887 (Make_DT): Add code to inherit the secondary dispatch tables of
24890 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
24891 implementing both functionalities by means of a common routine, each
24892 routine has its own code.
24894 2005-07-07 Javier Miranda <miranda@adacore.com>
24896 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
24898 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
24901 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24904 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
24905 use of tag incomplete types.
24907 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
24908 give support to tagged incomplete types.
24910 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
24911 expression is a discriminant reference and its type is private, as can
24912 happen within a stream operation for a mutable record, use the full
24913 view of the type to resolve the case alternatives.
24914 (Analyze_Assignment): Check wrong dereference of incomplete types.
24916 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
24919 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
24922 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
24923 N_Incomplete_Type_Declaration nodes.
24925 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
24926 Tag_Present to give support to tagged incomplete types:
24928 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
24931 2005-07-07 Olivier Hainque <hainque@adacore.com>
24934 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
24935 definitions for the Unwind wrappers in the compiler case.
24937 2005-07-07 Ed Schonberg <schonberg@adacore.com>
24938 Javier Miranda <miranda@adacore.com>
24940 * par-load.adb (Load): If a child unit is loaded through a limited_with
24941 clause, each parent must be loaded as a limited unit as well.
24943 * sem_ch10.adb (Previous_Withed_Unit): Better name for
24944 Check_Withed_Unit. Return true if there is a previous with_clause for
24945 this unit, whether limited or not.
24946 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
24948 (Is_Visible_Through_Renamings): New local subprogram of install_limited
24949 _withed_unit that checks if some package installed through normal with
24950 clauses has a renaming declaration of package whose limited-view is
24951 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
24952 of the current Draft document for Ada 2005.
24953 (Analyze_Context): Complete the list of compilation units that
24954 are allowed to contain limited-with clauses. It also contains
24955 checks that were previously done by Install_Limited_Context_Clauses.
24956 This makes the code more clear and easy to maintain.
24957 (Expand_Limited_With_Clause) It is now a local subprogram of
24958 Install_Limited_Context_Clauses, and contains the code that adds
24959 the implicit limited-with clauses for parents of child units.
24960 This functionality was prevously done by Analyze_Context.
24962 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
24965 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
24966 been erroneously named in a limited-with clause of its own context.
24967 In this case the error has been previously notified by Analyze_Context.
24969 2005-07-07 Ed Schonberg <schonberg@adacore.com>
24971 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
24972 generic package that contains local declarations with the same name.
24973 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
24975 2005-07-07 Bernard Banner <banner@adacore.com>
24977 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
24978 ia64 platform only on platforms that you the GCC unwind library
24979 rather than the system unwind library.
24981 2005-07-07 Thomas Quinot <quinot@adacore.com>
24983 * expect.c: Minor reformatting
24985 2005-07-07 Sergey Rybin <rybin@adacore.com>
24987 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
24990 * gnat_ugn.texi: Add description for new gnatpp option
24993 2005-07-04 Thomas Quinot <quinot@adacore.com>
24995 * g-expect-vms.adb, g-expect.ads, g-expect.adb
24996 (Get_Command_Output): New subprogram to launch a process and get its
24997 standard output as a string.
24999 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25000 Olivier Hainque <hainque@adacore.com>
25002 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25003 fetch a code-range descriptor associated with the machine state. On
25004 failure set the machine state's PC to 0; on success, pass the
25005 descriptor to exc_virtual_unwind.
25007 * init.c (Tru64 section): New function __gnat_set_code_loc.
25009 2005-07-04 Vincent Celier <celier@adacore.com>
25011 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25012 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25013 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25014 Remove all auto-initialization code, as this is now done through the
25015 constructor mechanism.
25017 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25018 __gnat_sals_init_using_constructors): New functions.
25020 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25021 Linker_Constructor and Linker_Destructor when switch -a is used.
25023 * bindusg.adb: Add line for new switch -a
25025 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25026 (Gnatbind): When switch -a is used, check if it is allowed
25028 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25030 2005-07-04 Joel Brobecker <brobecker@adacore.com>
25032 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25033 This prevents us from hitting a limitation during the debug info
25034 generation when using stabs.
25035 (Prims_Ptr): Likewise.
25037 2005-07-04 Gary Dismukes <dismukes@adacore.com>
25038 Ed Schonberg <schonberg@adacore.com>
25039 Javier Miranda <miranda@adacore.com>
25041 * checks.adb (Null_Exclusion_Static_Checks): In the case of
25042 N_Object_Declaration, only perform the checks if the Object_Definition
25043 is not an Access_Definition.
25045 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25046 where the parent of an the access definition is an N_Object_Declaration
25047 when determining the Associated_Node_For_Itype and scope of an
25048 anonymous access-to-subprogram type.
25050 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25051 Corresponding_Spec on the body created for a null procedure. Add ???
25052 comment. Remove New_Copy_Tree call on body argument to
25053 Set_Body_To_Inline.
25055 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25056 discriminants, use the type of the actual as well, because the
25057 discriminants may be read by the called subprogram.
25059 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25060 access type we do not need to handle non-limited views.
25061 (Build_Derived_Record_Type): Additional check to check that in case of
25062 private types, interfaces are only allowed in private extensions.
25064 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25066 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25067 <Pragma_Linker_Destructor>: Likewise.
25069 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25070 Pragma_Linker_Destructor.
25072 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25073 ATTR_LINK_DESTRUCTOR.
25074 (static_ctors, static_dtors): New variables.
25076 * misc.c (gnat_expand_body): Output current function as constructor
25077 and destructor if requested.
25079 * par-prag.adb: Add processing for pragma Linker_Constructor and
25082 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25083 extracted from Check_Interrupt_Or_Attach_Handler.
25084 (Check_Interrupt_Or_Attach_Handler): Invoke it.
25085 Implement pragma Linker_Constructor and Linker_Destructor with the
25086 help of Find_Unique_Parameterless_Procedure.
25087 Replace Name_Alias with Name_Target for pragma Linker_Alias.
25089 * snames.h, snames.ads, snames.adb:
25090 Add Name_Linker_Constructor and Name_Linker_Destructor.
25091 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25092 * snames.adb: Remove Name_Alias.
25094 * trans.c: Include cgraph.h.
25095 (build_global_cdtor): New function.
25096 (Compilation_Unit_to_gnu): Build global constructor and destructor if
25098 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25100 (addressable_p) <COMPONENT_REF>: Unconditionally test
25101 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25103 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25104 variable if it is external.
25106 (static_ctors, static_dtors): New global variables.
25107 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25108 <ATTR_LINK_DESTRUCTOR>: Likewise.
25109 (end_subprog_body): Chain function as constructor and destructor
25112 * exp_util.adb (Force_Evaluation): Unconditionally invoke
25113 Remove_Side_Effects with Variable_Ref set to true.
25114 (Remove_Side_Effects): Handle scalar types first. Use a renaming
25115 for non-scalar types even if Variable_Ref is true and for class-wide
25118 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25120 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25121 to prevent spurious warnings.
25123 2005-07-04 Thomas Quinot <quinot@adacore.com>
25125 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25126 Itypes. Itypes are really unexpected there.
25127 (Build_TypeCode_Function): Generalise special processing for Itypes to
25128 handle the case of numeric implicit base types as well as enumerated
25131 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25133 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25134 controlled, indicate the expected type of the dereference that is
25135 created for the call to Deep_Finalize, to prevent spurious errors when
25136 the designated type is private and completed with a derivation from
25137 another private type.
25139 2005-07-04 Vincent Celier <celier@adacore.com>
25141 * make.adb (Change_To_Object_Directory): When unable to change the
25142 current dir to the object directory, output the full path of the
25145 2005-07-04 Matthew Gingell <gingell@adacore.com>
25147 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25149 * indepsw-linux.adb: Replace by...
25151 * indepsw-gnu.adb: ...this new file
25153 2005-07-04 Vincent Celier <celier@adacore.com>
25155 * mlib-prj.adb (Auto_Initialize): New constant String
25156 (SALs_Use_Constructors): New Boolean function
25157 (Build_Library): Call gnatbind with Auto_Initialize switch when
25158 SALs_Use_Constructors returns True.
25160 * mlib-tgt.ads: Minor reformatting
25162 * mlib-utl.ads: Minor reformatting
25164 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25166 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25168 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25169 single protected declarations can have an interface list.
25170 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25171 with seriously malformed entry declarations, and lead to compilation
25172 abandoned messages.
25174 2005-07-04 Javier Miranda <miranda@adacore.com>
25176 * par-load.adb: Load the context items in two rounds.
25178 2005-07-04 Robert Dewar <dewar@adacore.com>
25180 * scng.adb: Do not consider Mod used as an attribute to be a keyword
25182 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25183 Javier Miranda <miranda@adacore.com>
25185 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25186 type extension needs a limited view.
25187 Remove previous restriction on private types available through the
25188 limited-view (only tagged private types were previously allowed).
25189 (Install_Withed_Unit): In the code that implements the
25190 legality rule given in AI-377, exclude a child unit with the name
25191 Standard, because it is a homonym of the Standard environment package.
25193 2005-07-04 Thomas Quinot <quinot@adacore.com>
25195 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25196 overloaded function call, carry interpretations from the original tree
25199 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25201 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25202 types check whether some designated type is a limited view, and use
25203 the non-limited view if available.
25205 2005-07-04 Gary Dismukes <dismukes@adacore.com>
25207 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25208 constraint of full view of a private view T1 if present, when T2 is a
25209 discriminated full view.
25211 2005-07-04 Thomas Quinot <quinot@adacore.com>
25213 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25214 actual that is a view conversion of a bit packed array reference.
25216 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25218 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25219 present before checking whether an interface type covers a synchronized
25222 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25224 * sem_util.adb (Is_Object_Reference): An indexed or selected component
25225 whose prefix is an implicit dereference is an object reference. Removes
25226 spurious errors when compiling with -gnatc.
25228 2005-07-04 Robert Dewar <dewar@adacore.com>
25231 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25233 2005-07-04 Matthew Gingell <gingell@adacore.com>
25235 * tracebak.c: Enable tracebacks on ia64 platforms
25237 2005-07-04 Vincent Celier <celier@adacore.com>
25239 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25240 the GNAT BIND command, as gnatbind accepts multiples ALI files with
25241 the -L or -n switches.
25243 2005-07-04 Vincent Celier <celier@adacore.com>
25245 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25246 correctly computed and the main project data is not modified while
25248 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25249 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25250 c++linker as this does not work on some platforms.
25252 2005-07-04 Matthew Heaney <heaney@adacore.com>
25254 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25256 * a-coinve.adb: Perform constraint checks explicitly.
25258 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25259 Thomas Quinot <quinot@adacore.com>
25261 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25262 new target gen-soccon.
25264 2005-07-04 Robert Dewar <dewar@adacore.com>
25266 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25268 2005-07-04 Thomas Quinot <quinot@adacore.com>
25270 * g-socket.ads (Check_Selector): Minor rewording of comment.
25272 2005-07-04 Vincent Celier <celier@adacore.com>
25274 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25276 2005-07-04 Thomas Quinot <quinot@adacore.com>
25278 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25280 2005-07-04 Sergey Rybin <rybin@adacore.com>
25282 * gnat_ugn.texi: Add description of --eol gnatpp option
25284 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25285 Thomas Quinot <quinot@adacore.com>
25287 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25288 if the user wants all calls of a subprogram to be flagged,
25289 independently of whether they are made from within the same unit or
25291 Mention restriction for pragma Linker_Alias on some platforms.
25292 Document pragma Linker_Constructor and Linker_Destructor.
25293 Rewrite documentation of Weak_External, Linker_Section and
25294 Linker_Alias pragmas.
25296 2005-07-04 Arnaud Charlet <charlet@adacore.com>
25298 * s-stausa.ads, s-stausa.adb: New files.
25300 2005-06-30 Kelley Cook
25302 * all files: Update FSF address in copyright headers.
25303 * gen-soccon.co (main): Output new FSF address in generated files.
25305 2005-06-28 Paul Brook <paul@codesourcery.com>
25307 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25309 2005-06-14 Olivier Hainque <hainque@adacore.com>
25310 Eric Botcazou <ebotcazou@adacore.com>
25312 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25313 exc_unwind, now that we are generating proper .debug_frame output for
25316 * tracebak.c: Remove the mips-irix section, as we are now using the
25317 s-mastop based unwinder again.
25318 Under SPARC/Solaris, take into account the stack bias to compute the
25319 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
25322 2005-06-14 Doug Rupp <rupp@adacore.com>
25324 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25326 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25328 2005-06-14 Pascal Obry <obry@adacore.com>
25330 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25331 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25332 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25335 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25336 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25337 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25338 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25339 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25340 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25341 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25342 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25343 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25344 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25345 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25346 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25347 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25348 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25349 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25350 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25351 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25352 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25353 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25354 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25355 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25356 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25357 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25358 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25359 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25360 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25361 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25362 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25363 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25364 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25365 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25366 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25367 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25368 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25369 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25370 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25371 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25372 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25373 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25374 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25375 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25376 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25377 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25378 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25379 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25380 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25381 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25382 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25383 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25384 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25385 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25386 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25387 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25388 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25389 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25390 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25391 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25392 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25393 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25394 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25395 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25396 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25397 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25398 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25399 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25400 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25401 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25402 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25403 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25404 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25405 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25406 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25407 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25408 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25409 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25410 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25411 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25412 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25413 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25414 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25415 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25416 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25417 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25418 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25419 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25420 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25421 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25422 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25423 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25424 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25425 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25426 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25427 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25428 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25429 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25430 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25431 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25432 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25433 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25434 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25435 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25436 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25437 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25438 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25439 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25440 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25441 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25442 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25443 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25444 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25445 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25446 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25447 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25448 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25449 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25450 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25451 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25452 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25453 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25454 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25455 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25456 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25457 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25458 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25459 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25460 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25461 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25462 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25463 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25464 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25465 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25466 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25467 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25469 2005-06-14 Jose Ruiz <ruiz@adacore.com>
25470 Arnaud Charlet <charlet@adacore.com>
25472 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25473 longer protected objects. They have been replaced by lower-level
25474 suspension objects made up by a mutex and a condition variable (or
25475 their equivalent given a particular OS) plus some internal data to
25476 reflect the state of the suspension object.
25477 (Initialize, Finalize): Add this initialization procedure for
25478 Suspension_Object, which is a controlled type.
25479 (Finalize): Add the finalization procedure for Suspension_Object,
25480 which is a controlled type.
25482 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25483 Ada.Synchronous_Task_Control because there is no longer a need for a
25484 VxWorks specific version of this package. Target dependencies
25485 has been moved to System.Task_Primitives.Operations.
25487 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25489 (InitializeCriticalSection, EnterCriticalSection,
25490 LeaveCriticalSection, DeleteCriticalSection): Replace the type
25491 pCriticalSection by an anonymous access type so that we avoid problems
25492 of accessibility to local objects.
25494 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25495 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25496 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25497 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25498 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25499 set the environment task mask here.
25500 (Current_State): Add this function that returns the state of the
25502 (Set_False): Add this procedure that sets the state of the suspension
25504 (Set_True): Add this procedure that sets the state of the suspension
25505 object to True, releasing the task that was suspended, if any.
25506 (Suspend_Until_True): Add this procedure that blocks the calling task
25507 until the state of the object is True. Program_Error is raised if
25508 another task is already waiting on that suspension object.
25509 (Initialize): Add this procedure for initializing the suspension
25510 object. It initializes the mutex and the condition variable which are
25511 used for synchronization and queuing, and it sets the internal state
25513 (Finalize): Add this procedure for finalizing the suspension object,
25514 destroying the mutex and the condition variable.
25516 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25517 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25518 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25519 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25520 which provides a low-level abstraction (using operating system
25521 primitives) for Ada.Synchronous_Task_Control.
25522 This object is made up by a mutex (for ensuring mutual exclusion), a
25523 condition variable (for queuing threads until the condition is
25524 signaled), a Boolean (State) indicating whether the object is open,
25525 and a Boolean (Waiting) reflecting whether there is a task already
25526 suspended on this object.
25528 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25529 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25530 s-intman-vms.ads, s-intman-mingw.adb,
25531 (Initialize_Interrupts): Removed, no longer used.
25533 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25534 (Setup_Interrupt_Mask): New procedure.
25536 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
25538 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25540 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25541 this is no longer done in the body of s-taprop
25542 (Server_Task): Explicitely test for Pending_Action in case
25543 System.Parameters.No_Abort is True.
25545 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25546 is no longer done in the body of s-taprop
25548 2005-06-14 Robert Dewar <dewar@adacore.com>
25550 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25551 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25552 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25553 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25554 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25555 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25556 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25557 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25558 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25559 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25560 system-linux-hppa.ads, system-vms_64.ads,
25561 system-vxworks-alpha.ads: Minor comment update for
25562 AI-362 (unit is Pure).
25564 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25565 Add pragma Pure_05 for AI-362
25566 Make remaining conversion functions obsolescent in Ada 95
25568 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25569 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25570 Add entries for a-wichun and a-zchuni
25571 Add a-widcha a-zchara for AI-395
25572 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25574 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25575 Add entries for a-wichun.o and a-zchuni.o
25576 Entries for a-widcha.o and a-zchara.o
25577 Add entry for a-chacon.o
25579 * a-ztenau.adb: Add with of Ada.Characters.Conversions
25581 * a-chacon.ads, a-chacon.adb: New files.
25583 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25584 categorization violations.
25586 * a-strmap.ads: Add pragma Pure_05 for AI-362
25587 * a-strmap.ads: Add note on implicit categorization for AI-362
25589 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25591 * par-prag.adb: Dummy entry for pragma Persistent_BSS
25592 Set Ada_Version_Explicit, for implementation of AI-362
25593 Add processing for pragma Pure_05 and Preelaborate_05
25594 Add entry for Assertion_Policy pragma
25596 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25597 when needed for proper processing of categorization stuff
25600 For several cases, make errors in preealborate units warnings,
25601 instead of errors, if GNAT_Mode is set. For AI-362.
25603 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25604 preelaborate unit is now warning if in GNAT mode
25606 * s-stoele.ads: Document AI-362 for pragma preelaborate
25608 2005-06-14 Doug Rupp <rupp@adacore.com>
25610 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25611 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25612 Default_Exception_Msg_Max_Length: new parameter.
25614 * a-except.ads: (Exception_Msg_Max_Length): Set to
25615 System.Parameters.Default_Exception_Msg_Max_Length
25616 Add pragma Preelaborate_05 for AI-362
25617 Add warnings off to allow categorization violations for AI-362
25619 2005-06-14 Vincent Celier <celier@adacore.com>
25621 * gnatsym.adb: Adapt to modification of package Symbols: procedure
25622 Process is now in package Processing.
25624 * symbols.ads, symbols.adb:
25625 (Processing): New package, containing procedure Process
25627 * symbols-vms-alpha.adb:
25628 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25630 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25631 symbols-processing-vms-ia64.adb: New files.
25633 2005-06-14 Pascal Obry <obry@adacore.com>
25635 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
25636 implementation. This new version generates the proper DllMain routine
25637 to initialize the SAL. The DllMain is generated in Ada and compiled
25638 before being added as option to the library build command.
25640 2005-06-14 Doug Rupp <rupp@adacore.com>
25641 Pascal Obry <obry@adacore.com>
25643 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
25644 call to decc$translate_vms.
25645 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
25646 need to remove those quotes before catenating the filename.
25647 (__gnat_locate_exec_on_path): improvements to the Win32 section:
25648 * avoid allocating the memory twice for better efficiency;
25649 * allocate 32K buffer for environment expansion as suggested by MSDN;
25650 * prepend ".;" to the path so that current directory is searched too.
25652 2005-06-14 Robert Dewar <dewar@adacore.com>
25654 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
25655 instead of raising CE (AI-241)
25656 Add warnings off to allow categorization violations for AI-362
25658 2005-06-14 Robert Dewar <dewar@adacore.com>
25660 * ali-util.adb, gnatbind.adb: Remove references to
25661 Force_RM_Elaboration_Order.
25663 * switch-b.adb: Remove recognition of -f switch
25665 2005-06-14 Pascal Obry <obry@adacore.com>
25667 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
25668 implementation which is slightly more efficient.
25670 2005-06-14 Gary Dismukes <dismukes@adacore.com>
25671 Javier Miranda <miranda@adacore.com>
25672 Ed Schonberg <schonberg@adacore.com>
25673 Hristian Kirtchev <kirtchev@adacore.com>
25675 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
25676 allocator's designated type is a class-wide type, and compiling for
25677 Ada 2005, emit a run-time check that the accessibility level of the
25678 type given in the allocator's expression is not deeper than the level
25679 of the allocator's access type.
25681 (Tagged_Membership): Modified to gives support to abstract interface
25684 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
25686 (Descendant_Tag): New predefined function
25687 (Is_Descendant_At_Same_Level): New predefined function
25688 (Get_Access_Level): New private function
25689 (Set_Access_Level): New private procedure
25690 (IW_Membership): New function. Given the tag of an object and the tag
25691 associated with an interface, evaluate if the object implements the
25693 (Register_Interface_Tag): New procedure used to initialize the table of
25694 interfaces used by the IW_Membership function.
25695 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
25696 of the dispatch table.
25697 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
25698 table of interfaces of the parent.
25699 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
25700 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
25701 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
25702 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
25703 Ada 2005 semantics for the new predefined function.
25705 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
25706 call to Descendant_Tag rather than Internal_Tag.
25707 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
25708 the accessibility level of the attribute's Item parameter is not deeper
25709 than the level of the attribute's prefix type. Tag_Error is raised if
25710 the check fails. The check is only emitted for Ada_05.
25711 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
25712 requested stream attribute, use it.
25713 (Expand_N_Attribute_Reference): If the designated type is an interface
25714 then rewrite the referenced object as a conversion to force the
25715 displacement of the pointer to the secondary dispatch table.
25716 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
25717 is a dereference of an object with a constrained partial view.
25719 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
25720 type is a class-wide type, emit a run-time check that the accessibility
25721 level of the returned object is not deeper than the level of the
25722 function's master (only when compiling for Ada 2005).
25724 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
25725 Action_Nb_Arg): Add entries for new Get_Access_Level and
25726 Set_Access_Level routines in these tables.
25727 (Make_DT): Generate a call to set the accessibility level of the
25728 tagged type in its TSD.
25729 (Make_DT): Code cleanup. The functionality of generating all the
25730 secondary dispatch tables has been moved to freeze_record_type.
25731 (Make_Abstract_Interface_DT): Minor code cleanup.
25732 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
25733 this subprogram implements a new algorithm that provides the
25734 same functionality and it is more clear in case of primitives
25735 associated with abstract interfaces.
25736 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
25737 clean up, the functionality of this subprogram is now provided
25738 by Set_All_DT_Position.
25739 (Write_DT): New subprogram: a debugging procedure designed to be called
25740 within gdb to display the dispatch tables associated with a tagged
25742 (Collect_All_Interfaces): New subprogram that collects the whole list
25743 of interfaces that are directly or indirectly implemented by a tagged
25745 (Default_Prim_Op_Position): New subprogram that returns the fixed
25746 position in the dispatch table of the default primitive operations.
25747 (Expand_Interface_Actuals): New subprogram to generate code that
25748 displaces all the actuals corresponding to class-wide interfaces to
25749 reference the interface tag of the actual object.
25750 (Expand_Interface_Conversion): New subprogram. Reference the base of
25751 the object to give access to the interface tag associated with the
25752 secondary dispatch table.
25753 (Expand_Interface_Thunk): New subprogram that generates the code of the
25754 thunk. This is required for compatibility with the C+ ABI.
25755 (Make_Abstract_Interface_DT): New subprogram that generate the
25756 declarations for the secondary dispatch tables associated with an
25757 abstract interface.
25758 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
25759 attribute for each primitive operation covering interface subprograms
25760 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
25761 These subprograms were upgraded to give support to abstract interfaces
25763 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
25764 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
25765 RE_Set_Access_Level.
25766 (RE_Unit_Table): Add entries for new Ada.Tags operations.
25767 Add support to call the followig new run-time subprograms:
25768 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
25770 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
25771 match its full declaration when both have an access definition with
25772 statically matching designated subtypes.
25773 (Analyze_Component_Declaration): Delete commented out code that was
25774 incorrectly setting the scope of an anonymous access component's type.
25775 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
25776 an access discriminant when the containing type is nonlimited.
25777 (Make_Incomplete_Type_Declaration): Create an incomplete type
25778 declaration for a record type that includes self-referential access
25780 (Check_Anonymous_Access_Types): Before full analysis of a record type
25781 declaration, create anonymous access types for each self-referential
25783 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
25784 an access component in this context is a Local_Anonymous_Access, for
25785 proper accessibility checks.
25786 (Access_Definition): Set properly the scope of the anonymous access type
25787 created for a stand-alone access object.
25788 (Find_Type_Of_Object): An object declaration may be given with an access
25790 (Complete_Subprograms_Derivation): New subprogram used to complete
25791 type derivation of private tagged types implementing interfaces.
25792 In this case some interface primitives may have been overriden
25793 with the partial-view and, instead of re-calculating them, they
25794 are included in the list of primitive operations of the full-view.
25795 (Build_Derived_Record_Type): Modified to give support to private
25796 types implemening interfaces.
25797 (Access_Definition): Reject ALL on anonymous access types.
25798 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
25799 type derivation to occur at a deeper accessibility level than the
25801 For the case of derivation within a generic body however, disallow the
25802 derivation if the derived type has an ancestor that is a formal type
25803 declared in the formal part of an enclosing generic.
25804 (Analyze_Object_Declaration): For protected objects, remove the check
25805 that they cannot contain interrupt handlers if not declared at library
25807 (Add_Interface_Tag_Components): New subprogram to add the tag components
25808 corresponding to all the abstract interface types implemented by a
25809 record type or a derived record type.
25810 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25811 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25812 Process_Full_View, Record_Type_Declaration): Modified to give
25813 support to abstract interface types
25814 (Collect_Interfaces): New subprogram that collects the list of
25815 interfaces that are not already implemented by the ancestors
25816 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
25817 when partial view has no discriminants and full view has defaults.
25818 (Constrain_Access): Reject a constraint on a general access type
25819 if the discriminants of the designated type have defaults.
25820 (Access_Subprogram_Declaration): Associate the Itype node with the inner
25821 full-type declaration or subprogram spec. This is required to handle
25822 nested anonymous declarations.
25823 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
25824 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
25825 Process_Full_View, Record_Type_Declaration): Modified to give
25826 support to abstract interface types
25827 (Derive_Subprograms): Addition of a new formal to indicate if
25828 we are in the case of an abstact-interface derivation
25829 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
25830 to the specification because it is requied to analyze all the
25831 identifiers found in a list of interfaces
25833 * debug.adb: Complete documentation of flag "-gnatdZ"
25835 * exp_ch3.adb: Implement config version of persistent_bss pragma
25836 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
25837 testing for TSS presence to properly enforce visibility rules.
25838 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
25839 Make_Abstract_Interfaces_DT to generate the secondary tables
25840 associated with abstract interfaces.
25841 (Build_Init_Procedure): Modified to initialize all the tags
25843 (Component_Needs_Simple_Initialization): Similar to other tags,
25844 interface tags do not need initialization.
25845 (Freeze_Record_Type): Modified to give support to abstract interface
25847 (Expand_N_Object_Declaration): Do not generate an initialization for
25848 a scalar temporary marked as internal.
25850 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
25851 in-out parameter that is a component in an initialization procedure,
25852 whose constraint might depend on discriminants, and that may be
25853 misaligned because of packing or representation clauses.
25854 (Is_Legal_Copy): New predicate to determine whether a possibly
25855 misaligned in-out actual can actually be passed by copy/return. This
25856 is an error in case the type is by_reference, and a warning if this is
25857 the consequence of a DEC import pragma on the subprogram.
25858 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
25860 (Expand_Inlined_Call): Mark temporary generated for the return value as
25861 internal, so that no useless scalar normalization is generated for it.
25862 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
25863 null procedure can always be inlined.
25864 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
25865 procedure, generate an explicit empty body for it.
25867 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
25868 Given a type implementing an interface, returns the corresponding
25869 access_disp_table value.
25870 (Find_Interface_Tag): New subprogram. Given a type implementing an
25871 interface, returns the record component containing the tag of the
25873 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
25874 previous ones that return the corresponding tag and access_disp_table
25876 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
25877 is a predefined primitive operation.
25878 (Expand_Subtype_From_Expr): If the expression is a selected component
25879 within an initialization procedure, compute its actual subtype, because
25880 the component may depend on the discriminants of the enclosing record.
25882 * i-cpp.ads, i-cpp.adb:
25883 This package has been left available for compatibility with previous
25884 versions of the frontend. As part of the new layout this is now a
25885 dummy package that uses declarations available at a-tags.ads
25887 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
25888 "constant access" and "aliased [constant] access" when not compiling
25890 Suppress Ada 2005 keyword warning if -gnatwY used
25891 (P_Identifier_Declarations): Add support for object declarations with
25892 access definitions.
25893 (Private_Extension_Declaration): Complete the documentation
25894 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
25895 attribute in case of private extension declaration
25896 (P_Type_Declaration): Mark as "abstract" the type declarations
25897 corresponding with protected, synchronized and task interfaces
25898 (P_Declarative_Items): "not" and "overriding" are overriding indicators
25899 for a subprogram or instance declaration.
25901 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
25902 instantiation that is a dispatching operation has controlling access
25903 parameters that are null excluding.
25904 Save and restore Ada_Version_Explicit, for implementation of AI-362
25905 (Validate_Derived_Type_Instance): Add check for abstract interface
25907 (Analyze_Formal_Package): Establish Instantiation source for the copy of
25908 the generic that is created to represent the formal package.
25909 (Analyze_Package_Instantiation): Instantiate body immediately if the
25910 package is a predefined unit that contains inlined subprograms, and
25911 we are compiling for a Configurable_Run_Time.
25912 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
25913 If the program has a null default, generate an empty body for it.
25915 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
25916 error message condition, null procedures are correctly detected now.
25917 (New_Overloaded_Entity): Bypass trivial overriding indicator check
25918 for subprograms in the context of protected types. Instead, the
25919 indicator is examined in Sem_Ch9 while analysing the subprogram
25921 (Check_Overriding_Indicator): Check consistency of overriding indicator
25922 on subprogram stubs as well.
25923 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
25925 (Analize_Subprogram_Specification): When analyzing a subprogram in which
25926 the type of the first formal is a concurrent type, replace this type
25927 by the corresponding record type.
25928 (Analyze_Subprogram_Body): Undo the previous work.
25929 (Analyze_Procedure_Call): If the call has the form Object.Op, the
25930 analysis of the prefix ends up analyzing the call itself, after which
25932 (Has_Interface_Formals): New subprogram subsidiary to analyze
25933 subprogram_specification that returns true if some non
25934 class-wide interface subprogram is found
25935 (New_Overloaded_Entity): Modified to give support to abstract
25937 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
25938 access to subprograms must be recursive.
25939 (Is_Unchecked_Conversion): Improve the test that recognizes
25940 instantiations of Unchecked_Conversion, and allows them in bodies that
25941 are to be inlined by the front-end. When the body comes from an
25942 instantiation, a reference to Unchecked_Conversion will be an
25943 Expanded_Name, even though the body has not been analyzed yet.
25944 Replace Is_Overriding and Not_Overriding in subprogram_indication with
25945 Must_Override and Must_Not_Override, to better express intent of AI.
25946 (Analyze_Subprogram_Body): If an overriding indicator is given, check
25947 that it is consistent with the overrinding status of the subprogram
25949 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
25951 If the subprogram is a null procedure, indicate that it does not need
25954 * sem_disp.adb (Check_Controlling_Type): Give support to entities
25955 available through limited-with clauses.
25956 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
25957 allowed as the last primitive of a tagged type if it has no previous
25959 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
25960 to give support to abstract interface types
25962 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
25963 in the case where the target type is an anonymous access type of an
25964 object or component (that is, when Is_Local_Anonymous_Access is true).
25965 Prevent the special checks for conversions of access discriminants in
25966 the case where the discriminant belongs to a nonlimited type, since
25967 such discriminants have their accessibility level defined in the same
25968 way as a normal component of an anonymous access type.
25969 (Resolve_Allocator): When an allocator's designated type is a class-wide
25970 type, check that the accessibility level of type given in the
25971 allocator's expression or subtype indication is not statically deeper
25972 than the level of the allocator's access type.
25973 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
25974 name in a discriminant constraint of a record component.
25975 (Resolve_Explicit_Dereference): Do not check whether the type is
25976 incomplete when the dereference is a use of an access discriminant in
25977 an initialization procedure.
25978 (Resolve_Type_Conversion): Handle conversions to abstract interface
25980 (Valid_Tagged_Conversion): The conversion of a tagged type to an
25981 abstract interface type is always valid.
25982 (Valid_Conversion): Modified to give support to abstract interface types
25983 (Resolve_Actuals): Enable full error reporting on view conversions
25984 between unrelated by_reference array types.
25985 The rule for view conversions of arrays with aliased components is
25986 weakened in Ada 2005.
25987 Call to obsolescent subprogram is now considered to be a violation of
25988 pragma Restrictions (No_Obsolescent_Features).
25989 (Check_Direct_Boolean_Operator): If the boolean operation has been
25990 constant-folded, there is nothing to check.
25991 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
25992 check on possible violation of restriction No_Direct_Boolean_Operators
25993 until after expansion of operands, to prevent spurious errors when
25994 operation is constant-folded.
25996 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
25997 Has_Compatible_Type): Modified to give support to abstract interface
25999 (Interface_Present_In_Ancestor): New function to theck if some ancestor
26000 of a given type implements a given interface
26002 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26003 prefix is a parameterless function that returns an access_to_procedure.
26004 (Transform_Object_Operation): Handle properly function calls of the
26005 form Obj.Op (X), which prior to analysis appear as indexed components.
26006 (Analyze_One_Call): Complete the error notification to help new Ada
26008 (Analyze_Allocator): For an allocator without an initial value, where
26009 the designated type has a constrained partial view, a discriminant
26010 constraint is illegal.
26012 2005-06-14 Robert Dewar <dewar@adacore.com>
26014 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26015 do with treatment of Set_Col when positioned at end of line character.
26017 2005-06-14 Robert Dewar <dewar@adacore.com>
26019 * atree.adb: (Elist*): Protect against uninitialized field
26021 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26023 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26024 for an attribute reference that returns an access type.
26025 (Apply_Discriminant_Check): No need for check if (designated) type has
26026 constrained partial view.
26028 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26029 both bound checks, rather than a conjunction.
26030 (Insert_Valid_Check): If the expression is an actual that is an indexed
26031 component of a bit-packed array, force expansion of the packed element
26032 reference, because it is specifically inhibited elsewhere.
26034 2005-06-14 Vincent Celier <celier@adacore.com>
26036 * clean.adb (Clean_Project): Correctly delete executable specified as
26037 absolute path names.
26039 * make.adb (Gnatmake): Allow relative executable path names with
26040 directory information even when project files are used.
26041 (Change_To_Object_Directory): Fail gracefully when unable to change
26042 current working directory to object directory of a project.
26043 (Gnatmake): Remove exception handler that could no longer be exercized
26044 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26045 may be deallocated by Normalize_Arguments.
26046 (Collect_Arguments): Eliminate empty arguments
26048 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26049 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26050 (Check_Project): Return False when Project is No_Project. Return True
26051 when All_Projects is True.
26052 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26053 All_Projects to True.
26056 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26057 Javier Miranda <miranda@adacore.com>
26058 Thomas Quinot <quinot@adacore.com>
26059 Robert Dewar <dewar@adacore.com>
26060 Hristian Kirtchev <kirtchev@adacore.com>
26061 Gary Dismukes <dismukes@adacore.com>
26063 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26064 anonymous access types, to indicate that the accessibility level of
26065 the type is determined by that of the enclosing declaration.
26066 (Has_Persistent_BSS): New flag
26067 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26068 of this attribute with functions.
26069 (Is_Primitive_Wrapper): Remove the barrier.
26070 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26071 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26073 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26074 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26076 (Is_Pure_Unit_Access_Type): New flag
26077 (Abstract_Interfaces): Complete the assertion to cover all usages.
26078 (Set_Is_Interface): Complete the assertion to cover all usages.
26079 (Is_Primitive_Wrapper): New attribute.
26080 (Is_Obsolescent): Now applies to all entities (though it is only set
26081 for subprograms currently)
26082 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26083 which solves various problems concerning access subtypes.
26084 (Has_Persistent_BSS): New flag
26085 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26086 Remove these subprograms because this attribute is currently
26089 Has_Specified_Stream_Input (Flag190)
26090 Has_Specified_Stream_Output (Flag191)
26091 Has_Specified_Stream_Read (Flag192)
26092 Has_Specified_Stream_Write (Flag193)
26093 Present in all type and subtype entities. Set for a given view if the
26094 corresponding stream-oriented attribute has been defined by an
26095 attribute definition clause. When such a clause occurs, a TSS is set
26096 on the underlying full view; the flags are used to track visibility of
26097 the attribute definition clause for partial or incomplete views.
26098 (Is_Pure_Unit_Access_Type): New flag
26099 Clarify use of Is_Internal.
26100 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26101 internally generated to wrap the invocation of tasks and protected
26102 types that implement interfaces.
26103 (Implementation_Base_Type): Documentation correction
26104 (Is_Obsolescent): Now applies to all entities (though it is only set
26105 for subprograms currently)
26106 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26107 which solves various problems concerning access subtypes.
26109 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26110 for examined parameters. Identify unequal parameter list lengths as
26111 non-conformant parameters.
26112 (Overriding_Possible): Do not check for "All" qualifier in declaration
26113 of controlling access parameter, following prescription of AI-404.
26114 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26115 that build the procedure body that wraps an entry invocation
26116 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26117 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26118 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26119 give support to abstract interface types
26121 * freeze.adb (Freeze_Entity): Issue error message if
26122 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26123 type has no storage pool (Ada 2005) AI-366.
26124 Also modified to give support to abstract interface types
26125 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26126 Inline_Always pragma.
26128 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26129 now begin an entry declaration.
26130 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26131 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26132 a subprogram declaration preceded by an overriding indicator.
26133 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26134 declarations or subprogram declarations preceded by reserved words
26135 "not" or "overriding".
26136 (P_Entry_Declaration): Update comment. Parse and check overriding
26137 indicator, set semantic flags of entry declarations.
26138 (P_Task): New error message in case of private applied
26139 to a task type declaration.
26140 (P_Protected): New error message in case of private applied
26141 to a task type declaration.
26143 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26144 in which the full view of a type implementing an interface is a
26146 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26147 Declare_Inherited_Private_Subprograms): If an explicit operation
26148 overrides an operation that is inherited in the private part, mark the
26149 explicit one as overriding, to enable overriding indicator checks.
26150 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26151 full view to partial view, to simplify handling in back-end.
26153 * sprint.adb: Print interface lists where needed: derived types,
26154 protected types, task types.
26155 output "is null" for null procedures. Part of implementation of
26157 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26158 relaxation of rules for access types in pure, shared passive partitions.
26160 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26161 first read discriminants into temporary objects, performing checks on
26162 the read values, then possibly performing discriminant checks on the
26163 actual (if it is constrained), and only finally reading the components
26164 into a constrained temporary object.
26165 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26166 case of reading discriminants of a mutable record type to recognize
26167 the new form of the code generated by
26168 Build_Mutable_Record_Read_Procedure.
26170 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26171 of a simple call to Make_TSS_Name.
26172 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26173 buffer, in order for Is_TSS to work correctly on local TSS names.
26175 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26176 Is_Local_Anonymous_Access to check legaliy of attributes in the
26177 context of access components and stand-alone access objects.
26178 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26179 treated as available for a limited private type if there is an
26180 attribute_definition_clause that applies to its full view, but not in
26181 other cases where the attribute is available for the full view
26182 (specifically, the sole fact that the full view is non-limited does not
26183 make the attribute available for the partial view).
26184 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26185 non-overloaded intrinsic subprogram.
26186 (Check_Stream_Attribute): Reject an attribute reference for an
26187 unavailable stream attribute even if the prefix is not a limited type
26188 (case of a 'Input attribute reference for an abstract, non-classwide
26190 (Stream_Attribute_Available): New function to determine whether a stream
26191 attribute is available at a place.
26192 (Check_Attribute): Use Stream_Attribute_Available instead of just
26193 testing for TSS presence on the implementation base type.
26194 (Analyze_Attribute): Modified to give support to task interfaces.
26195 (Analyze_Access_Attribute): Add error check for use of an Access (or
26196 Unrestricted_Access) attribute with a subprogram marked as
26198 (Analyze_Attribute, case Attribute_Address): Add error check for use of
26199 an Address attribute with a subprogram marked as Inline_Always.
26200 Update Eval_Attribute to handle new value of Width from AI-395
26202 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26203 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26204 Factor common code across the stream-oriented attribute circcuits into
26205 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26206 processing is functionally identical to the previous duplicated one,
26207 except that an expression that denotes an abstract subprogram will now
26208 be rejected, as mandated by AI-195 item 5.
26210 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26211 Is_Local_Anonymous_Access to apply accessibility checks to access
26212 components and stand-alone access objects.
26213 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26215 (Is_Potentially_Persistent_Type): New function
26216 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26217 a heap-object whose type has a constrained partial view, the object is
26218 unconstrained and the component may depend on a discriminant, making its
26221 * sinfo.ads, sinfo.adb
26222 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26223 (Must_Override): Flag applicable to N_Entry_Declaration.
26224 Indicate that interface_list can appear in single task and single
26225 protected declarations.
26226 Replace Is_Overriding and Not_Overriding with Must_Override and
26227 Must_Not_Override, to better express intent of AI.
26228 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26229 of an overriding indicator in a subprogram or instance.
26230 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26231 Add the overriding indicator [[not] overriding] construct to the
26232 following grammar productions:
26234 GENERIC_INSTANTIATION
26235 SUBPROGRAM_SPECIFICATION
26237 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26238 can start with an overriding indicator.
26240 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26241 flags accordingly on subrogram specifications or instances.
26244 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26245 overriding_indicator, if present, is consistent with status of spec.
26246 Improve error message for null-excluding checks on controlling access
26248 (Check_In_Previous_With_Clause): Protect the frontend against
26249 previously reported critical errors in the context clauses.
26250 Save and restore Ada_Version_Explicit, for implementation of AI-362
26251 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26252 operation verify that controlling formals of the renamed entity that
26253 are access parameters are explicitly non-null.
26254 (Find_Expanded_Name): Improve error message when prefix is an illegal
26255 reference to a private child unit.
26257 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26258 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26259 Rewrite to correspond to new wide character names in AI-395
26261 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26262 default procedures.
26264 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26265 Robert Dewar <dewar@adacore.com>
26267 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26268 code, not on the bodies of predefined operations, to cut down on
26271 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26273 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26274 be expanded in place. The size computation does not require a
26275 subtraction, which would raise an exception on a compiler built with
26276 assertions when the upper bound is Integer'first.
26277 (Flatten): For an array of composite components, take into account the
26278 size of the components to determine whether it is safe to expand the
26279 array into a purely positional representation.
26281 2005-06-14 Thomas Quinot <quinot@adacore.com>
26283 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26284 denoting a formal parameter into account.
26286 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26288 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26289 the entry_call alternative of a conditional entry call, wrap the
26290 conditional entry call itself.
26292 2005-06-14 Nicolas Setton <setton@adacore.com>
26293 Ed Schonberg <schonberg@adacore.com>
26295 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26296 the "simple_choice" member in a variant record, in accordance with the
26297 description in the package spec: the information output for a constant
26298 should be "S number", not "SS number".
26299 (Get_Encoded_Name): Return at once if not generating code. Avoids name
26300 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26302 2005-06-14 Thomas Quinot <quinot@adacore.com>
26304 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26305 RACW without any primitives, do not generate the if statement for
26306 dispatching by name in the PolyORB/DSA case, as it would be malformed
26307 (it would have an Elsif_Parts list that is not No_List, but with a
26310 2005-06-14 Robert Dewar <dewar@adacore.com>
26312 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26314 2005-06-14 Jose Ruiz <ruiz@adacore.com>
26316 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26317 can determine whether pragma Suppress_Exception_Locations is in effect.
26319 * utils2.c (build_call_raise): Do not pass the file name to the
26320 exception handler if pragma Suppress_Exception_Locations is in effect.
26321 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26323 2005-06-14 Emmanuel Briot <briot@adacore.com>
26325 * g-debpoo.adb (Deallocate, Dereference): Improve output.
26327 2005-06-14 Nicolas Roche <roche@adacore.com>
26329 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26331 (Next_Level): Fix minor bug in handling of ../dir case
26332 (Read): Add dir separator to Directory name so that "" is understood as
26335 2005-06-14 Pascal Obry <obry@adacore.com>
26337 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26338 releasing the items.
26340 2005-06-14 Vincent Celier <celier@adacore.com>
26341 Cyrille Comar <comar@adacore.com>
26343 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26344 with output file descriptor and with output file name.
26345 (Dup, Dup2): Now global procedures as they are used by two subprograms
26346 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26348 2005-06-14 Thomas Quinot <quinot@adacore.com>
26351 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26353 (Create_Selector): Bind listening socket used to create the signalling
26354 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26355 Set listen backlog to 1 to ensure that we detect socket theft by a
26356 failure of our own connect(2) call.
26357 (Check_Selector): Improve documentation of the selector mechanism.
26358 (Broadcast_Inet_Addr): New constant.
26360 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26362 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26363 type which turns out to be an incomplete and incorrect fix.
26364 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26365 of the type is declared in a record (for determination of insertion
26367 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26368 a private type and ensure that the primary entity is used for the type
26369 of the newly created function's V formal by taking the Etype of the
26372 2005-06-14 Javier Miranda <miranda@adacore.com>
26373 Jose Ruiz <ruiz@adacore.com>
26374 Robert Dewar <dewar@adacore.com>
26375 Ed Schonberg <schonberg@adacore.com>
26377 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26378 that indicates if we are parsing a compilation unit found in a
26379 limited-with clause.
26380 It is use to avoid the circularity check.
26382 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26383 we are parsing a compilation unit found in a limited-with clause. This
26384 is use to avoid the circularity check.
26386 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26387 unit as a consequence of parsing a limited-with clause. This is used
26388 to avoid the circularity check.
26390 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26391 (Analyze_Context): Limited-with clauses are now allowed
26392 in more compilation units.
26393 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26394 againts previously reported critical errors in context clauses
26395 (Install_Limited_Withed_Unit): Code cleanup plus static detection
26396 of two further errors: renamed subprograms and renamed packages
26397 are not allowed in limited with clauses.
26398 (Install_Siblings): Do not install private_with_clauses on the package
26399 declaration for a non-private child unit.
26400 (Re_Install_Parents): When a parent of the subunit is reinstalled,
26401 reset visibility of child units properly.
26402 (Install_Withed_Unit): When a child unit appears in a with_clause of its
26403 parent, it is immediately visible.
26405 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26406 Emmanuel Briot <briot@adacore.com>
26408 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26409 declared within an inlined body as referenced, to prevent spurious
26411 (Output_One_Ref): If an entity renames an array component, indicate in
26412 the ALI file that this aliases (renames) the array. Capture as well
26413 function renamings that rename predefined operations.
26414 Add information about generic parent for package and subprogram
26416 (Get_Type_Reference): For a subtype that is the renaming of an actual in
26417 an instantiation, use the first_subtype to ensure that we don't generate
26418 cross-reference information for internal types.
26419 For objects and parameters of a generic private type, retain the '*'
26420 indicator to distinguish such an entity from its type.
26422 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26423 to store information about instantiated entities.
26425 * ali.adb (Scan_ALI): Add support for parsing the reference to the
26428 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26429 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26432 2005-06-10 Doug Rupp <rupp@adacore.com>
26433 Arnaud Charlet <charlet@adacore.com>
26434 Olivier Hainque <hainque@adacore.com>
26435 Jose Ruiz <ruiz@adacore.com>
26437 * Make-lang.in: Add initialize.o when needed.
26438 Remove obsolete references to RT_FLAGS.
26439 Add missing dependencies for sdefault.o
26441 * initialize.c: New file.
26443 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26444 [VMS] cond_signal_table: Fix problem in declaration.
26445 [VMS] __gnat_error_handler: rewrite.
26446 Move all __gnat_initialize() routines to initialize.c
26447 Specialize the former "hpux" section to "hppa hpux", as this is what the
26448 section really is here for and we now have other hpux ports that need
26449 different contents.
26450 (__gnat_adjust_context_for_raise) i386-linux: First version of this
26451 function for this target. Adjust PC by one in the machine context. This
26452 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26453 it is more reliable to do that in the signal handler itself.
26454 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26455 flags, so that the handler is passed the context structure to adjust
26456 prior to the raise.
26457 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26458 SA_SIGINFO sigaction should look like. Call
26459 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26460 Machine_State_Operations stuff.
26461 Add conditional code so that the x86_64 is also supported.
26463 2005-06-14 Pascal Obry <obry@adacore.com>
26465 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26468 2005-06-14 Robert Dewar <dewar@adacore.com>
26470 * opt.ads, opt.adb: New flags for persistent_bss mode
26471 Add Ada_Version_Explicit, for implementation of AI-362
26472 Add Assertions_Enabled_Config and associated handling
26473 Needed since setting can be changed with Assertion_Policy pragma
26474 Add new flag Warn_On_Ada_2005_Compatibility
26476 * switch-c.adb: Recognize -gnatwy/Y
26477 Set Ada_Version_Explicit, for implementation of AI-362
26478 The -gnatg switch now includes -gnatyu
26480 * usage.adb: Add -gnatwy/Y
26481 Remove wrong asterisk on -gnatwX line
26482 Add line for -gnatyu switch
26484 2005-06-14 Vincent Celier <celier@adacore.com>
26486 * osint.adb (Add_Default_Search_Dirs): Put source and object
26487 directories of project files before directories coming from
26488 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26490 2005-06-14 Robert Dewar <dewar@adacore.com>
26493 * par-ch2.adb (Scan_Pragma_Argument): New procedure
26494 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26496 2005-06-14 Vincent Celier <celier@adacore.com>
26498 * prep.adb (Preprocess): Ignore error when scanning the first token of
26501 2005-06-14 Vincent Celier <celier@adacore.com>
26503 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26504 (Check_Stand_Alone_Library): If the specified reference symbol file does
26505 not exist, only issue a warning when the symbol policy is not
26506 Controlled. And, when symbol policy is Compliant, set the symbol
26507 policy to Autonomous.
26509 2005-06-14 Vincent Celier <celier@adacore.com>
26511 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26512 when the project file in a with clause is not the last one, that is the
26513 project file name is followed by a comma.
26514 * prj-pp.adb: (First_With_In_List): New Boolean global variable
26515 (Print): Issue list of project files separated by commas in with clauses
26516 according to the values returned by Is_Not_Last_In_List.
26517 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26518 (Set_Is_Not_Last_In_List): New procedure
26520 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26522 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26524 2005-06-14 Robert Dewar <dewar@adacore.com>
26526 * scng.adb: Add call to new Check_EOF routine
26527 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26528 Add some comments regarding wide character handling
26530 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26532 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26534 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26535 characters are now considered graphic characters and hence yield false
26538 * nmake.adt: Modify header so that xnmake does not generate output
26539 files with multiple blank lines.
26541 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26542 not have an extra blank line
26544 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26546 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26547 expression when the component type is an anonymous access type to
26548 ensure that appropriate accessibility checks are done.
26550 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26551 expression of an assignment when the target object is of an anonymous
26552 access type. This ensures that required accessibility checks are done.
26553 (One_Bound): Move the check for type Universal_Integer to
26555 (Process_Bounds): Check whether the type of the preanalyzed range is
26556 Universal_Integer, and in that case set Typ to Integer_Type prior
26557 to setting the type of the original range and the calls to One_Bound.
26559 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26561 * sem_case.adb (Expand_Others_Choice): Improve warning.
26563 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26565 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26566 constraint of full view if present, when other type is discriminated.
26567 (Eval_Relational_Op): Recognize tests of pointer values against Null,
26568 when the pointer is known to be non-null, and emit appropriate warning.
26570 2005-06-14 Robert Dewar <dewar@adacore.com>
26571 Ed Schonberg <schonberg@adacore.com>
26574 * sem_prag.adb: Implement pragma Persistent_BSS
26575 Remove obsolete pragma Persistent_Data, Persistent_Object
26576 Set Ada_Version_Explicit, for implementation of AI-362
26577 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26578 Add processing for pragma Pure_05 and Preelaborate_05
26579 Add processing for Assertion_Policy pragma
26580 Add pragma identifiers for Assert
26581 (Analyze_Pragma, case Assert): Check number of arguments
26582 (Process_Inline): Additional guard against an illegal program, where the
26583 argument of the pragma is undefined, and warnings on redundant
26584 constructs are enabled.
26585 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26586 Ada_05 to this pragma, specifying that the pragma is only active in
26588 (Check_Arg_Order): New procedure
26589 Add appropriate calls to this procedure throughout
26590 Also throughout, check entity name before doing any other checks
26592 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26593 Remove obsolete pragma Persistent_Data, Persistent_Object
26594 Add entries for pragma Pure_05 and Preelaborate_05
26595 Add entries for Assertion_Policy pragma and associated names
26596 Add some names for pragma argument processing
26598 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26600 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26602 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26603 appears within a negation (either from source or as a rewriting of
26604 inequality) adjust text of warning accordingly.
26606 2005-06-14 Thomas Quinot <quinot@adacore.com>
26608 * s-strxdr.adb: Follow AI95-00132
26610 2005-06-14 Arnaud Charlet <charlet@adacore.com>
26612 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26614 2005-06-14 Arnaud Charlet <charlet@adacore.com>
26615 Jose Ruiz <ruiz@adacore.com>
26617 * s-tposen.adb, s-tpobop.adb
26618 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26620 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26621 there is no violation of the Max_Entry_Queue_Length restriction (if it
26622 has been set); Program_Error is raised otherwise.
26623 (Requeue_Call): Before requeuing the task on the target entry queue we
26624 check that there is no violation of the Max_Entry_Queue_Length
26625 restriction (if it has been set); Program_Error is raised otherwise.
26627 2005-06-14 Robert Dewar <dewar@adacore.com>
26629 * styleg.adb: Fix several remaining problems in -gnatyu switch
26630 Blank line count not reset at start
26631 Scanning outside source buffer in some cases
26632 Confusing message for blanks at end of file
26633 Non-empty blank lines not recognized
26635 * nmake.adt: Modify header so that xnmake does not generate output
26636 files with multiple blank lines.
26638 * treeprs.adt: Remove a blank line so that output from xtreeprs does
26639 not have an extra blank line
26641 2005-06-14 Sergey Rybin <rybin@adacore.com>
26643 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
26645 2005-06-14 Doug Rupp <rupp@adacore.com>
26646 Vincent Celier <celier@adacore.com>
26648 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
26651 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26652 Remove "Library" command.
26653 Change keyword for style check -gnatyd from NOCRLF to
26655 Remove useless second style check keyword NONE
26656 Remove help documentation for inexistent style check keyword
26658 Add help documentation for style check keywords DOS_LINE_ENDINGS,
26659 UNNECESSARY_BLANK_LINES and XTRA_PARENS
26660 Add UNNECESSARY_BLANK_LINES for -gnatyu
26661 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
26663 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
26665 2005-06-14 Vincent Celier <celier@adacore.com>
26667 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
26668 gprmake was invoked with -d.
26669 (Compile_Sources): If -d was used, output the "completed ..." message
26670 for each compilation.
26671 (Scan_Arg): Recognize new switch -d
26672 When -c and at least one main is specified, set
26673 Unique_Compile to True to guarantee that no other sources will be
26676 2005-06-14 Matthew Heaney <heaney@adacore.com>
26678 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
26679 * a-swuwha.ads, a-swuwha.adb: New files
26681 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
26682 * a-szuzha.ads, a-szuzha.adb: New files.
26684 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
26685 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
26686 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
26687 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
26688 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
26689 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
26690 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
26691 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
26692 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
26693 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
26696 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
26697 Olivier Hainque <hainque@adacore.com>
26698 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26699 Pascal Obry <obry@adacore.com>
26701 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
26703 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
26704 making a temporary around a procedure call because of non-addressable
26706 (process_freeze_entity): If entity is a private type, capture size
26707 information that may have been computed for the full view.
26708 (tree_transform, case N_Allocator): If have initializing expression,
26709 check type for Has_Constrained_Partial_View and pass that to
26711 (tree_transform, case N_Return_Statement): Pass extra arg to
26714 * decl.c (annotate_value): Remove early return if -gnatR is not
26716 (gnat_to_gnu_field): Don't make a packable type for a component clause
26717 if the position is byte aligned, the field is aliased, and the clause
26718 size isn't a multiple of the packable alignment. It serves no useful
26719 purpose packing-wise and would be rejected later on.
26720 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
26723 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
26724 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
26726 (create_concat_name): Idem.
26728 2005-06-10 Robert Dewar <dewar@adacore.com>
26729 Eric Botcazou <ebotcazou@adacore.com>
26730 Ben Brosgol <brosgol@adacore.com>
26731 Cyrille Comar <comar@adacore.com>
26732 Sergey Rybin <rybin@adacore.com>
26733 Pascal Obry <obry@adacore.com>
26735 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
26736 Document second argument (Ada_05) of pragma Obsolescent
26737 Add note that call to subprogram marked with pragma Obsolescent
26738 is now considered to be a violation of program Restrictions
26739 (No_Obsolescent_Features).
26740 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
26741 that only machine-dependent attributes are supported.
26744 Commented out menu lines and empty section for gnatclean examples
26746 Fix some over long lines
26747 Clarify and enhance documentation of ADA_PROJECT_PATH.
26748 Rework section 2.11.2(3) about linking with a non-GNU compiler.
26749 Mention new switch -fcallgraph-info.
26750 Mention new switch -fstack-usage.
26751 For gnatpp, replace '-notab' with '-N' and add this option to Index
26752 Corrected VMS example.
26753 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
26755 Add documentation for -gnatyu switch (unnecessary blank lines)
26756 Document new switch -U for GNAT PRETTY and GNAT METRIC
26757 Add note about Stdcall being handled as C convention on non Windows OS.
26758 Remove some junk typo in description of gnatbind -S switch
26759 Remove reference to Extensions_Allowed pragma
26760 Document the new order of the directories to be searched (source and
26761 object directories of project files before directories in ADA_*_PATH
26762 environment variables.
26764 * g-trasym.ads: Document that IRIX is supported
26766 2005-06-10 Arnaud Charlet <charlet@adacore.com>
26768 * Makefile.in: Add initialize.o when needed.
26769 Adapt to new VMS package body Symbols and subunits
26770 No specialized version of a-sytaco is needed for VxWorks.
26772 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
26773 * a-zchara.ads, a-widcha.ads: New files.
26775 * system-hpux-ia64.ads: New file.
26777 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
26778 is imported from the VxWorks kernel.
26780 2005-06-14 Robert Dewar <dewar@adacore.com>
26782 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
26783 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
26784 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
26785 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
26786 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
26787 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
26788 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
26789 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
26790 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
26791 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
26792 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
26793 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
26795 2005-06-14 Thomas Quinot <quinot@adacore.com>
26797 * xeinfo.adb: Fix typo in comment
26799 2005-06-14 Javier Miranda <miranda@adacore.com>
26801 * repinfo.ads: Fix typo in comment
26803 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26805 * s-finimp.adb (Parent_Tag): Delete this imported function (function
26806 Parent_Tag is now in the visible part of Ada.Tags).
26807 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
26808 using imported function.
26810 2005-06-14 Bernard Banner <banner@adacore.com>
26812 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
26813 also apply for handling support for VxSim 653.
26815 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
26817 * xsnames.adb: Add automatic generation of snames.h.
26819 2005-06-14 Thomas Quinot <quinot@adacore.com>
26821 * gen-soccon.c: Add IP_MULTICAST_IF constant
26822 Minor reformatting and adjustments to prevent warnings.
26824 2005-06-14 Pascal Obry <obry@adacore.com>
26826 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
26828 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
26830 * trans.c (gnat_gimplify_expr): Call
26831 recompute_tree_invarant_for_addr_expr when we change
26832 the operand of the ADDR_EXPR.
26834 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26836 * misc.c: Don't include errors.h.
26838 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26840 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
26842 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
26844 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
26846 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
26848 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
26851 * Makefile.in: Make TGT_LIB behave correctly.
26853 2005-04-23 DJ Delorie <dj@redhat.com>
26855 * misc.c: Adjust warning() callers.
26857 2005-04-16 Laurent Guerby <laurent@guerby.net>
26860 * a-nudira.adb (Value): Check for valid string.
26861 * a-nuflra.adb (Value): Likewise.
26863 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
26865 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
26867 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
26869 * adaint.c, init.c, tracebak.c: Fix comment typos.
26870 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
26872 2005-04-07 Laurent Guerby <laurent@guerby.net>
26873 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26875 * Makefile.in: Add make ifeq define for hppa linux tasking support.
26876 * system-hpux.ads: Define Signed_Zeros to be True.
26877 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
26879 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
26881 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
26882 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
26885 2005-03-30 Tom Tromey <tromey@redhat.com>
26887 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
26889 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
26891 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
26893 2005-03-29 Robert Dewar <dewar@adacore.com>
26895 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
26896 fixed-point expression has value that is not a multiple of the Small
26899 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
26901 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
26904 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
26906 2005-03-29 Vincent Celier <celier@adacore.com>
26908 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
26909 (Build_Dynamic_Library.Version_String): Return the empty string when
26910 Lib_Version is empty or when the symbol policy is not Autonomous.
26912 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
26913 a symbol is not in the reference symbol file, increase the Major ID
26914 and set the Minor ID to 0.
26915 Use gsmatch=lequal instead of gsmatch=equal
26917 2005-03-29 Doug Rupp <rupp@adacore.com>
26919 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
26920 name and translate.
26922 2005-03-29 Javier Miranda <miranda@adacore.com>
26924 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
26925 (Inherit_DT): The first formal has been redefined as a Tag.
26926 This allows us the removal of the subprogram Get_TSD.
26927 (TSD): Replace the call to Get_TSD by the actual code.
26929 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
26930 (Make_DT): Upgrade the call to Inherit_TSD according to the
26931 new interface: the first formal is now a Tag.
26933 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
26934 redefined as a Tag.
26935 This change allows us to remove the subprogram Get_TSD.
26936 (CPP_Get_TSD): Subprogram removed.
26937 (TSD): Replace the call to CPP_Get_TSD by the actual code.
26939 * rtsfind.ads: Remove support to call the run-time
26942 2005-03-29 Robert Dewar <dewar@adacore.com>
26944 * errutil.adb, errout.adb:
26945 Minor comment updates on Line_Terminator references
26947 * par-ch10.adb: Add ??? comment about line terminator
26949 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
26950 (check dos line terminator).
26951 (Check_Line_Max_Length): New procedure, split off from the existing
26952 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26953 be properly recognized.
26955 * styleg.adb: Add ??? comment for line terminator reference
26957 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
26958 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
26960 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
26961 (check dos line terminator).
26962 (Check_Line_Max_Length): New procedure, split off from the existing
26963 Check_Line_Terminator routine. Separating this out allows -gnatyf to
26964 be properly recognized.
26966 * stylesw.ads, stylesw.adb:
26967 Add handling for new -gnatyd switch (check dos line terminator)
26969 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
26970 Recognize -gnatwb/-gnatwB switches
26971 Include Warn_On_Bad_Fixed_Value for -gnatg
26974 Add line for new -gnatyd switch (check dos line terminator)
26976 * usage.adb: Add lines for -gnatwb/-gnatwB
26978 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
26980 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
26982 * gnat_ugn.texi: Fix overlong lines
26983 Document new -gnatyd switch
26984 Document new -gnatwb/-gnatwB switches
26986 2005-03-29 Ed Schonberg <schonberg@adacore.com>
26988 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
26989 order to retrieve the component list of the type, before examining
26990 individual components.
26992 * sem_type.adb (Covers): Types are compatible if one is the base type
26993 of the other, even though their base types might differ when private
26994 views are involved.
26996 2005-03-29 Thomas Quinot <quinot@adacore.com>
26998 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
26999 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27000 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27001 analyzed if expansion is disabled (which could otherwise cause spurious
27002 error messages if expansion has been disabled due to previous
27003 (unrelated) errors).
27005 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27006 is disabled, the entity denoted by the argument is the access type
27007 itself, not an underlying record type, so there is no need to go back
27008 to the Corresponding_Remote_Type.
27010 2005-03-29 Gary Dismukes <dismukes@adacore.com>
27011 Robert Dewar <dewar@adacore.com>
27013 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27014 expand a call to an instance of
27015 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27016 Constructor actual of the instance. A class-wide membership
27017 check is also generated, to ensure that the tag passed to the instance
27018 denotes a type in the class.
27019 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27020 of Name_Generic_Dispatching_Constructor.
27022 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27023 05 unit for AI-260-02).
27025 * a-tgdico.ads: New file.
27027 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27028 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27030 * snames.ads, snames.adb (Preset_Names): Add entry for
27031 Generic_Dispatching_Constructor.
27034 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27035 character type cases.
27036 (Analyze_Subprogram_Renaming): Add special handling for
27037 the case of renaming of stream attributes when the renaming denotes a
27038 generic formal subprogram association for an abstract formal subprogram.
27039 Check that the attribute is a primitive stream attribute (and not
27040 a class-wide stream attribute) and then rewrite the attribute name
27041 as the name of the appropriate compiler-generated stream primitive.
27043 2005-03-29 Robert Dewar <dewar@adacore.com>
27045 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27047 (Is_Possibly_Unaligned_Object): Correct typo that
27048 resulted in inaccurate result for unaligned scalars within records.
27050 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27052 * freeze.adb (Freeze_Record_Type): If the type of the component is an
27053 itype whose parent is controlled and not yet frozen, do not create a
27054 freeze node for the itype if expansion is disabled.
27056 2005-03-29 Vincent Celier <celier@adacore.com>
27058 * make.adb (Gnatmake): Don't fail if the main project file is declared
27059 as having no Ada sources. Do not display message "no sources to
27060 compile" in quiet output.
27062 2005-03-29 Doug Rupp <rupp@adacore.com>
27064 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27067 2005-03-29 Robert Dewar <dewar@adacore.com>
27069 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27072 2005-03-29 Robert Dewar <dewar@adacore.com>
27074 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27075 missing TYPE Improve the error message generated when compiling a
27076 limited interface in Ada83 or Ada95 mode.
27078 2005-03-29 Robert Dewar <dewar@adacore.com>
27080 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27081 rather than proceed ahead using a junk attribute name.
27083 2005-03-29 Vincent Celier <celier@adacore.com>
27085 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27087 * prj-part.adb (Parse_Single_Project): Set the location of a project
27088 on its defining identifier, rather than on the reserved word "project".
27090 * prj-proc.adb (Expression): Adapt to the fact that default of external
27091 references may be string expressions, not always literal strings.
27092 (Recursive_Process): Set Display_Name equal to Name
27093 when Location is No_Location, that is when there is no actual file.
27094 Get the Display_Name of the project from the source, when it is not a
27096 (Process): Use the Display_Name in error messages
27098 * prj-strt.adb (External_Reference): Allow default to be string
27099 expressions, not only literal strings.
27101 2005-03-29 Vincent Celier <celier@adacore.com>
27103 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27104 file and the reference symbol file to be the same file.
27106 2005-03-29 Thomas Quinot <quinot@adacore.com>
27108 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27109 forbid conversion of a local access-to-subprogram type to a remote one.
27111 * sem_util.adb (Wrong_Type): For a record type that is the expanded
27112 equivalent type for a remote access-to-subprogram type, go back to the
27113 original RAS entity when displaying an error message, so the casing is
27114 the original source casing.
27116 2005-03-29 Robert Dewar <dewar@adacore.com>
27118 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27121 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27123 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27124 subtype if code is being pre-analyzed, to prevent un-expanded
27125 references to protected formals, among others.
27126 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27127 interpretation that can be a call, include the result of the call as a
27128 possible interpretation of the dereference.
27130 * sem_ch5.adb (Process_Bounds): Determine type of range by
27131 pre-analyzing a copy of the original range, and then analyze the range
27132 with the expected type.
27134 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27135 with an overloaded prefix where not all interpretations yield an
27136 access to subprogram, do not rewrite node as a call.
27137 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27138 the node as a call once the context identifies the interpretation of
27139 the prefix whose call yields the context type.
27140 (Valid_Conversion): For the case of a conversion between
27141 local access-to-subprogram types, check subtype conformance using
27142 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27143 detailed error message.
27145 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27147 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27148 indicator, indicate that the formal can never be null.
27149 (Process_Formals): If a formal has a non_null indicator, insert the
27150 resulting subtype immediately before the enclosing subprogram decl,
27151 and not at the beginning of the corresponding declarative part, to
27152 prevent access before elaboration (Ada2005).
27154 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27157 * utils.c (finish_record_type): Use variable_size when setting sizes.
27159 2005-03-29 Robert Dewar <dewar@adacore.com>
27161 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27162 guarantee Unix style line terminators for the output files, even when
27163 running on windows.
27165 2005-03-29 Robert Dewar <dewar@adacore.com>
27167 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27168 buffer if an exception is raised.
27170 2005-03-29 Ed Falis <falis@adacore.com>
27172 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27175 2005-03-29 Robert Dewar <dewar@adacore.com>
27177 * sem_util.ads: Minor reformatting
27178 * gnat_rm.texi: Minor editing.
27180 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
27182 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27183 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27185 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27187 * adaint.c (__gnat_portable_spawn): Adjust cast.
27189 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
27191 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27193 2005-03-17 Pascal Obry <obry@adacore.com>
27195 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27198 * expect.c (__gnat_waitpid): Moved here from adaint.c.
27199 Reimplement under Win32 using Win32 API.
27201 (__gnat_kill) [Win32]: Properly close the process handle before leaving
27204 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
27206 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27207 (DECL_RENAMED_OBJECT): New accessor macro.
27208 (SET_DECL_RENAMED_OBJECT): New setter macro.
27210 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27211 object in all cases. Attach the renamed object to the VAR_DECL.
27212 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27213 field is not prescribed.
27215 * misc.c (gnat_handle_option): Handle -gnatO separately.
27216 (gnat_print_decl) <VAR_DECL>: New case.
27217 Print the DECL_RENAMED_OBJECT node.
27219 * lang.opt: Declare separate -gnatO option.
27221 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27222 pointer, replace it with the renamed object.
27223 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27224 pointer type if the source is not a fat pointer type whose underlying
27225 array has the same non-zero alias set as that of the destination array.
27227 2005-03-17 Javier Miranda <miranda@adacore.com>
27229 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27230 (Get_Inheritance_Depth): Removed.
27231 (Set_Inheritance_Depth): Removed.
27233 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27234 subprogram Get_Expanded_Name because it is not referenced by the
27237 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27238 (CPP_Get_Inheritance_Depth): Removed.
27239 (CPP_Set_Inheritance_Depth): Removed.
27241 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27243 2005-03-17 Robert Dewar <dewar@adacore.com>
27245 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27246 3, since we now expect GCC 3 to do all the work.
27248 2005-03-17 Javier Miranda <miranda@adacore.com>
27250 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27251 of one barrier to avoid wrong usage of this attribute.
27253 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27254 First_Private_Entity.
27256 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27257 the subprogram against wrong usage.
27258 Adapt the code to traverse the entities in the
27259 scope of a record_type because in addition to its usage regarding
27260 packages, this subprogram is also called by Expand_N_Freeze_Entity
27261 to install the visible declarations of the enclosing scope of a
27262 record_type_with_private to establish the proper visibility before
27263 freezing the entity and related subprograms.
27265 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27267 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27270 2005-03-17 Thomas Quinot <quinot@adacore.com>
27272 * exp_ch3.adb (Check_Attr): New subprogram.
27273 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27274 into a new Check_Attr subprogram, in order to provide a more
27275 explanatory error message (including the name of the missing attribute).
27276 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27277 subprogram determines whether a default implementation exists for a
27278 given stream attribute.
27279 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27280 Determine whether to generate a default implementation for each stream
27281 attribute separately, as this depends on the specific attribute.
27283 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27284 limited extension where a stream attribute is missing for a limited
27285 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27286 generate a bogus reference to the missing attribute to prevent
27287 cascaded errors. Instead, generate a null statement.
27289 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27290 available for a limited type if it has been specified for an ancestor
27293 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27295 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27296 entity is an operator.
27298 2005-03-17 Thomas Quinot <quinot@adacore.com>
27300 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27301 spec, to make this predicate available to other units.
27303 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27306 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27307 when no distribution runtime library is available.
27309 * sem_res.adb, sem_dist.adb: Disable expansion of remote
27310 access-to-subprogram types when no distribution runtime library is
27312 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27313 predicate available to other units.
27315 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27316 spec, to make this predicate available to other units.
27318 2005-03-17 Vincent Celier <celier@adacore.com>
27320 * make.adb (Insert_Project_Sources): Make sure the Q is always
27323 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27324 the default for the tree, not the global default naming.
27326 * prj-proc.adb (Recursive_Process): No need to put the default naming
27327 in the project data, it's already there.
27329 2005-03-17 Doug Rupp <rupp@adacore.com>
27331 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27333 * 5xcrtl.ads: Renamed to...
27334 * s-crtl-vms64.ads: ...this new file
27336 2005-03-17 Robert Dewar <dewar@adacore.com>
27339 * namet.adb (Copy_One_Character): Set proper wide character encoding
27340 for upper half character if we have upper half encoding.
27342 2005-03-17 Robert Dewar <dewar@adacore.com>
27344 * par.adb (Par): Improved msg for attempt to recompile predefined unit
27346 2005-03-17 Thomas Quinot <quinot@adacore.com>
27348 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27349 tagged limited type, the TSS is a newly built renaming declaration:
27350 insert it using Set_TSS, not Copy_TSS.
27352 2005-03-17 Javier Miranda <miranda@adacore.com>
27354 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27355 Try_Object_Operation): Analyze the object that is accessible
27356 through the prefix of the subprogram call before we apply
27357 the transformation of the object-operation notation.
27359 2005-03-17 Jose Ruiz <ruiz@adacore.com>
27361 * s-taprob.adb (Initialize_Protection): Initialize the protected
27362 object's owner to Null_Task.
27363 (Lock): If pragma Detect_Blocking is in effect and the caller of this
27364 procedure is already the protected object's owner then Program_Error
27365 is raised. In addition the protected object's owner is updated.
27366 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27367 of this procedure is already the protected object's owner then
27368 Program_Error is raised.
27369 In addition the protected object's owner is updated.
27370 (Unlock): Remove the ownership of the protected object.
27372 * s-taprob.ads (Protection): Add the field Owner, used to store the
27373 protected object's owner.
27374 This component is needed for detecting one type of potentially blocking
27375 operations (external calls on a protected subprogram with the same
27376 target object as that of the protected action). Document the rest of
27379 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27380 Initialize the protected object's owner to Null_Task.
27381 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27382 caller of this procedure is already the protected object's owner then
27383 Program_Error is raised.
27384 Do not raise Program_Error when this procedure is called from a
27386 (Unlock_Entries): Remove the ownership of the protected object.
27387 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27388 of this procedure is already the protected object's owner then
27389 Program_Error is raised.
27390 Do not raise Program_Error when this procedure is called from
27391 a protected action.
27393 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27394 used to store the protected object's owner.
27396 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27397 effect and this procedure (a potentially blocking operation) is called
27398 from whithin a protected action, Program_Error is raised.
27399 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27400 and this procedure (a potentially blocking operation) is called from
27401 whithin a protected action, Program_Error is raised.
27403 2005-03-17 Vincent Celier <celier@adacore.com>
27404 Nicolas Setton <setton@adacore.com>
27406 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27407 switch, not supported by the linker on Darwin. Add '_' before
27408 <library>init, as this character is added unconditionally by the
27410 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27411 correct one ".dylib". This fixes detection of the archive files when
27412 building library projects.
27414 2005-03-17 Vincent Celier <celier@adacore.com>
27416 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27417 -gnat83, -gnat95 and -gnat05.
27419 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
27421 * gnat_ugn.texi: Document gnatmem restriction
27423 2005-03-17 Thomas Quinot <quinot@adacore.com>
27425 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27428 2005-03-17 Robert Dewar <dewar@adacore.com>
27430 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27431 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27432 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27434 * casing.adb: Comment improvements
27436 2005-03-17 Pascal Obry <obry@adacore.com>
27438 * g-expect.adb: Minor reformatting.
27440 2005-03-15 Zack Weinberg <zack@codesourcery.com>
27442 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27443 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27446 2005-03-15 Vincent Celier <celier@adacore.com>
27448 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27449 Add new parameter In_Tree to specify the project tree: needed
27450 by the project manager. Adapt to changes in project manager
27451 using new parameter In_Tree.
27453 2005-03-15 Jakub Jelinek <jakub@redhat.com>
27455 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27456 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27457 ada/bldtools to avoid make -jN failures.
27459 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27461 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27462 to NULL_TREE on entry.
27464 2005-03-15 Robert Dewar <dewar@adacore.com>
27466 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27467 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27468 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27469 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27470 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27471 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27472 system-interix.ads, system-solaris-sparc.ads,
27473 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27474 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27475 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27476 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27477 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27478 Compiler_System_Version to be False.
27480 * opt.ads: Add new flag Opt.Address_Is_Private
27482 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27483 Add new parameter Compiler_System_Version to avoid checking for
27484 completeness of parameters when compiler is compiling itself.
27485 Allows old versions of GNAT to be compiled with new compiler.
27487 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27489 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27490 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27492 (Stack_Base_Available): New flag.
27493 (Get_Page_Size): New overloaded functions imported from C.
27494 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27495 PROT_ON, PROT_OFF): New constants.
27496 (mprotect): New function imported from C.
27497 (pthread_teb_t): New record type.
27499 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27500 (Create_Task): Account for the Yellow Zone and the guard page.
27502 2005-03-15 Vincent Celier <celier@adacore.com>
27504 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27505 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27506 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27507 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27508 Library_File_Name_For): Add new parameter In_Tree
27509 to specify the project tree: needed by the project manager.
27510 Adapt to changes in project manager using new parameter In_Tree.
27511 Remove local imports, use functions in System.CRTL.
27513 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27514 to use the project manager.
27516 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27517 In_Tree to designate the project tree. Adapt to changes in the project
27518 manager, using In_Tree.
27520 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27521 Copy_Interface_Sources): Add new parameter In_Tree to specify the
27522 project tree: needed by the project manager.
27523 (Build_Library): Check that Arg'Length >= 6 before checking if it
27524 contains "--RTS=...".
27526 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27527 Library_File_Name_For): Add new parameter In_Tree to specify the
27528 project tree: needed by the project manager.
27530 * prj.ads, prj.adb: Major modifications to allow several project trees
27531 in memory at the same time.
27532 Change tables to dynamic tables and hash tables to dynamic hash
27533 tables. Move tables and hash tables from Prj.Com (in the visible part)
27534 and Prj.Env (in the private part). Move some constants from the visible
27535 part to the private part. Make other constants deferred.
27536 (Project_Empty): Make it a variable, not a function
27537 (Empty_Project): Add parameter Tree. Returns the data with the default
27538 naming data of the project tree Tree.
27539 (Initialize): After updating Std_Naming_Data, copy its value to the
27540 component Naming of Project Empty.
27541 (Register_Default_Naming_Scheme): Use and update the default naming
27542 component of the project tree, instead of the global variable
27544 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27545 Tree is not defaulted, return the default naming data of the Tree.
27546 (Initial_Buffer_Size): Constant moved from private part
27547 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27548 variables initialized in procedure Initialize.
27549 (Add_To_Buffer): Add two in out parameters to replace global variables
27550 Buffer and Buffer_Last.
27551 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27553 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27555 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27556 for the project tree.
27557 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27558 constant at the beginning of the package spec, so that they cane be used
27559 in subprograms before their full declarations.
27560 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27561 (Empty_Project): Add parameter of type Project_Node_Ref
27562 (Private_Project_Tree_Data): Add component Default_Naming of type
27564 (Buffer, Buffer_Last): remove global variables
27565 (Add_To_Buffer): Add two in out parameters to replace global variables
27566 Buffer and Buffer_Last.
27567 (Current_Packages_To_Check): Remove global variable
27568 (Empty_Name): Move to private part
27569 (No-Symbols): Make it a constant
27570 (Private_Project_Tree_Data): New type for the private part of the
27572 (Project_Tree_Data): New type for the data of a project tree
27573 (Project_Tree_Ref): New type to designate a project tree
27574 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27575 for the project tree.
27577 * prj-attr.ads: Add with Table; needed, as package Prj no longer
27578 imports package Table.
27580 * prj-com.adb: Remove empty, no longer needed body
27582 * prj-com.ads: Move most of the content of this package to package Prj.
27584 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27585 designate the project node tree and Packages_To_Check to replace
27586 global variable Current_Packages_To_Check.
27587 Add new parameters In_Tree and Packages_To_Check to local subprograms,
27588 when needed. Adapt to changes in project manager with project node tree
27591 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27592 project tree to most subprograms. Move tables and hash tables to
27593 private part of package Prj.
27594 Adapt to changes in project manager using project tree In_Tree.
27596 * prj-makr.adb (Tree): New constant to designate the project node tree
27597 Adapt to change in project manager using project node tree Tree
27599 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27600 display the Library_Src_Dir and the Library_Dir.
27601 Add new parameter In_Tree to designate the project node tree to most
27602 subprograms. Adapt to changes in the project manager, using project tree
27604 (Check_Naming_Scheme): Do not alter the casing on platforms where
27605 the casing of file names is not significant.
27606 (Check): Add new parameter In_Tree to designate the
27608 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27609 designate the project tree.
27610 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27612 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27613 to replace those that were in the private part of package Prj.
27614 Add new parameter In__Tree to designate the project node tree to most
27615 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27616 (Post_Parse_Context_Clause): When specifying the project node of a with
27617 clause, indicate that it is a limited with only if there is "limited"
27618 in the with clause, not necessarily when In_Limited is True.
27619 (Parse): Add new parameter In_Tree to designate the project node tree
27621 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27622 designate the project node tree. Adapt to change in Prj.Tree with
27623 project node tree In_Tree.
27625 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27626 tree In_Tree in the call to function Empty_Process to give its initial
27627 value to the project data Processed_Data.
27628 Add new parameters In_Tree to designate the project tree and
27629 From_Project_Node_Tree to designate the project node tree to several
27630 subprograms. Adapt to change in project manager with project tree
27631 In_Tree and project node tree From_Project_Node_Tree.
27633 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27634 to replace those that were in the private part of package Prj.
27635 Add new parameter In_Tree to designate the project node tree to most
27636 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27638 * prj-tree.ads, prj-tree.adb: Add new parameter of type
27639 Project_Node_Tree_Ref to most subprograms.
27640 Use this new parameter to store project nodes in the designated project
27642 (Project_Node_Tree_Ref): New type to designate a project node tree
27643 (Tree_Private_Part): Change table to dynamic table and hash tables to
27644 dynamic hash tables.
27646 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
27647 the project tree to most subprograms. Adapt to changes in project
27648 manager using project tree In_Tree.
27650 * makegpr.adb (Project_Tree): New constant needed to use project
27653 2005-03-15 Olivier Hainque <hainque@adacore.com>
27655 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
27656 for sigactions with SA_SIGINFO set. Call
27657 __gnat_adjust_context_for_raise before raising, to perform the
27658 potentially required adjustments to the machine context for the GCC
27661 * raise.h (__gnat_adjust_context_for_raise): New prototype.
27663 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
27664 Adjust PC by one in the provided machine context.
27665 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
27666 so that the handler is passed the context structure to adjust prior to
27668 (__gnat_error_handler) HPUX: Adjust the signature to match what an
27669 SA_SIGINFO sigaction should look like. Call
27670 __gnat_adjust_context_for_raise before actually raising.
27671 (__gnat_adjust_context_for_raise): Default noop to help PC
27672 adjustments before raise from signal handlers.
27673 (__gnat_error_handler): Indirectly call a predicate function to
27674 determine if a condition should be resignaled or not.
27675 (__gnat_set_resignal_predicate): User interface to modify the predicate.
27676 (__gnat_default_resignal_p): Default GNAT predicate.
27678 2005-03-15 Doug Rupp <rupp@adacore.com>
27680 * adaint.c: Prefix #include of VMS system header files with vms/
27681 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
27682 Do not define a dummy function "convert_addresses" under Darwin,
27685 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
27688 2005-03-15 Nicolas Setton <setton@adacore.com>
27690 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
27693 2005-03-15 Robert Dewar <dewar@adacore.com>
27695 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
27698 * a-retide.ads: Minor comment changes
27700 2005-03-15 Robert Dewar <dewar@adacore.com>
27702 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
27703 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
27704 Realloc_For_Chunk to private part of package.
27705 New subprograms for AI-301
27707 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
27708 Get_Line procedure.
27709 Avoid unnecessary use of Get/Set_Wide_String
27711 2005-03-15 Robert Dewar <dewar@adacore.com>
27714 * a-stunau.ads, a-stunau.adb:
27715 Change interface to allow efficient (and correct) implementation
27716 The previous changes to allow extra space in unbounded strings had
27717 left this interface a bit broken.
27719 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
27721 * g-spipat.ads, g-spipat.adb: New interface for Get_String
27722 Minor reformatting (function specs)
27724 * g-spitbo.adb: New interface for Get_String
27726 * g-spitbo.ads: Minor reformatting
27728 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
27730 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
27732 2005-03-15 Javier Miranda <miranda@adacore.com>
27733 Robert Dewar <dewar@adacore.com>
27734 Thomas Quinot <quinot@adacore.com>
27735 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27737 * atree.ads, atree.adb: Add support for Elist24 field
27739 * atree.h: Fix wrong definition of Field27
27740 Add support for Elist16 field
27741 Add support for Elist24 field
27743 * einfo.ads, einfo.adb (Abstract_Interfaces,
27744 Set_Abstract_Interfaces): New subprograms.
27745 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
27747 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
27748 entities rather than a single node.
27749 (Is_Interface, Set_Is_Interface): New subprogram
27750 (First_Tag_Component): New syntesized attribute
27751 (Next_Tag_Component): New synthesized attribute
27752 (Write_Entity_Flags): Upgraded to write Is_Interface
27753 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
27754 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
27755 (Task_Body_Procedure): New subprogram to read this attribute.
27756 (Set_Task_Body_Procedure): New subprogram to set this attribute.
27757 (Has_Controlled_Component): Now applies to all entities.
27758 This is only a documentation change, since it always worked to apply
27759 this to other than composite types (yielding false), but now this is
27761 Update documentation on Must_Be_Byte_Aligned for new spec
27763 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
27764 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
27765 uses of the Access_Disp_Table attribute to reference the first dispatch
27766 table associated with a tagged type. As
27767 part of the implementation of abstract interface types,
27768 Access_Disp_Table has been redefined to contain a list of dispatch
27769 tables (rather than a single dispatch table).
27770 Similarly, upgrade all the references to Tag_Component by the
27771 new attribute First_Tag_Component.
27772 (Find_Inherited_TSS): Moved to exp_tss.
27773 Clean up test in Expand_N_Object_Declaration for cases
27774 where we need to do a separate assignment of the initial value.
27775 (Expand_N_Object_Declaration): If the expression in the
27776 declaration of a tagged type is an aggregate, no need to generate an
27777 additional tag assignment.
27778 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
27780 Bit packed array ops are only called if operands are known to be
27782 (Component_Equality): When returning an N_Raise_Program_Error statement,
27783 ensure that its Etype is set to Empty to avoid confusing GIGI (which
27784 expects that only expressions have a bona fide type).
27785 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
27786 determine the amount of data to be copied.
27788 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
27789 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
27790 INTERFACE_TYPE_DEFINITION ::=
27791 [limited | task | protected | synchronized] interface
27792 [AND interface_list]
27794 * par-ch3.adb (P_Type_Declaration): Modified to give support to
27796 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
27798 (P_Interface_Type_Definition): New subprogram that parses the new
27799 syntax rule of Ada 2005 interfaces
27800 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
27801 messages by the correct RENAMES (quotes removed).
27803 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
27804 attribute First_Tag_Component.
27806 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
27807 (Interface_List, Set_Interface_List): New subprograms.
27808 (Interface_Present, Set_Interface_Present): New subprograms.
27809 (Limited_Present, Set_Limited_Present): Available also in derived
27810 type definition nodes.
27811 (Protected_Present, Set_Protected_Present): Available also in
27812 record type definition and
27813 derived type definition nodes.
27814 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
27815 (Task_Present, Set_Task_Present): New subprogram.
27816 (Task_Body_Procedure): Removed.
27817 (Set_Task_Body_Procedure): Removed.
27818 These subprogram have been removed because the attribute
27819 Task_Body_Procedure has been moved to the corresponding task type
27820 or task subtype entity to leave a field free to store the list
27821 of interfaces implemented by a task (for AI-345)
27822 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
27823 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
27824 expression flag Do_Range_Check
27825 (Exception_Junk): Change to Flag7 to accomodate above change
27826 (Box_Present, Default_Name, Specification, Set_Box_Present,
27827 Set_Default_Name, Set_Specification): Expand the expression
27828 "X in N_Formal_Subprogram_Declaration" into the corresponding
27829 two comparisons. Required to use the csinfo tool.
27831 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
27832 "with string" given.
27834 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
27837 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
27840 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
27841 attribute Task_Body_Procedure rather than the old semantic field that
27842 was available in the task_type_declaration node.
27844 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
27845 interface type definitions.
27846 (P_Formal_Derived_Type_Definition): Modified to handle the list of
27849 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
27850 task type declaration.
27851 (P_Protected): Modified to handle the list of interfaces in a
27852 protected type declaration.
27854 2005-03-15 Doug Rupp <rupp@adacore.com>
27855 Vincent Celier <celier@adacore.com>
27857 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
27858 (Gen_Output_File_C): Likewise.
27859 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
27861 2005-03-15 Thomas Quinot <quinot@adacore.com>
27863 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
27864 is an N_Raise_Constraint_Error node, create a new copy of it without
27865 going through a call to Duplicate_Subexpr.
27867 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
27868 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27869 Nicolas Setton <setton@adacore.com>
27870 Ed Schonberg <schonberg@adacore.com>
27876 * decl.c (gnat_to_gnu_field): Reject aliased components with a
27877 representation clause that prescribes a size not equal to the rounded
27878 size of their types.
27879 (gnat_to_gnu_entity, case E_Component): Always look at
27880 Original_Record_Component if Present and not the entity.
27881 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
27882 of tagged extension types by not making field for components that are
27884 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
27885 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
27886 expression to the type of the object when the object is constant.
27887 Reverse defer_debug_incomplete_list before traversing it, so that trees
27888 are processed in the order at which they were added to the list. This
27889 order is important when using the stabs debug format.
27890 If we are deferring the output of debug information, also defer this
27891 output for a function return type.
27892 When adding fields to a record, prevent emitting debug information
27893 for incomplete records, emit the information only when the record is
27895 (components_to_record): New parameter defer_debug.
27896 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
27897 (gnat_to_gnu_field_decl): New function.
27898 (substitution_list, annotate_rep): Call it.
27899 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
27900 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
27901 No longer update discriminants to not be a COMPONENT_REF.
27902 (copy_alias_set): Strip padding from input type; also handle
27903 unconstrained arrays properly.
27905 * gigi.h (write_record_type_debug_info): New function.
27906 Convert to use ANSI-style prototypes. Remove unused
27907 declarations for emit_stack_check, elab_all_gnat and
27908 set_second_error_entity.
27909 (gnat_to_gnu_field_decl): New decl.
27911 * utils.c (write_record_type_debug_info): New function.
27912 (finish_record_type): Delegate generation of debug information to
27913 write_record_type_debug_info.
27914 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
27915 (update_pointer_to): Fix pasto.
27916 (convert) <UNION_TYPE>: Accept slight type variations when
27917 converting to an unchecked union type.
27919 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
27920 replace the N_Freeze_Entity with a null statement.
27922 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
27923 within a constrained subcomponent of an enclosing record, place the
27924 freeze nodes in the scope stack entry for the enclosing record.
27925 (Undelay_Type): New Subprogram.
27926 (Set_Small_Size): Pass T, the type to modify; all callers changed.
27927 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
27928 within records; allow them to have freeze nodes if their base types
27931 * exp_util.adb (Remove_Side_Effects): Properly test for
27932 Expansion_Delayed and handle case when it's inside an
27933 N_Qualified_Expression.
27935 * sem_ch3.adb (Derived_Type_Declaration): New predicate
27936 Comes_From_Generic, to recognize accurately that the parent type in a
27937 derived type declaration can be traced back to a formal type, because
27938 it is one or is derived from one, or because its completion is derived
27940 (Constrain_Component_Type): If component comes from source and has no
27941 explicit constraint, no need to constrain in in a subtype of the
27943 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
27944 Minor change to propagate Is_Ada_2005 flag
27946 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
27947 Expansion_Delayed is False.
27948 (assoc_to_constructor): Ignore fields that have a
27949 Corresponding_Discriminant.
27950 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
27951 function returns "by target", dereference the target pointer using the
27952 type of the actual return value.
27953 <all>: Be prepared for a null gnu_result.
27954 (processed_inline_subprograms): Check flag_really_no_inline
27955 instead of flag_no_inline.
27956 (set_second_error_entity): Remove unused function.
27957 (gnat_to_gnu, case N_Selected_Component): Call
27958 gnat_to_gnu_field_decl.
27959 (assoc_to_constructor): Likewise.
27961 2005-03-15 Robert Dewar <dewar@adacore.com>
27962 Ed Schonberg <schonberg@adacore.com>
27963 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27965 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
27966 Must_Be_Byte_Aligned for cases where we do not need to use a
27967 System.Pack_nn unit.
27969 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
27971 Needed now that we do some processing for IN parameters as well. This
27972 may well fix some unrelated errors.
27973 (Expand_Call): Handle case of unaligned objects (in particular those
27974 that come from packed arrays).
27975 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
27976 renamed entity is an inherited operation, re-expand the call using the
27977 original operation, which is the one to call.
27978 Detect attempt to inline parameterless recursive subprogram.
27979 (Represented_As_Scalar): Fix to work properly with private types
27980 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
27981 accurate estimate. Yields True in far fewer cases than before,
27982 improving the quality of code that depends on this test.
27984 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
27985 over both visible and private declarations to remove them from tree,
27986 and mark subprograms declared in package as eliminated, to prevent
27987 spurious use in subsequent compilation of generic units in the context.
27989 * exp_util.ads: Minor cleanup in variable names
27991 * sem_eval.ads, sem_eval.adb: Minor reformatting
27992 (Compile_Time_Known_Bounds): New function
27994 2005-03-15 Ed Schonberg <schonberg@adacore.com>
27996 * exp_ch7.adb (Convert_View): Use base types of underlying types when
27997 determining whether an unchecked conversion is needed for the argument
27998 of an initialization call.
28000 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28002 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28003 that appears in the instantiation rather than the internal subtype
28004 generated in the wrapper package, to avoid anomalies in gigi when the
28005 target is derived from a private type whose full view is an access type.
28007 2005-03-15 Robert Dewar <dewar@adacore.com>
28009 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28011 Add documentation to replace the use of this flag
28012 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28015 2005-03-15 Thomas Quinot <quinot@adacore.com>
28017 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28018 here from exp_attr so it can be shared between exp_attr and exp_dist.
28019 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28020 all TSS names, not a subset thereof, and the previous name introduced
28021 an unnecessarily confusion that a distinction might exist between
28022 "OK" TSS names and some "not OK" TSS names.
28024 2005-03-15 Doug Rupp <rupp@adacore.com>
28026 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28029 2005-03-15 Pascal Obry <obry@adacore.com>
28030 Eric Botcazou <ebotcazou@adacore.com>
28034 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28035 when IN_RTS. This is to work around a bootstrap path problem.
28037 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28038 table and pass it to __gnat_install_SEH_handler().
28039 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28041 * lang.opt: Fix specification of -fRTS=.
28043 2005-03-15 Doug Rupp <rupp@adacore.com>
28044 Bernard Banner <banner@adacore.com>
28045 Vincent Celier <celier@adacore.com>
28046 Arnaud Charlet <charlet@adacore.com>
28049 This change works fine when gnatlib is built from the gcc directory,
28050 but does not work when using the libada Makefile, since GCC_FOR_TARGET
28051 is not passed to ada/Makefile.in, so more work is needed by a
28052 Makefile/configure expert.
28054 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28055 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28056 Setup gnatlink switch -M for x86_64 linux, as it is already setup
28058 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28059 Run ranlib on libgccprefix.a
28060 Define PREFIX_OBJS for Darwin, to build libgccprefix.
28061 (ADA_INCLUDE_SRCS): Split Ada packages.
28063 2005-03-15 Robert Dewar <dewar@adacore.com>
28065 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28067 * impunit.adb: Add GNAT.UTF_32
28069 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28071 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28072 now uses GNAT.UTF_32).
28074 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28075 capabilities for categorizing characters using Unicode categories
28077 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28079 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28080 instantiation that has been rewritten as a package body, retrieve spec
28081 to generate proper name for implicit_with_clause.
28082 (Install_Parents): Recognize a parent that is an instantiation but has
28083 been rewritten as a package declaration during analysis.
28085 2005-03-15 Javier Miranda <miranda@adacore.com>
28086 Ed Schonberg <schonberg@adacore.com>
28088 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28089 parameter reported some error we immediately return. This improves the
28090 behaviour of the frontend in case of errors.
28091 (Install_Parent, Remove_Parent): Introduce new flag
28092 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28093 ancestor of a generic child unit, when the child is being instantiated.
28094 (Inline_Instance_Body): If we are compiling the private
28095 part or the body of a child unit, restore the proper visibility of the
28096 parents after compiling the instance body.
28098 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28099 Javier Miranda <miranda@adacore.com>
28102 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28103 of a private type, in which case it is underlying_type that denotes
28104 the proper task. Also modified to use the new entity attribute
28105 that is directly available in the task type and task subtype entities
28106 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28107 arrays when other dimensions than the first are constrained by
28108 discriminants of an enclosing record.
28109 (Insert_Explicit_Dereference): If the prefix is an indexed component or
28110 a combination of indexed and selected components, find ultimate entity
28111 and generate the appropriate reference for it, to suppress spurious
28113 (Note_Possible_Modification): If an entity name has no entity, return.
28114 (Is_Variable): A function call never denotes a variable.
28115 (Requires_Transient_Scope): For record types, recurse only on
28116 components, not on internal subtypes that may have been generated for
28117 constrained components.
28119 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28121 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28122 Eliminated as candidates for resolution. Both efficient, and avoids
28123 anomalies with operators declared in deleted code.
28124 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28125 expansion is disabled (as when compiling a generic) to prevent spurious
28126 warnings on prefixes of selected components.
28128 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28130 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28131 attached to a list before checking whether it appears in the private
28132 declarations of the current package.
28133 (Make_Inequality_Operator): Insert declaration in proper declarative
28134 list rather than just setting the Parent field, so that
28135 Is_Private_Declaration can handle it properly.
28137 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28139 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28140 a renaming a body, check that the renamed subprogram in not intrinsic.
28141 (Find_Direct_Name): If several use_visible entities hide
28142 each other, and the context is a predefined file compiled through
28143 rtsfind, keep only the entity that comes from a predefined file.
28145 2005-03-15 Geert Bosch <bosch@adacore.com>
28147 * s-fatgen.adb (Valid): Extend special exceptions to account for long
28148 long float padding to also cover AMD64 and IA64.
28150 2005-03-15 Gary Dismukes <dismukes@adacore.com>
28152 * s-imgwch.adb: Add with and use of Interfaces.
28153 (Img_Wide_Character): Change type of Val to Unsigned_16.
28154 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28156 2005-03-15 Matthew Gingell <gingell@adacore.com>
28158 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28160 2005-03-15 Robert Dewar <dewar@adacore.com>
28162 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28164 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28166 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28168 2005-03-15 Robert Dewar <dewar@adacore.com>
28170 * s-bitops.adb, s-bitops.ads,
28171 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28172 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28173 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28174 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28175 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28176 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28177 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28178 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28181 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28183 * utils2.c (build_binary_op): Fix typo.
28185 2005-03-15 Doug Rupp <rupp@adacore.com>
28187 * s-crtl.ads (popen,pclose): New imports.
28189 2005-03-15 Cyrille Comar <comar@adacore.com>
28191 * comperr.adb (Compiler_Abort): remove references to obsolete
28192 procedures in the bug boxes for various GNAT builds.
28194 2005-03-15 Vincent Celier <celier@adacore.com>
28196 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28198 2005-03-15 Geert Bosch <bosch@adacore.com>
28199 Arnaud Charlet <charlet@adacore.com>
28200 Robert Dewar <dewar@adacore.com>
28201 Cyrille Comar <comar@adacore.com>
28202 Sergey Rybin <rybin@adacore.com>
28204 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28205 too specific and long-winded to be appropriate for the GNAT User's
28207 Warn about use of GCC switches not documented in the GNAT User's Guide,
28208 as these may cause generated code to not conform to Ada semantics.
28209 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28210 Add documentation for -gnat95 and -gnat05 switches
28211 Remove paragraph documenting obsolete way to refer to third party
28213 Add a few references to Ada_05 that were missing.
28214 Update documentation on -gnatZ/-gnatL.
28215 Document limitation when using -m64 under Solaris.
28216 Change the "Name Casing" subsection of the pretty-printer section
28217 according to the changes in the dictionary processing.
28219 * gnat_rm.texi: Document the Ada_05 pragma.
28220 Section on record representation clauses describes the new more
28221 relaxed rules about placement of large packed bit array components.
28222 Add documentation of GNAT.UTF_32
28224 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
28226 * misc.c (gnat_post_options): Turn off structural
28229 2005-03-08 Laurent Guerby <laurent@guerby.net>
28231 * system-linux-sparc.ads: Fix typo in previous commit.
28233 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
28234 Laurent Guerby <laurent@guerby.net>
28237 * system-linux-sparc.ads: New.
28238 * Makefile.in: Add sparc linux entry.
28240 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
28242 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28243 parameters as unused.
28245 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
28246 Partial merge from libada-gnattools-branch:
28248 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28249 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28250 into code in gnattools/Makefile.in. Remove direct dependencies on
28251 stamp-tools by tools clauses.
28252 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28253 * config-lang.in: Add gnattools to $lang_dirs.
28255 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
28258 * utils.c (gnat_type_for_mode): Return null instead of ICE because
28259 we asked for an unknown mode.
28261 2005-02-12 Richard Henderson <rth@redhat.com>
28263 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28264 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28266 2005-02-10 Andreas Jaeger <aj@suse.de>
28268 * init.c (__gnat_initialize): Mark parameter as unused.
28270 2005-02-09 Doug Rupp <rupp@adacore.com>
28272 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28273 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28275 2005-02-09 Doug Rupp <rupp@adacore.com>
28277 * gnatchop.adb (dup, dup2),
28278 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28280 * gnatlbr.adb (mkdir),
28281 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
28283 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28285 2005-02-09 Doug Rupp <rupp@adacore.com>
28287 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28289 2005-02-09 Robert Dewar <dewar@adacore.com>
28290 Thomas Quinot <quinot@adacore.com>
28291 Javier Miranda <miranda@adacore.com>
28292 Pascal Obry <obry@adacore.com>
28293 Ed Schonberg <schonberg@adacore.com>
28294 Doug Rupp <rupp@adacore.com>
28295 Gary Dismukes <dismukes@adacore.com>
28296 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28298 * g-zstspl.ads: New file.
28300 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28302 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28304 Add definition of Wide_Wide_Space for AI-285
28306 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28307 interface (to support Ada 95 and Ada 2005 units).
28308 Add Unbounded_IO files
28309 Add entries for Wide_Wide packages for AI-285
28310 Add list of containers packages to Ada 2005 unit list
28312 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28313 support new Unbounded_IO package cleanly.
28315 * g-utf_32.ads, g-utf_32.adb: New files.
28317 * Makefile.rtl: Add entry for g-utf_32
28318 Add new files for Unbounded_IO
28319 Adjust make file for new AI-285 wide wide packages
28320 Add AI-302 containers to the run time.
28322 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28323 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28324 subprograms for AI-301.
28326 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28328 * a-stunau.ads: Minor comment correction
28330 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28332 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28333 (Check_RPC): Update to match changes in expanded code.
28334 Clean up unused entity.
28336 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28337 was not taken into account.
28338 This includes proper initialization with Normalize_Scalars.
28339 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28340 normalize scalars cases (particularly the latter) to do a better job
28341 of finding invalid representations.
28343 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28345 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28348 * exp_dist.adb: Add support for wide wide character type
28349 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28350 private part, generate stub bodies at the end of the private part,
28351 not the visible part.
28352 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28354 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28355 generic wrapper to execute final processing after completing the
28356 expansion of the RPC receiver for an RACW.
28358 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28359 packages and attributes.
28360 (Preset_Names): Addition of the new reserved words of Ada 2005,
28361 that is interface, overriding and synchronized.
28362 (Get_Pragma_Id): Give support to the use of the new reserved word
28363 "interface" as a pragma name.
28364 (Is_Pragma_Name): Give support to the use of the new reserved word
28365 "interface" as a pragma name.
28366 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28367 attribute implementation.
28369 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28370 checks to entities that are output parameters of Asm operations.
28371 Handle the Stream_Size attribute.
28372 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28374 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28376 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28377 for second parameter being 0.0.
28378 Add support for wide wide character type.
28379 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28381 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28382 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28383 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28384 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28385 for wide wide character cases.
28387 * cstand.adb: Create entities for Wide_Wide_Character and
28390 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28391 accordance with AI-258.
28392 Add new declarations for 16/32 bit C character types (Part of AI285)
28394 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28395 (Obsolescent_Warning): New field
28396 (Rep_Clause): New local subprogram used to share code. Returns the rep
28397 clause for which the name is given in parameter.
28398 (Has_Stream_Size_Clause): New routine.
28399 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28400 (Address_Clause): Implementation is now using Rep_Clause.
28401 (Alignment_Clause): Idem.
28402 (Size_Clause): Idem.
28404 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28405 entity in non-Ada 2005 mode and generate warning.
28407 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28408 (Prag): Code cleanup. Remove old gnat pragma "overriding"
28410 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28411 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28412 on the named unit if the pragma is not in the current compilation unit,
28413 so that elaboration calls in the current unit can set up an elaboration
28414 dependency on the named unit, as needed.
28415 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28416 subprogram as well as for subprograms declared within a package.
28417 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28420 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28421 to z) to avoid some instances of duplication for Wide_Wide packages.
28423 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28426 * scn.adb: Char_Literal_Value field is now a Uint
28428 * scng.adb: Significant rewrite to handle new Ada 2005 features
28429 allowing wide and wide wide characters in program text, e.g. for
28430 identifiers, as described in AI-285.
28431 (Set_Reserved): New procedure, makes setting up keywords cleaner.
28432 (Initialize_Scanner): Register the new reserved words of Ada 2005.
28433 (Scan): Give support to the new reserved words.
28435 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28436 warning notifying that interface, overriding, and synchronized are
28437 new reserved words.
28438 (P_Pragma): Allow the use of the new reserved word "interface" as
28441 * gnatls.adb, gnatbind.adb,
28442 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28443 identifiers named "interface" to "SAL_Interface".
28445 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28446 (Structured Exception handling).
28447 (Gen_Main_C): Idem.
28450 (Gen_Main_Ada): Set the default exit code if specified.
28451 (Gen_Main_C): Likewise.
28453 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28454 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28456 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28459 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28460 has a collision with the new Ada 2005 "interface" reserved word.
28462 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28463 generate a warning notifying that interface, overriding, and
28464 synchronized are new reserved words.
28466 * scans.ads (Token_Type): Addition of the tokens corresponding to the
28467 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28468 and Tok_Synchronized.
28470 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28471 "dispatching" rather than "primitive" operations, since dispatching
28472 calls are now allowed to abstract formal subprograms (which are not
28474 Char_Literal_Value field is now a Uint
28475 (Resolve_Slice): If the prefix is an access to an unconstrained array,
28476 compute the actual subtype of the designated object to impose the proper
28478 (Resolve_Selected_Component): Do not insert an access check if the
28479 prefix is an access type: such a node is expanded into an explicit
28480 dereference, on which the access check is performed anyway. Removes
28481 expensive duplicate checks.
28482 (Resolve_Call): Use new flag Is_Obsolescent and field
28483 Obsolescent_Warning so that pragma Obsolescent works on library
28485 Add support for wide wide character type
28486 (Resolve_Allocator): Replace the error message on wrong null-exclusion
28487 value by a warning message.
28488 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28489 as fixed-point, and one of the operands is non-static and universal, it
28490 can only be an illegal exponentiation operation, in which case there is
28491 no real value to retrieve.
28493 * exp_strm.adb: Add support for wide wide character type
28494 (Build_Elementary_Input_Call): Compute the size of the stream element by
28495 querying the rep chain to find the Stream_Attribute attribute value.
28496 (Build_Elementary_Write_Call): Ditto.
28498 * sem_aggr.adb: Char_Literal_Value field is now a Uint
28499 Add support for wide wide character type
28500 Replace the error messages on wrong null-exclusion value by warnings
28501 as described in Ada 2005.
28502 (Resolve_Extension_Aggregate): Document the fact that the error
28503 message on class-wide expressions in extensions aggregates.
28505 * sem_case.adb: Add support for wide wide character type
28507 * sem_ch13.adb: Add support for wide wide character type
28508 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28510 * sem_ch3.adb: Add support for wide wide character type
28511 (Process_Subtype): If constraint is illegal for the type, set Ekind of
28512 now-useless Itype, to prevent cascaded errors on a compiler built
28515 * sem_ch8.adb: Add with and use of Sem_Disp.
28516 (Analyze_Subprogram_Renaming): Replace unclean uses of
28517 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28518 of Corresponding_Spec to Empty).
28519 (Attribute_Renaming): Replace use of Corresponding_Spec with
28520 Corresponding_ Formal_Spec and simplify condition.
28521 (Use_One_Package): Check that scope of homonym of identifier is defined,
28522 before checking whether it is a wrapper package.
28523 Add support for wide wide character type
28525 * sem_eval.adb: Add support for wide wide character type.
28526 (Eval_Arithmetic_Op): Check for compile time known signed integer
28527 overflow in the non-static case.
28528 (Subtypes_Statically_Match): A formal scalar type and its base type do
28529 not statically match.
28531 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28532 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28534 (Unit_Declaration_Node): Ditto.
28535 (Is_Variable_Prefix): For the case of an indexed component whose prefix
28536 has a packed array type, the prefix has been rewritten into a type
28537 conversion. Determine variable-ness from the converted expression.
28538 Handle wide wide character cases.
28540 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28542 * stringt.ads, stringt.adb: Handle full UTF-32 range.
28543 Remove ["0A"] from comment, since it can look like a line terminator.
28544 Currently we don't permit this, but this is under discussion by the
28545 ARG, and it is easy enough to use a different example.
28547 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28548 handling UTF-32 encoding for wide wide character.
28549 Implement new brackets coding ["hhhhhhhh"]
28550 Add UTF-8 encodings for full UTF-32 range
28552 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28554 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28555 bit range Add full UTF-32 support.
28556 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28557 notify that constraint error will be raised at run-time
28558 because a null value is assigned to a null-excluding object.
28559 Remove some obsolete declarations and make Char_Code
28562 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28563 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28564 Rcheck subprograms.
28566 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28567 wrong null-exclusion value by a warning message.
28568 (Enable_Range_Check): Do range check if the prefix is an
28569 explicit dereference whose designated object is an unconstrained array.
28570 Current algorithm for removing duplicate checks is over-eager in this
28573 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28574 null-exclusion value by a warning message
28576 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28577 completely. Add support for Uint2 field
28579 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28580 exp_prag.adb: Char_Literal_Value field is now a Uint.
28582 * exp_util.adb (Insert_Actions): Replace
28583 N_Formal_Subprogram_Declaration by
28584 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28585 Char_Literal_Value field is now a Uint.
28587 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28588 defined for subprogram renaming declarations. When set, the field
28589 indicates the defining entity of a corresponding formal subprogram
28590 when the renaming corresponds to a formal subprogram association in an
28592 (Set_Corresponding_Formal_Spec): New procedure to return
28593 Corresponding_Formal_Spec field.
28594 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28595 (which is now a subtype).
28596 Char_Literal_Value field is now a Uint
28598 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28599 pointer to the base of the dispatch table.
28600 Minor changes to comments.
28601 (Controlling_Type): New function for determining the tagged type
28602 associated with a tagged primitive subprogram.
28603 (Expand_Dispatching_Call): Add support for a controlling actual that is
28604 directly a value of type Ada.Tag rather than a tagged object.
28606 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28607 describing the new layout.
28608 (Dispatch_Table): The expander computes the actual array size, allocates
28609 the Dispatch_Table record accordingly, and generates code that displaces
28610 the base of the record after the Typeinfo_Ptr component. The access to
28611 these components is done by means of local functions.
28612 (Offset_To_Top): New function.
28613 (Typeinfo_Ptr): New function.
28614 (Get_TSD): Modified to access the new position of the TSD.
28615 (Set_TSD): Modified to save the TSD in its new position.
28617 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28618 case of formal abstract subprograms. Add check and message for -gnat05.
28621 * sem_ch12.adb: Add with and use for Sem_Disp.
28622 (Analyze_Associations): Minor change from "=" to "in" for use of
28623 N_Formal_Subtype_Declaration (which is now a subtype).
28624 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28625 N_Formal_Subtype_Declaration (which is now a subtype).
28626 (Analyze_Formal_Subprogram): Add handling for
28627 N_Formal_Abstract_Subprogram, marking the formal as abstract and
28628 dispatching, setting the controlling status of the formal parameters
28629 and result, and issuing an error if there is no controlling type for
28630 the formal subprogram.
28631 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28632 which is an unclean use of that field, we set the new field
28633 Corresponding_Formal_Spec to make the formal subprogram available to
28634 processing in Analyze_Subprogram_Declaration.
28635 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
28636 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
28637 Constrained, so that it is is does not statically match its anonymous
28640 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
28641 abstract formal subprograms in error check for functions returning
28642 abstract types. Set scope of new designator for
28643 a parameterless subprogram, so that it is available when checking the
28644 body for nested subprograms, before full analysis of said body.
28645 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
28646 subprogram only if inner one comes from source.
28647 (Analyze_Function_Call): If the call is given in object notation, the
28648 analysis of the name rewrites the node and analyzes it with the proper
28649 argument list. After analyzing the name, if the call has been rewritten
28650 and the result type is set, no further analysis is needed.
28651 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
28652 mark in function specification, in a context where the formals are
28653 visible and hide outer homographs.
28655 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
28656 as the tagged type for the cases of abstract formal subprograms and
28657 renamings of those. Clean up spec comments.
28658 (Check_Dispatching_Context): Add error message to indicate "abstract
28659 procedure", covering the case of a call to a formal abstract procedure
28660 that has statically tagged operands.
28661 (Check_Dispatching_Call): Check for the case of an actual given by
28662 a tag-indeterminate function call whose type is an ancestor of the
28663 containing call's associated tagged type. This situation can occur
28664 for inherited primitives with function defaults. In this case we
28665 use the tagged type's tag directly as the controlling argument for
28667 (Expand_Call): Name change on call to Expand_Dispatch_Call.
28669 * sprint.adb (Sprint_Node_Actual): Split
28670 N_Formal_Subprogram_Declaration into two alternatives for the new
28671 cases N_Formal_Abstract_Subprogram_Declaration and
28672 N_Formal_Concrete_Subprogram_Declaration.
28673 Char_Literal_Value field is now a Uint.
28675 * trans.c: Get rid of junk Uint2 reference.
28676 Char_Literal_Value field is now a Uint.
28677 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
28678 (gigi): Correct third arg to gimplify_body.
28680 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
28681 (TYPE_LANG_FLAG_0): Check for record or union.
28683 * treepr.adb: Char_Literal_Value field is now a Uint
28685 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
28688 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
28689 Add full UTF-32 support
28690 Char_Code is now 32 bits
28692 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
28693 wide character UTF_32 line terminators.
28694 Initialize Main_Source_File to avoid error when no main
28697 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
28698 (Main_Source_File) when no main source has been loaded, to avoid
28701 2005-02-09 Robert Dewar <dewar@adacore.com>
28703 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
28704 Fix name of Set routine
28706 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
28709 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
28710 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
28713 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
28714 forms of Get_Line subprograms for AI-301.
28716 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
28717 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
28718 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
28719 a-stwima.ads: Minor reformatting.
28721 2005-02-09 Doug Rupp <rupp@adacore.com>
28722 Thomas Quinot <quinot@adacore.com>
28724 * adaint.c, adaint.h
28725 [VMS] (to_ptr32): New function.
28726 (MAYBE_TO_PTR32): New macro.
28727 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
28729 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
28730 [VMS] (#define fork()): Remove since unneccessary.
28731 (__gnat_set_close_on_exec): New routine to support
28732 GNAT.OS_Lib.Set_Close_On_Exec.
28734 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
28735 the parent side as close-on-exec so that they are not inherited by the
28738 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
28739 set or clear the FD_CLOEXEC flag on a file descriptor.
28741 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
28742 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28746 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
28747 on the field if Pragma Component_Alignment (Storage_Unit).
28748 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
28749 side-effects as if it were a constant; also make SAVE_EXPR to protect
28751 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
28753 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
28754 (components_to_record): Test it.
28755 Fix improper usage of REFERENCE_CLASS_P.
28757 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
28760 * utils2.c: Minor reformatting.
28762 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
28763 handle other cases like RECORD_TYPE.
28765 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
28767 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28769 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
28770 component of an array of arrays in an assignment context, and the
28771 aggregate has component associations that require sliding on
28772 assignment, force reanalysis of the aggregate to generate a temporary
28773 before the assignment.
28774 (Must_Slide): Make global to the package, for use in Gen_Assign.
28776 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28778 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
28779 unchecked union with no inferable discriminants, return a
28780 Raise_Program_Error node, rather than inserting it at the point the
28782 (Expand_Record_Equality, Component_Equality): Handle properly the case
28783 where some subcomponent is an unchecked union whose generated equality
28784 code raises program error.
28786 2005-02-09 Doug Rupp <rupp@adacore.com>
28788 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
28789 [VMS] (#define exit hack): Remove.
28791 2005-02-09 Pascal Obry <obry@adacore.com>
28792 Arnaud Charlet <charlet@adacore.com>
28794 * init.c (__gnat_initialize): Add a new parameter eh which contains the
28795 address of the exception registration. The Win32 version of this
28796 routine calls __gnat_install_SEH_handler() to initialize the SEH
28797 (Structured Exception Handling) handler.
28798 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
28799 SEH (Structured Exception Handling) now.
28800 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
28801 (__gnat_initialize for ppc-vxworks): Adjust comments and the
28802 preprocessor condition protecting the call to the extra eh setup
28803 subprogram, which is only available for the ppc target.
28804 (__gnat_clear_exception_count): replaced reference to
28805 variable taskIdCurrent by call to taskIdSelf(), cleaner.
28807 * seh_init.c: New file.
28809 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
28810 (GNATBIND_OBJS): Idem.
28812 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
28813 routine takes a new parameter (a pointer to the exception registration
28814 for the SEH (Structured Exception Handling) support.
28816 * raise.h: (__gnat_install_SEH_handler): New prototype.
28817 Update copyright notice.
28819 * s-tassta.adb (Task_Wrapper): Declare the exception registration
28820 record and initialize it by calling __gnat_install_SEH_handler.
28822 2005-02-09 Vincent Celier <celier@adacore.com>
28824 * make.adb (Gnatmake): Do not fail when the main project has no object
28827 2005-02-09 Doug Rupp <rupp@adacore.com>
28829 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
28830 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
28831 [VMS]: Add translations for g-enblsp.adb.
28833 * s-asthan-vms.adb: Removed.
28834 * s-asthan-vms-alpha.adb: Added.
28836 2005-02-09 Pascal Obry <obry@adacore.com>
28838 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
28839 (LIBGNAT_OBJS): Add seh_init.o.
28841 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28844 * Makefile.in: Link all gnat tools with -static-libgcc, since
28845 -shared-libgcc is now used by default on some systems (e.g. linux with
28847 Remove references to Makefile.prolog/generic, no longer used.
28849 2005-02-09 Vincent Celier <celier@adacore.com>
28851 * prj-makr.adb (Process_Directory): Put file name in canonical case
28852 before matching against the patterns.
28853 If gnatname has been invoked as <prefix>-gnatname
28854 then invoke the compiler as <prefix>-gcc, not just "gcc".
28856 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28858 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
28859 with expansion disabled. The actual subtype is needed among other
28860 places when the selected component appears in the context of a loop
28861 bound, and denotes a packed array.
28862 (Operator_Check): Always use the first subtype in the
28863 error message, to avoid the appearance of internal base types.
28864 (Transform_Object_Operation): Copy each actual in full
28865 to the parameter associations of the constructed call, rather than
28866 using the shallow copy mechanism of New_Copy_List. This ensures that
28867 the chaining of named associations is done properly.
28868 (Complete_Object_Operation): Rewrite node, rather than
28869 replacing it, so that we can trace back to the original selected
28872 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
28873 and calls that use object notation, if the called function is not
28874 declared in a withed unit, place the elaboration constraint on the
28875 unit in the context that makes the function accessible.
28876 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
28877 imposes an elaboration constraint between two packages.
28879 2005-02-09 Ed Schonberg <schonberg@adacore.com>
28881 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
28882 views of a private type after handling its private dependents, to
28883 maintain proper stack discipline between entry and exit from the
28886 2005-02-09 Cyrille Comar <comar@adacore.com>
28888 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
28889 Minor reformatting.
28891 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28893 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
28894 fields for foreign threads.
28896 2005-02-09 Doug Rupp <rupp@adacore.com>
28898 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
28899 recursion warnings when compiled with -gnatdm.
28901 2005-02-09 Robert Dewar <dewar@adacore.com>
28903 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
28904 Slight fix to documentation of -gnaty with no parameters
28906 * xr_tabls.ads: Add ??? comment for missing overall comment
28908 * xsinfo.adb: Make default file name be sinfo.h, since this is what
28909 we now use by default.
28911 * xsnames.adb: Adjust end of file test to look for five space followed
28912 by '#' instead of six spaces. The format of xsnames.adb was modified
28913 in the last update.
28915 * a-numeri.ads: Add reference to AI-388 for greek letter pi
28918 * clean.adb: Minor reformatting.
28920 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
28921 gnatname.adb: Minor reformatting
28922 Add 2005 to copyright output when utility is run
28924 * csets.adb: Eliminate obsolete comment
28926 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
28929 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
28931 2005-02-09 Sergey Rybin <rybin@adacore.com>
28933 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
28934 the difference between compact and incompact layout and add the record
28935 representation clause to the example illustrating different layouts.
28936 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
28937 component clauses").
28939 2005-02-09 Florian Villoing <villoing@adacore.com>
28941 * gnat_ugn.texi: Fix typos.
28942 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
28944 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
28945 in the generated documentation.
28947 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28949 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
28951 Update linker wrapper when linking with non GNU C++.
28953 2005-02-09 Pascal Obry <obry@adacore.com>
28956 Document the procedure to debug the DllMain routine on Windows.
28957 Add note about -funwind-tables and mixed Ada and C/C++ programming in
28959 Document new BIND qualifer /RETURN_CODES=VMS.
28961 2005-02-09 Ben Brosgol <brosgol@adacore.com>
28963 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28964 Edited gnatmetric chapter
28966 2005-02-09 Robert Dewar <dewar@adacore.com>
28969 Changes to document new wide wide character support
28971 Update documentation on Normalize_Scalars and Initialize_Scalars
28973 2005-02-09 Pascal Obry <obry@adacore.com>
28975 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
28977 2005-02-09 Jose Ruiz <ruiz@adacore.com>
28979 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
28980 from the VxWorks kernel) that is needed for getting the active
28981 priority of the different tasks.
28983 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
28984 Use a pragma Elaborate_Body in the spec file instead.
28985 Noticed by code reading.
28987 2005-02-09 Thomas Quinot <quinot@adacore.com>
28989 * exp_util.ads: Minor correction in comment.
28991 2005-02-09 Arnaud Charlet <charlet@adacore.com>
28993 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
28994 since this procedure is now too complex to be worth inlining.
28996 2005-02-09 Richard Henderson <rth@redhat.com>
28998 * utils.c (gnat_define_builtin): Remove.
28999 (gnat_install_builtins): Use build_common_builtin_nodes.
29001 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29003 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29004 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29005 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29006 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29007 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29008 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29009 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29010 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29011 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29012 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29013 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29014 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29015 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29016 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29017 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29018 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29019 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29020 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29021 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29022 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29023 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29024 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29025 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29026 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29027 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29028 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29029 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29030 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29031 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29032 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29033 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29034 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29035 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29036 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29039 2005-01-27 Laurent Guerby <laurent@guerby.net>
29041 * Makefile.in: Fix a-intnam.ads from previous commit,
29042 add 2005 to copyright.
29043 * a-intman-rtems.ads: Renamed to...
29044 * a-intnam-rtems.ads:
29046 2005-01-27 Laurent Guerby <laurent@guerby.net>
29048 * Makefile.in: Rename GNAT RTEMS specific files.
29049 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
29050 5rosinte.ads, 5rparame.adb: Replaced by files below.
29051 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29052 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29054 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
29055 Laurent Guerby <laurent@guerby.net>
29058 * 5rosinte.ads: Add No_Key constant.
29059 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29060 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
29062 2005-01-26 Laurent Guerby <laurent@guerby.net>
29065 * i-cobol.adb (Valid_Numeric): Handle zero length case.
29067 2005-01-20 Richard Henderson <rth@redhat.com>
29069 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29070 a-intnam-linux.ads and system-linux-alpha.ads.
29071 * a-intnam-linux-alpha.ads: Remove file.
29072 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29073 * system-linux-alpha.ads: New file.
29075 2005-01-18 Jakub Jelinek <jakub@redhat.com>
29078 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29079 set to the new string.
29081 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
29083 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29086 2005-01-18 Richard Henderson <rth@redhat.com>
29088 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29089 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29091 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29093 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
29095 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29096 (GCC_ZCX_Support): Likewise.
29098 2005-01-11 Bastian Blank <waldi@debian.org>
29100 * system-linux-s390.ads: Define Preallocated_Stacks.
29101 * system-linux-s390x.ads: Likewise.
29103 2005-01-04 Arnaud Charlet <charlet@adacore.com>
29105 * gnat_ugn.texi: Fix texi errors with null variables.
29107 2005-01-03 Thomas Quinot <quinot@adacore.com>
29109 * gen-soccon.c: New utility program to generate g-soccon.ads
29112 * socket.c, gsocket.h: Split inclusion of system header files into a
29113 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29115 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29116 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29117 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29118 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29119 should not be edited by hand anymore, but should be regenerated using
29122 2005-01-03 Robert Dewar <dewar@adacore.com>
29123 Ed Schonberg <schonberg@adacore.com>
29124 Vincent Celier <celier@adacore.com>
29126 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29127 on/off, since this is an obsolescent feature, for which we now generate
29130 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29131 warning mode is set and obsolescent usage of this attribute occurs.
29132 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29133 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29134 predates, and partly motivates, the adoption of the AI.
29135 Implement new Ada 2005 attribute Mod
29137 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29140 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29142 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29143 pragma restrictions.
29144 New entry for Ada 2005 attribute Mod.
29147 Add recognition of new pragma Restrictions No_Dependence
29148 Recognize restriction No_Obsolescent_Features at parse time
29150 * bcheck.adb: Add circuitry for checking for consistency of
29151 No_Dependence restrictions.
29153 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29156 * restrict.ads, restrict.adb: Add subprograms to deal with
29157 No_Dependence restrictions.
29159 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29162 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29163 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29165 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29166 dummy parameter to scng instantiation.
29167 Needed for new restriction No_Obsolescent_Features
29169 * scn.adb: (Obsolescent_Check): New procedure
29170 Needed for new restriction No_Obsolescent_Features
29172 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29173 specified by AI-285, needed for implementation of AI-388 (adding greek
29174 pi to Ada.Numerics).
29175 Add new generic formal to scng, needed for new restriction
29176 No_Obsolescent_Features.
29178 * s-rident.ads: Add new restriction No_Obsolescent_Features.
29180 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29181 restrictions lines.
29182 (Scan_ALI): When finding an unexpected character on an R line, raise
29183 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29184 Ignore_Errors is True, default restrictions are set and scanning of the
29185 ALI file continues with the next line. Also, when Bad_R_Line is raised
29186 and Ignore_Errors is True, skip to the end of le line.
29188 * sem_ch10.adb: Check that explicit with's do not violate
29189 No_Dependence restrictions.
29190 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29191 illegal context clauses containing child units of instance.
29193 * sem_prag.adb: Processing and checking for new No_Dependence
29195 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29196 analyze and check the External argument.
29198 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29200 2005-01-03 Robert Dewar <dewar@adacore.com>
29202 * atree.adb: Add a fifth component to entities
29203 This allows us to add 32 flags and four new fields
29205 * atree.ads: Add a fifth component to entities
29206 This allows us to add 32 flags and four new fields
29208 * einfo.ads, einfo.adb: Document new fields and new flags now available
29209 Add routines for printing new fields
29211 * treepr.adb: Call routines to print out additional fields if present
29213 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29215 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29216 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29218 * Makefile.in: Add support to build shared Ada libraries on solaris x86
29219 Remove gpr2make, replaced by gprmake.
29220 Remove references to gnatmem and libaddr2line.
29221 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29222 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29223 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29224 a-numaux-darwin.ads and a-numaux-darwin.adb
29225 Enable mlib-tgt-lynxos.adb on lynxos.
29227 * Make-lang.in: Remove rules for gpr2make.
29228 When generating sdefault.adb, do not call Relocate_Path
29229 on S3 for function Target_Name, as it is not a path.
29230 Remove references to gnatmem and libaddr2line.
29232 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29235 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
29237 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29238 address is incompatible with its base type alignment constraints when
29239 this can be decided statically.
29241 2005-01-03 Olivier Hainque <hainque@adacore.com>
29243 * decl.c (compatible_signatures_p): New function. The intended purpose
29244 is to check if two function signatures for a call-site and a callee are
29245 compatible enough for the call to be valid. The underlying purpose is
29246 to check if a call to a mapped builtin is using the right interface.
29247 The current code actually does not check antyhing - this a placeholder
29248 for future refinements.
29249 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29250 builtin calls for convention Intrinsic.
29252 * gigi.h (builtin_decl_for): Declare (new function).
29254 * utils.c (gnat_install_builtins): Install the target specific builtins.
29255 (builtin_decl_for): New function, provide a dummy body for now.
29257 2005-01-03 Geert Bosch <bosch@adacore.com>
29259 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29260 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29261 (Pred): Implement in terms of Succ.
29263 * trans.c (convert_with_check): Reimplement conversion of float to
29266 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29267 Vincent Celier <celier@adacore.com>
29269 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29270 bounds can be negative, and must be declared Int, not Nat.
29272 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29273 array is checked after using the index in the array.
29275 * makegpr.adb (Add_Switches): Check if there is a package for the
29276 processor. If there is no package, do not look for switches.
29278 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29280 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29281 generation of predefined stream operations (specs and bodies) should
29282 proceed. Under various restrictions these subprograms must not be
29285 2005-01-03 Thomas Quinot <quinot@adacore.com>
29288 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29289 amount of PCS-specific code in RACW stubs generation.
29290 (Copy_Specification): Set Etype on copied formal parameter entities, as
29291 this information is needed for PolyORB stubs generation.
29292 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29293 variable Dynamic_Async.
29294 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29295 (Build_RPC_Receiver_Specification): Make generic again, as recent
29296 changes have allowed RPC receivers to have the same profile for both
29297 variants of the PCS.
29298 Reorganise RPC receiver generation to reduce differences between the
29299 structure of GARLIC and PolyORB RPC receivers.
29300 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29302 Simplify elaboration code for RCI packages.
29304 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29305 generation to reduce differences between the structure of GARLIC and
29306 PolyORB RPC receivers.
29308 * s-stratt.adb: Fix typo in comment.
29310 2005-01-03 Thomas Quinot <quinot@adacore.com>
29312 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29313 copied from Make_Init_Call).
29315 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29316 reads and assignments on a temporary variable declared with appropriate
29319 2005-01-03 Robert Dewar <dewar@adacore.com>
29321 * i-c.adb (To_C): Raise CE if string is null and Append_Null
29323 2005-01-03 Robert Dewar <dewar@adacore.com>
29325 * i-cstrin.adb (Update): Do not append a null in form called with a
29326 String. This avoids unintended behavior.
29328 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29331 * init.c: Fix warnings on Free BSD section.
29333 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29336 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29339 2005-01-03 Vincent Celier <celier@adacore.com>
29341 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29342 libraries when Unique_Compile is True (-u switch).
29345 2005-01-03 Robert Dewar <dewar@adacore.com>
29347 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29348 upper case letter or underscore after W, as allowed by spec.
29350 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29352 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29353 darwin port by using proper type definitions from header files.
29354 Use SIGTERM instead of SIGABRT for SIGADAABORT.
29356 2005-01-03 Robert Dewar <dewar@adacore.com>
29358 * par.adb: Enhance error message handling for configuration file
29361 2005-01-03 Robert Dewar <dewar@adacore.com>
29363 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29364 removed during the previous update (test properly for case of dividing
29365 largest negative number by -1, which generates overflow).
29367 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29368 Sergey Rybin <rybin@adacore.com>
29370 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29371 to use as the defining identifier for a formal package.
29372 (Remove_Parent): If the instance takes place within (an instance of)
29373 a sibling, preserve private declarations of common parent.
29375 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29377 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29378 to determine whether one of the operands is a fixed-point type for
29379 which a user-defined multiplication or division operation might be
29382 * sem_res.adb (Valid_Conversion): The legality rules for conversions
29383 of access types are symmetric in Ada 2005: either designated type can
29386 2005-01-03 Vincent Celier <celier@adacore.com>
29388 * s-fileio.adb (Temp_File_Record): Change length of string component
29389 Name from L_tmpnam + 1 to max_path_len + 1.
29391 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29393 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29394 Self_Id.Deferral_Level = 0.
29395 (Do_Pending_Action): Move this function to the spec.
29397 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29398 Do_Pending_Action explicitely when needed, in case we're using
29399 No_Abort restrictions.
29401 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29402 deferral level since it will not get changed by the generated code.
29403 Keeping a default value of 1 would prevent some operations (e.g.
29404 select or delay) to proceed successfully.
29406 2005-01-03 Ben Brosgol <brosgol@adacore.com>
29407 Robert Dewar <dewar@adacore.com>
29408 Cyrille Comar <comar@adacore.com>
29410 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29411 porting guide chapter (vms version).
29412 Revised doc title (removed "for native platforms") and subtitle.
29413 Add discussion on warning flag for obsolescent features. First we
29414 note that it applies to obsolete GNAT features, which was previously
29415 omitted. Second we contrast the behavior with that of the new
29416 Ada 2005 AI-368 restriction No_Obsolescent_Features.
29417 Preliminary rewriting of GNAT & libraries chapter in order to take
29418 into account default project locations & new project manager
29421 2005-01-03 Robert Dewar <dewar@adacore.com>
29423 * cstand.adb (Create_Operators): Clean up format and documentation of
29424 unary and binary operator result tables. No change in code, just
29425 reformatting and addition of comments.
29427 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29428 sem_ch2.adb: Minor reformatting
29430 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29431 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29432 comments for Tree_Read and Tree_Write.
29434 2005-01-03 Pascal Obry <obry@adacore.com>
29436 * exp_attr.ads: Minor reformatting.
29438 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
29440 * comperr.adb (Compiler_Abort): Add specialized message for GAP
29443 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29445 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29446 whether the ancestor type is private, as may be the case with nested
29449 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
29452 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29454 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
29456 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29457 * utils2.c (build_unary_op): Likewise.
29459 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29461 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29463 2004-12-19 Richard Henderson <rth@redhat.com>
29465 * trans.c (gigi): Update gimplify_body call.
29467 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
29469 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29471 2004-12-07 Ed Falis <falis@adacore.com>
29473 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29474 current task being suspended.
29476 * init.c (__gnat_clear_exception): added to reset VxWorks exception
29478 (__gnat_map_signal): removed test for current task being suspended.
29480 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29482 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29483 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29484 targets (such as AAMP).
29486 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29488 * atree.adb (Visit_Itype): Create a new name for the generated itype,
29489 because the back-end may otherwise treat it as a redefinition of the
29492 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
29494 * back_end.adb (Scan_Back_End_Switches): Accept --param.
29496 * lang-specs.h: Accept --param.
29498 2004-12-07 Vincent Celier <celier@adacore.com>
29500 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29501 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29502 Current_Body_Suffix => Ada_Body_Suffix).
29503 Take into account Externally_Built attribute.
29505 * clean.adb (In_Extension_Chain): Always return False when one of the
29506 parameter is No_Project.
29507 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29508 Ada_Language_Index).
29509 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29510 Process_Languages for procedure Parse).
29512 * gnatcmd.adb (Carg_Switches): New table.
29513 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29514 Adapt to name changes in package Prj (Current_Spec_Suffix =>
29515 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29517 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29518 Header_Num and function Hash are now declared in package Prj,
29521 * prj.adb (Suffix_Of): New function.
29522 (Set (Suffix)): New procedure.
29523 (Hash): One function moved from Prj.Com
29524 (Is_Present, Language_Processing_Data_Of): New functions
29525 (Set): Two new procedures
29526 (Add_Language_Name, Display_Language_Name): New procedures
29528 * prj.ads: (Suffix_Of): New function
29529 (Set (Suffix)): New procedure
29530 Add several types and tables for multi-language support.
29531 (Header_Num): Type moved from Prj.Com
29532 (Hash): Two functions moved from Prj.Com
29533 (Is_Present, Language_Processing_Data_Of): New functions
29534 (Set): Two new procedures
29535 (Add_Language_Name, Display_Language_Name): New procedures
29536 (Naming): Component name changes:
29537 Current_Spec_Suffix => Ada_Spec_Suffix,
29538 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29539 Impl_Suffixes, Supp_Suffixes.
29540 (Project_Data): New components: Externally_Built, Supp_Languages,
29541 First_Language_Processing, Supp_Language_Processing, Default_Linker,
29542 Default_Linker_Path.
29544 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29545 new package Language_Processing with its attributes (Compiler_Driver,
29546 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29547 Binder_Driver, Default_Linker).
29549 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29550 (Header_Num): Type moved to package Prj
29552 * prj-env.adb: Adapt to name changes in package Prj
29553 (Current_Spec_Suffix => Ada_Spec_Suffix,
29554 Current_Body_Suffix => Ada_Body_Suffix).
29556 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29557 default to the project path, except the "-" is one of the directories
29558 in env var ADA_PROJECT_PATH.
29559 (Current_Project_Path): Global variable, replacing Project_Path
29560 that was in the body of Prj.Part.
29561 (Project_Path): New function
29562 (Set_Project_Path): New procedure
29563 Initialize Current_Project_Path during elaboration of the package
29564 Remove dependency on Prj.Com, no longer needed
29566 * prj-ext.ads (Project_Path): New function
29567 (Set_Project_Path): New procedure
29569 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29570 suffix is defined for language <lang>.
29571 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29572 accessing directly the components of Naming.
29573 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29574 Reorganise of this package.
29575 Break procedure Check in several procedures.
29577 * prj-nmsc.ads: Replace all procedures (Ada_Check,
29578 Other_Languages_Check and Language_Independent_Check) with a single
29581 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29582 Process_Languages, no longer needed.
29584 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29585 Current_Project_Path.
29586 Remove elaboration code, moved to the body of Prj.Ext
29587 Use new function Prj.Ext.Project_Path instead of old variable
29589 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29590 When comparing with project paths on the stack, first put the resolved
29591 path in canonical case.
29592 (Parse_Single_Project): Set the path name of the project file in the
29593 tree to the normalized path.
29595 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29596 parameter Process_Languages, no longer needed.
29597 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29598 Other_Languages_Check.
29600 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29601 to store the resolved canonical path of the project file.
29602 Remove dependency to Prj.Com, no longer needed
29604 * prj-util.adb: Adapt to name changes in package Prj
29605 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29608 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29609 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29610 Externally_Built, Include_Option, Language_Processing.
29612 * makegpr.adb: Numerous changes due to changes in packages
29615 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29616 default to the project path, except whe "-" is one of the directories
29617 in env var ADA_PROJECT_PATH.
29618 (Gnatls): In verbose mode, add the new section "Project Search Path:"
29620 2004-12-07 Robert Dewar <dewar@adacore.com>
29622 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29624 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29627 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29628 flag. No longer needed now that we handle this in gnat1drv.adb.
29630 * repinfo.ads: Minor reformatting
29632 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29633 Olivier Hainque <hainque@adacore.com>
29634 Eric Botcazou <ebotcazou@adacore.com>
29636 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
29637 TYPE_SIZE_UNIT of result type if SIZE is not specified.
29638 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
29639 of a bitfield, which we know is useless and causes trouble because of
29640 alignment implications.
29642 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
29644 (process_attributes): Clear DECL_COMMON again when a section attribute
29646 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
29647 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
29648 (create_field_decl): Special case ADDRESSABLE negative to mean
29649 "no bitfield creation", to be used by make_aligning_type. Don't
29650 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
29651 fields claimed addressable still have to be bitfields. Use
29652 value_factor_p instead of a raw binop construction to check for the
29653 position's alignment.
29655 2004-12-07 Geert Bosch <bosch@adacore.com>
29657 * eval_fat.adb: Revert previous change.
29659 2004-12-07 Thomas Quinot <quinot@adacore.com>
29660 Ed Schonberg <schonberg@adacore.com>
29662 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
29663 with an implicit dereference as its prefix, use
29664 Insert_Explicit_Dereference instead of merely rewriting the prefix into
29665 an explicit dereference. This ensures that a reference to the original
29666 prefix is generated, if appropriate.
29668 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
29669 dereference is rewritten to an explicit one, generate a reference to
29670 the entity denoted by its prefix using the original prefix node, so
29671 the dereference can be properly recorded as a read of the denoted
29672 access value, if appropriate.
29674 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
29675 emitting 'assigned but never read' warning on a variable on the basis
29676 that it has an access type.
29677 (Check_References): Emit unreferenced warning when the scope is a
29680 2004-12-07 Robert Dewar <dewar@adacore.com>
29681 Ed Schonberg <schonberg@adacore.com>
29683 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
29686 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
29687 leaving call unchanged.
29688 This deals with the case where the pragma Import specified
29689 an external name, to be handled by the back end.
29691 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
29692 subprogram which is Imported with convention Intrinsic if an
29693 External_Name argument is specified.
29694 (Process_Import_Or_Interface): Properly diagnose link name argument.
29695 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
29696 with Sem_Ch6.Cannot_Inline.
29697 (Process_Inline): Provide separate warning for inapplicable inline
29699 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
29700 treatment is uniform on different targets.
29702 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29704 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
29705 construct is rewritten, preserve end label to permit source navigation.
29707 2004-12-07 Thomas Quinot <quinot@adacore.com>
29709 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
29710 Specific_Build_Stub_Target): New subprograms.
29711 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
29712 the PCS implementation used, using the above PCS-customized subprograms.
29713 Minor reformatting.
29714 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
29715 for generation of DSA code targeted to the PolyORB PCS.
29716 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
29717 implementation of the partition communication subsystem in ancillary
29719 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
29720 PolyORB_Support.Build_Stub_Type): New subrograms containing the
29721 PCS-specific part of Add_Stub_Type.
29722 (Insert_Partition_Check): Use runtime library function to perform
29725 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
29726 (RE_Same_Partition): New entity, from s-parint.
29728 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
29730 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29732 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
29733 Output the copyright message on a separate line from the version
29736 2004-12-07 Joel Brobecker <brobecker@adacore.com>
29738 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
29739 compile-time warning.
29741 2004-12-07 Robert Dewar <dewar@adacore.com>
29743 * g-regpat.adb: (Match): Change a misuse of or to or else
29745 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29748 (Generate_Reference): Handle properly a reference to an entry formal,
29749 when an accept statement has a pragma Unreferenced for it.
29751 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
29752 and the Has_Pragma_Unreferenced flag for each formal before analyzing
29753 the body, to ensure that warnings are properly emitted for each accept
29754 statement of a given task entry.
29756 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
29758 * Makefile.in: Add support for foreign threads on VMS.
29760 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29762 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
29764 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
29766 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
29768 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
29770 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
29772 2004-12-07 Robert Dewar <dewar@adacore.com>
29774 * nlists.adb (Prepend_Debug): Remove parameters and nest within
29776 (Remove_Next_Debug): Same fix
29778 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
29779 maintain back pointers now, though we did not used to, and comments
29781 (Prepend): Remove pragma Inline.
29782 (Remove_Next): Same cleanup
29784 2004-12-07 Thomas Quinot <quinot@adacore.com>
29786 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
29787 used to record an implicit dereference as a read operation on its
29788 prefix when operating under -gnatc. Necessary to avoid spurious
29789 'variable assigned but never read' warnings in that mode.
29790 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
29791 is a non-overloaded implicit dereference, call the above subprogram to
29792 ensure proper recording of references.
29794 2004-12-07 Gary Dismukes <dismukes@adacore.com>
29796 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
29797 to be resolved later as part of Analyze_Iteration_Scheme's call to
29800 2004-12-07 Ed Schonberg <schonberg@adacore.com>
29802 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
29803 prefix is not a scalar type, place error message on prefix, not on
29806 2004-12-07 Bernard Banner <banner@adacore.com>
29808 * vxaddr2line.adb: Add support for x86 vxworks
29810 2004-12-07 Thomas Quinot <quinot@adacore.com>
29812 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
29813 documentation of the behaviour of these functions when passed an IP
29814 address that has no record in the system hosts database and no reverse
29817 * cstand.adb, a-tags.ads: Fix typos in comment.
29819 2004-12-07 Robert Dewar <dewar@adacore.com>
29821 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
29822 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
29823 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
29824 s-poosiz.ads: Minor reformatting
29826 * make.adb: Minor reformatting
29827 Add some ??? comments asking for more comments
29829 * s-poosiz.adb: Minor reformatting
29830 Add comments on alignment requirement
29832 * sinfo.ads: Remove obsolete comment and fix typo.
29834 2004-12-07 Vincent Celier <celier@adacore.com>
29835 Sergey Rybin <rybin@adacore.com>
29837 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
29838 Files" with the new tool and package names.
29839 Reformatting to suppress most of the warnings for line too long
29840 Document the new section "Project Search Path:" in the output of
29842 Add gnatmetric section
29844 2004-12-07 Vincent Celier <celier@adacore.com>
29846 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
29847 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
29848 and -eit to -ept. Added qualifier
29849 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
29851 2004-11-27 Andreas Schwab <schwab@suse.de>
29853 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
29855 2004-11-25 Arnaud Charlet <charlet@adacore.com>
29857 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
29858 internal implementation unit GNAT.Sockets.Thin,
29859 as their usage for sockets is non-portable (using the read and write
29860 functions from the system runtime library is fine on UNIX but won't
29861 work under Windows).
29863 * mingw32.h: Update copyright notice.
29865 2004-11-25 Arnaud Charlet <charlet@adacore.com>
29867 * ada-tree.h: Minor reformatting of previous change to avoid lines
29868 longer than 79 characters.
29870 2004-11-25 Olivier Hainque <hainque@adacore.com>
29872 * tb-gcc.c: GCC infrastructure based implementation of
29875 2004-11-24 Steven Bosscher <stevenb@suse.de>
29877 * misc.c (gnat_post_options): Don't clear
29878 flag_inline_functions.
29880 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
29883 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
29886 2004-11-21 Andreas Jaeger <aj@suse.de>
29888 * stylesw.adb: Change Style_Check_Subprogram_Order to
29889 Style_Check_Order_Subprograms.
29891 2004-11-18 Arnaud Charlet <charlet@adacore.com>
29893 * adaint.h, adaint.c
29894 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
29896 Add also a cast to kill another warning.
29897 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
29898 parameter with the priority class of the parent process instead of
29899 always using the NORMAL_PRIORITY_CLASS.
29900 (__gnat_dup): New function.
29901 (__gnat_dup2): New function.
29902 (__gnat_is_symbolic_link): Enable the effective body of this
29903 function when __APPLE__ is defined.
29905 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
29908 2004-11-18 Olivier Hainque <hainque@adacore.com>
29910 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
29911 address of which may be used to represent "others" and "all others"
29912 choices in exception tables, instead of the current harcoded
29913 (void *)0 and (void *)1.
29914 (Setup_Exception): Do nothing in the GNAT SJLJ case.
29916 * gigi.h (others_decl, all_others_decl): New decls representing the
29917 new Others_Value and All_Others_Value objects.
29918 (struct attrib): Rename "arg" component as "args", since GCC expects a
29919 list of arguments in there.
29921 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
29922 corresponding objects exported by a-exexpr, instead of hardcoded dummy
29925 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
29926 others_decl and all_others_decl instead of hardcoded dummy addresses
29927 to represent "others" and "all others" choices, which is cleaner and
29928 more flexible with respect to the possible eh pointer encoding policies.
29930 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
29931 (process_attributes): Account for the naming change of the "args"
29932 attribute list entry component.
29934 * decl.c (build_attr_list): Rename into prepend_attributes to allow
29935 cumulating attributes for different entities into a single list.
29936 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
29937 attributes for the current entity and propagate first subtype
29938 attributes to other subtypes.
29939 <E_Procedure>: Attribute arguments are attr->args and not
29940 attr->arg any more.
29941 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
29942 argument provided, as this is what GCC expects. Use NULL_TREE instead
29945 2004-11-18 Robert Dewar <dewar@adacore.com>
29947 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
29948 Minor reformatting througout (including new function specs)
29949 Add ??? comments asking for clarification.
29951 2004-11-18 Thomas Quinot <quinot@adacore.com>
29953 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
29954 incomplete duplicate implementation of this subprogram from butil.
29956 2004-11-18 Thomas Quinot <quinot@adacore.com>
29958 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
29959 procedures factors the common processing for building an RPC receiver
29960 for an RCI package or an RACW type.
29961 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
29962 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
29963 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
29965 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
29967 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
29969 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
29970 distribution subprogram identifiers that are either subprogram numbers
29972 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
29973 string distribution identifiers assigned to a given subprogram.
29974 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
29975 (Add_RAS_Dereference_TSS): Add comments.
29976 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
29977 is not referenced yet because it will be used by the PolyORB DSA
29979 (Insert_Partition_Check): Remove fossile code.
29980 (First_RCI_Subprogram_Id): Document this constant.
29981 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
29983 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
29984 replaced with calls to Get_Library_Unit_Name_String. Previously there
29985 were several instances of the same code in different locations in the
29986 compiler; this checkin completes the replacement of all of these
29987 instances with calls to a common subprogram.
29988 Minor reformatting.
29990 * sem_dist.adb: Remove comment noting that RPC receiver generation
29991 should be disabled for RACWs that implement RASs.
29992 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
29994 * sem_util.ads, sem_util.adb (Has_Stream): New function
29995 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
29996 qualified name of a library unit into the name buffer.
29997 (Note_Possible_Modification): Generate a reference only
29998 if the context comes from source.
30000 * snames.ads (PCS_Names): New subtype corresponding to names of
30001 supported implementations of the Partition Communication Subsystem
30002 (PCS) (i.e. the runtime library support modules for the distributed
30005 2004-11-18 Robert Dewar <dewar@adacore.com>
30006 Ed Schonberg <schonberg@adacore.com>
30008 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30009 (Has_Rep_Pragma): New function
30010 (Has_Attribute_Definition_Clause): New function
30011 (Record_Rep_Pragma): Moved here from sem_ch13.adb
30012 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30014 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30016 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30017 (Expand_Pragma_Psect_Object): New procedure
30018 These procedures contain the revised and cleaned up processing for
30019 these two pragmas. This processing was formerly in Sem_Prag, but
30020 is more appropriately moved here. The cleanup involves making sure
30021 that the pragmas are properly attached to the tree, and that no
30022 nodes are improperly shared.
30024 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30025 pragmas to Exp_Prag, which is more appropriate.
30026 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30027 check for duplicates Remove use of Is_Psected flag, no longer needed.
30028 Use new Make_String_Literal function with string.
30030 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30031 that are functions return universal values, that have to be converted
30032 to the context type.
30033 Use new Make_String_Literal function with string.
30034 (Get_Stream_Convert_Pragma): New function, replaces the use of
30035 Get_Rep_Pragma, which had to be kludged to work in this case.
30037 * freeze.adb: Use new Has_Rep_Pragma function
30039 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30040 function with string.
30041 Use new Has_Rep_Pragma function.
30043 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30046 2004-11-18 Robert Dewar <dewar@adacore.com>
30048 * errout.ads, errout.adb: (First_Sloc): New function
30050 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30051 check (-gnatyx) instead of being included as a redundant construct
30054 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30055 Style_Check_Order_Subprograms.
30057 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30058 stylesw.adb: Add Style_Check_Xtra_Parens
30060 * usage.adb: Add line for -gnatyx (check extra parens)
30062 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30064 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30065 Robert Dewar <dewar@adacore.com>
30067 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30068 discriminant of a constrained subtype, analyze the copy of the
30069 corresponding constraint, because in some cases it may be only
30070 partially analyzed.
30071 Removes long-lived ??? comments.
30073 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30074 handled controlled or secondary-stack expressions within the
30075 iteration_scheme of a loop.
30077 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30078 bounds that may contain functions calls, to prevent memory leaks when
30079 the bound contains a call to a function that uses the secondary stack.
30080 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30081 generate temporaries for loop bounds that might contain function calls
30082 that require secondary stack and/or finalization actions.
30084 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30085 selected component and the selector is overloadable (not just a
30086 function) treat as function call, Analyze_Call will disambiguate if
30088 (Analyze_Selected_Component): Do not generate an actual subtype for the
30089 selected component if expansion is disabled. The actual subtype is only
30090 needed for constraint checks.
30091 (Analyze_Allocator): If restriction No_Streams is set, then do
30092 not permit objects to be declared of a stream type, or of a
30093 composite type containing a stream.
30095 * restrict.ads: Remove the a-stream entry from Unit_Array, since
30096 No_Streams no longer prohibits with'ing this package.
30098 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30099 discriminants, but the parent base has unknown discriminants, there is
30100 no discriminant constraint to inherit. Such a discrepancy can arise
30101 when the actual for a formal type with unknown discriminants is a
30102 similar private type whose full view has discriminants.
30103 (Analyze_Object_Declaration): If restriction No_Streams is set, then
30104 do not permit objects to be declared of a stream type, or of a
30105 composite type containing a stream.
30107 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30109 * exp_dbug.ads: Update documentation to reflect simpler encoding for
30110 protected operations.
30112 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30113 generated name, it complicates decoding in gdb and hinders debugging
30114 of protected operations.
30115 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30116 flag for the protected entry barrier function.
30117 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30118 flag for the protected entry function.
30120 2004-11-18 Nicolas Setton <setton@adacore.com>
30122 * expect.c: Define __unix__ when __APPLE__ is defined.
30124 * Makefile.in: Inform the value of the variable GMEM_LIB in the
30125 Darwin-specific section.
30127 * lang-specs.h: Change the placement of the %1 marker.
30128 Works around the fact that gcc adds -fPIC by default under Darwin.
30130 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30132 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30133 type of the object with the packed array type, set the Analyzed flag
30134 on the object if it is an entity or simple indexed component, to avoid
30135 spurious type errors.
30137 2004-11-18 Gary Dismukes <dismukes@adacore.com>
30139 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30140 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30141 separate line from the version message.
30143 2004-11-18 Ed Falis <falis@adacore.com>
30145 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30147 (init_float): Eliminate initialization of floating point status for
30148 AE653. The instructions have no effect for vThreads.
30150 2004-11-18 Vincent Celier <celier@adacore.com>
30152 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30153 gnatbind is invoked with -shared.
30155 2004-11-18 Jose Ruiz <ruiz@adacore.com>
30157 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30158 for Detect_Blocking which is redundant with the check done within the
30159 procedure Protected_Single_Entry_Call.
30160 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30161 Detect_Blocking which is redundant with the check done within the
30162 procedure Protected_Single_Entry_Call.
30164 2004-11-18 Vincent Celier <celier@adacore.com>
30166 * makegpr.adb (Compile): Put the compiling switches (in package
30167 Compiler and on the command line) immediately after "-c", instead of
30168 at the end of the command line invocation of the compiler, when
30169 compiling a non-Ada file.
30170 (Build_Global_Archive): When there is no need to rebuild the archive,
30171 set Global_Archive_Exists, so that the archive is passed to the linker
30174 2004-11-18 Robert Dewar <dewar@adacore.com>
30175 Sergey Rybin <rybin@adacore.com>
30178 Remove extra paren check from list of checks for redundant constructs
30179 Add documentation of new -gnatyx style check (check extra parens)
30180 Remove paragraph about gnatelim debug options.
30182 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30183 objects rather than forbidding dependencies on the package Ada.Streams.
30185 * sinfo.ads: Add ??? note that we should document pragmas passed to
30188 * g-expect.ads: Fix a few typos in the comments.
30190 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
30192 * misc.c (gnat_handle_option): Use %< and %> for quoting in
30195 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30197 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30199 2004-11-07 Andreas Schwab <schwab@suse.de>
30201 * Makefile.in (install-gnatlib): Remove spurious hyphen.
30203 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
30206 * Makefile.in (darwin): Set soext to .dylib.
30208 2004-10-26 Vincent Celier <celier@gnat.com>
30209 Thomas Quinot <quinot@act-europe.fr>
30211 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30212 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30213 there is no use of GNAT.Sockets.Constants.
30214 Remove remaining pragma Import for C_Write
30215 Remove C_Read and C_Write from internal implementation unit
30216 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30217 the read and write functions from the system runtime library is fine
30218 on UNIX but won't work under Windows).
30220 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30221 (Check_Selector): Use C_Recv instead of C_Read.
30222 Selectors are the GNAT.Sockets abstraction to perform a select()
30223 call on a set of descriptors. To allow abortion of an ongoing
30224 select operation, some data is written to a dedicated socket that
30225 is always monitored.
30226 Under Windows, the write and read library functions cannot operate
30227 on sockets, so we need to use send and recv instead, which is portable
30228 across all supported platforms.
30230 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30231 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30232 (using the read and write functions from the system runtime library is
30233 fine on UNIX but won't work under Windows).
30235 2004-10-26 Nicolas Setton <setton@act-europe.fr>
30237 * mlib-tgt-darwin.adb: New file.
30239 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30240 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30241 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30242 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30245 * Makefile.in: Add support for building shared libraries under Darwin.
30246 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30247 the low level EH init subprogram to be called from __gnat_initialize.
30249 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30250 indicates which options to pass to the archive indexer.
30252 * mlib-utl.adb: Add support for calling ranlib with additional
30253 options. This is needed for instance under Mac OS X.
30254 (Ranlib_Options): New global variable, used to store the potential
30255 options to pass to ranlib.
30256 (Ar): Use Ranlib_Options when spawning ranlib.
30257 (Initialize): Set the value of ranlib option.
30259 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30261 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30262 instead of 8K, to reflect the real potential needs for stack-checking
30265 2004-10-26 Pascal Obry <obry@gnat.com>
30267 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30269 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30270 Windows only the initial thread stack size can be set so it is good to
30271 start we a low stack size.
30272 The OS will adjust the size as needed.
30274 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30275 Nicolas Setton <setton@act-europe.fr>
30277 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30278 "__unix__" instead of "unix".
30279 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30280 sections were just mistakenly ignored. The former is
30281 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30282 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30283 of hpux. This prevents an unwanted definition of the symbol
30284 convert_addresses in adaint.o.
30286 2004-10-26 Gary Dismukes <dismukes@gnat.com>
30288 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30289 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30291 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30293 * a-filico.ads, a-filico.adb: fix incorrect header.
30295 2004-10-26 Javier Miranda <miranda@gnat.com>
30297 * a-ststio.ads: Fix typo in identifier
30299 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30301 * sem_ch4.adb: Minor reformatting.
30303 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30305 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30306 enabled, check the result of unary and binary operations when the
30307 expression is the right-hand side of an assignment.
30309 2004-10-26 Vincent Celier <celier@gnat.com>
30311 * clean.adb (Delete): Do not output warnings when in quiet output and
30312 not in verbose mode.
30313 (Force_Deletions): New Boolean flag, defaulted to False
30314 (Delete): Only delete a file if it is writable, and when
30315 Force_Deletions is True.
30316 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30317 (Usage): Line for new switch -f
30318 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30321 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30323 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30324 JM type only if its size matches that of the wrapper. When a size is
30325 prescribed and the field is not aliased, remove the wrapper of a JM
30326 type only if the size is not greater than that of the packed array.
30327 (gnat_to_gnu_entity): Change the extension of packed array wrappers
30330 2004-10-26 Geert Bosch <bosch@gnat.com>
30332 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30333 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30334 (Pred): Implement in terms of Succ.
30336 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30338 * exp_aggr.adb (Safe_Component): An aggregate component that is an
30339 unchecked conversion is safe for in-place use if the expression of the
30340 conversion is safe.
30341 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30342 be expandable in place even if the aggregate does not come from source.
30343 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30344 designated object of an allocator in place, rather than building it
30345 first on the stack. The previous scheme forces a full copy of the array,
30346 and may be altogether unsusable if the size of the array is too large
30347 for stack allocation.
30349 2004-10-26 Robert Dewar <dewar@gnat.com>
30351 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30352 compares if the component is atomic.
30354 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30355 array assignment if the component type is atomic.
30357 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30358 Eric Botcazou <ebotcazou@act-europe.fr>
30360 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30361 is aliased and is a by_reference type, do not pass by copy.
30362 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30363 detect whether the call is in the right side of an assignment or
30364 the expression of an object declaration. Recurse on component
30365 association within aggregates.
30366 Call it in the condition that determines whether the temporary is
30367 necessary for correct stack-checking.
30369 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30371 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30372 RACW_Type, used in the PolyORB version.
30373 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30374 version and the GARLIC version.
30376 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30377 Rename RCI_Info to RCI_Locator for better consistency between the
30378 GARLIC and PolyORB versions of the distributed systems annex.
30379 (DSA_Implementation_Name): This enumeration lists the possible
30380 implementations of the Partition Communication Subsystem for the
30381 Distributed Systems Annex (DSA). The three available implementations
30382 are the dummy stub implementation (No_DSA), and two versions based on
30383 two different distribution runtime libraries: GARLIC and PolyORB. Both
30384 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30386 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30389 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30390 between the GARLIC and PolyORB versions of the distributed systems
30392 Remove RE_Unbounded_Reclaim_Pool since it is unused.
30394 2004-10-26 Gary Dismukes <dismukes@gnat.com>
30396 * gnat1drv.adb: Suppress calling the back end when
30397 Frontend_Layout_On_Target is true.
30399 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30401 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30402 Set_Read_Only): New subprograms.
30403 These new routines allow the user to set or unset the Owner execute
30404 and Owner write permission flags on a file.
30406 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30407 GNAT.OS_Lib.Set_Executable instead of rolling our own.
30409 2004-10-26 Matthew Gingell <gingell@gnat.com>
30411 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30413 2004-10-26 Pascal Obry <obry@gnat.com>
30415 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30416 memory before the faulting page we properly test the process read
30417 access for this address using appropriate Win32 routine.
30418 (HPUX sections): guard with "__hpux__" instead of "hpux".
30420 2004-10-26 Robert Dewar <dewar@gnat.com>
30422 * lib-xref.adb (Generate_Reference): Don't complain about reference to
30423 entry parameter if pragma Unreferenced set, since we do not properly
30424 handle the case of multiple parameters.
30426 2004-10-26 Vincent Celier <celier@gnat.com>
30428 * prj-env.adb: (Contains_ALI_Files): New Boolean function
30429 (Ada_Objects_Path.Add): For a library project, add to the object path
30430 the library directory only if there is no object directory or if the
30431 library directory contains ALI files.
30432 (Set_Ada_Paths.Add.Recursive_Add): Ditto
30434 2004-10-26 Vincent Celier <celier@gnat.com>
30436 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30437 extension of library projects.
30439 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30440 path defaults to ".:<prefix>/lib/gnat".
30441 (Parse): For an extending all project, allow direct import of a project
30442 that is virtually extended.
30444 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30445 the specified name is directly imported, return its ID. Otherwise, if
30446 an extension of this project is imported, return the ID of the
30449 2004-10-26 Robert Dewar <dewar@gnat.com>
30451 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30452 (Sub3): New procedure, used by Scaled_Divide
30453 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30454 correct more than one instance of failure to propagate carries
30456 (Double_Divide): Handle overflow case of largest negative number
30457 divided by minus one.
30459 * s-arit64.ads (Double_Divide): Document that overflow can occur in
30460 the case of a quotient value out of range.
30463 2004-10-26 Robert Dewar <dewar@gnat.com>
30465 * s-bitops.adb (Bit_Eq): Remove redundant check.
30467 * s-bitops.ads: Minor comment updates
30468 Change some occurrences of Address to System.Address
30470 * s-carsi8.ads: Fix minor cut-and-paste error in comments
30472 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30474 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30475 accessibility check to prefix that is a protected operation.
30477 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30479 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30480 empty, post message on stub.
30482 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30483 Javier Miranda <miranda@gnat.com>
30485 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30486 current instance appears within a unit that is directly in the context
30488 Used to determine whether the body of the instance should be analyzed
30489 immediately after its spec, to make its subprogram bodies available
30490 for front-end inlining.
30491 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30492 constraint is not allowed on the component type (AARM 12.5.3(3))
30494 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30496 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30497 'Storage_Pool): enhance, document & limit detection of non-sharable
30500 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30502 * s-pooglo.ads: Add more documentation now that this pool is properly
30505 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30507 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30508 or protected type with discriminants, do not constrain the
30509 corresponding record type if the subtype declaration has no
30510 discriminant constraints. This can be the case in source code, or in
30511 the subtype declaration created to rename an actual type within an
30514 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30516 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30517 different kind of stub (possibly wrong name for file), do not check
30519 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30520 includes call to some function that returns an unconstrained type, do
30523 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30525 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30526 appear in the code for the main unit. Dependencies among units in the
30527 context of the main unit are established when those other units are
30528 compiled. Otherwise spurious elaboration constraints can generate
30529 incorrect elaboration circularities.
30531 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30532 Ed Schonberg <schonberg@gnat.com>
30534 * sem_util.adb (Is_Aliased_View): Defend against the case where this
30535 subprogram is called with a parameter that is not an object name. This
30536 situation arises for some cases of illegal code, which is diagnosed
30537 later, and in this case it is wrong to call Is_Aliased, as that might
30538 cause a compiler crash.
30539 (Explain_Limited_Type): Refine previous fix to include
30540 inherited components of derived types, to provide complete information.
30542 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30543 is the prival for a protected object.
30544 It is necessary to mark this entity as a variable, in addition to
30545 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30546 modified to avoid checking the Aliased flag on entities that are not
30547 objects. (Checking that flag for non-objects is erroneous and could
30548 lead to a compiler crash).
30550 2004-10-26 Robert Dewar <dewar@gnat.com>
30552 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30553 X_Frac = 0.5, then we know that the number X must be positive.
30554 (Succ): Remove the same redundant test, and also fix the primary test
30555 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30557 (Decompose): Add fuller comments to spec
30559 2004-10-26 Pascal Obry <obry@gnat.com>
30561 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30562 validity (process must have read access). Set to 0 in all other cases.
30563 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30564 violation on Win32.
30565 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30566 segmentation violation.
30568 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30570 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30571 whose type is a constructed subtype of an aliased object with an
30572 unconstrained nominal subtype, convert the actual to the constructed
30573 subtype before taking its address.
30575 2004-10-26 Vincent Celier <celier@gnat.com>
30577 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30578 (Is_Path_Name_Case_Sensitive): New function
30580 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30581 (Base_Name, Simple_Name, Current_Directory, Compose,
30582 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30585 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30586 Vasiliy Fofanov <fofanov@act-europe.fr>
30587 Vincent Celier <celier@gnat.com>
30589 * gnat_ugn.texi: Generalize "finding memory problems" section into a
30590 "memory management issues" section and document some of the useful
30591 memory pools provided as part of the GNAT library.
30592 Remove "virtual" from declaration of A::method2 in
30593 the simple example of Ada/C++ mixed system.
30594 Library Projects may be virtually extended: their virtual extensions
30595 are not Library Projects.
30596 Added section on extending project hierarchies.
30598 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
30600 * adaint.c (__gnat_get_libraries_from_registry): Cast value
30602 (__gnat_portable_spawn): Remove const.
30604 * mingw32.h (MAXPATHLEN): Check for previous definition.
30606 2004-10-17 Matthias Klose <doko@debian.org>
30608 * gnatvsn.ads: Set gnat library version to 4.0.
30610 2004-10-05 Vincent Celier <celier@gnat.com>
30612 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30614 2004-10-04 Laurent Guerby <laurent@guerby.net>
30617 * Makefile.in: Define and use RANLIB_FLAGS.
30619 2004-10-04 Pascal Obry <obry@gnat.com>
30621 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30622 other x86 platforms).
30624 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
30626 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30627 in general and triggers stack alignment adjustment for thread entry
30628 points on targets where this is necessary.
30630 2004-10-04 Bernard Banner <banner@gnat.com>
30633 * Makefile.in: Add section for powerpc linux
30634 Add variant i-vxwork-x86.ads
30636 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
30638 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
30640 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
30641 table registration calls when need be. Ensures no reference to the crt
30642 ctors symbol are issued in the SJLJ case, which avoids possible
30643 undefined symbol errors in the case of modules to be statically linked
30646 2004-10-04 Javier Miranda <miranda@gnat.com>
30648 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
30649 in-line the code corresponding to subprogram Analyze_Actuals. In
30650 addition, analyze the actuals only in case of subprogram call.
30652 2004-10-04 Ed Falis <falis@gnat.com>
30654 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
30656 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
30658 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
30659 in the documentation.
30661 2004-10-04 Robert Dewar <dewar@gnat.com>
30663 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
30665 (Analyze_Block_Statement): Add circuitry to detect following dead code
30666 (Check_Unreachable_Code): Handle case of block exit
30668 2004-10-04 Robert Dewar <dewar@gnat.com>
30670 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
30671 (XMatchD): Avoid warning for Logic_Error call
30673 2004-10-04 Robert Dewar <dewar@gnat.com>
30675 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
30676 consider expressions buried within a procedure actual to be an actual.
30677 This caused some blowups with uses of packed slices within a procedure
30680 2004-10-04 Robert Dewar <dewar@gnat.com>
30682 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
30683 longer need to be initialized to zero.
30684 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
30685 initialized to zero.
30687 * checks.adb (Expr_Known_Valid): Packed arrays are now always
30688 considered valid, even if the representation is modular. That's correct
30689 now that we no longer initialize packed modular arrays to zero.
30691 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
30692 suffixes. These are now documented as the only cases in which the
30693 debugger ignores outer records.
30694 Previously, the spec allowed arbitrary suffixes for this purpose.
30695 Change name of LJM to JM for packed array pad records
30696 Create separate section on packed array handling, and add a whole new
30697 set of comments to this section describing the situation with packed
30698 modular types and justification requirements depending on endianness.
30700 2004-10-04 Robert Dewar <dewar@gnat.com>
30702 * a-except.adb: Add a comment for last change
30704 * einfo.ads: Minor spelling correction in comment
30706 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
30708 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
30711 * sem_util.ads: Minor comment update
30713 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30715 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
30716 Inline_Always when in Configurable_Run_Time mode.
30718 * sem_prag.adb (Process_Convention): If entity is an inherited
30719 subprogram, apply convention to parent subprogram if in same scope.
30720 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
30721 when in Configurable_Run_Time mode.
30723 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30725 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
30726 class_wide type after component list has been inherited.
30728 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30730 * sem_ch12.adb (Check_Generic_Actuals): New predicate
30731 Denotes_Previous_Actual, to handle properly the case of a private
30732 actual that is also the component type of a subsequent array actual.
30733 The visibility status of the first actual is not affected when the
30734 second is installed.
30735 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
30736 make fully recursive the treatment of formals of packages declared
30738 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
30739 the above on exit from an instantiation.
30740 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
30741 current instantiation which is now complete.
30742 (Analyze_Package_Instantiation): No instantiated body is needed if the
30743 main unit is generic. Efficient, and avoid anomalies when a instance
30744 appears in a package accessed through rtsfind.
30746 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30748 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
30749 do not generate a declaration for a temporary if the call is part of a
30750 library-level instantiation.
30752 2004-10-04 Ed Schonberg <schonberg@gnat.com>
30754 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
30755 searching for a limited component to flag.
30757 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
30758 expansion of Input, to account for the fact that the implicit call
30759 generated by the attribute reference must freeze the user-defined
30760 stream subprogram. This is only relevant to 'Input, because it can
30761 appear in an object declaration, prior to the body of the subprogram.
30763 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
30764 expansion can proceed and further errors uncovered.
30765 (Minor clean up): Fix cases of using | instead of \ for continuation
30768 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30770 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
30772 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
30773 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
30774 Use gcc_assert and gcc_unreachable.
30776 * decl.c (gnat_to_gnu_entity, case object): Check and process a
30777 specified alignment before validating size.
30778 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
30779 stripped-down declaration for the type of the inner field when making
30782 * utils.c (finish_record_type): Do not compute the size in units
30783 incrementally. Instead compute it once for the rep clause case.
30784 Use gcc_assert and gcc_unreachable.
30786 2004-10-04 Vincent Celier <celier@gnat.com>
30788 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
30790 (Is_Valid_Path_Name): Take '/' as a directory separator.
30792 2004-10-04 Vincent Celier <celier@gnat.com>
30794 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
30795 (Extended_Project) only if Extended_Project is defined, to avoid
30797 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
30799 (Parse_Single_Project): Ditto.
30801 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
30802 Add_To_Project_Path for virtual projects.
30804 2004-10-04 Vincent Celier <celier@gnat.com>
30806 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30807 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30808 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
30809 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
30810 parameter Options_2.
30812 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
30813 Build_Dynamic_Library with an empty Options_2.
30815 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
30818 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
30819 directory separator, if any.
30820 (Gprmake): Do not allow mains on the command line for library projects.
30821 Do not attempt to link when the project is a library project.
30822 (Library_Opts): New table to store Library_Options.
30823 (Build_Library): If Library_Options is specified, pass these options
30824 when building a shared library.
30826 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30828 * s-tposen.adb (Service_Entry): The object must be always unlocked at
30829 the end of this procedure now that the unlock operation was inserted
30832 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
30834 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
30835 corresponding to the Preallocated_Stacks flags in System.
30836 (Get_Target_Parameters): Including the processing for
30837 Preallocated_Stacks.
30839 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
30840 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
30841 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
30842 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
30843 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
30844 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
30845 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
30846 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
30847 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
30848 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
30849 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
30850 used to signal whether the compiler creates the required stacks and
30851 descriptors for the different tasks (when True) or it is done by the
30852 underlying operating system at run time (when False).
30853 It is initially set to False in all targets.
30855 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
30856 if it is supported by the target.
30857 (Make_Task_Create_Call): Pass the stack address if it has been
30858 previously created. Otherwise pass a Null_Address.
30860 * snames.adb: Add _stack.
30862 * snames.ads: Add Name_uStack. Required to allow the expander to
30863 statically allocated task stacks.
30865 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
30866 Stack_Address argument.
30867 Check that its value is equal to Null_Address because this target does
30868 not support the static stack allocation.
30870 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30872 * usage.adb: Change "pragma inline" to "pragma Inline" in information
30875 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30877 * exp_dist.adb: Split declaration of asynchronous flag out of
30878 Add_RACW_Read_Attribute.
30879 Minor reformatting for better alignment with PolyORB version.
30880 Store the entity for the asynchronous flag of an RACW, rather than the
30881 expression, in the asynchronous flags table. This will allow this flag
30882 to be used in other subprograms beside Add_RACW_Read_Attribute.
30884 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
30886 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
30887 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
30888 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
30889 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
30890 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
30891 sockets constant MSG_NOSIGNAL (Linux-specific).
30892 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
30893 all Send operations.
30894 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
30895 from trigerring SIGPIPE.
30896 Rename components to avoid clash with Ada 2005 possible reserved
30898 (Check_Selector): When the select system call returns with an error
30899 condition, propagate Socket_Error to the caller.
30901 2004-10-01 Jan Hubicka <jh@suse.cz>
30903 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
30905 2004-09-23 Robert Dewar <dewar@gnat.com>
30908 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
30909 instead do this at freeze time (we won't do it if there is an address
30911 Change "pragma inline" to "pragma Inline" in information and error
30913 Minor reformatting.
30915 * freeze.adb (Check_Address_Clause): Remove previous change, not the
30916 right way of doing things after all.
30917 (Freeze_Entity): For object, set Is_Public for imported entities
30918 unless there is an address clause present.
30920 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
30922 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
30923 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
30924 ensures proper handling of types with rep clauses, which might have
30925 their TYPE_SIZE set already.
30927 2004-09-21 Robert Dewar <dewar@gnat.com>
30929 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
30930 packed array types in both little- and big-endian cases. This change
30931 ensures that we no longer count on the unused bits being initialized
30932 for such types (and in particular ensures that equality testing will
30933 only read the relevant bits).
30934 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30935 These changes mean that we no longer need to initialize small packed
30937 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
30938 optimization to an LJM field as to its parent field.
30940 * ada-tree.h, trans.c, utils.c, utils2.c:
30941 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
30943 2004-09-20 Jan Hubicka <jh@suse.cz>
30945 * utils.c (gnat_finalize): Remove.
30946 (end_subprog_body): Directly call cgraph_finalize_function;
30947 do not lower the nested functions.
30949 2004-09-20 Robert Dewar <dewar@gnat.com>
30952 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
30953 if an address clause is present, since that means that the Import
30956 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
30958 * 5tsystem.ads: Removed, no longer used.
30960 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
30961 Zack Weinberg <zack@codesourcery.com>
30963 * ada-tree.def: Use tree_code_class enumeration constants
30964 instead of code letters.
30965 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
30966 Update for new tree-class enumeration constants.
30968 2004-09-17 Vincent Celier <celier@gnat.com>
30970 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
30971 capabilities of the general project manager.
30973 2004-09-09 Vincent Celier <celier@gnat.com>
30975 * a-direct.ads: Add pragma Ada_05
30976 (Directory_Entry_Type): Give default value to component Kind to avoid
30977 not initialized warnings.
30979 * a-direct.adb (Current_Directory): Remove directory separator at the
30981 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
30982 an existing directory.
30983 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
30984 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
30985 Convert the result to File_Size.
30987 * prj.ads: (Project_Error): New exception
30989 * prj-attr.adb: Except in procedure Initialize, Fail comes from
30990 Prj.Com, not from Osint.
30991 (Attrs, Package_Attributes): Tables moved to private part of spec
30992 (Add_Attribute, Add_Unknown_Package): Moved to new child package
30994 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
30995 Prj.Project_Error after call to Fail.
30996 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
30997 Fail. Check that package name is not already in use.
30999 * prj-attr.ads: Comment updates to indicate that all subprograms may be
31000 used by tools, not only by the project manager, and to indicate that
31001 exception Prj.Prj_Error may be raised in case of problem.
31002 (Add_Unknown_Package, Add_Attribute): Moved to new child package
31004 (Attrs, Package_Attributes): Table instantiations moved from the body to
31005 the private part to be accessible from Prj.Attr.PM body.
31007 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31008 from new package Prj.Attr.PM.
31009 (Parse_Attribute_Declaration): Call Add_Attribute from new package
31012 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31014 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31015 instead of Elaboration_Checks).
31017 * a-calend.adb: Minor reformatting
31019 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31021 * gigi.h (maybe_pad_type): New declaration.
31022 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31024 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31026 * cuintp.c: Convert to use buildN.
31028 * decl.c (maybe_pad_type): No longer static.
31029 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31031 Convert to use buildN.
31033 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31034 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
31035 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31037 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31038 (gnat_gimplify_expr, case ADDR_EXPR): New case.
31039 Convert to use buildN.
31041 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31042 TREE_READONLY for const.
31043 Convert to use buildN.
31045 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31046 (create_var_decl): Refine when TREE_STATIC is set.
31047 Convert to use buildN.
31049 2004-09-09 Gary Dismukes <dismukes@gnat.com>
31051 * gnat_ugn.texi: Delete text relating to checking of ali and object
31054 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31057 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
31059 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31060 pragmas recognized by GNAT.
31062 * gnat_rm.texi: Document pragma Detect_Blocking.
31064 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31065 raise Program_Error if called from a protected operation.
31067 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31068 the protected action nesting level.
31069 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31070 protected action nesting level.
31071 (Unlock): When pragma Detect_Blocking is active decrease the protected
31072 action nesting level.
31074 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31075 Protected_Action_Nesting.
31077 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31078 Common_ATCB record. It contains the dynamic level of protected action
31079 nesting for each task. It is needed for checking whether potentially
31080 blocking operations are called from protected operations.
31081 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31082 Detect_Blocking is active or not in the partition.
31084 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31085 raise Program_Error if called from a protected operation.
31086 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31087 Program_Error if called from a protected operation.
31088 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31089 Program_Error if called from a protected operation.
31091 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31092 raise Program_Error if called from a protected operation.
31094 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31095 raise Program_Error if called from a protected operation, and increase
31096 the protected action nesting level.
31097 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31098 Program_Error if called from a protected operation, and increase the
31099 protected action nesting level.
31100 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31101 protected action nesting level.
31103 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31104 raise Program_Error if called from a protected operation, and increase
31105 the protected action nesting level.
31106 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31107 Program_Error if called from a protected operation, and increase the
31108 protected action nesting level.
31109 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31110 raise Program_Error if called from a protected operation.
31111 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31112 active, raise Program_Error if called from a protected operation.
31113 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31114 protected action nesting level.
31116 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31117 insertion of the statement raising Program_Error. The run time
31118 contains the required machinery for handling that.
31120 * sem_util.ads: Change comment associated to procedure
31121 Check_Potentially_Blocking_Operation.
31122 This procedure does not insert a call for raising the exception because
31123 that is currently done by the run time.
31125 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31127 * init.c: Add the global variable __gl_detect_blocking that indicates
31128 whether pragma Detect_Blocking is active (1) or not (0). Needed for
31129 making the pragma available at run time.
31130 (__gnat_set_globals): Pass and update the detect_blocking parameter.
31132 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31133 pragma Detect_Blocking is active.
31135 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31137 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31138 DB is found in the ali file. Any unit compiled with pragma
31139 Detect_Blocking active forces its effect in the whole partition.
31141 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31142 Detect_Blocking is active and delay is called from a protected
31145 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31146 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31147 Detect_Blocking is active (0 otherwise).
31148 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31149 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31152 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
31154 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31155 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31158 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31159 (Register_Receiving_Stub): Add Subp_Info formal parameter.
31160 Update API in placeholder implemetation of s-parint to reflect changes
31161 in distribution runtime library.
31163 * sem_ch3.adb (Expand_Derived_Record): Rename to
31164 Expand_Record_Extension.
31166 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31167 primitive operations of potentially distributed object types that have
31168 non-controlling anonymous access formals.
31170 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31172 New implementation of expansion for remote access-to-subprogram types,
31173 based on the RACW infrastructure.
31174 This version of sem_dist is compatible with PolyORB/DSA as well as
31177 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31178 Asynchrronous that applies to a remote access-to-subprogram type, mark
31179 the underlying RACW type as asynchronous.
31181 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31182 __gnat_using_gnu_linker to 1.
31184 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31185 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31186 GNAT.Perfect_Hash_Generators, and remove the empty
31187 GNAT.Perfect_Hash package.
31189 * atree.adb: Minor reformatting
31191 * exp_ch3.adb (Expand_Derived_Record): Rename to
31192 Expand_Record_Extension.
31193 (Build_Record_Init_Proc.Build_Assignment): The default expression in
31194 a component declaration must remain attached at that point in the
31195 tree so New_Copy_Tree copies it if the enclosing record type is derived.
31196 It is therefore necessary to take a copy of the expression when building
31197 the corresponding assignment statement in the init proc.
31198 As a side effect, in the case of a derived record type, we now see the
31199 original expression, without any rewriting that could have occurred
31200 during expansion of the ancestor type's init proc, and we do not need
31201 to go back to Original_Node.
31203 * exp_ch3.ads (Expand_Derived_Record): Rename to
31204 Expand_Record_Extension.
31206 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31207 Returns the RACW type used to implement a remote access-to-subprogram
31209 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31210 New subprograms. Used to create a proxy tagged object for a remote
31211 subprogram. The proxy object is used as the designated object
31212 for RAS values on the same partition (unless All_Calls_Remote applies).
31213 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31214 System.Partition_Interface.Get_Unique_Remote_Pointer.
31215 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31216 Renamed from Add_RAS_*_Attribute.
31217 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31219 New implementation of expansion for remote access-to-subprogram types,
31220 based on the RACW infrastructure.
31222 * exp_dist.ads (Copy_Specification): Update comment to note that this
31223 function can copy the specification from either a subprogram
31224 specification or an access-to-subprogram type definition.
31226 2004-09-09 Ed Schonberg <schonberg@gnat.com>
31228 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31229 in an instance, between an explicit subprogram an one inherited from a
31230 type derived from an actual.
31232 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31233 add a polling call if the subprogram is to be inlined by the back-end,
31234 to avoid repeated calls with multiple inlinings.
31236 * checks.adb (Apply_Alignment_Check): If the expression in the address
31237 clause is a call whose name is not a static entity (e.g. a dispatching
31238 call), treat as dynamic.
31240 2004-09-09 Robert Dewar <dewar@gnat.com>
31242 * g-trasym.ads: Minor reformatting
31244 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31245 packed arrays, since unused bits are expected to be zero for a
31248 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
31250 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31253 2004-09-09 Pascal Obry <obry@gnat.com>
31255 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31256 enable map file generation. Add the right option to generate the map
31257 file if Map_File is set to True.
31259 * gnatdll.adb (Gen_Map_File): New variable.
31260 (Syntax): Add info about new -m (Map_File) option.
31261 (Parse_Command_Line): Add support for -m option.
31262 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31263 Minor reformatting.
31265 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
31267 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31268 new gnatdist implementation.
31269 Define a subpackage isolating the output routines specific to this
31272 2004-09-09 Joel Brobecker <brobecker@gnat.com>
31274 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31276 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31278 2004-09-09 Cyrille Comar <comar@act-europe.fr>
31280 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31283 * opt.ads: Add Ada_Version_Runtime constant used to decide which
31284 version of the language is used to compile the run time.
31286 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
31288 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31289 of variable length temporaries for function return now that the
31290 back-end and gigi support it.
31292 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31294 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31296 * trans.c (struct stmt_group): Delete field GLOBAL.
31297 (gnat_init_stmt_group): Do not initialize it.
31298 (call_to_gnu): Use save_expr, not protect_multiple_eval.
31299 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31300 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31301 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31302 (start_stmt_group): Likewise.
31303 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31305 * utils2.c (ggc.h): Include.
31306 (build_call_raise): Call build_int_cst, not build_int_2.
31308 * utils.c (gnat_init_decl_processing): Fix arg to
31309 build_common_tree_nodes.
31310 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31311 (gnat_define_builtin): Set built_in_decls.
31312 (init_gigi_decls): Call build_int_cst, not build_int_2.
31314 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31315 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31316 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31317 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31318 SET_TYPE_MODULE): Use them.
31319 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31320 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31321 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31322 SET_TYPE_ADA_SIZE): Likewise.
31323 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31324 (DECL_CONST_CORRESPONDING_VAR,
31325 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31326 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31327 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31328 (TYPE_RM_SIZE_NUM): New macro.
31329 (TYPE_RM_SIZE): Modified to use above.
31331 * cuintp.c: (build_cst_from_int): New function.
31332 (UI_To_gnu): Use it.
31334 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31335 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31336 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31337 MIN_EXPR for the size, copy it into new.
31339 2004-09-01 Robert Dewar <dewar@gnat.com>
31341 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31342 packed indexed component where array is an IN OUT formal. This
31343 generated garbage code previously.
31345 * gnat_ugn.texi: Document -fverbose-asm
31347 * gnat-style.texi: Minor updates (note that boolean constants and
31348 variables are joined with AND/OR rather than short circuit forms).
31350 2004-09-01 Ed Schonberg <schonberg@gnat.com>
31352 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31353 it is an upward conversion of an untagged type with no representation
31356 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
31358 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31359 System.Partition_Interface.
31361 * checks.adb (Apply_Access_Checks): Do not generate checks when
31362 expander is not active (but check for unset reference to prefix of
31365 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31366 pragma Debug as an if statement with a constant condition, for
31367 consistent treatment of entity references contained within the
31368 enclosed procedure call.
31370 2004-09-01 Vincent Celier <celier@gnat.com>
31372 * bindgen.adb: (Set_EA_Last): New procedure
31373 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31375 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31376 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31377 linked without errors.
31378 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31380 (Gen_Exception_Table_C): Correct same bugs
31382 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31384 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31385 on Windows, make sure that the drive letter is in upper case.
31387 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31388 Windows, when the drive letter is added and Case_Sensitive is True, the
31389 drive letter is forced to upper case.
31391 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31392 to Options_2 for the call to MLib.Utl.Gcc.
31394 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31395 directory separator when defining BASE_DIR.
31397 2004-09-01 Pascal Obry <obry@gnat.com>
31399 * gprcmd.adb (Extend): Do not output trailing directory separator. This
31400 is not needed and it confuses Windows GNU/make which does not report
31401 directory terminated by a slash as a directory.
31402 (gprcmd): Idem for "pwd" internal command.
31404 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31405 target names rewrite to fix regressions with recent version of
31406 GNU/make. Starting with GNU/make 3.80 the pipe character was not
31407 handled properly anymore.
31409 2004-09-01 Andreas Schwab <schwab@suse.de>
31411 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31412 * raise.c [!IN_RTS]: Undef abort.
31414 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
31416 * utils2.c (build_allocator): Use ssize_int.
31418 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31420 2004-08-27 Andreas Schwab <schwab@suse.de>
31422 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31424 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31425 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31427 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31429 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
31431 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31432 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31433 * utils.c (init_gigi_decls): Likewise.
31434 * utils2.c (build_call_raise, build_allocator): Likewise.
31436 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
31438 * utils.c (gnat_init_decl_processing): Adjust
31439 build_common_tree_nodes call.
31441 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
31443 * utils2.c (build_allocator): Use build_int_cst for negative
31446 2004-08-18 Richard Henderson <rth@redhat.com>
31448 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31450 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
31452 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31454 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31455 (gnat_to_gnu): Likewise.
31457 2004-08-16 Pascal Obry <obry@gnat.com>
31459 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31460 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31461 option and not mdll anymore. Update comment.
31463 2004-08-16 Pascal Obry <obry@gnat.com>
31465 * bld.adb (Put_Include_Project): Properly handle directory separators
31468 2004-08-16 Ed Schonberg <schonberg@gnat.com>
31470 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31471 decreasing the number of allocated junk nodes while searching for the
31472 appropriate subprogram.
31474 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
31476 * cuintp.c (UI_To_gnu): Use build_int_cst..
31477 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31478 * utils.c (init_gigi_decls): Likewise.
31479 * utils2.c (build_call_raise): Likewise.
31481 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
31483 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31484 for a global aliased object with a variable size and an unconstrained
31485 nominal subtype, pretend there is no initializer if the one we have is
31486 incomplete, and avoid referencing an inexistant component in there. The
31487 part we have will be rebuilt anyway and the reference may confuse
31488 further operations.
31490 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
31492 * einfo.ads: Minor reformatting
31494 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31495 restrictions in the ALI if we only want to warn about violations.
31497 2004-08-13 Vincent Celier <celier@gnat.com>
31499 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31500 when creating a new Unit_Record in table Units.
31502 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31503 that are violated, if any.
31505 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31506 add directory separator if path already ends with a directory separator.
31508 2004-08-13 Ed Schonberg <schonberg@gnat.com>
31510 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31511 unit, this is an attempt to inline a construct that is not available in
31512 the current restricted mode, so abort rather than trying to continue.
31514 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31515 discriminants that rename those of the parent, recover names of
31516 original discriminants for the constraint on the full view of the
31518 (Complete_Private_Subtype): Do not create a subtype declaration if the
31519 subtype is an itype.
31521 * gnat_rm.texi: Added section on implementation of discriminated
31522 records with default values for discriminants.
31524 2004-08-13 Ed Schonberg <schonberg@gnat.com>
31527 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31528 the second operand is overloaded.
31530 2004-08-10 Richard Henderson <rth@redhat.com>
31532 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31533 add __builtin_alloca.
31535 2004-08-10 Richard Henderson <rth@redhat.com>
31537 * config-lang.in (boot_language): Yes.
31539 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
31541 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31542 from complaining on potential uninitialized reference.
31543 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31544 new specification and test explicitly for non-zero return value.
31546 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31547 returning C.int, to avoid using a derived boolean type.
31549 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31550 Duplicate_Subexpr_No_Checks in preference to direct use of
31551 Remove_Side_Effects and New_Copy_Tree.
31552 Clear Comes_From_Source on prefix of 'Size attribute reference.
31554 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31555 g-socthi-vxworks.adb: Change calls to
31556 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31557 and test explicitly for non-zero return value.
31559 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31560 (Is_Socket_In_Set): Declare imported function as returning C.int, to
31561 avoid using a derived boolean type.
31563 2004-08-09 Albert Lee <lee@gnat.com>
31565 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31567 2004-08-09 Pascal Obry <obry@gnat.com>
31569 * gnat_ugn.texi: Document new way to build DLLs on Windows using
31570 GCC's -shared option.
31572 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31573 Options_2 parameter (options put after object files).
31575 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
31577 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31578 ignore overflows on low and high bounds of an index to also account for
31579 differences in signedness between sizetype and gnu_index_subtype.
31580 These are as legitimate as the ones caused by a lower TYPE_PRECISION
31583 2004-08-09 Robert Dewar <dewar@gnat.com>
31585 * s-solita.ads, s-solita.adb: Minor reformatting
31587 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31588 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31589 obsolescent section
31590 Add note that No_Implicit_Conditionals does not suppress
31591 run time constraint checks.
31593 * vms_conv.ads: Minor reformatting
31595 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31596 and necessary for following change).
31597 (Mark): Return new format Mark_Id containing sec stack address
31598 (Release): Use sec stack address from Mark_Id avoiding Self call
31600 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31601 pointer (cleanup and necessary for following change).
31602 Define Mark_Id as record containing address of secondary stack, that way
31603 Release does not need to find the stack again, decreasing the number of
31604 calls to Self and improving efficiency.
31606 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31608 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31609 case variable into the individual case branches when possible.
31611 * sem_ch11.adb: Minor reformatting
31613 * prj.ads: Correct spelling of suffixs
31615 * prj-nmsc.adb: Minor reformatting
31616 Correct spelling suffixs throughout (also in identifiers)
31618 * freeze.adb: Minor spelling correction
31620 * exp_ch2.adb: Cleanups to handling of Current_Value
31621 (no functional effect).
31623 * bld.adb: Correct spelling of suffixs
31625 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31627 2004-08-09 Ed Schonberg <schonberg@gnat.com>
31630 * sem_ch7.adb (Install_Private_Declarations): In the body of the
31631 package or of a child, private entities are both immediately_visible
31634 2004-08-09 Ed Schonberg <schonberg@gnat.com>
31636 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
31637 there are no range checks on the value of the literal.
31639 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
31640 wrapped is the triggering alternative of an asynchronous select, action
31641 statements mustbe inserted before the select itself.
31643 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
31644 case where the prefix is a protected function call.
31645 (Resolve_Attribute, case 'Access): The attribute reference on a
31646 subprogram is legal in a generic body if the subprogram is declared
31649 2004-08-09 Vincent Celier <celier@gnat.com>
31651 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
31652 languages, otherwise building the library may fail with unresolved
31654 (Compile_Sources): Do not build libraries if -c switch is used
31656 * gnatlink.adb (Process_Args): New switches -M and -Mmap
31657 (Write_Usage): If map file creation is supported, output new switches
31659 (Gnatlink): When -M is specified, add the necessary switch(es) to the
31660 gcc call, when supported.
31662 * Makefile.in: Added indepsw.o to the object list for gnatlink
31663 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
31665 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
31666 indepsw.adb, indepsw.ads: New files.
31668 2004-08-09 Bernard Banner <banner@gnat.com>
31670 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
31672 * Makefile.in: add section for vxworks x86
31674 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
31676 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
31677 per-object constrained components where the discriminant is of an
31679 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
31680 the parent initialization procedure for derived Unchecked_Unions.
31681 Instead, derived Unchecked_Unions build their own initialization
31683 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
31684 Check the body of the subprogram for details.
31685 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
31686 functions for derived Unchecked_Union types by introducing a condition.
31687 Allow the creation of TSS equality functions for Unchecked_Unions.
31688 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
31689 Add formal parameter Discr to function signature. Discr is used to
31690 control the generated case statement for Unchecked_Union types.
31691 (Make_Eq_If): Rename formal parameter Node to E in function signature.
31693 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
31695 Check the body of the subprogram for details.
31696 (Expand_Composite_Equality): Augment composite type equality to include
31697 correct handling of Unchecked_Union components.
31698 (Expand_N_In): Add condition to detect illegal membership tests when the
31699 subtype mark is a constrained Unchecked_Union and the expression lacks
31700 inferable discriminants, and build a Raise_Program_Error node.
31701 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
31702 to detect types that contain components of unconstrained Unchecked_Union
31703 subtype. Add condition to detect equality between types that have an
31704 unconstrained Unchecked_Union component, and build a Raise_Program_Error
31705 node. Add condition to detect equality between Unchecked_Union types
31706 that lack inferable discriminants, and build a Raise_Program_Error node.
31707 Otherwise build a TSS equality function call.
31708 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
31709 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
31710 with the operand lacking inferable discriminants, and build a Raise_
31711 Program_Error node.
31712 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
31713 composite equality.
31714 (Has_Inferable_Discriminants): Implement new predicate for objects and
31715 expressions of Unchecked_Union type. Check the body of subprogram for
31717 (Has_Unconstrained_UU_Components): Add function
31718 Component_Is_Unconstrained_UU. It is used to detect whether a single
31719 component is of an unconstrained Unchecked_Union subtype. Add function
31720 Variant_Is_Unconstrained_UU. It is used to detect whether a single
31721 component inside a variant is of an unconstrained Unchecked_Union type.
31723 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
31724 inferred discriminant values. Add condition to generate a case
31725 statement with an inferred discriminant as the switch.
31726 (Make_Component_List_Assign): Introduce a Boolean flag that determines
31727 the behaviour of the subprogram in the presence of an Unchecked_Union.
31728 Add condition to trigger the usage of the inferred discriminant value
31729 as the generated case statement switch.
31730 (Make_Field_Assign): Introduce a Boolean flag that determines the
31731 behaviour of the subprogram in the presence of an Unchecked_Union. Add
31732 condition to trigger the usage of the inferred discriminant value as
31733 the right-hand side of the generated assignment.
31735 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
31736 parameter generation when dealing with Unchecked_Unions.
31738 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
31739 checks for Unchecked_Unions.
31741 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
31743 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
31744 Raise_Program_Error nodes for the execution of Read and Write
31745 attributes of Unchecked_Union types and the execution of Input and
31746 Output attributes of Unchecked_Union types that lack default
31747 discriminant values.
31749 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
31750 Unchecked_Union. Add procedure Check_Component. It is used to inspect
31751 per-object constrained components of Unchecked_Unions for being
31752 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
31753 check individual components withing a variant.
31755 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
31756 comparison of Unchecked_Unions.
31757 (Resolve_Equality_OP): Remove guard that prevents equality between
31760 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
31761 of component subtypes for Unchecked_Union components.
31762 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
31763 since it is the actual subtype.
31765 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
31766 pass of Unchecked_Union subtypes as generic actuals to formal types
31767 that lack known_discriminant_parts or that are derived Unchecked_Union
31768 types, and do nothing. In any other case, produce an error message.
31770 * sem_ch3.adb (Analyze_Component_Declaration): Add function
31771 Contains_POC. It determines whether a constraint uses the discriminant
31772 of an enclosing record type.
31773 Add condition to detect per-object constrained component and set the
31775 (Derived_Type_Declaration): Remove guard that prevents derivation from
31776 Unchecked_Union types.
31777 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
31780 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
31781 references to Unchecked_Union discriminants.
31783 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
31784 formal generation when dealing with Unchecked_Unions.
31785 (Set_Actual_Subtypes): Add condition to prevent generation of actual
31786 subtypes for Unchecked_Unions.
31788 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
31789 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
31790 completions of discriminated partial views by Unchecked_Unions and
31791 produce an error message.
31793 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31795 * trans.c (struct stmt_group): New field, GLOBAL.
31796 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
31797 (struct elab_info): New struct.
31798 (elab_info_list, gnu_elab_proc_stack): New variables.
31799 (Compilation_Unit_to_gnu): New procedure.
31800 (gigi): Call it and also handle elaboration procs we've saved.
31801 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
31802 global field from parent.
31803 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
31804 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
31805 (start_stmt_group): Initialize global field from parent.
31806 (add_decl_expr): Set to global for current statement group.
31807 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
31810 * utils.c (global_bindings_p): True when no current_function_decl; no
31811 longer check current_binding_level.
31813 2004-08-09 Ben Brosgol <brosgol@gnat.com>
31815 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
31818 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
31820 2004-08-06 Andreas Schwab <schwab@suse.de>
31822 * utils.c (gnat_define_builtin): Remove second parameter of
31824 (begin_subprog_body): Likewise.
31826 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
31828 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
31829 optimization, not supported by the tree-ssa back-end.
31831 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
31833 * s-mastop-irix.adb: Update comments.
31835 * a-except.adb (Exception_Information): Raise Constraint_Error if
31836 exception Id is Null_Id.
31837 This is required behavior, which is more reliably and clearly checked
31838 at the top level interface level.
31840 2004-07-26 Javier Miranda <miranda@gnat.com>
31842 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
31843 call if a component has no default_expression and the box is used.
31845 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
31846 default_expression and you use box, it behaves as if you had declared a
31847 stand-alone object.
31848 (Resolve_Record_Aggregate): If a component has no default_expression and
31849 you use box, it behaves as if you had declared a stand-alone object.
31851 * sem_ch10.adb (Install_Siblings): Do not make visible the private
31852 entities of private-with siblings.
31854 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31856 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
31857 for a component of an itype, set the parent pointer for analysis,
31858 there is no list in which to insert it.
31860 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
31861 bona-fide renamings, not for inherited operations.
31863 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
31864 actual for a formal that is an access parameter, create local
31865 finalization list even if the expression is not an aggregate.
31867 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31870 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
31871 Diagnose properly illegal subprogram renamings that are library units.
31873 2004-07-26 Ed Schonberg <schonberg@gnat.com>
31876 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
31877 conversion rewritten as an unchecked conversion, check that original
31878 expression is a variable.
31880 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
31881 unchecked_conversion, create new node rather than rewriting in place,
31882 to preserve original construct.
31884 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31886 * gigi.h (gnat_expand_body): Deleted.
31888 * Make-lang.in: (trans.o): Depends on function.h.
31890 * misc.c: (gnat_expand_body): Moved to here.
31892 * trans.c (gnat_expand_body_1): Deleted.
31893 (gnat_expand_body): Moved from here.
31894 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
31895 (add_stmt): Check for marked visited with global_bindings_p.
31896 (gnat_gimplify_expr, case COMPONENT_REF): New case.
31897 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
31899 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
31900 VIEW_CONVERT_EXPR if not operation type.
31902 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
31905 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
31906 changes: reformatting of negation operators, removing unneeded
31907 inequality comparison with zero, converting equality comparisons with
31908 zero to negations, changing int/0/1 to bool/false/true, replace calls
31909 to gigi_abort with abort, and various other similar changes.
31911 2004-07-26 Vincent Celier <celier@gnat.com>
31913 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
31916 * make.adb (Gnatmake): Fail when a library is not present and there is
31917 no object directory.
31919 * mlib-prj.adb (Check_Library): No need to check if the library needs
31920 to be rebuilt if there is no object directory, hence no object files
31921 to build the library.
31923 * opt.ads (Setup_Projects): New Boolean flag.
31925 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
31927 Create directory when Kind /= "" and in "gnat setup". Report error if
31928 directory cannot be created.
31929 (Ada_Check): Create library interface copy dir if it does not exist
31930 and we are in "gnat setup".
31931 (Find_Sources): No error if in "gnat setup" and no Ada sources were
31933 (Language_Independent_Check): Create object directory, exec directory
31934 and/or library directory if they do not exist and we are in
31937 * vms_conv.ads: (Command_Type): New command Setup.
31939 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
31941 * vms_data.ads: Add qualifiers/switches for new built-in command
31944 2004-07-25 Richard Henderson <rth@redhat.com>
31946 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
31947 DECL_IGNORED_P on RESULT_DECL.
31949 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
31951 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
31952 allocation and potentially overflowing update with
31953 Tailored_Exception_Information. Use the sec-stack free procedural
31954 interface to output Exception_Information instead.
31956 * a-except.adb (To_Stderr): New subprogram for character, and string
31957 version moved from a-exextr to be visible from other separate units.
31958 (Tailored_Exception_Information): Remove the procedural version,
31959 previously used by the default Last_Chance_Handler and not any more.
31960 Adjust various comments.
31962 * a-exexda.adb: Generalize the exception information procedural
31963 interface, to minimize the use of secondary stack and the need for
31964 local buffers when the info is to be output to stderr:
31965 (Address_Image): Removed.
31966 (Append_Info_Character): New subprogram, checking for overflows and
31967 outputing to stderr if buffer to fill is of length 0.
31968 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
31969 (Append_Info_Address, Append_Info_Exception_Name,
31970 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
31971 Append_Info_Basic_Exception_Traceback,
31972 Append_Info_Exception_Information): New subprograms.
31973 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
31974 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
31975 Exception_Info_Maxlength, Exception_Name_Length,
31976 Exception_Message_Length): New subprograms.
31977 (Exception_Information): Use Append_Info_Exception_Information.
31978 (Tailored_Exception_Information): Use
31979 Append_Info_Basic_Exception_Information.
31980 Export services for the default Last_Chance_Handler.
31982 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
31983 other separate units.
31985 2004-07-20 Vincent Celier <celier@gnat.com>
31987 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
31989 2004-07-20 Ed Schonberg <schonberg@gnat.com>
31991 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
31992 emit itype references for the designated types of component types that
31993 are declared outside of the full record declaration, and that may
31994 denote a partial view of that record type.
31996 2004-07-20 Ed Schonberg <schonberg@gnat.com>
31999 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32000 which is the designated type in an access component declaration, to the
32001 list of incomplete dependents of the parent type, to avoid elaboration
32002 issues with out-of-scope subtypes.
32003 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32004 full view of the parent.
32006 2004-07-20 Ed Schonberg <schonberg@gnat.com>
32009 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32010 entities that are hidden, such as references to generic actuals
32011 outside an instance.
32013 2004-07-20 Javier Miranda <miranda@gnat.com>
32015 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32016 support to the new notation.
32017 (Analyze_Selected_Component): Add call to Try_Object_Operation.
32019 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
32021 * s-taprob.adb: Adding the elaboration code required for initializing
32022 the tasking soft links that are common to the full and the restricted
32025 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32026 restricted run time has been moved to the package
32027 System.Soft_Links.Tasking.
32029 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32030 restricted run time has been moved to the package
32031 System.Soft_Links.Tasking.
32033 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32035 * s-solita.ads, s-solita.adb: New files.
32037 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32039 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32040 Case_Statement_to_gnu): Split off from gnat_to_gnu.
32041 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32042 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32043 Exception_Handler_to_gnu_zcx): Likewise.
32045 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
32047 * gigi.h (builtin_function): Declare.
32049 2004-07-15 Robert Dewar <dewar@gnat.com>
32051 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32054 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32055 access values as an example of a warning.
32057 * gnat_rm.texi: Document new attribute Has_Access_Values
32059 * gnat-style.texi: Document that box comments belong on nested
32062 * sem_util.ads (Has_Access_Values): Improved documentation
32064 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32066 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32067 (Process_Interface_Name): Call to this new procedure
32068 (Set_Extended_Import_Export_External_Name): Call to this new procedure
32070 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32072 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32074 * einfo.ads: Minor comment typo fixed
32076 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
32078 * snames.adb: Add _atcb.
32080 * snames.ads: Add Name_uATCB.
32082 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32083 (in the expanded code) when using the restricted run time.
32085 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32086 a in parameter in order to allow ATCBs to be preallocated (in the
32089 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32090 order to allow ATCBs to be preallocated. In case of error, the ATCB is
32091 deallocated in System.Tasking.Stages.
32093 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32094 order to allow ATCBs to be preallocated.
32096 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32097 here. It was previously done in Initialize_ATCB.
32099 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32101 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32102 Restricted run time.
32104 * exp_ch3.adb: When using the Restricted run time, pass the
32105 preallocated Ada_Task_Control_Block when creating a task.
32107 2004-07-15 Ed Schonberg <schonberg@gnat.com>
32109 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32110 function call that is itself an actual in an enclosing call, diagnose
32111 problem here rather than assuming that resolution will catch it.
32113 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32114 the local copy of a generic unit for a formal package, and the generic
32115 is a child unit, install private part of ancestors before compiling
32116 private part of spec.
32118 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32119 use scope entities rather than tree structures, to handle properly
32120 parent units that are instances rewritten as bodies for inlining
32123 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32124 Remove_Parents): Handle properly a parent unit that is an
32125 instantiation, when the unit has been rewritten as a body for inlining
32128 * par.adb (Goto_List): Global variable to collect goto statements in a
32129 given unit, for use in detecting natural loops.
32131 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32132 use in detecting natural loops.
32134 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32135 backwards goto's, and rewrite as a infinite loop, to improve locality
32138 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32139 subcomponent that includes an indexed reference, to prevent the
32140 generation of copies that would miscompile the desired assignment
32142 (Build_Task_Image_Decls): Add a numeric suffix to
32143 generated name for string variable, to avoid spurious conflicts with
32144 the name of the type of a single protected object.
32146 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32147 loop with an explicit exit statement, to avoid generating an
32148 out-of-range value with 'Succ leading to spurious constraint_errors
32149 when compiling with -gnatVo.
32151 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
32153 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32154 might not be analyzed yet, even if its Etype is already set (case of an
32155 unchecked conversion built using Unchecked_Convert_To, for example).
32156 If the prefix has already been analyzed, this will be a nop anyway.
32158 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32159 controller type, or an assignment of a record type with controlled
32160 components, copy only user data, and leave the finalization chain
32161 pointers untouched.
32163 2004-07-15 Vincent Celier <celier@gnat.com>
32165 * make.adb (Collect_Arguments): Improve error message when attempting
32166 to compile a source not part of any project, when -x is not used.
32168 * prj.ads: (Defined_Variable_Kind): New subtype
32170 * prj-attr.adb (Register_New_Package): Two new procedures to register
32171 a package with or without its attributes.
32172 (Register_New_Attribute): Mew procedure to register a new attribute in a
32174 New attribute oriented subprograms: Attribute_Node_Id_Of,
32175 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32176 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32178 New package oriented subprograms: Package_Node_Id_Of,
32179 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32181 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32183 (Package_Node_Id): Now a private, self initialized type
32184 (Register_New_Package): New procedure to register a package with its
32186 New attribute oriented subprograms: Attribute_Node_Id_Of,
32187 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32188 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32190 New package oriented subprograms: Package_Node_Id_Of,
32191 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32193 * prj-dect.adb (Parse_Attribute_Declaration,
32194 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32196 * prj-makr.adb (Make): Parse existing project file before creating
32197 other files. Fail if there was an error during parsing.
32199 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32200 new spec of Prj.Attr.
32202 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32203 to new spec of Prj.Attr.
32205 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32207 * utils2.c: Fix typo in comment.
32209 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32211 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32212 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32214 2004-07-14 Andreas Schwab <schwab@suse.de>
32216 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32218 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32220 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32222 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32225 * misc.c (gnat_types_compatible_p): New function.
32226 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32227 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32229 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32230 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32231 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32232 (mark_visited): Don't mark dummy type.
32233 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32234 parameter, we must remove any LJM building from GNU_NAME.
32235 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32236 (pos_to_constructor): Use int_const_binop.
32237 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32240 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32241 (gnat_pushlevel): Set TREE_USE on BLOCK node.
32242 (gnat_install_builtins): Add __builtin_memset.
32244 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
32246 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32247 for a renaming, stabilize the initialization expression if we are at a
32248 local level. At the local level, uses of the renaming may be performed
32249 by a direct dereference of the initializing expression, and we don't
32250 want possible variables there to be evaluated for every use.
32252 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32253 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32254 them on the way. Account for the fact that we may introduce side
32255 effects in the process.
32257 2004-07-13 Richard Henderson <rth@redhat.com>
32259 * misc.c (default_pass_by_ref): Use pass_by_reference.
32261 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
32263 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32264 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32266 2004-07-08 Richard Henderson <rth@redhat.com>
32268 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32271 2004-07-06 Vincent Celier <celier@gnat.com>
32273 * vms_conv.ads: Minor reformatting.
32274 Alphabetical order for enumerated values of type Command_Type, to have
32275 the command in alphabetical order for the usage.
32277 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32278 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32280 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32282 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32283 (Add_Archive_Path): Only add the global archive if there is one.
32284 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32285 or not any object file to put in the global archive, and don't build
32286 a global archive if there is none.
32287 (X_Switches): New table
32288 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32289 in the X_Switches table, if any.
32290 (Initialize): Make sure the X_Switches table is empty
32291 (Scan_Arg): Record -X switches in table X_Switches
32293 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32295 * make.adb: Minor comment fix
32297 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32298 invoked with directory information, add the directory in front of the
32301 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32302 invoked with directory information, add the directory in front of the
32305 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32306 when Keep_Temporary_Files is False.
32307 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32308 directory information, add the directory in front of the path.
32309 When not on VMS, handle new switch -dn before the command to set
32310 Keep_Temporary_Files to True.
32311 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32314 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32315 invoked with directory information, add the directory in front of the
32318 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
32320 * snames.ads, snames.adb (Name_Stub): New name for the distributed
32323 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32324 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32326 * g-socket.adb (To_Timeval): Fix incorrect conversion of
32327 Selector_Duration to Timeval for the case of 0.0.
32329 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32330 documentation from Evolve_And_Then.
32332 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
32334 * s-taprop-tru64.adb, s-taprop-os2.adb,
32335 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32337 2004-07-06 Robert Dewar <dewar@gnat.com>
32339 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32340 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32341 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32342 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32343 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32344 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32345 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32346 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32347 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32348 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32349 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32350 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32351 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32352 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32353 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32354 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32355 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32356 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32357 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32358 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32359 vms_data.ads: Minor reformatting,
32360 Fix bad box comment format.
32362 * gnat_rm.texi: Fix minor grammatical error
32364 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32366 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32367 more cases of discriminated records to be recognized as not needing a
32369 (Has_Access_Values): New function.
32371 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32373 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32374 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32375 with LRM terminology).
32376 Change terminology in comments primitive type => elementary type.
32378 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32381 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32382 parameters do not impose any requirements on the presence of a body.
32384 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32387 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32388 compilation unit and is in an open scope at the point of instantiation,
32389 assume that a body may be present later.
32391 2004-07-06 Ed Schonberg <schonberg@gnat.com>
32393 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32394 Improve error message when specified size is not supported.
32396 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32397 is never a primitive operation.
32399 2004-07-05 Andreas Schwab <schwab@suse.de>
32401 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32402 RECORD_OR_UNION_CHECK.
32403 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32405 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
32407 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32408 dependency on xgnatugn, instead build it via a submake.
32409 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32411 2004-07-04 Richard Henderson <rth@redhat.com>
32413 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32415 2004-07-01 Richard Henderson <rth@redhat.com>
32417 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32418 * utils.c (max_size): Likewise.
32420 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32422 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32423 and rest_of_type_compilation; add arg to create_*_decl.
32424 (annotate_decl_with_node): Deleted.
32425 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32426 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32427 (get_current_block_context, gnat_pushdecl): New declarations.
32428 (gnat_init_stmt_group): Likewise.
32429 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32430 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32431 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32432 (gnat_init): Call gnat_init_stmt_group.
32433 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32434 (gnu_pending_elaboration_list): Deleted.
32435 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32436 (gigi): Rearrange initialization calls and move some to last above.
32437 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32438 Delete calls to add_decl_expr; add arg to create_*_decl.
32439 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32440 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32441 begin_subprog_body and call it.
32442 Don't push and pop ggc context.
32443 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32444 (add_stmt): Remove handling of DECL_EXPR from here.
32445 If not in function, mark visited.
32446 (add_decl_expr): Put global at top level.
32447 Check for cases of DECL_INITIAL we have to handle here.
32448 (process_type): Add extra arg to create_type_decl.
32449 (build_unit_elab): Rework to just gimplify.
32450 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32451 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32452 (get_pending_elaborations, pending_elaborations_p): Likewise.
32453 (push_pending_elaborations, pop_pending_elaborations): Likewise.
32454 (get_elaboration_location, insert_elaboration_list): Likewise.
32455 (gnat_binding_level): Renamed from ada_binding_level.
32456 (init_gnat_to_gnu): Don't clear pending_elaborations.
32457 (global_bindings_p): Treat as global if no current_binding_level.
32458 (set_current_block_context): New function.
32459 (gnat_pushdecl): Renamed from pushdecl; major rework.
32460 All callers changed.
32461 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32462 (finish_record_type): Call call pushdecl for stub decl.
32463 (function_nesting_depth): Deleted.
32464 (begin_subprog_body): Delete obsolete code.
32465 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32467 2004-06-28 Robert Dewar <dewar@gnat.com>
32469 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32470 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32471 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32472 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32473 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32475 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32476 deal with problem of inefficient slices on machines with strict
32477 alignment, when the slice is a component of a composite.
32479 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32480 machines, we need the check there as well.
32482 2004-06-28 Ed Schonberg <schonberg@gnat.com>
32484 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32485 determine safe copying direction for overlapping slice assignments
32486 when component is controlled.
32488 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32489 formal derived type in the actual for a formal package are visible in
32490 the enclosing instance.
32492 2004-06-28 Ed Schonberg <schonberg@gnat.com>
32495 * sem_util.adb (Trace_Components): Diagnose properly an illegal
32496 circularity involving a private type whose completion includes a
32497 self-referential component.
32498 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32499 renaming or an instantiation from an implicit derived operation.
32501 2004-06-28 Pascal Obry <obry@gnat.com>
32503 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32505 (Library_File_Name_For): Idem.
32507 2004-06-28 Matthew Gingell <gingell@gnat.com>
32509 * g-traceb.ads: Add explanatory note on the format of addresses
32510 expected by addr2line.
32512 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
32514 * Makefile.in: Force debugging information on s-tasdeb.adb,
32515 a-except.adb and s-assert.adb needed by the debugger.
32517 2004-06-28 Vincent Celier <celier@gnat.com>
32519 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32523 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32525 * prj.adb: Minor reformatting
32526 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32528 * prj.ads: Comment updates
32530 (Project_Data): Change Flag1 to Need_To_Build_Lib.
32531 Remove Flag2: not used.
32533 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32536 * gnat_ugn.texi: Put a "null;" declaration in one project file example
32538 * gnat_rm.texi: Document Empty declarations "null;".
32540 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32541 front of the linker options.
32542 (Link_Foreign): Put the global archives and the libraries in front of
32543 the linker options.
32545 2004-06-28 Javier Miranda <miranda@gnat.com>
32547 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32548 (RTU_Loaded): Code cleanup
32549 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32550 withed predefined units.
32552 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32553 explicitly withed predefined units.
32554 Fix typo in comment
32556 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32557 explicitly withed predefined units.
32559 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32561 * ada-tree.def (DECL_STMT): Deleted.
32562 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32563 (DECL_STMT_VAR): Deleted.
32564 * decl.c: add_decl_stmt now add_decl_expr.
32565 * gigi.h: Likewise.
32566 * trans.c: Likewise.
32567 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32568 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32569 (add_stmt): Only handle padded type here.
32570 (add_stmt_with_node): Allow gnat_node to not be present.
32571 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32572 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32573 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32574 make a SAVE_EXPR for the entire fat pointer.
32575 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32576 (create_index_type): Make a DECL_EXPR.
32577 (end_subprog_body): Don't call allocate_struct_function here but
32580 2004-06-25 Pascal Obry <obry@gnat.com>
32582 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32583 Relocatable from Build_Dynamic_Library call.
32585 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32586 Relocatable are now synonym.
32588 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32590 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32591 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32594 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32595 Lib_Address and Relocatable.
32596 (Default_DLL_Address): Removed.
32598 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32599 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32600 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32601 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32602 (Default_DLL_Address): Removed.
32604 * mlib-tgt-mingw.adb: Ditto.
32605 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32607 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32608 the initial thread stack size.
32610 * a-strmap.ads: Move package L to private part as it is not used in
32611 the spec. Found while reading code.
32613 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
32615 * tracebak.c: Introduce support for a GCC infrastructure based
32616 implementation of __gnat_backtrace.
32618 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32619 any more. Use accessors instead. This eases maintenance and relaxes
32620 some alignment constraints.
32621 (_GNAT_Exception structure): Remove the Ada specific fields
32622 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32624 (is_handled_by, __gnat_eh_personality): Replace component references to
32625 exception structure by use of the new accessors.
32627 * init.c (__gnat_initialize): Adjust comments to match the just
32628 reverted meaning of the -static link-time option.
32630 * adaint.c (convert_addresses): Arrange not to define a stub for
32631 mips-irix any more, as we now want to rely on a real version from a
32632 recent libaddr2line.
32634 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
32635 the personality routine can use them and not have to rely on a C
32636 counterpart of the record anymore. This simplifies maintenance and
32637 relaxes the constraint of having Standard'Maximum_Alignment match
32639 Update comments, and add a section on the common header alignment issue.
32641 2004-06-25 Geert Bosch <bosch@gnat.com>
32643 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
32644 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
32646 2004-06-25 Robert Dewar <dewar@gnat.com>
32648 * gnat_rm.texi: Fix section on component clauses to indicate that the
32649 restriction on byte boundary placement still applies for bit packed
32651 Add comment on stack usage from Initialize_Scalars
32653 * gnat_ugn.texi: Add documentation for -gnatyLnnn
32655 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
32656 limiting nesting level.
32658 * usage.adb: Add line for -gnatyLnnn switch
32660 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
32661 sem_ch13.adb, exp_aggr.adb: Minor reformatting
32663 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
32664 type as well as on the subtype. This corrects a problem in freeze in
32665 setting alignments of atomic types.
32667 * sem_eval.ads: Minor comment typo fixed
32669 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
32670 level. Minor reformatting.
32672 * fname.adb (Is_Predefined_File_Name): Require a letter after the
32673 minus sign. This means that file names like a--b.adb will not be
32674 considered predefined.
32676 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
32677 record Test new flag and give diagnostic for bad component clause.
32678 (Freeze_Entity): Set alignment of array from component alignment in
32679 cases where this is safe to do.
32681 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
32684 * cstand.adb: (Create_Standard): Set alignment of String to 1
32686 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
32688 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
32689 code in the common constrained array cases.
32691 * a-storio.adb: Change implementation to avoid possible alignment
32692 problems on machines requiring strict alignment (data should be moved
32693 as type Buffer, not type Elmt).
32695 * checks.adb (Apply_Array_Size_Check): Improve these checks by
32696 killing the overflow checks which we really do not need (64-bits is
32699 2004-06-25 Vincent Celier <celier@gnat.com>
32701 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
32702 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
32703 inconditionally for the main project.
32704 (Recursive_Add_Archives.Add_Archive_Path): New procedure
32705 (Link_Executables.Check_Time_Stamps): New procedure
32706 (Link_Executables.Link_Foreign): New procedure
32707 Changes made to reduce nesting level of this package
32708 (Check): New procedure
32709 (Add_Switches): When not in quiet output, check that a switch is not
32710 the concatenation of several valid switches. If it is, issue a warning.
32711 (Build_Global_Archive): If the global archive is rebuilt, linking need
32713 (Compile_Sources): Rebuilding a library archive does not imply
32714 rebuilding the global archive.
32715 (Build_Global_Archive): New procedure
32716 (Build_Library): New name for Build_Archive, now only for library
32718 (Check_Archive_Builder): New procedure
32719 (Create_Global_Archive_Dependency_File): New procedure
32720 (Gprmake): Call Build_Global_Archive before linking
32721 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
32723 (Scan_Arg): Display the Copyright notice when -v is used
32725 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
32728 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
32730 Add new GNAT LIST qualifier /FILES=
32731 Added qualifier /DIRECTORY= to GNAT METRIC
32732 Added qualifier /FILES= to GNAT METRIC
32733 Added qualifier /FILES to GNAT PRETTY
32735 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
32736 to take into account both versions of the switch.
32738 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
32739 always be the last switch to the gcc driver. Disable switch storing so
32740 that switches automatically added by the gcc driver are not put in the
32743 * prj.adb (Project_Empty): Take into account changes in components of
32746 * prj.ads (Languages_Processed): New enumaration value All_Languages.
32748 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
32749 used. Split Boolean component Ada_Sources_Present in two Boolean
32750 components Ada_Sources_Present and Other_Sources_Present.
32753 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
32754 instead of Sources_Present.
32755 (Set_Ada_Paths.Add.Recursive_Add): Ditto
32757 * prj-nmsc.adb: Minor reformatting
32758 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
32759 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
32760 Check_Ada_Naming_Scheme.
32761 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
32764 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
32766 Make sure that all cycles where there is at least one "limited with"
32768 (Parse_Single_Project): New Boolean parameter In_Limited
32770 * prj-proc.adb (Recursive_Check): When Process_Languages is
32771 All_Languages, call first Prj.Nmsc.Ada_Check, then
32772 Prj.Nmsc.Other_Languages_Check.
32774 * prj-proc.adb (Process): Use Ada_Sources_Present or
32775 Other_Sources_Present (instead of Sources_Present) depending on
32778 * lang-specs.h: Keep -g and -m switches in the same order, and as the
32781 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
32782 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
32784 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
32787 * lib.ads (Disable_Switch_Storing): New procedure.
32789 * make.adb: Modifications to reduce nesting level of this package.
32790 (Check_Standard_Library): New procedure
32791 (Gnatmake.Check_Mains): New procedure
32792 (Gnatmake.Create_Binder_Mapping_File): New procedure
32793 (Compile_Sources.Compile): Add switch -gnatez as the last option
32794 (Display): Never display -gnatez
32796 * Makefile.generic:
32797 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
32799 * gnatcmd.adb (Check_Project): New function
32800 (Process_Link): New procedure to reduce nesting depth
32801 (Check_Files): New procedure to reduce the nesting depth.
32802 For GNAT METRIC, include the inherited sources in extending projects.
32803 (GNATCmd): When GNAT LS is invoked with a project file and no files,
32804 add the list of files from the sources of the project file. If this list
32805 is too long, put it in a temp text files and use switch -files=
32806 (Delete_Temp_Config_Files): Delete the temp text file that contains
32807 a list of source for gnatpp or gnatmetric, if one has been created.
32808 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
32809 in the project file is too large, create a temporary text file that
32810 list them and pass it to the tool with "-files=<temp text file>".
32811 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
32813 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
32814 generated file is in not in Ada.
32816 * gnatls.adb: Remove all parameters And_Save that are no longer used.
32817 (Scan_Ls_Arg): Add processing for -files=
32818 (Usage): Add line for -files=
32820 * g-os_lib.adb (On_Windows): New global constant Boolean flag
32821 (Normalize_Pathname): When on Windows and the path starts with a
32822 directory separator, make sure that the resulting path will start with
32825 * clean.adb (Clean_Archive): New procedure
32826 (Clean_Project): When there is non-Ada code, delete the global archive,
32827 the archive dependency files, the object files and their dependency
32828 files, if they exist.
32829 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
32831 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
32833 * sinfo.ads: Fix typo in comment.
32835 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
32836 the TSS for remote access-to-subprogram types, since these TSS are
32837 always present once the type has been analyzed.
32838 (RAS_E_Dereference): Same.
32840 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
32841 reference raises Bad_Attribute, mark the reference as analyzed so the
32842 node (and any children resulting from rewrites that could have occurred
32843 during the analysis that ultimately failed) is not analyzed again.
32845 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
32847 * exp_dist.adb: Minor comment fix.
32849 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
32850 type is an anonymous access type, no unchecked deallocation of the
32851 allocated object can occur. If the object is controlled, attach it with
32852 a count of 1. This allows attachment to the Global_Final_List, if
32853 no other relevant list is available.
32854 (Get_Allocator_Final_List): For an anonymous access type that is
32855 the type of a discriminant or record component, the corresponding
32856 finalisation list is the one of the scope of the type.
32858 2004-06-25 Ed Schonberg <schonberg@gnat.com>
32860 * sem_ch3.adb (Replace_Type): When computing the signature of an
32861 inherited subprogram, use the first subtype if the derived type
32862 declaration has no constraint.
32864 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
32865 before applying previous optimization. Minor code cleanup.
32867 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
32868 placed at the beginning of an unpacked record without explicit
32869 alignment, a slice of it will be aligned and does not need a copy when
32872 2004-06-25 Ed Schonberg <schonberg@gnat.com>
32876 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
32877 reference is written with expressions mimicking parameters.
32879 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
32882 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
32883 STEP 2a. The constraints of a full type declaration of a derived record
32884 type are checked for conformance with those declared in the
32885 corresponding private extension declaration. The message
32886 "not conformant with previous declaration" is emitted if an error is
32889 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
32891 * g-traceb.ads: Document the need for -E binder switch in the spec.
32893 * g-trasym.ads: Document the need for -E binder switch in the spec.
32895 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
32897 * sem_prag.adb: Add handling of pragma Detect_Blocking.
32899 * snames.h, snames.ads, snames.adb: Add entry for pragma
32902 * s-rident.ads: Change reference to pragma Detect_Blocking.
32904 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
32907 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
32908 to indicate whether pragma Detect_Blocking is active.
32910 * par-prag.adb: Add entry for pragma Detect_Blocking.
32912 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
32913 of not handling WITH.
32914 Note that this replaces the previous update which was incorrect.
32916 2004-06-25 Javier Miranda <miranda@gnat.com>
32918 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
32919 use-clauses to have a clean environment.
32921 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
32922 the installation of the use-clauses to stablish a clean environment in
32923 case of compilation of a separate unit; otherwise the call to
32924 use_one_package is protected by the barrier Applicable_Use.
32926 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
32927 the installation of the use-clauses to stablish a clean environment in
32928 case of compilation of a separate unit.
32929 (End_Use_Clauses): Minor comment cleanup.
32931 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
32933 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
32935 2004-06-23 Richard Henderson <rth@redhat.com>
32937 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
32939 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32941 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
32942 now bool instead of int.
32943 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
32944 * trans.c (gnu_switch_label_stack): New function.
32945 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
32946 elaboration of renamed entity returns.
32947 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
32948 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
32949 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
32950 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
32951 DECL_SIZE_UNIT and simplify variable-sized case.
32952 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32953 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
32954 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
32955 (build_unit_elab): Disable for now.
32956 * utils.c (mark_visited): New function.
32957 (pushdecl): Walk tree to call it for global decl.
32958 (update_pointer_to): Update all variants of pointer and ref types.
32959 Add arg to COMPONENT_REF.
32960 (convert): Likewise.
32961 Move check for converting between variants lower down.
32962 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
32963 (build_allocator): Don't force type of MODIFY_EXPR.
32964 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
32965 put_var_into_stack.
32967 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32969 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
32970 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
32971 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
32973 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
32974 all callers changed.
32975 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
32976 the way that EXIT_STMT finds the loop label.
32977 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
32978 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
32979 (add_stmt): Use annotate_with_locus insted of setting directly.
32980 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
32981 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
32982 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
32983 (build_vms_descriptor): Add extra args to ARRAY_REF.
32984 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
32985 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
32987 (build_binary_op): Don't make explicit CONVERT_EXPR.
32988 Add extra rgs to ARRAY_REF.
32990 2004-06-14 Pascal Obry <obry@gnat.com>
32992 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
32993 Windows. Fix minor typo.
32995 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
32996 which is now supported on Windows. With this implementation using the
32997 Library Project feature is no different on Windows than on UNIX.
32999 2004-06-14 Vincent Celier <celier@gnat.com>
33001 * makegpr.adb (Compile_Sources): Nothing to do when there are no
33004 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33006 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33007 found, show the project name and the path of the previously parsed
33010 2004-06-14 Ed Schonberg <schonberg@gnat.com>
33012 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33013 array, avoid copying the actual before the call.
33015 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
33017 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33018 Instead, allocate memory on worst-case alignment assumptions, and then
33019 return an aligned address within the allocated zone.
33021 2004-06-14 Robert Dewar <dewar@gnat.com>
33023 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33024 elab entities in predefined units in No_Run_Time_Mode.
33025 (Gen_Adainit_C): Same fix
33026 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33027 units in No_Run_Time_Mode
33028 (Gen_Elab_Calls_C): Same fix
33030 * symbols-vms-alpha.adb: Minor reformatting
33032 * g-debpoo.ads: Minor reformatting
33034 * lib.adb (In_Same_Extended_Unit): Version working on node id's
33036 * lib.ads (In_Same_Extended_Unit): Version working on node id's
33038 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33041 * make.adb: Minor reformatting
33043 * par-ch12.adb: Minor reformatting
33045 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33047 * prj-strt.adb: Minor reformatting
33049 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33052 * sem_attr.adb: Minor reformatting
33054 * sem_ch7.adb: Minor reformatting
33056 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33057 for type in the same unit as the object declaration.
33059 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33060 static string expressions and not just string literals.
33062 (Set_Warning): Reset restriction warning flag for restriction pragma
33063 Implement pragma Profile_Warnings
33064 Implement pragma Profile (Restricted)
33065 Give obolescent messages for old restrictions and pragmas
33067 * snames.h, snames.ads, snames.adb: Add new entry for pragma
33070 * s-rident.ads: Add declarations for restrictions required by profile
33071 Restricted and profile Ravenscar.
33073 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33075 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33076 configuration pragmas.
33078 2004-06-11 Vincent Celier <celier@gnat.com>
33080 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33081 gnatsym, when symbol policy is Restricted.
33083 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33084 gnatsym, when symbol policy is Restricted.
33086 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33087 read the symbol file.
33088 (Finalize): Fail in symbol policy Restricted if a symbol in the original
33089 symbol file is not in the object files. Do not create a new symbol file
33090 when symbol policy is Restricted.
33092 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33095 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33097 (Usage): Line for new switch -R
33099 * make.adb (Initialize): When the platform is not VMS, add the
33100 directory where gnatmake is invoked in the front of the path, if
33101 gnatmake is invoked with directory information. Change the Scan_Args
33102 while loop to a for loop.
33103 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33104 if Depth is equal or greater than the proposed depth, there is nothing
33106 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33109 * prj.ads: Add new symbol policy Restricted.
33111 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33112 with the new parameters Check_All_Labels and Case_Location.
33114 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33115 (Library_Symbol_File needs to be defined).
33117 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33118 and Case_Location If Check_All_Labels is True, check that all values of
33119 the string type are used, and output warning(s) if they are not.
33121 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33124 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33126 * gnat_ugn.texi: Update documentation about the library directory in
33129 * makegpr.adb (Display_Command): In verbose mode, also display the
33130 value of the CPATH env var, when the compiler is gcc.
33131 (Initialize): Change the Scan_Args while loop to a for loop
33132 (Compile_Individual_Sources): Change directory to object directory
33133 before compilations.
33135 * symbols.ads: New symbol policy Restricted.
33137 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
33139 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33140 is now taken care of internally in the Exception_Propagation package
33141 and does not require clients assistance any more.
33143 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33144 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33145 functions. Helpers to maintain a predicate required in the handling of
33146 occurrence transfer between tasks.
33147 This is now handled internally and does not require clients assistance
33148 for the setup/propagate separation anymore.
33149 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33150 allocation strategy, handle the Setup_And_Not_Propagated predicate and
33153 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33154 raise_after_setup, now that everything is handled internally within the
33155 setup/propagation engine.
33157 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33159 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33160 Add additional conditions for the case of an actual being a simple
33161 name or literal. Improve inlining by preventing the generation
33162 of temporaries with a short lifetime (one use).
33164 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33167 * einfo.ads: Minor comment updates for Has_Completion and
33168 E_Constant list of flags.
33170 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33171 and constant redeclarations now set the Has_Completion flag of their
33172 defining identifiers.
33174 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33175 Inspect_Deferred_Constant_Completion.
33176 Used to detect private deferred constants that have not been completed
33177 either by a constant redeclaration or pragma Import. Emits error message
33178 "constant declaration requires initialization expression".
33180 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33181 completes a deferred constant.
33183 2004-06-11 Geert Bosch <bosch@gnat.com>
33185 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33187 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33188 calculating exponent for scaling denormal numbers.
33189 (Leading_Part): Properly raise Constraint_Error for zero or negative
33191 (Remainder): Properly raise Constraint_Error for zero divisor.
33193 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
33195 * sem_util.adb: Minor reformatting.
33197 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33198 dereference when accessing the entry parameter record.
33199 (Check_Array_Type): Always check for possible implicit dereference.
33200 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33201 Abort if a pointer is still present (denoting that an implicit
33202 dereference was left in the tree by the front-end).
33204 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33205 dereference when accessing the entry parameter record.
33206 (Check_Array_Type): Always check for possible implicit dereference.
33207 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33208 Abort if a pointer is still present (denoting that an implicit
33209 dereference was left in the tree by the front-end).
33211 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
33213 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33214 message, like the compiler itself does. Easier to parse the output.
33216 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33218 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33219 be base names, and not includes directories.
33221 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33223 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33224 so that dependencies are properly taken into account by make.
33226 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33229 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33230 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33232 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
33234 * Makefile.in (install-gnatlib): install target-specific run-time files.
33236 * Make-lang.in: Remove obsolete targets.
33238 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33240 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33241 specification, to catch misuses of program unit names.
33243 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33244 superfluous conversions in an instance.
33246 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33249 * sem_ch12.adb (Save_References): If operator node has been folded to
33250 enumeration literal, associated_node must be discarded.
33252 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
33254 * s-stchop-vxworks.adb: Add required pragma Convention to
33255 Task_Descriptor because it is updated by a C function.
33257 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
33260 * Makefile.in: Remove target specific SO_OPT on IRIX
33262 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33264 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33265 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33266 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33267 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33268 (STMT_STMT, USE_STMT): New statement codes.
33269 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33270 * ada-tree.h: Reflect above changes.
33271 (struct tree_loop_id): Deleted.
33272 (union lang_tree_node, struct lang_decl, struct lang_type):
33273 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33274 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33275 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33276 (IS_ADA_STMT): New macro.
33277 * decl.c (annotate_decl_with_node): New function.
33278 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33279 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33280 Call add_stmt_with_node to do needed assignments.
33281 Add call to update setjmp buffer directly, not via EXPR_STMT.
33282 (maybe_variable): Argment GNAT_NODE deleted.
33283 * gigi.h (maybe_variable): Likewise.
33284 (make_transform, add_stmt_with_node, set_block_for_group): New.
33285 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33286 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33287 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33288 (set_lineno, set_lineno_from_sloc): Likewise.
33289 (record_code_position, insert_code_for): Likewise.
33290 (gnat_poplevel): Now returns void.
33291 (end_subprog_body): Now takes argument.
33292 * misc.c (cgraph.h, tree-inline.h): New includes.
33293 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33294 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33295 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33296 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33297 (gnat_parse_file): Don't set immediate_size_expand.
33298 Call cgraph functions.
33299 (gnat_expand_expr): Remove most cases.
33300 (record_code_position, insert_code_for): Remove from here.
33301 * trans.c (toplev.h, tree-gimple.h): Now included.
33302 (discard_file_names): Deleted.
33303 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33304 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33305 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33306 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33307 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33308 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33309 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33310 (set_block_for_group, add_stmt_list): Likewise.
33311 (start_stmt_group): Renamed from start_block_stmt.
33312 (end_stmt_group): Likewise, from end_block_stmt.
33313 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33314 (gigi): Don't set discard_file_names or call set_lineno.
33315 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33316 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33317 Numerous changes throughout to reflect new names and complete
33318 function-at-a-time implementation.
33319 (gnat_expand_stmt): Delete or comment out all cases.
33320 (process_inlined_subprograms): Use add_stmt.
33321 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33322 call set_lineno; also remove unneeded block handling.
33323 (process_type): Remove unneeded block handling.
33324 (build_unit_elab): Remove calls to deleted functions.
33325 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33326 (tree-dump.h): Likewise.
33327 (struct ada_binding_level): Add field jmpbuf_decl.
33328 (gnat_define_builtin, gnat_install_builtins): New.
33329 (gnat_gimplify_function, gnat_finalize): Likewise.
33330 (gnat_poplevel): No longer return BLOCK, set it instead.
33331 Remove code dealing with nested functions.
33332 (gnat_init_decl_processing): Also set size_type_node.
33333 Call gnat_install_builtins.
33334 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33335 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33336 Remove special-case for "main".
33337 (end_subprog_body): Add arg and rework for tree-ssa.
33338 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33339 Add case for BOOLEAN_TYPE.
33340 * utils2.c (rtl.h): Now include.
33341 (build_call_raise): Test Debug_Flag_NN directly.
33342 (build_call_alloc_dealloc): Don't use local stack allocation for now.
33343 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33344 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33346 2004-06-07 Robert Dewar <dewar@gnat.com>
33348 * a-direct.ads, einfo.ads: Minor comment updates
33350 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33351 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33352 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33353 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33354 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33356 * s-interr-sigaction.adb: Remove unreferenced variable
33357 (Attached_Interrupts). Minor reformatting.
33358 Avoid use of variable I (replace by J).
33360 * par-ch10.adb: Fix text of one error message
33362 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33363 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33364 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33365 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33366 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33367 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33368 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33369 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33370 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33371 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33372 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33375 2004-06-07 Doug Rupp <rupp@gnat.com>
33377 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33379 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33381 * mlib-tgt-vms-ia64.adb: New file.
33383 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33384 Add mlib-tgt-vms-ia64.adb
33385 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33386 Move to alpha specific ifeq section.
33387 Add VMS specific versions of symbols.adb
33388 Renaming of 5q vms files.
33390 * 5qsystem.ads renamed to system-vms_64.ads.
33392 2004-06-07 Vincent Celier <celier@gnat.com>
33394 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33395 explain that when a time of day corresponding to the non existing hour
33396 on the day switching to DST is specified, Split may return a different
33399 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33402 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33403 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33405 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33407 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33408 the linking options.
33409 (Build_Library.Check_Libs): On VMS, if there is a dependency on
33410 g-trasym.ads, set Gtrasymobj_Needed to True.
33412 * prj-attr.adb: Add new package Metrics for gnatmetric
33414 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33415 canonical case to take into account files with upper case characters on
33417 (Ada_Check): Load the reference symbol file name in the name buffer to
33418 check it, not the symbol file name.
33420 * snames.ads, snames.adb: Add standard name Metrics (name of project
33421 file package for gnatmetric).
33423 * vms_conv.ads: Add Metric to Comment_Type
33425 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33427 * vms_data.ads: Add qualifiers for GNAT METRIC
33429 * makegpr.adb (Link_Executables): Take into account the switches
33430 specified in package Linker of the main project.
33432 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
33434 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33435 the index of the last element is Units.Last, not Units.Table'Last
33436 (which is usually not a valid index within the actually allocated
33437 storage for the table).
33439 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33440 determines whether to generate a call to a checked storage pool
33441 Dereference action.
33442 Generate such a call only for a dereference that either comes from
33443 source, or is the result of rewriting a dereference that comes from
33446 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
33448 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33450 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
33452 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33453 file level, elaborate the stride for inner dimensions in alignment
33456 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33459 2004-06-07 Javier Miranda <miranda@gnat.com>
33461 * exp_ch6.adb: Correct wrong modification in previous patch
33463 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
33465 * g-trasym.ads: Corrected comment to properly reflect level of support
33468 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
33470 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33471 includes case of a variable referenced on the left hand side of an
33472 assignment, therefore remove redundant code. Variables and prefixes of
33473 indexed or selected components are now marked as referenced on left
33474 hand side. Warnings are now properly emitted when variables or prefixes
33475 are assigned but not read.
33477 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33478 left hand side referenced variables. Private access types do not
33479 produce the warning "variable ... is assigned but never read".
33480 Add also additional checks to left hand side referenced variables.
33481 Aliased, renamed objects and access types do not produce the warning
33482 "variable ... is assigned but never read" since other entities may read
33483 the memory location.
33485 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
33487 * Makefile.in: In the powerpc/vxworks-specific section, restore
33488 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33491 2004-06-07 Ed Schonberg <schonberg@gnat.com>
33493 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33494 predefined operators.
33495 Removes spurious type errors from g-trasym-vms.adb.
33497 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33498 distinct from the operator appearing in the source, call appropriate
33499 routine to insert conversions when needed, and complete resolution of
33501 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33502 interpretations for rewritten right operand.
33503 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33504 the other operand is overloaded and the context is a type conversion.
33506 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33508 * ada-tree.def (BLOCK_STMT): Now has two operands.
33511 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33513 * gigi.h: (gnat_poplevel): Now returns a tree.
33515 * trans.c (end_block_stmt): Add arg; all callers changed.
33516 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33517 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33518 (add_stmt): Set TREE_TYPE.
33519 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33520 (gnat_expand_stmt, case BREAK_STMT): New case.
33522 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33524 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
33526 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33527 procedure Set_Stack_Size that is not needed.
33529 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
33531 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33532 used for gnatpp input file and for the files upon which it depends
33534 2004-06-07 Ben Brosgol <brosgol@gnat.com>
33536 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33538 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
33540 * gnatvsn.ads: Bump version numbers appropriately.
33541 Add new build type.
33543 2004-06-07 Pascal Obry <obry@gnat.com>
33545 * gnat_ugn.texi: Improve comments about imported names and link names
33546 on Windows. Add a note about the requirement to use -k gnatdll's option
33547 when working with a DLL which has stripped stdcall symbols (no @nn
33550 2004-05-27 Vincent Celier <celier@gnat.com>
33552 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33553 COMMENTS_LAYOUT=UNTOUCHED
33555 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33556 symbols-vms-alpha.adb
33558 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
33560 * sem.ads: Clarify documentation on checks suppression.
33562 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33564 2004-05-27 Ed Schonberg <schonberg@gnat.com>
33566 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33567 the case of multiple derivations.
33568 (Is_Object_Reference): For a selected component, verify that the prefix
33569 is itself an object and not a value.
33571 * sem_ch12.adb (Same_Instantiated_Constant): New name for
33572 Same_Instantiated_Entity.
33573 (Same_Instantiated_Variable): Subsidiary to
33574 Check_Formal_Package_Instance, to recognize actuals for in-out generic
33575 formals that are obtained from a previous formal package.
33576 (Instantiate_Subprogram_Body): Emit proper error when
33577 generating code and the proper body of a stub is missing.
33579 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33580 has a universal interpretation, do the disambiguation here.
33582 * exp_ch4.adb (Expand_N_Type_Conversion,
33583 Expand_N_Unchecked_Type_Conversion): Special handling when target type
33584 is Address, to avoid typing anomalies when Address is a visible integer
33587 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33588 to determine whether a subprogram should not be marked Pure, even when
33589 declared in a pure package.
33591 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
33593 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33595 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33596 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33597 Update the documentation about the Ravenscar profile, following the
33598 definition found in AI-249.
33600 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33601 setting the Profile (Ravenscar). This must be done in addition to
33602 setting the required restrictions.
33604 * rtsfind.ads: Add the set of operations defined in package
33607 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33610 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
33612 lang-specs.h: Always require -c or -S and always redirect to /dev/null
33613 if -gnatc or -gnats is passed.
33615 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
33617 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33618 a significant reference. Warnings are now properly emitted when a
33619 discriminated type is not referenced.
33621 * lib-xref.adb (Generate_Reference): A deferred constant completion,
33622 record representation clause or record type discriminant does not
33623 produce a reference to its corresponding entity. Warnings are now
33624 properly emitted when deferred constants and record types are not
33627 2004-05-27 Geert Bosch <bosch@gnat.com>
33629 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33630 Fixes ACATS Annex G tests.
33632 2004-05-27 Robert Dewar <dewar@gnat.com>
33634 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
33637 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
33639 * s-interr.adb (Server_Task): Take into account case of early return
33640 from sigwait under e.g. linux.
33642 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
33644 * gnat_ugn.texi: Add description for the new gnatpp options:
33645 -rnb - replace the original source without creating its backup copy
33646 -c0 - do not format comments
33648 2004-05-24 Geert Bosch <bosch@gnat.com>
33650 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
33651 with 192 bits of precision, sufficient to reduce a double-extended
33652 arguments X with a maximum relative error of T'Machine_Epsilon, for X
33653 in -2.0**32 .. 2.0**32.
33654 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
33655 reduction by the processor, which only uses a 68-bit approximation of
33657 (Tan): Always reduce arguments and compute function either using
33658 the processor's fptan instruction, or by dividing sin and cos as needed.
33660 2004-05-24 Doug Rupp <rupp@gnat.com>
33662 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
33663 gcc error on 32/64 bit VMS.
33665 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
33667 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
33668 since this is what we get for stack overflows although not documented
33670 Document the issues which may require adjustments to our signal
33673 2004-05-24 Ed Schonberg <schonberg@gnat.com>
33675 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
33676 enclosing dynamic scope if the instantiation is within a generic unit.
33678 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33680 * exp_dbug.ads: Fix typo.
33682 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
33683 Rename it to its proper name: system-linux-ia64.ads
33684 (stamp-gnatlib1): Remove extra target specific run time files when
33685 setting up the rts directory.
33687 2004-05-24 Javier Miranda <miranda@gnat.com>
33689 * einfo.ads, einfo.adb (Limited_Views): Removed.
33690 (Limited_View): New attribute that replaces the previous one. It is
33691 now a bona fide package with the limited-view list through the
33692 first_entity and first_private attributes.
33694 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
33695 limited-private-with clause.
33696 (Install_Limited_Withed_Unit): Install the private declarations of a
33697 limited-private-withed package. Update the installation of the shadow
33698 entities according to the new structure (see Build_Limited_Views)
33699 (Build_Limited_Views): Replace the previous implementation of the
33700 limited view by a package entity that references the first shadow
33701 entity plus the first shadow private entity (required for limited-
33702 private-with clause)
33703 (New_Internal_Shadow_Entity): Code cleanup.
33704 (Remove_Limited_With_Clause): Update the implementation to undo the
33705 new work carried out by Build_Limited_Views.
33706 (Build_Chain): Complete documentation.
33707 Replace Ada0Y by Ada 0Y in comments
33710 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
33711 types the level of accessibility depends on the enclosing type
33714 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
33715 entities. Complete documentation of previous change.
33717 2004-05-24 Robert Dewar <dewar@gnat.com>
33719 * namet.adb: Minor reformatting
33720 Avoid use of name I (replace by J)
33721 Minor code restructuring
33723 * sem_ch6.adb: Minor reformatting
33725 * lib-writ.adb: Do not set restriction as active if this is a
33726 Restriction_Warning case.
33728 * sem_prag.adb: Reset restriction warning flag if real pragma
33729 restriction encountered.
33731 * s-htable.adb: Minor reformatting
33732 Change rotate count to 3 in Hash (improves hash for small strings)
33734 * 5qsystem.ads: Add comments for type Address (no literals allowed).
33736 * gnat_ugn.texi: Add new section of documentation "Code Generation
33737 Control", which describes the use of -m switches.
33739 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
33741 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
33742 through the DECL_INITIAL for renamed variables.
33744 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
33746 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
33748 2004-05-19 Joel Brobecker <brobecker@gnat.com>
33750 * exp_dbug.ads: Correct comments concerning handling of overloading,
33751 since we no longer use $ anymore.
33753 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
33755 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
33756 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
33757 with illegal subunits.
33759 2004-05-19 Ed Schonberg <schonberg@gnat.com>
33761 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
33762 body with front-end inlining enabled, check whether an inline pragma
33763 appears immediately after the body and applies to it.
33765 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
33766 enabled and the pragma appears after the body of the subprogram.
33768 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33770 Part of function-at-a-time conversion
33772 * misc.c (adjust_decl_rtl): Deleted.
33773 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
33776 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
33777 (add_decl_stmt, add_stmt, block_has_vars): New functions.
33778 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
33780 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
33781 when making a decl.
33782 (gnat_to_gnu_entity): Likewise.
33783 Use add_stmt to update setjmp buffer.
33784 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
33786 No longer call adjust_decl_rtl.
33787 (DECL_INIT_BY_ASSIGN_P): New macro.
33788 (DECL_STMT_VAR): Likewise.
33790 * trans.c (gigi): Call start_block_stmt to make the outermost
33792 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
33793 Call start_block_stmt and end_block_stmt temporarily.
33794 Use gnat_expand_stmt instead of expand_expr_stmt.
33795 (add_decl_stmt): New function.
33796 (tree_transform): Call it.
33797 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
33798 (end_block_stmt): Set type and NULL_STMT.
33799 (gnat_expand_stmt): Make recursize call instead of calling
33801 (gnat_expand_stmt, case DECL_STMT): New case.
33802 (set_lineno_from_sloc): Do nothing if global.
33803 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
33804 (start_block_stmt, add_stmt, end_block_stmt): New functions.
33805 (build_block_stmt): Call them.
33806 (gnat_to_code): Don't expand NULL_STMT.
33807 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
33809 (tree_transform): Likewise.
33810 (tree_transform, case N_Null_Statement): Return NULL_STMT.
33811 (gnat_expand_stmt, case NULL_STMT): New case.
33812 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
33815 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
33818 * utils.c (create_var_decl): Do not call expand_decl or
33820 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
33821 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
33823 (struct e_stack): Add chain_next to GTY.
33824 (struct binding_level): Deleted.
33825 (struct ada_binding_level): New struct.
33826 (free_block_chain): New.
33827 (global_binding_level, clear_binding_level): Deleted.
33828 (global_bindings_p): Rework to see if no chain.
33829 (kept_level_p, set_block): Deleted.
33830 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
33831 new data structure and work directly on BLOCK node.
33832 (gnat_poplevel): Similarly.
33833 (get_decls): Look at BLOCK_VARS.
33834 (insert_block): Work directly on BLOCK node.
33835 (block_has_var): New function.
33836 (pushdecl): Rework for new binding structures.
33837 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
33839 (build_subprog_body): Likewise.
33840 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
33842 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
33844 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
33845 (DECL_STMT_VAR): Likewise.
33847 2004-05-17 Robert Dewar <dewar@gnat.com>
33849 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
33852 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
33853 of restriction synonyums by using
33854 Restrict.Process_Restriction_Synonyms.
33856 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
33858 * s-restri.ads (Tasking_Allowed): Correct missing comment
33860 * s-rident.ads: Add entries for restriction synonyms
33862 * ali.adb: Fix some problems with badly formatted ALI files that can
33863 result in infinite loops.
33865 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
33866 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
33867 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33868 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
33869 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
33870 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
33871 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
33872 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
33873 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
33874 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
33875 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
33876 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
33877 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
33878 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33879 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
33880 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
33881 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33882 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33883 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
33884 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
33885 to Task_Id (minor cleanup).
33887 2004-05-17 Vincent Celier <celier@gnat.com>
33889 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
33890 directory separator.
33892 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
33893 project being extended, if Languages is not declared in extending
33896 2004-05-17 Javier Miranda <miranda@gnat.com>
33898 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
33899 limited view of a visible sibling.
33901 2004-05-14 Robert Dewar <dewar@gnat.com>
33903 * gnat_ugn.texi: Minor change to -gnatS documentation
33905 * sprint.adb: Remove some instances of Assert (False) and for this
33906 purpose replace them by output of a ??? string.
33908 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
33911 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
33912 flag processing. This was suppressing required dependencies in
33913 No_Run_Time mode and is not needed since the binder does not generate
33914 references for things in libgnat anyway.
33916 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
33919 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
33921 * gnat_ugn.texi: Document AIX-specific issue with initialization of
33924 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
33925 action for the case of an actual parameter in an init proc call.
33927 2004-05-14 Ed Schonberg <schonberg@gnat.com>
33929 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
33930 subtype, check visible entities in base type.
33932 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
33933 actions if the object is a renaming.
33935 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
33936 Check_Formal_Package_Instance, to determine more precisely when the
33937 formal and the actual denote the same entity.
33939 2004-05-14 Javier Miranda <miranda@gnat.com>
33941 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
33943 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
33944 corresponding to a private_with must be removed from visibility; it
33945 will be made visible later, just before we analyze the private part of
33947 (Check_Private_Child_Unit): Allow private_with clauses in public
33949 (Install_Siblings): Make visible the private entities of private-withed
33951 (Install_Withed_Unit): Do not install the private withed unit if we
33952 are compiling a package declaration and the Private_With_OK flag was
33953 not set by the caller. These declarations will be installed later,
33954 just before we analyze the private part of the package.
33956 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
33957 during the evaluation of the expression that initializes the object,
33958 decorate it with the expected type to avoid cascade errors.
33961 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
33962 subprogram we have to install the private_with clauses after its
33963 specification has been analyzed (as documented in AI-262.TXT).
33965 * sem_ch8.adb (Has_Private_With): New function. Determines if the
33966 current compilation unit has a private with on a given entity.
33967 (Find_Direct_Name): Detect the Beaujolais problem described in
33970 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
33971 provides the functionality of the function Is_Ancestor that was
33972 previously available in sem_ch10. It has been renamed to avoid
33975 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
33977 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33979 * utils.c (build_vms_descriptor): Use SImode pointers.
33981 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
33983 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
33985 2004-05-14 GNAT Script <nobody@gnat.com>
33987 * Make-lang.in: Makefile automatically updated
33989 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
33991 Renaming of target specific files for clarity
33993 * Makefile.in: Rename GNAT target specific files.
33995 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
33996 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
33997 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
33998 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
33999 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34000 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34001 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34002 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34003 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34004 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34005 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34006 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34007 51osinte.adb, 51osinte.ads, 51system.ads,
34008 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34009 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34010 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34011 56tpopsp.adb, 57system.ads, 58system.ads,
34012 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34013 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34014 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34015 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34016 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34017 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34018 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34019 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34020 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34021 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34022 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34023 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34024 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34025 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34026 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34027 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34028 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34029 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34030 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34031 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34032 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34033 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34034 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34035 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34036 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34037 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34038 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34039 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34040 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34041 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34042 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34043 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34044 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34045 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34046 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34047 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34048 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34049 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34050 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34051 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34053 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34054 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34055 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34056 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34057 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34058 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34059 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34060 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34061 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34062 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34063 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34064 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34065 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34066 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34067 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34068 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34069 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34070 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34071 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34072 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34073 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34074 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34075 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34076 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34077 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34078 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34079 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34080 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34081 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34082 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34083 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34084 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34085 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34086 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34087 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34088 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34089 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34090 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34091 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34092 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34093 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34094 s-osinte-vms.ads, s-osinte-vxworks.adb,
34095 s-osinte-vxworks.ads, s-osprim-mingw.adb,
34096 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34097 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34098 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34099 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34100 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34101 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34102 s-stchop-vxworks.adb, s-taprop-dummy.adb,
34103 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34104 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34105 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34106 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34107 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34108 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34109 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34110 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34111 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34112 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34113 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34114 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34115 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34116 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34117 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34118 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34119 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34120 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34121 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34122 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34123 system-irix-o32.ads, system-linux-x86_64.ads,
34124 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34125 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34126 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34127 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34128 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34129 system-vxworks-mips.ads, system-vxworks-ppc.ads,
34130 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34133 2004-05-13 Zack Weinberg <zack@codesourcery.com>
34135 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34137 2004-05-13 Diego Novillo <dnovillo@redhat.com>
34139 Merge from tree-ssa-20020619-branch.
34141 * config-lang.in (boot_language, build_by_default): Set
34143 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34144 (max_size): Add static chain op for call_expr.
34146 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
34149 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34151 2004-05-11 Roger Sayle <roger@eyesopen.com>
34153 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34156 2004-05-10 Doug Rupp <rupp@gnat.com>
34158 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34161 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34163 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34165 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34166 Fixes undefined symbols in IA64 gnatlib.
34168 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34170 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34171 Short_Address). This will be moved to system.auxdec.
34173 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
34175 * sem_util.adb: Replace test for presence of a node that is always
34176 present with a call to Discard_Node.
34178 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34179 Analyze on the library unit node after generation of distribution stub
34180 constructs. The call was a no-op because Unit_Node has already been
34181 Analyzed, and the tree fragments for the distribution stubs are
34182 analyzed as they are inserted in Exp_Dist.
34183 Update comment regarding to distribution stubs to reflect that we
34184 do not generate stub in separate files anymore.
34186 * einfo.ads: Clarify the fact that a tagged private type has the
34187 E_Record_Type_With_Private Ekind.
34189 * erroutc.adb: Minor reformatting
34191 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34192 values if line length is increased using -gnatyM (noticed during code
34195 * eval_fat.adb: Minor reformatting
34196 Put spaces around exponentiation operator
34198 2004-05-10 Ed Schonberg <schonberg@gnat.com>
34201 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34202 has been rewritten as an explicit dereference, retrieve type of
34203 original node to check for possibly unconstrained record type.
34205 2004-05-10 Ed Schonberg <schonberg@gnat.com>
34207 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34208 overriding, use the operation of the parent unconditionally.
34210 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34211 operation when either operand is a literal, to avoid further
34214 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34215 overridden by a previous explicit declaration, mark the previous entity
34218 * sem_disp.adb (Check_Dispatching_Operation): New predicate
34219 Is_Visibly_Controlled, to determine whether a declaration of a
34220 primitive control operation for a derived type overrides an inherited
34221 one. Add warning if the explicit declaration does not override.
34223 2004-05-10 Vincent Celier <celier@gnat.com>
34225 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34226 some cases when the sources are no longer present.
34228 * make.adb (Collect_Arguments): Fail if an external source, not part
34229 of any project need to be compiled, when switch -x has not been
34232 * makeusg.adb: Document new switch -x
34234 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34235 defaulted to False.
34237 * switch-m.adb (Scan_Make_Switches): New switch -x
34239 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34240 gnatmake switch -x.
34242 * gnat_ugn.texi: Document new gnatmake switch -x
34244 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
34246 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34248 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34249 (process_attributes): Likewise.
34251 2004-05-10 Joel Brobecker <brobecker@gnat.com>
34253 * s-inmaop.ads: Fix spelling mistake in one of the comments.
34255 2004-05-10 Robert Dewar <dewar@gnat.com>
34257 * gnat_ugn.texi: Document that for config pragma files, the maximum
34258 line length is always 32767.
34260 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34261 literals is now allowed.
34263 * gnat-style.texi: Remove statement about splitting long lines before
34264 an operator rather than after, since we do not follow this rule at all.
34265 Clarify rule (really lack of rule) for spaces around exponentiation
34267 * sem_elim.adb: Allow concatenation of string literals as well as a
34268 single string literal for pragma arguments.
34270 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34272 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34273 written for append case.
34275 * frontend.adb: Changes to avoid checking max line length in config
34278 * g-os_lib.ads: Minor reformatting
34280 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34281 wrong in any case. Instead use standard value. Noticed during code
34284 * opt.ads (Max_Line_Length): New field, used to implement removal of
34285 limitation on length of lines when scanning config pragma files.
34287 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34288 makeutl.ads, makeutl.adb: Minor reformatting
34290 * scn.adb: Do not check line length while scanning config pragma files
34291 Do not check line length while scanning out license information
34293 * scng.adb: Changes to avoid line length checks while parsing config
34296 2004-05-10 GNAT Script <nobody@gnat.com>
34298 * Make-lang.in: Makefile automatically updated
34300 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
34302 * osint.adb (Find_Program_Name): Fix handling of VMS version
34305 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
34307 * g-os_lib.ads (Invalid_Time): New constant
34309 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34310 return OS_Time instead of time_t to match what is imported by Ada.
34311 Now return -1 if the file doesn't exist, instead of a random value
34313 2004-05-05 Robert Dewar <dewar@gnat.com>
34315 * usage.adb: Add line for -gnatR?s switch
34317 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34319 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34320 and for Match (Data_First, Data_last)
34322 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34323 written when we are dealing with multi-unit files.
34325 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
34327 * Makefile.in: Remove unused targets and variables.
34329 2004-05-05 Vincent Celier <celier@gnat.com>
34331 * switch-m.adb: New gnatmake switch -eI
34333 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34334 of new gnatmake switch -eInnn.
34336 * makegpr.adb: Take into account new parameters Index and Src_Index in
34339 * clean.adb: Implement support for multi-unit sources, including new
34342 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34345 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34346 (Extract_From_Q): New out parameter Index
34347 (Mark, Is_Marked): Subprograms moved to Makeutl
34348 (Switches_Of): New parameter Source_Index
34349 (Add_Switch): New parameter Index
34350 (Check): New parameter Source_Index
34351 (Collect_Arguments): New parameter Source_Index
34352 (Collect_Arguments_And_Compile): New parameter Source_Index
34353 (Compile): New parameter Source_Index
34354 Put subprograms in alphabetical order
34355 Add support for multi-source sources, including in project files.
34357 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34358 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34361 * makeusg.adb: New gnatmake switch -eInnn
34363 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34366 * opt.ads (Main_Index): New variable, defaulted to 0.
34368 * osint.ads, osinte.adb (Add_File): New parameter Index
34369 (Current_Source_Index): New function
34371 * prj.adb: Take into account new components Index and Src_Index
34373 * prj.ads (String_Element): New component Index
34374 (Variable_Value): New component Index
34375 (Array_Element): New component Src_Index
34377 * prj-attr.adb: Indicate that optional index may be specified for
34378 attributes Main, Executable, Spec, Body and some of Switches.
34380 * prj-attr.ads (Attribute_Kind): New values for optional indexes
34381 (Attribute_Record): New component Optional_Index
34383 * prj-com.ads (File_Name_Data): New component Index
34385 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34387 * prj-env.adb (Put): Output optional index
34389 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34390 attributes Spec and Body.
34392 * prj-nmsc.adb: Process optional indexes
34394 * prj-pp.adb: Ouput "at" for optional indexes
34396 * prj-proc.adb: Take into account optional indexes
34398 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34399 Optional_Index. For string literal,
34400 process optional index when Optional_Index is True.
34401 (Parse_Expresion): New Boolean parameter Optional_Index
34403 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34404 (Set_Source_Index_Of): New procedure
34406 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34409 * prj-util.ads (Executable_Of): New parameter Index
34410 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34411 New parameter Src_Index, defaulted to 0.
34413 2004-05-05 Ed Schonberg <schonberg@gnat.com>
34416 * sem_ch3.adb (Access_Definition): If this is an access parameter
34417 whose designated type is imported through a limited_with clause, do
34418 not add the enclosing subprogram to the list of private dependents of
34421 2004-05-05 Ed Schonberg <schonberg@gnat.com>
34424 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34425 a limited_with clause, and the other is its non-limited view.
34427 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
34429 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34431 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34432 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34433 Stand.Boolean_Literals to produce references to entities
34434 Standard_False and Standard_True from compile-time computed boolean
34437 * stand.ads (Boolean_Literals): New variable, provides the entity
34438 values for False and True, for use by the expander.
34440 2004-05-05 Doug Rupp <rupp@gnat.com>
34442 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34443 5vinmaop.adb: Unchecked convert Short_Address vice Address
34445 * adaint.c, raise.c: Caste CRTL function return value
34446 to avoid gcc error on 32/64 bit IVMS.
34448 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34451 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34453 * 5qsystem.ads (Address): Declare as Long_Integer
34454 (Short_Address): Declare as 32 bit subtype of Address
34455 Declare abstract address operations to avoid gratuitous ambiguities.
34457 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
34459 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34460 instead of the old Boolean_Entry_Barriers.
34461 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34463 2004-05-05 GNAT Script <nobody@gnat.com>
34465 * Make-lang.in: Makefile automatically updated
34467 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34469 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34471 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
34474 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34475 alone. Replacing object references by literals is inappropriate in a
34476 so low level context.
34478 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
34480 * a-exexpr.adb: Add comments
34482 2004-05-03 Joel Brobecker <brobecker@gnat.com>
34484 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34485 declare the Ancestor_Tags array in Type_Specific_Data with a small size
34486 without risking a bounds check error when accessing one of its
34488 (Type_Specific_Data): Define Ancestor_Tags as a small array.
34489 This prevents us from hitting a limitation during the debug info
34490 generation when using stabs.
34492 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34494 This prevents us from hitting a limitation during the debug info
34495 generation when using stabs.
34497 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
34499 lang-specs.h: Remove -gnatz* from specs.
34501 2004-05-03 Vincent Celier <celier@gnat.com>
34503 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34505 * Make-lang.in, Makefile.in: Add gprmake
34507 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
34509 * sem_aggr.adb: Fix typo in comment.
34511 2004-05-03 Robert Dewar <dewar@gnat.com>
34513 * make.adb: Minor reformatting
34515 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34517 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34518 so that it works when address is not a private type.
34520 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34521 properly with rewritten unchecked conversions. This prevents
34522 order-of-elaboration issues that can otherwise arise.
34523 (Minimum_Size): Don't check size of access types under VMS
34525 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34526 interpretations of integer literals as type System.Address.
34528 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34529 (Is_Descendent_Of): New function
34531 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
34533 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34534 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34535 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34537 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34538 of the old Max_Entry_Queue_Depth.
34540 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34541 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34542 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34544 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34545 New entry for proper handling of Max_Entry_Queue_Depth.
34546 New entry for proper handling of No_Dynamic_Interrupts.
34548 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34549 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34550 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34551 the GNAT specific restriction Max_Entry_Queue_Depth.
34552 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34553 the GNAT specific restriction No_Dynamic_Interrupts.
34555 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34556 instead of the old Boolean_Entry_Barriers.
34557 Use the new restriction No_Dynamic_Attachment instead of the old
34558 No_Dynamic_Interrupts.
34560 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34561 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34563 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34564 of the old Max_Entry_Queue_Depth.
34566 2004-05-03 GNAT Script <nobody@gnat.com>
34568 * Make-lang.in: Makefile automatically updated
34570 2004-04-29 Ed Schonberg <schonberg@gnat.com>
34572 * checks.adb (Enable_Range_Check): If the prefix of an index component
34573 is an access to an unconstrained array, perform check unconditionally.
34575 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34577 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34580 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
34582 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34583 alternate stack setting. There was no support for the tasking cases
34584 and the changes eventually caused a number of side-effect failures in
34585 the non-tasking case too.
34587 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
34589 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34592 2004-04-29 Vincent Celier <celier@gnat.com>
34594 * make.adb (Gnatmake): Increase max size of argument array for
34595 gnatbind for the potential addition of -F.
34596 If there are Stand-Alone Library projects, invoke gnatbind with -F to
34597 be sure that elaboration flags will be checked.
34599 * switch-c.adb: Correct call to Scan_Pos for -gnateI
34601 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
34603 * sem_warn.adb (Check_References): Move '<access-variable> may be
34604 null' warning out of under Warn_On_No_Value_Assigned.
34606 2004-04-29 Ed Falis <falis@gnat.com>
34608 * gnat_ugn.texi: Fixed texi error
34610 2004-04-29 Robert Dewar <dewar@gnat.com>
34612 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34613 abstract operations if they come from predefined files.
34615 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34618 * s-addope.adb: Correct obvious error in mod function
34620 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
34622 * Makefile.in: Add target pairs for powerpc darwin*
34625 * a-intnam-darwin.ads, s-osinte-darwin.adb,
34626 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34628 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34630 * Makefile.in: Add target macro definitions for s390*-linux*.
34631 * system-linux-s390.ads: New file.
34632 * system-linux-s390x.ads: New file.
34634 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
34636 * gnat_ugn.texi: Correct argument to @setfilename.
34638 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
34640 * a-exexpr.adb (Unwind_Word): New data type.
34641 (Unwind_Exception): Use it as type of Private1 and Private2.
34643 * raise.c (db_action_for): Fix debug printf.
34645 2004-04-27 Ed Schonberg <schonberg@gnat.com>
34647 * a-wtmoio.ads: Formal type must be a modular type, not a signed
34650 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34652 * decl.c (gnat_to_gnu_entity, case object): Call
34653 __builtin_update_setjmp_buf.
34655 * gigi.h (update_setjmp_buf): Deleted.
34656 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
34658 * misc.c: (update_setjmp_buf): Deleted.
34660 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
34661 around block of RTL.
34663 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
34665 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
34667 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
34668 subprogram for which no pragma All_Calls_Remote applies, store the
34669 address of the real subprogram in the underlying record type, so local
34670 dereferences do not go through the PCS.
34672 2004-04-26 Robert Dewar <dewar@gnat.com>
34674 * i-c.ads: Add some type qualifications to avoid ambiguities when
34675 compiling with s-auxdec.ads and a non-private address type.
34677 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
34679 * Makefile.rtl: Fix error in previous check-in:
34680 Add s-addope.o to non tasking object list (rather than tasking object
34683 2004-04-26 Javier Miranda <miranda@gnat.com>
34685 * sem_aggr.adb: Fix typo in comments
34686 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
34687 Required to check the null-exclusion attribute.
34689 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
34690 case of anonymous access types in record and array components. For a
34691 component definition the level is the same of the enclosing composite
34694 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
34695 that are anonymous access types the level of accessibility depends on
34696 the enclosing type declaration. In order to have this information, set
34697 the scope of the anonymous access type to the enclosing record type
34699 (Array_Type_Declaration): In case of components that are anonymous
34700 access types the level of accessibility depends on the enclosing type
34701 declaration. In order to have this information, set the scope of the
34702 anonymous access type to the enclosing array type declaration.
34704 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
34707 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
34708 renaming of anonymous access-to-constant types allowed if and only if
34709 the renamed object is access-to-constant.
34711 * sem_util.adb (Type_Access_Level): In case of anonymous access types
34712 that are component_definition or discriminants of a nonlimited type,
34713 the level is the same as that of the enclosing component type.
34715 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
34717 * sem_elim.adb: Some minor code reorganization from code reading. Fix
34718 misprint in the function name (File_Name_Match).
34720 2004-04-23 Laurent Guerby <laurent@guerby.net>
34722 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
34725 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34727 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
34729 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
34731 * adaint.c (__gnat_try_lock): No longer requires that the parent
34732 directory be writable, the directory itself is enough.
34733 (gnat_is_absolute_path): Change profile, so that the call from
34734 GNAT.OS_Lib can be made more efficient.
34736 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
34737 from GNAT.OS_Lib can be made more efficient.
34739 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
34740 one copy of the file name. Found by code reading.
34742 2004-04-23 Vincent Celier <celier@gnat.com>
34744 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
34745 Correct documentation on gnatmake switches transmitted to the compiler
34747 * ali.ads: Minor comment fix
34749 2004-04-23 Javier Miranda <miranda@gnat.com>
34751 * sem_ch6.adb: (Confirming Types): Code cleanup
34753 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
34754 subprogram types: E_Anonymous_Access_Subprogram_Type and
34755 E_Anonymous_Access_Protected_Subprogram_Type.
34757 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
34759 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34760 whether a pragma All_Calls_Remote applies to the subprogram on which
34762 No functional change is introduced by this revision; the new parameter
34763 will be used to allow calls to local RCI subprograms to be optimized
34764 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34765 as is already done in the PolyORB implementation of the DSA.
34767 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
34768 whether a pragma All_Calls_Remote applies to the subprogram on which
34770 No functional change is introduced by this revision; the new parameter
34771 will be used to allow calls to local RCI subprograms to be optimized
34772 to not use the PCS in the case where no pragma All_Calls_Remote applies,
34773 as is already done in the PolyORB implementation of the DSA.
34775 2004-04-23 Robert Dewar <dewar@gnat.com>
34777 * Makefile.rtl: Add entry for s-addope.o in run time library list
34778 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
34779 * s-addope.ads, s-addope.adb: New files.
34781 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
34782 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
34783 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
34784 System.Address to be non-private and signed.
34786 * sem_elim.adb: Minor reformatting (fairly extensive)
34787 Some minor code reorganization from code reading
34788 Add a couple of ??? comments
34790 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34792 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
34793 (tree_transform, case N_If_Statement): Remove non-determinism.
34795 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
34797 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
34799 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
34800 Eliminate' section.
34802 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
34803 no longer used as a parameter name for Eliminate pragma).
34805 2004-04-22 Laurent Guerby <laurent@guerby.net>
34807 PR optimization/14984
34808 PR optimization/14985
34809 * trans.c (gigi): Fix non determinism leading to bootstrap
34810 comparison failures.
34812 2004-04-21 Pascal Obry <obry@gnat.com>
34814 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
34815 passed to spawnvp() to properly handle program pathname with spaces on
34818 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
34820 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
34821 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
34822 unlocked in case of exceptions.
34824 2004-04-21 Joel Brobecker <brobecker@gnat.com>
34826 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
34827 This function does not exist anymore.
34829 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
34831 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
34833 * link.c: Move variables to the __gnat name space.
34835 * Makefile.in: list link.o explicitly when needed.
34837 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
34839 2004-04-21 Javier Miranda <miranda@gnat.com>
34841 * einfo.adb (Original_Access_Type): New subprogram
34842 (Set_Original_Access_Type): New subprogram
34843 (Write_Field21_Name): Write the name of the new field
34845 * einfo.ads (Original_Access_Type): New field present in access to
34847 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
34848 E_Anonymous_Access_Protected_Subprogram_Type.
34850 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
34853 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
34854 to anonymous access to subprogram types.
34856 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
34857 to subprogram types.
34859 * sem_ch3.adb (Access_Definition): Complete decoration of entities
34860 corresponding to anonymous access to subprogram types.
34861 (Analyze_Component_Declaration): Add new actual to the call to
34862 subprogram replace_anonymous_access_to_protected_subprogram.
34863 (Array_Type_Declaration): Add new actual to the call to subprogram
34864 replace_anonymous_access_to_protected_subprogram.
34865 (Process_Discriminants): Add new actual to the call to subprogram
34866 replace_anonymous_access_to_protected_subprogram.
34867 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
34869 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
34872 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
34873 access to subprogram types.
34875 * sem_util.adb (Has_Declarations): Addition of package_specification
34878 2004-04-21 Ed Schonberg <schonberg@gnat.com>
34880 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
34881 inlined flags to renamed entity only if in current unit.
34883 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
34885 * s-parint.ads: Add DSA implementation marker.
34887 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
34888 value of System.Partition_Interface.DSA_Implementation to determine
34889 what version of the distributed systems annex is available (no
34890 implementation, GLADE, or PolyORB).
34892 2004-04-21 Joel Brobecker <brobecker@gnat.com>
34894 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
34896 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34898 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
34899 with new type if alias sets differ.
34900 Fixes ACATS c41103b.
34902 2004-04-21 Vincent Celier <celier@gnat.com>
34904 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
34905 Add array Lang_Args for the language specific compiling argument
34908 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
34910 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
34912 * gnat_rm.texi: Update the descripton of the Eliminate pragma
34913 according to the recent changes in the format of the parameters of the
34914 pragma (replacing Homonym_Number with Source_Location).
34916 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
34918 * 5isystem.ads: Removed, unused.
34920 * gnat_rm.texi: Redo 1.13 change.
34922 2004-04-19 Robert Dewar <dewar@gnat.com>
34924 * s-stoele.ads: Clean up definition of Storage_Offset (the new
34925 definition is cleaner, avoids the kludge of explicit Standard operator
34926 references, and also is consistent with a visible System.Address with
34927 no visible operations.
34929 * s-geveop.adb: Add declarations to avoid assumption of visible
34930 operations on type System.Address (since these might not be available
34931 if Address is a non-private type for which the operations
34932 are made abstract).
34934 * sem_eval.adb: Minor reformatting
34936 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
34937 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
34938 reformatting (new function spec format).
34940 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
34941 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
34942 s-caun64.adb: Add declarations to avoid assumption of visible
34943 operations on type System.Address (since these might not be available
34944 if Address is a non-private type for which the operations are made
34947 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
34949 * exp_intr.adb: Minor comment update
34951 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
34953 * 5omastop.adb: Add declarations to avoid assumption of visible
34954 operations on type System.Address (since these might not be available
34955 if Address is a non-private type for which the operations
34956 are made abstract).
34958 2004-04-19 Vincent Celier <celier@gnat.com>
34960 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
34962 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
34965 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
34967 Call Check with Process_Languages.
34968 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
34969 with Process_Languages.
34970 (Recursive_Check): New Boolean parameter Process_Languages. Call
34971 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
34974 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
34976 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
34977 parameter Ada_Main, defaulted to True.
34978 Check for Ada specific characteristics only when Ada_Main is True.
34980 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
34982 * prj.adb: (Project_Empty): Add new Project_Data components.
34984 * prj.ads: New types and tables for non Ada languages.
34985 (Project_Data): New components Languages, Impl_Suffixes,
34986 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
34987 Include_Path, Include_Data_Set.
34989 * prj-env.ads, prj-env.adb: Minor reformatting
34991 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
34992 Put subprograms in alphabetical order
34994 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
34995 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
34998 * mlib-prj.adb: Back out modification in last version, as they are
35000 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35002 * make.adb: (Mains): Moved to package Makeutl
35003 (Linker_Opts): Moved to package Makeutl
35004 (Is_External_Assignment): Moved to package Makeutl
35005 (Test_If_Relative_Path): Moved to package Makeutl
35006 (Gnatmake): Move sorting of linker options to function
35007 Makeutl.Linker_Options_Switches.
35009 * makeutl.ads, makeutl.adb: New files.
35011 * Makefile.in: Add makeutl.o to the object files for gnatmake
35013 * makeusg.adb: Add line for new switch -eL.
35015 * gnatls.adb (Image): New function.
35016 (Output_Unit): If in verbose mode, output the list of restrictions
35017 specified by pragmas Restrictions.
35019 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35022 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35023 needed, to put it in the range 1970 (included) - 2026 (excluded).
35024 (Time_Of): Do not shift Unix_Min_Year (1970).
35025 Shift the date by multiple of 56 years, if needed, to put it in the
35026 range 1970 (included) - 2026 (excluded).
35028 * adaint.h, adaint.c (__gnat_set_executable): New function.
35030 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35032 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35033 and pop GC context.
35034 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35035 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35036 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35037 (tree_transform, case N_Code_Statement): Likewise.
35038 (gnat_expand_stmt, case LABEL_STMT): Don't look at
35039 LABEL_STMT_FIRST_IN_EH.
35040 (gnat_expand_stmt, case ASM_STMT): New case.
35042 * utils2.c (build_unary_op): Properly set TREE_READONLY of
35043 UNCONSTRAINED_ARRAY_REF.
35045 * utils.c (poplevel): Temporarily push/pop GC context around inline
35046 function expansion.
35048 * decl.c (maybe_variable): Properly set TREE_READONLY of
35049 UNCONSTRAINED_ARRAY_REF.
35050 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35052 * ada-tree.def: (ASM_STMT): New.
35054 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35055 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35056 ASM_STMT_INPUT): New.
35057 (ASM_STMT_CLOBBER): Likewise.
35059 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
35061 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35062 general rcheck mechanism to raise Program_Error for E.4(18), instead
35063 of a custom raiser in System.Partition_Interface.
35064 Part of general cleanup work before PolyORB integration.
35066 * snames.ads, snames.adb: Add new runtime library entities and names
35069 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35071 (Build_Subprogram_Id): New subprogram provided by exp_dist
35072 Code reorganisation in preparation for PolyORB integration.
35074 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35076 (Build_Subprogram_Id): New subprogram provided by exp_dist
35078 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35079 actual parameter types for call to dereference of an
35080 access-to-subprogram type.
35082 * rtsfind.ads: Add new runtime library entities and names for PolyORB
35085 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35086 instead, which has the same behaviour here since we never pass it a
35089 * link.c (run_path_option, Solaris case): Use -Wl, as for other
35092 * Makefile.in: adjust object file lists for gnatlink and gnatmake
35093 to account for new dependency upon Interfaces.C.Strings + link.o
35094 For x86 FreeBSD, use 86numaux.
35096 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35097 from Mlib.Tgt to Mlib.
35099 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35100 target-independent.
35102 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35103 target-specific versions of this subprogram, now implemented as a
35104 target-independent function in Mlib.
35106 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35107 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35108 (Linker_Library_Path_Option): Remove target-specific versions of this
35109 subprogram, now implemented as a target-independent function in Mlib.
35111 * atree.adb: (Allocate_Initialize_Node): New subprogram.
35112 Factors out node table slots allocation.
35113 (Fix_Parents): New subprogram.
35114 Encapsulate the pattern of fixing up parent pointers for syntactic
35115 children of a rewritten node.
35116 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35117 (Rewrite): Use New_Copy when creating saved copy of original node.
35118 (Replace): Use Copy_Node to copy nodes.
35120 2004-04-19 Javier Miranda <miranda@gnat.com>
35122 * sprint.adb (Sprint_Node_Actual): Give support to the new
35123 Access_To_Subprogram node available in Access_Definition nodes. In
35124 addition, give support to the AI-231 node fields: null-exclusion,
35125 all-present, constant-present.
35127 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35129 * sinfo.ads, sinfo.adb:
35130 New field Access_To_Subprogram_Definition in Access_Definition nodes
35132 * sem_ch6.adb (Process_Formals): Move here the code that creates and
35133 decorates internal subtype declaration corresponding to the
35134 null-excluding formal. This code was previously in Set_Actual_Subtypes.
35135 In addition, carry out some code cleanup on this code. In case of
35136 access to protected subprogram call
35137 Replace_Anonymous_Access_To_Protected_Subprogram.
35138 (Set_Actual_Subtypes): Code cleanup.
35140 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35141 Find_Type in case of anonymous access renamings. Add warning in case of
35142 null-excluding attribute used in anonymous access renaming.
35144 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35147 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35149 (Access_Definition): In case of anonymous access to subprograms call
35150 the corresponding semantic routine to decorate the node.
35151 (Access_Subprogram_Declaration): Addition of some comments indicating
35152 some code that probably should be added here. Detected by comparison
35153 with the access_definition subprogram.
35154 (Analyze_Component_Declaration): In case of access to protected
35155 subprogram call Replace_Anonymous_Access_To_Protected.
35156 (Array_Type_Declaration): In case of access to protected subprogram call
35157 Replace_Anonymous_Access_To_Protected_Subprogram.
35158 (Process_Discriminants): In case of access to protected subprogram call
35159 Replace_Anonymous_Access_To_Protected_Subprogram.
35161 * par.adb (P_Access_Definition): New formal that indicates if the
35162 null-exclusion part was present.
35163 (P_Access_Type_Definition): New formal that indicates if the caller has
35164 already parsed the null-excluding part.
35166 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35167 (P_Identifier_Declarations): Code cleanup and give support to renamings
35168 of anonymous access to subprogram types.
35169 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35170 (P_Array_Type_Definition): Give support to AI-254.
35171 (P_Component_Items): Give support to AI-254.
35172 (P_Access_Definition): New formal that indicates if the header was
35173 already parsed by the caller.
35174 (P_Access_Type_Definition): New formal that indicates if the caller has
35175 already parsed the null-excluding part.
35177 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35178 call to P_Access_Definition.
35180 2004-04-19 Geert Bosch <bosch@gnat.com>
35182 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35183 the delicate semantics of floating-point to integer conversion.
35184 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35186 * eval_fat.adb (Machine_Mantissa): Moved to spec.
35187 (Machine_Radix): New function.
35189 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35191 (Machine_Radix): New function also for use in conversion checks.
35193 2004-04-19 Ed Schonberg <schonberg@gnat.com>
35195 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35197 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35198 to decorate the access-to-protected subprogram and the equivalent type.
35200 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35201 to anonymous access to subprogram types.
35203 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35204 constant-folding, for legality checks in contexts that require an RM
35207 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35208 temporary but stack checking is not enabled, increment serial number
35209 to so that symbol generation is consistent with and without stack
35212 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35213 independent on whether stack checking is enabled, caller must check
35214 the corresponding flag.
35216 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35218 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35219 parent if it has discriminants.
35220 (Build_Derived_Private_Type): Constructed full view does
35221 not come from source.
35222 (Process_Discriminants): Default discriminants on a tagged type are
35223 legal if this is the internal completion of a private untagged
35226 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35227 no constraint checks, because it corresponds to an existing object.
35229 * sem_prag.adb (Process_Convention): Pragma applies
35230 only to subprograms in the same declarative part, i.e. the same unit,
35231 not the same scope.
35233 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35234 ignore type mismatch on a numeric conversion if expression comes from
35237 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
35239 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35240 Homonym_Number parameter, add processing for Source_Location parameter
35242 (Check_Eliminated): Remove the check for homonym numbers, add the check
35243 for source location traces.
35245 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35246 with Arg_Source_Location corresponding to the changes in the format of
35249 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35250 Eliminate pragma corresponding to the changes in the format of the
35251 pragma: Homonym_Number is replaced with Source_Location, two ways of
35252 distinguishing homonyms are mutially-exclusive.
35254 2004-04-19 Joel Brobecker <brobecker@gnat.com>
35256 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35258 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35259 No_Dollar_In_Label, no longer necessary, as it is always True.
35260 (Strip_Suffixes): Likewise.
35262 2004-04-19 Gary Dismukes <dismukes@gnat.com>
35264 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35265 modulus for compatibility with size clause on targets with 16-bit
35268 * layout.adb (Discrimify): In the case of private types, set Vtyp to
35269 full type to fix type mismatches on calls to size functions for
35270 discriminant-dependent array components.
35272 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
35274 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35277 2004-04-19 Pascal Obry <obry@gnat.com>
35279 * mdll-utl.adb (Locate): New version is idempotent.
35281 2004-04-17 Laurent Guerby <laurent@guerby.net>
35283 PR ada/14988 (partial)
35284 * impunit.adb: Fix typo.
35286 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
35288 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35289 and install-rts-cert targets. Remove all gnatlib and gnattools
35290 targets and all other rts-* targets (moved to libada). Remove (now)
35291 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35292 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35294 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35296 * trans.c (tree_transform): Shortcut returning error_mark_node for
35297 statements in annotate_only_mode.
35298 (tree_transform, case N_Label, case N_Return_Statement,
35299 N_Goto_Statement): Make statement tree instead of generating code.
35300 (tree_transform, case N_Assignment_Statement): No longer check
35301 type_annotate_only.
35302 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35304 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35306 (gnat_to_gnu): Collect any RTL generated and deal with it.
35307 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35308 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35309 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35311 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35313 * ada-tree.def (EXPR_STMT): Fix typo in name.
35314 (BLOCK_STMT, IF_STMT): New nodes.
35316 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35317 LABEL_STMT_FIRST_IN_EH): New macros.
35318 (RETURN_STMT_EXPR): Likewise.
35320 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35321 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35323 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
35325 * atree.ads: Correct documentation on extended nodes.
35327 * link.c: Set run_path_option for FreeBSD.
35329 2004-04-08 Vincent Celier <celier@gnat.com>
35331 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35332 one of the ALI file, do not link with DEC lib.
35334 * par.adb Remove the last two characters ("%s" or "%b") when checking
35335 if a language defined unit may be recompiled.
35337 2004-04-08 Ed Schonberg <schonberg@gnat.com>
35339 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35340 removal of abstract operation leaves no possible interpretation for
35343 * sem_eval.adb (Eval_Qualified_Expression): Use
35344 Set_Raises_Constraint_Error on node when needed, so that it does not
35345 get optimized away by subsequent optimizations.
35347 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35348 operands even when they are not wrapped in a type conversion.
35350 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
35352 * sem_prag.adb (Set_Exported): Warn about making static as result of
35353 export only when the export is coming from source. This may be not
35354 be true e.g. on VMS where we expand export pragmas for exception codes
35355 together with imported or exported exceptions, and we don't want the
35356 user to be warned about something he didn't write.
35358 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
35360 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35361 duplication between normal entities and those declared as renamings.
35362 No functional change.
35364 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35365 inline functions returning an unconstrained result.
35367 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
35369 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35370 conform to what other front-ends do.
35372 2004-04-08 Doug Rupp <rupp@gnat.com>
35374 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35377 2004-04-06 Pascal Obry <obry@gnat.com>
35379 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35381 * osint.adb (Program_Name): Do not look past a directory separator.
35383 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
35385 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35387 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35388 requirement for preserving a copy of the original assignment node.
35390 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35392 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
35394 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35397 2004-04-06 Ed Schonberg <schonberg@gnat.com>
35399 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35400 operator calls in functional notation, and apply
35401 Universal_Interpretation to operands, not to their type.
35403 2004-04-06 Robert Dewar <dewar@gnat.com>
35405 * 5wdirval.adb: Minor reformatting
35407 2004-04-06 Ed Falis <falis@gnat.com>
35409 * gnat_rm.texi: Improve a reference to the GCC manual
35411 2004-04-05 Vincent Celier <celier@gnat.com>
35413 * adaint.h, adaint.c: Add function __gnat_named_file_length
35415 * impunit.adb: Add Ada.Directories to the list
35417 * Makefile.in: Add VMS and Windows versions of
35418 Ada.Directories.Validity package body.
35420 * Makefile.rtl: Add a-direct and a-dirval
35422 * mlib-tgt.ads: Minor comment update.
35424 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35425 a-direct.ads, a-direct.adb: New files.
35427 2004-04-05 Vincent Celier <celier@gnat.com>
35430 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35431 just to the compiler.
35433 2004-04-05 Robert Dewar <dewar@gnat.com>
35435 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35436 returned string is 1.
35438 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35440 * eval_fat.ads: Minor reformatting
35442 * g-curexc.ads: Document that lower bound of returned string values
35445 * gnatlink.adb: Add ??? comment for previous change
35446 (need to document why this is VMS specific)
35448 * s-stoele.ads: Minor reformatting
35450 * tbuild.ads: Minor reformatting throughout (new function specs)
35452 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35455 * scng.adb: Minor reformatting
35457 2004-04-05 Geert Bosch <bosch@gnat.com>
35459 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35460 (Leading_Part): Still perform truncation to machine number if the
35461 specified radix_digits is greater or equal to machine_mantissa.
35463 2004-04-05 Javier Miranda <miranda@gnat.com>
35465 * par-ch3.adb: Complete documentation of previous change
35466 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35467 (aliased must appear before constant).
35469 * par-ch4.adb: Complete documentation of previous change.
35471 * par-ch6.adb: Complete documentation of previous change.
35473 * sinfo.ads: Fix typo in commment.
35475 2004-04-05 Ed Schonberg <schonberg@gnat.com>
35477 * sem_ch3.adb (Inherit_Components): If derived type is private and has
35478 stored discriminants, use its discriminants to constrain parent type,
35479 as is done for non-private derived record types.
35481 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35482 Ada 2005 AI-310: an abstract non-dispatching operation is not a
35483 candidate interpretation in an overloaded call.
35485 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35486 expression is Null and target type is not an access type (e.g. a
35487 non-private address type).
35489 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
35491 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35492 statement whose right-hand side is an inlined call, save a copy of the
35493 original assignment subtree to preserve enough consistency for
35494 Analyze_Assignment to proceed.
35496 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35497 complete assignment subtree which is now unnecessary, as the expansion
35498 of inlined call has been improved to preserve a consistent assignment
35499 tree. Note_Possible_Modification must be called only
35500 after checks have been applied, or else unnecessary checks will
35503 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35504 of explicit dereferences that do not Come_From_Source:
35505 - be selective on cases where we must go back to the dereferenced
35506 pointer (an assignment to an implicit dereference must not be
35507 recorded as modifying the pointer);
35508 - do not rely on Original_Node being present (Analyze_Assignment
35509 calls Note_Possible_Modification on a copied tree).
35511 * sem_warn.adb (Check_References): When an unset reference to a pointer
35512 that is never assigned is encountered, prefer '<pointer> may be null'
35513 warning over '<pointer> is never assigned a value'.
35515 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
35517 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35520 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
35522 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35523 libexc. We currently don't reference anything in this library and
35524 linking it in triggers linker warnings we don't want to see.
35526 * init.c: Update comments.
35528 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35530 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35531 * utils.c (create_field_decl): Likewise.
35532 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35534 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
35536 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35537 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35538 Add info directory entry and category.
35540 2004-04-02 Jan Hubicka <jh@suse.cz>
35542 * utils.c: Include function.h
35543 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35545 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35548 * Make-lang.in: Clean up generation of documentation
35550 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35552 * xgnatug.adb: Removed, replaced by xgnatugn.adb
35554 * xgnatugn.adb: Replaces xgnatug.adb
35556 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35558 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35560 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35561 gnat_ug_wnt.texi: Removed.
35563 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
35565 * utils2.c: Update copyright notice.
35567 2004-04-01 Robert Dewar <dewar@gnat.com>
35569 * checks.adb: Minor reformatting throughout
35570 Note that prev checkin added RM reference to alignment warning
35572 2004-04-01 Ed Schonberg <schonberg@gnat.com>
35574 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35575 non-static when building aggregate for bit-packed array.
35577 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35578 function call that is itself the actual in a procedure call, build
35581 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35582 a string literal, create a temporary for it, constant folding only
35583 handles scalars here.
35585 2004-04-01 Vincent Celier <celier@gnat.com>
35587 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35588 Error_Msg_SP): New empty procedures to instantiate the Scanner.
35589 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35591 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35592 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35593 and get the checksum.
35595 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35597 Increase the Marking_Label at the end of the Multiple_Main_Loop,
35598 instead of at the beginning.
35600 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35602 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35605 * osint.ads (Multi_Unit_Index_Character): New Character global variable
35607 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35610 * par.adb: Remove test on file name to detect language defined units.
35611 Add test on unit name, after parsing, to detect language defined units
35612 that are not compiled with -gnatg (except System.RPC and its children)
35614 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35615 following units without style checking.
35617 * switch-c.adb: Change -gnatC to -gnateI
35619 * usage.adb: Document new switch -gnateInnn
35621 * scng.adb (Accumulate_Token_Checksum): New procedure
35622 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35623 word or literal number.
35624 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35627 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
35630 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35631 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35632 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35633 5vtpopde.adb: Add missing 'constant' keywords.
35635 2004-04-01 Javier Miranda <miranda@gnat.com>
35637 * par-ch4.adb: (P_Allocator): Code cleanup
35639 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
35642 * sinfo.ads: Complete documentation of previous change
35644 2004-04-01 Pascal Obry <obry@gnat.com>
35646 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
35647 only on VMS. This special handling was done because an old GNU/ld bug
35648 on Windows which has been fixed.
35650 2004-04-01 GNAT Script <nobody@gnat.com>
35652 * Make-lang.in: Makefile automatically updated
35654 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35656 * decl.c (gnat_to_gnu_entity, make_type_from_size):
35657 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
35658 * trans.c (tree_transform, convert_with_check): Likewise.
35659 * utils.c (gnat_signed_or_unsigned_type): Likewise.
35660 (build_vms_descriptor, unchecked_convert): Likewise.
35661 * utils2.c (nonbinary_modular_operation): Likewise.
35663 2004-03-29 Javier Miranda <miranda@gnat.com>
35665 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
35666 (Install_Null_Excluding_Check): Local subprogram that determines whether
35667 an access node requires a runtime access check and if so inserts the
35668 appropriate run-time check.
35669 (Apply_Access_Check): Call Install_Null_Excluding check if required
35670 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
35672 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
35674 * einfo.ads: Fix typo in comment
35676 * exp_ch3.adb (Build_Assignment): Generate conversion to the
35677 null-excluding type to force the corresponding run-time check.
35678 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
35679 type to force the corresponding run-time check.
35681 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
35682 the null-excluding type to force the corresponding run-time check.
35684 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
35685 case of access types unless they have the null-excluding attribute.
35687 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
35690 * exp_util.ads: Fix typo in comment
35692 * par.adb (P_Null_Exclusion): New subprogram
35693 (P_Subtype_Indication): New formal that indicates if the null-excluding
35694 part has been scanned-out and it was present
35696 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
35698 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
35699 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
35700 type to force the corresponding run-time check
35701 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
35703 (Resolve_Array_Aggregate): Carry out some static checks
35704 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
35706 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
35707 attribute must be set only if specified by means of the null-excluding
35708 part. In addition, we must also propagate the access-constant attribute
35710 (Access_Subprogram_Declaration, Access_Type_Declaration,
35711 Analyze_Component_Declaration, Analyze_Object_Declaration,
35712 Array_Type_Declaration, Process_Discriminants,
35713 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
35714 and carry out some static checks.
35715 (Build_Derived_Access_Type): Set the null-excluding attribute
35716 (Derived_Type_Declaration, Process_Subtype): Carry out some static
35719 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
35721 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
35723 * sem_ch6.adb (Process_Formals): Carry out some static checks.
35724 (Set_Actual_Subtypes): Generate null-excluding subtype if the
35725 null-excluding part was present; it is not required to be done here in
35726 case of anonymous access types.
35727 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
35730 * sem_res.adb (Resolve_Actuals): Carry out some static check
35731 (Resolve_Null): Allow null in anonymous access
35733 * sinfo.adb: New subprogram Null_Exclusion_Present
35734 All_Present and Constant_Present available on access_definition nodes
35736 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
35737 object_declaration, derived_type_definition, component_definition,
35738 discriminant_specification, access_to_object_definition,
35739 access_function_definition, allocator, access_procedure_definition,
35740 access_definition, parameter_specification, All_Present and
35741 Constant_Present flags available on access_definition nodes.
35743 2004-03-29 Robert Dewar <dewar@gnat.com>
35745 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
35746 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
35747 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
35748 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
35749 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
35750 sem_prag.adb: Updates to handle multiple units/file
35752 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
35754 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
35755 sem_util.adb: Minor reformatting
35757 * sem_ch12.adb: Add comment for previous change
35759 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
35761 * osint.adb (Executable_Prefix): Set Exec_Name to the current
35762 executable name when not initialized. Otherwise, use its current value.
35764 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
35765 initialize it to another executable name than the current one. This
35766 allows to configure paths for an executable name (gnatmake) different
35767 from the current one (gnatdist).
35769 2004-03-29 Ed Schonberg <schonberg@gnat.com>
35771 * exp_ch6.adb (Expand_Call): A call to a function declared in the
35772 current unit cannot be inlined if it appears in the body of a withed
35773 unit, to avoid order of elaboration problems in gigi.
35775 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
35776 information for protected (wrapper) operation as well, to simplify gdb
35779 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
35780 protected body, indicate that the entity for the generated spec comes
35781 from source, to ensure that references are properly generated for it.
35782 (Build_Body_To_Inline): Do not inline a function that returns a
35785 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
35786 apply convention to homonyms that are declared explicitly.
35788 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
35789 that renames an equality operator and the operands are overloaded,
35790 resolve them with the declared formal types, before rewriting as an
35793 2004-03-29 GNAT Script <nobody@gnat.com>
35795 * Make-lang.in: Makefile automatically updated
35797 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
35799 * memtrack.adb: Log realloc calls, which are treated as free followed
35802 2004-03-25 Vincent Celier <celier@gnat.com>
35804 * prj-makr.adb (Process_Directories): Detect when a file contains
35805 several units. Do not include such files in the config pragmas or
35806 in the naming scheme.
35808 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
35809 Resolve links only when not in Trusted_Mode.
35810 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
35811 Do not resolve links for the display names.
35813 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
35814 resolve links when computing the display names.
35816 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
35818 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
35819 attribute reference does not denote a subtype, it can be any
35820 expression that has a classwide type, potentially after an implicit
35821 dereference. In particular, the prefix can be a view conversion for
35822 a classwide type (for which Is_Object_Reference holds), but it can
35823 also be a value conversion for an access-to-classwide type. In the
35824 latter case, there is an implicit dereference, and the original node
35825 for the prefix does not verify Is_Object_Reference.
35827 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
35828 conversion of a discriminant-dependent component of a mutable object
35831 2004-03-25 Ed Schonberg <schonberg@gnat.com>
35833 * freeze.adb (Freeze_Entity): When an inherited subprogram is
35834 inherited, has convention C, and has unconstrained array parameters,
35835 place the corresponding warning on the derived type declaration rather
35836 than the original subprogram.
35838 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
35839 indication on renaming declaration, if formal has a box and actual
35842 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
35843 determine whether to generate an implicit or explicit reference to
35844 the renamed entity.
35846 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
35847 subprogram renaming comes from a defaulted formal subprogram in an
35850 2004-03-25 Gary Dismukes <dismukes@gnat.com>
35852 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
35853 value expressions to ensure that calls within a component definition
35854 will be checked (since those are evaluated during the record type's
35857 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
35859 * s-tpobop.adb: Code clean up:
35860 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
35862 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
35864 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
35866 * Makefile.in: Clean up in the ravenscar run time.
35868 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35870 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
35871 of No_Strict_Aliasing to build_pointer_type_for_mode.
35872 * utils.c (update_pointer_to): Walk pointer and ref chains.
35874 2004-03-22 Cyrille Comar <comar@act-europe.fr>
35876 * ali.ads: Fix Comment about Dynamic_Elab.
35878 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
35879 Has_RACW, Is_Generic, etc.)
35880 (Output_Object, Gnatls): Take into account ALI files not attached to
35883 2004-03-22 Vincent Celier <celier@gnat.com>
35885 * gprep.adb: Change all String_Access to Name_Id
35886 (Is_ASCII_Letter): new function
35887 (Double_File_Name_Buffer): New procedure
35888 (Preprocess_Infile_Name): New procedure
35889 (Process_Files): New procedure
35890 (Gnatprep): Check if output and input are existing directories.
35891 Call Process_Files to do the real job.
35893 2004-03-22 Robert Dewar <dewar@gnat.com>
35895 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
35896 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
35898 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
35900 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
35901 case when the source contains only comments.
35903 2004-03-22 Ed Schonberg <schonberg@gnat.com>
35905 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
35906 declaration for a child subprogram body that acts as a spec, indicate
35907 that the entity in the declaration needs debugging information.
35909 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
35910 full view if the subtype is created for a constrained record component;
35911 gigi has enough information to construct the record, and there is no
35912 place in the tree for the declaration.
35914 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
35915 serial number for the dummy body that is built for analysis, to avoid
35916 inconsistencies in the generation of internal names when compiling
35919 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
35921 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
35924 2004-03-22 GNAT Script <nobody@gnat.com>
35926 * Make-lang.in: Makefile automatically updated
35928 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35930 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35931 * trans.c (tree_transform, emit_index_check): Likewise.
35932 * utils.c (build_template): Likewise.
35933 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
35934 (maybe_unconstrained_array, unchecked_convert): Likewise.
35935 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
35936 (build_unary_op): Likewise.
35937 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
35938 (fill_vms_descriptor): Likewise.
35939 (build_call_alloc_dealloc): Likewise.
35941 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
35943 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
35946 * gnat_ug.texi: Add info directory category and entry.
35947 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35948 gnat_ug_wnt.texi: Regenerate.
35950 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
35952 * ada-tree.h: Update copyright notice.
35953 Minor reformatting.
35955 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
35957 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
35958 as regular exception objects and not as mere integers representing the
35959 condition code. The latter approach required some dynamics to mask off
35960 severity bits, which did not fit well into the GCC table based model.
35961 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
35962 exception data objects. We don't it and it would conflict with the other
35963 external symbol we have to generate for such exceptions.
35965 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
35966 the special code for VMS exceptions, since these are now represented
35967 as regular exceptions objects.
35969 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35971 * decl.c (debug_no_type_hash): Remove.
35972 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
35973 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
35975 2004-03-19 Laurent Guerby <laurent@guerby.net>
35977 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
35978 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
35980 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35982 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
35983 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
35984 (TYPE_RM_SIZE_INT): Directly use type.values.
35985 (TREE_LOOP_ID): Clean up check.
35986 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
35987 TYPE_VALUES, not TYPE_FIELDS.
35988 * trans.c (convert_with_check): Delay access of bounds of basetype
35989 until sure is numeric.
35991 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
35993 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
35996 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
35997 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
35998 Specific.Set instead of direct call to e.g pthread_setspecific.
36000 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
36002 * adaint.c: Update comments.
36004 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36005 GNATLIB_SHARED for FreeBSD.
36007 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
36009 * init.c [VxWorks]: Do not fix the stack size for the environment task.
36010 When needed (stack checking) the stack size is retrieved
36011 from the VxWorks kernel.
36013 * Makefile.in: Flag -nostdinc is required when building the run time
36014 for avoiding looking for files in the base compiler.
36015 Add the VxWorks specific version of the package body for
36016 System.Stack_checking.Operations (5zstchop.adb).
36018 * Make-lang.in: Add the object file for
36019 System.Stack_Checking.Operations.
36021 * Makefile.rtl: Add object file for the package
36022 System.Stack_Checking.Operations.
36024 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36026 * s-stache.ads, s-stache.adb: Move the operations related to stack
36027 checking from this package to package System.Stack_Checking.Operations.
36028 This way, stack checking operations are only linked in the final
36029 executable when using the -fstack-check flag.
36031 2004-03-18 Doug Rupp <rupp@gnat.com>
36033 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36036 * 5qsystem.ads, 5xcrtl.ads: New files.
36038 2004-03-18 Vincent Celier <celier@gnat.com>
36040 * prj.adb (Reset): Reset hash table Files_Htable
36042 * prj-env.adb (Source_Paths, Object_Paths): New tables.
36043 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36044 the procedures Add_To_Path_File.
36045 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36046 making sure that each directory is present only once and, for object
36047 dirs, when a directory already present is added, the duplicate is
36048 removed and the directory is always put as the last in the table.
36049 Write the path files at the end of these accumulations.
36051 * prj-nmsc.adb (Record_Source): Add source file name in hash table
36052 Files_Htable for all sources.
36054 * prj-proc.adb (Process): Remove restrictions between not directly
36055 related extending projects.
36057 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
36059 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36060 (Find_Sources): Minor speed optimization.
36062 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36063 parameter Trusted_Mode.
36065 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
36067 * scn.adb (Determine_License): Take into account a degenerated case
36068 when the source contains only comments.
36070 2004-03-18 Ed Schonberg <schonberg@gnat.com>
36072 * sem_warn.adb (Check_References): For a warning on a selected
36073 component that does not come from source, locate an uninitialized
36074 component of the record type to produce a more precise error message.
36076 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
36078 * 3zsoccon.ads: Fix multicast options.
36080 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36083 2004-03-15 Robert Dewar <dewar@gnat.com>
36085 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36086 pragma used for a private type.
36088 * lib-xref.adb (Generate_Reference): Do not generate warning if
36089 reference is in a different unit from the pragma Unreferenced.
36091 * 5vtpopde.adb: Minor reformatting
36092 Fix casing of To_Task_ID
36094 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36095 flag if we have an unchecked conversion to an access type in the same
36098 2004-03-15 Geert Bosch <bosch@gnat.com>
36100 * a-ngcoty.adb (Modulus): In alternate formula for large real or
36101 imaginary parts, use Double precision throughout.
36103 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36104 we want to be able to compile run-time with -gnata for testing, but
36105 this may also be instantiated in user code that is compiled with -gnata.
36107 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
36109 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36110 codes. Having a separate type for this is useful to enforce consistency
36111 throughout the various run-time units.
36112 (Exception_Data): Use Exception_Code for Import_Code.
36114 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36115 Natural and Integer in various places.
36116 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36117 with the severity bits masked off.
36118 (Register_VMS_Exception): Handle the additional exception data pointer
36121 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36122 component, now reflected by an exported accessor.
36123 (is_handled_by): New routine to compute whether the propagated
36124 occurrence matches some handler choice specification. Extracted out of
36125 get_action_description_for, and expanded to take care of the VMS
36127 (get_action_description_for): Use is_handled_by instead of an explicit
36128 complex condition to decide if the current choice at hand catches the
36129 propagated occurrence.
36131 * raise.h (Exception_Code): New type for C.
36133 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36134 System.Standard_Library.Exception_Code, to allow references from the
36135 pragma import/export expander.
36137 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36138 New accessors to allow easy access to GNAT exception data
36140 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36141 redundant Handled_By_Others component, helper for the personality
36142 routine which will now be able to call the appropriate exception data
36145 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36146 component of Standard_Exception_Type to be the closest possible to
36147 Exception_Code in System.Standard_Library, that we cannot get at this
36148 point. Expand a ??? comment to notify that this type node should
36149 probably be rewritten later on.
36151 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36152 registration call to include a pointer to the exception object in the
36155 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36156 instead of int and explicit bitmasks.
36158 2004-03-15 Vincent Celier <celier@gnat.com>
36160 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36161 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36163 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36164 longer needed now that it is in the spec of
36165 System.Tasking.Task_Attributes.
36167 * adaint.h, adaint.c: (__gnat_create_output_file): New function
36169 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36171 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36173 * make.adb (Gnatmake): Do not check the executable suffix; it is being
36174 taken care of in Scan_Make_Arg.
36175 (Scan_Make_Arg): Add the executable suffix only if the argument
36176 following -o, in canonical case, does not end with the executable
36177 suffix. When in verbose mode and executable file name does not end
36178 with executable suffix, output the executable name, in canonical case.
36180 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36181 to avoid warnings when instantiating Ada.Task_Attributes.
36184 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36185 in the correct order.
36187 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36188 redirect standard output and error to a file for the invocation of the
36189 compiler, then read the file.
36191 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36192 directory, instead of the Value.
36193 (Find_Source_Dirs): Remove useless code & comments.
36195 2004-03-15 Ed Schonberg <schonberg@gnat.com>
36197 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36198 tagged type is inherited, and the parent operation is not frozen yet,
36199 force generation of a freeze node for the inherited operation, so the
36200 corresponding dispatch entry is properly initialized.
36201 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36202 when looking for user-defined equality operation.
36204 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36205 boolean when locating primitive equality of tagged component.
36207 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36208 bit-aligned field and the right-hand side a string literal, introduce
36209 a temporary before expanding assignment into a loop.
36211 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36212 priority in full, to ensure that any expanded subepxressions of it are
36213 elaborated in the scope of the init_proc.
36215 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36216 after object declaration, skipping over code that may have been
36217 generated for validity checks.
36219 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36220 discriminants, ignore the known discriminants of its full view, if
36221 any, to check legality.
36223 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36224 component if type has unknown discriminants.
36225 (Analyze_Private_Extension_Declaration): Discriminant constraint is
36226 null if type has unknown discriminants.
36228 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36229 for end label when present.
36231 * s-fileio.adb (Open): When called with a C_Stream, use given name for
36232 temporary file, rather than an empty string.
36234 2004-03-15 Ed Falis <falis@gnat.com>
36236 * s-thread.adb: Removed, no longer used.
36238 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36240 * decl.c (target.h): Now include.
36241 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36242 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36243 (validate_size): For POINTER_TYPE, get smallest size permitted on
36246 * fe.h: Sort Einfo decls and add Set_Mechanism.
36248 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36249 (ada/decl.o): Depends on target.h.
36251 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36252 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36254 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
36256 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36258 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36259 Insert_Dereference_Action when rewriting an implicit dereference into
36260 an explicit one, this will be taken care of during expansion of the
36261 explicit dereference.
36262 (Expand_N_Slice): Same. Always do the rewriting, even for the case
36263 of non-packed slices, since the dereference action generated by
36264 expansion of the explicit dereference is needed in any case.
36265 (Expand_N_Selected_Component): When rewriting an implicit dereference,
36266 analyze and resolve the rewritten explicit dereference so it is seen
36268 (Insert_Dereference_Action): This procedure is now called only for the
36269 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36270 dereferences that do not come from source (including explicit
36271 dereferences resulting from rewriting implicit ones), but do not
36272 recursively insert a check for the dereference nodes contained within
36274 (Insert_Dereference_Action): Clarify and correct comment.
36276 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
36279 Move language detection to the top level.
36280 * config-lang.in: Build by default.
36282 2004-03-05 Robert Dewar <dewar@gnat.com>
36284 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36286 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36287 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36288 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36289 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36290 unchecked conversion to spec to avoid warnings.
36292 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36295 * 7stpopsp.adb: Correct casing in To_Task_ID call
36297 * a-strsea.ads, a-strsea.adb: Minor reformatting
36299 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36301 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36302 Adjust Max_Msg_Length to be clearly large enough.
36304 * fe.h: Define In_Same_Source_Unit
36306 * osint.adb: Add pragma Warnings Off to suppress warnings
36307 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36310 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36312 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36314 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36316 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36318 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36320 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36321 node. We now do generate them for gcc back end.
36323 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36326 * sinput-c.adb: Fix bad name in header.
36327 Add pragma Warnings Off to suppress aliasing warning.
36329 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36331 * snames.h, snames.ads, snames.adb: Add entry for pragma
36332 No_Strict_Aliasing.
36334 2004-03-05 Vincent Celier <celier@gnat.com>
36336 * prj-com.ads: Add hash table Files_Htable to check when a file name
36337 is already a source of another project.
36339 * prj-nmsc.adb (Record_Source): Before recording a new source, check
36340 if its file name is not already a source of another project. Report an
36343 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36344 source file name, call gnatpp with all the sources of the main project.
36346 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36349 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36350 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36351 /RUNTIME_SYSTEM=, converted to --RTS=
36352 /NOTABS, converted to -notabs
36354 2004-03-05 Pascal Obry <obry@gnat.com>
36356 * make.adb: Minor reformatting.
36358 2004-03-05 Ed Schonberg <schonberg@gnat.com>
36360 Part of implemention of AI-262.
36361 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36363 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36366 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36367 when component type is a partially constrained class-wide subtype.
36368 (Constrain_Discriminated_Type): If parent type has unknown
36369 discriminants, a constraint is illegal, even if full view has
36371 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36372 with unknown discriminants whose full view is a discriminated record.
36374 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36375 flag, to handle properly derivations of tagged types with unknown
36377 (Analyze_Package_Spec, Analyze_Package_Body): Install
36378 Private_With_Clauses before analyzing private part or body.
36380 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36381 Has_Discriminants can be true for a given type (documentation).
36383 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
36385 * s-restri.ads: Fix license (GPL->GMGPL).
36387 * s-tassta.adb: Minor reformatting.
36389 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36390 by calls to Exit_One_ATC_Level, since additional clean up is performed
36393 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36394 by calls to Exit_One_ATC_Level, since additional clean up is performed
36397 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36399 * trans.c: Reflect GCC changes to fix bootstrap problem.
36400 Add warning for suspicious aliasing unchecked conversion.
36402 2004-03-05 GNAT Script <nobody@gnat.com>
36404 * Make-lang.in: Makefile automatically updated
36406 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
36408 * ali.adb (Read_Instantiation_Instance): Do not modify the
36409 current_file_num when reading information about instantiations, since
36410 this corrupts files in later references.
36412 2004-03-02 Vincent Celier <celier@gnat.com>
36414 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36415 before checking if it is read-only.
36417 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36418 of SRC_DIRS and eliminate duplicates.
36420 * gprcmd.adb: Replace command "path" with command "path_sep" to return
36421 the path separator.
36422 (Usage): Document path_sep
36424 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36425 C++ compiler. No need for a script.
36426 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36427 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36430 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36431 where there are Ada sources.
36432 (Set_Ada_Paths): Only add to the include path the source dirs of project
36434 (Add_To_Path): Add the Display_Values of the directories, not their
36437 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36440 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36442 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36443 Value is canonicalized.
36444 (Language_Independent_Check): Do not copy Value to Display_Value when
36445 canonicalizing Value.
36447 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36448 path to find limited with cycles.
36449 (Parse_Single_Project): Use canonical cased path to find the end of a
36452 2004-03-02 Ed Schonberg <schonberg@gnat.com>
36454 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36455 and not a child unit.
36457 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36458 appear in a with_clause.
36460 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36461 only happen in type_annotate mode, do not try to elaborate it.
36463 * exp_util.adb (Force_Evaluation): If expression is a selected
36464 component on the left of an assignment, use a renaming rather than a
36465 temporary to remove side effects.
36467 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36468 inlined instance body, which is analyzed before the end of the
36471 2004-03-02 Robert Dewar <dewar@gnat.com>
36473 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36474 sem_ch4.adb: Use new feature for substitution of keywords in VMS
36476 * errout.ads, errout.adb: Implement new circuit for substitution of
36479 * sem_case.adb (Analyze_Choices): Place message properly when case is
36480 a subtype reference rather than an explicit range.
36482 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36484 2004-03-02 Doug Rupp <rupp@gnat.com>
36486 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36488 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
36490 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36492 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36494 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36497 2004-02-25 Robert Dewar <dewar@gnat.com>
36499 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36500 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36501 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36502 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36503 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36504 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36505 the defining instance of the type to avoid aliasing problems.
36506 Fix copyright header. Fix bad comments in package header.
36508 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36510 2004-02-25 Ed Schonberg <schonberg@gnat.com>
36512 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36513 rewritten as references when aliased through an address clause.
36515 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36516 whether call can be interpreted as an indirect call to the result of a
36517 parameterless function call returning an access subprogram.
36519 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
36522 * exp_ch7.adb (Make_Clean): Remove generation of calls to
36523 Unlock[_Entries], since this is now done by Service_Entries directly.
36525 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36527 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36528 Requeue_Call for better code readability. Change spec and update calls:
36529 PO_Service_Entries now unlock the PO on exit.
36530 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36531 PO_Service_Entries.
36533 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36535 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36537 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
36539 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36540 protected subprogram call and analyzing the result of such expanding
36541 in case when the called protected subprogram is eliminated.
36543 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36546 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
36548 * Makefile.in: Clean ups.
36550 2004-02-23 Ed Schonberg <schonberg@gnat.com>
36552 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36553 protected operations if original subprogram is flagged as eliminated.
36554 (Expand_N_Subprogram_Body): For a protected operation, create
36555 discriminals for next operation before checking whether the operation
36558 * exp_ch9.adb (Expand_N_Protected_Body,
36559 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36560 for internal protected operations if the original subprogram is
36563 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36564 declared in a single protected object.
36566 2004-02-23 Vincent Celier <celier@gnat.com>
36568 * prj-attr.adb: Make attribute Builder'Executable an associative array,
36569 case insensitive if file names are case insensitive, instead of a
36570 standard associative array.
36572 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36573 them as case insensitive on platforms where the file names are case
36576 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36577 project file has already been parsed that canonical path are compared.
36579 2004-02-23 Robert Dewar <dewar@gnat.com>
36581 * sinput-c.ads: Correct bad unit title in header
36583 * freeze.adb: Minor reformatting
36585 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36587 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36588 nonaddressable COMPONENT_REF that is removing padding that we are
36589 taking the address of, take the address of the padded record instead
36590 if item is variable size.
36592 2004-02-20 Robert Dewar <dewar@gnat.com>
36594 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36596 2004-02-20 Ed Schonberg <schonberg@gnat.com>
36598 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36599 itype references for the constrained designated type of a component
36600 whose base type is already frozen.
36602 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
36604 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36605 avoid GCC warnings.
36607 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
36609 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36610 identifier for a phantom package that rewrites the formal package
36611 declaration with a box. The Add semantic decorations for the defining
36612 identifier from the original node (that represents the formal package).
36614 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
36616 * Make-lang.in (ada/stamp-sdefault): Use the top level
36619 2004-02-19 Richard Henderson <rth@redhat.com>
36621 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36623 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
36625 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36626 Scan_ALI can be used for multiple ALI files without reinitializing
36629 2004-02-18 Robert Dewar <dewar@gnat.com>
36631 * debug.adb: Minor reformatting.
36633 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36635 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
36636 to zero if there is an address clause.
36638 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
36640 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
36642 2004-02-18 Gary Dismukes <dismukes@gnat.com>
36644 * layout.adb (Layout_Component_List): Revise generation of call to
36645 discriminant-checking function to pass selections of all of the type's
36646 discriminants rather than just the variant-controlling discriminant.
36648 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
36650 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
36651 fail in the current setup and triggers spurious system error messages.
36652 Pretend it occurred and failed instead.
36654 2004-02-18 Vincent Celier <celier@gnat.com>
36656 * bld.adb: Mark FLDFLAGS as saved
36657 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
36658 it is not the root project. Put each directory to be
36659 extended between double quotes to prevent it to be expanded on Windows.
36660 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
36661 the project file. Set them back to their initial values if they have not
36662 been set in the project file.
36664 * gprcmd.adb: (Gprdebug, Debug): New global variables
36665 (Display_Command): New procedure
36666 (Usage): Document new command "linkopts"
36667 Call Display_Command when env var GPRDEBUG has the value "TRUE"
36668 Implement new command "linkopts"
36669 Remove quotes that may be around arguments for "extend"
36670 Always call Normalize_Pathname with arguments formatted for the platform
36672 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
36673 Change @echo to @$(display) in target clean to be able to clean silently
36675 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
36677 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
36680 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
36681 = Extending_All when current project is an extending all project.
36683 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
36684 set to True only for LINK command, after Unix switch -o.
36685 (Process_Arguments): Set Output_File_Expected to True for LINK command
36686 after Unix switch -o. When Output_File_Expected is True, never add an
36687 extension to a file name.
36689 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
36690 option file name, only to the --for-linker= switch.
36691 (Option_File_Name): If option file name do not end with ".opt", append
36694 2004-02-18 GNAT Script <nobody@gnat.com>
36696 * Make-lang.in: Makefile automatically updated
36698 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
36700 * Make-lang.in (stamp-sdefault): Do not depend on
36703 2004-02-12 Zack Weinberg <zack@codesourcery.com>
36705 * config-lang.in: Disable Ada by default until probe logic for
36706 a bootstrap Ada compiler can be moved to the top level configure
36709 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
36711 * decl.c (components_to_record): Don't claim that the internal fields
36712 we make to hold the variant parts are semantically addressable, because
36715 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
36716 adjust the comment describing the modular type form when we can use it.
36717 (Install_PAT): Account for the Esiz renaming.
36719 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
36720 sc_onstack context indication before raising the exception to which
36721 the signal is mapped. Allows better handling of later signals possibly
36722 triggered by the resumed user code if the exception is handled.
36724 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
36726 * 5zinit.adb: Removed, no longer used.
36728 2004-02-12 Robert Dewar <dewar@gnat.com>
36730 * ali.adb: Remove separating space between parameters on R line. Makes
36731 format consistent with format used by the binder for Set_Globals call.
36733 * atree.ads, atree.adb: Minor reformatting (new function header format)
36735 * bindgen.adb: Add Run-Time Globals documentation section containing
36736 detailed documentation of the globals passed from the binder file to
36739 * gnatls.adb: Minor reformatting
36741 * init.c (__gnat_set_globals): Add note pointing to documentation in
36744 * lib-writ.ads, lib-writ.adb: Remove separating space between
36745 parameters on R line.
36746 Makes format consistent with format used by the binder for Set_Globals
36749 * osint.ads: Add 2004 to copyright notice
36752 * snames.ads: Correct capitalization of FIFO_Within_Priorities
36753 Noticed during code reading, documentation issue only
36755 * usage.adb: Remove junk line for obsolete C switch
36756 Noticed during code reading
36758 2004-02-12 Vincent Celier <celier@gnat.com>
36760 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
36761 extend for each directory, so that multiple /** directories are
36762 extended individually.
36763 (Recursive_Process): Set the default for LANGUAGES to ada
36765 * gprcmd.adb: Define new command "ignore", to do nothing.
36766 Implement new comment "path".
36768 * Makefile.generic: Suppress output when SILENT is set
36769 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
36770 used, so that the correct compiler is invoked.
36771 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
36772 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
36774 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
36776 * Makefile.in: Clean ups and remove obsolete targets.
36778 2004-02-12 Ed Schonberg <schonberg@gnat.com>
36780 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
36781 predicate declared in exp_util.
36783 * exp_util.adb: Add comments.
36785 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
36786 visibility before compiling context of the subunit.
36788 * sem_res.adb (Check_Parameterless_Call): If the context expects a
36789 value but the name is a procedure, do not attempt to analyze as a call,
36790 in order to obtain more telling diagnostics.
36792 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
36793 'Access on parameterless function calls.
36794 (Normalize_Actuals): For a parameterless function call with missing
36795 actuals, defer diagnostic until resolution of enclosing call.
36797 * sem_util.adb (Wrong_Type): If the context type is an access to
36798 subprogram and the expression is a procedure name, suggest a missing
36801 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
36802 Nathanael Nerode <neroden@gcc.gnu.org>
36806 Merge with libada-branch:
36807 * config-lang.in: Build libada only when ada is built.
36809 2004-02-09 Ed Schonberg <schonberg@gnat.com>
36811 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
36812 for a tagged type, verify that both formals have the same type.
36814 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
36815 temporary when the formal is an in-parameter and the actual a possibly
36818 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
36819 when expansion is disabled, to ensure proper name capture with
36820 overloaded literals. Condition can be of any boolean type, resolve
36823 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
36824 renaming is for a formal subprogram with a default operator name, and
36825 there is a usable operator that is visible at the point of
36828 2004-02-09 Robert Dewar <dewar@gnat.com>
36830 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
36831 rewrite to ignore errors in ali files, intended to allow tools downward
36832 compatibility with new versions of ali files.
36834 * ali.ads: Add new parameter Ignore_Errors
36836 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
36837 duplicating the error message giving the file with restrictions.
36839 * debug.adb: Add debug flag I for gnatbind
36841 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
36842 operators for the case where the operator is a defining operator.
36844 * exp_ch3.adb: Minor reformatting (new function spec format).
36846 * exp_ch4.adb: Add comment for previous change, and make minor
36847 adjustment to loop to always check for improper loop termination.
36848 Minor reformatting throughout (new function spec format).
36850 * gnatbind.adb: Implement -di debug flag for gnatbind
36852 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
36854 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
36856 * lib-load.adb: Fix bad assertion.
36857 Found by testing and code reading.
36858 Minor reformatting.
36860 * lib-load.ads: Minor reformatting.
36862 * lib-writ.adb: There is only one R line now.
36864 * lib-writ.ads: Add documentation on making downward compatible changes
36865 to ali files so old tools work with new ali files.
36866 There is only one R line now.
36867 Add documentation on format incompatibilities (with special GPS note)
36869 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
36871 * par-load.adb: Minor reformatting
36873 * sem_ch8.adb: Fix to error message from last update
36874 Minor reformatting and restructuring of code from last update
36876 * par-prag.adb, snames.adb, snames.ads, snames.h,
36877 sem_prag.adb: Implement pragma Profile.
36879 * stylesw.adb: Implement -gnatyN switch to turn off all style check
36882 * usage.adb: Add line for -gnatyN switch
36884 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
36886 2004-02-09 Albert Lee <lee@gnat.com>
36888 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
36890 2004-02-09 Ed Schonberg <schonberg@gnat.com>
36892 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
36895 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
36896 is nested in an instance that is not frozen yet, to avoid
36897 order-of-elaboration problems in gigi.
36899 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
36900 body the attribute is legal.
36902 2004-02-09 Robert Dewar <dewar@gnat.com>
36904 * s-rident.ads: Minor comment correction
36906 * targparm.adb: Remove dependence on uintp completely. There was
36907 always a bug in Make in that it called Targparm before initializing
36908 the Uint package. The old code appeared to get away with this, but
36909 the new code did not! This caused an assertion error in gnatmake.
36911 * targparm.ads: Fix bad comment, restriction pragmas with parameters
36912 are indeed fully supported.
36914 2004-02-06 Alan Modra <amodra@bigpond.net.au>
36916 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
36918 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
36920 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
36921 with targetm.calls.promote_prototypes.
36923 2004-02-04 Robert Dewar <dewar@gnat.com>
36925 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
36926 ali.ads, gprcmd.adb: Minor reformatting
36928 * bindgen.adb: Output restrictions string for new style restrictions
36931 * impunit.adb: Add s-rident.ads (System.Rident) and
36932 s-restri (System.Restrictions)
36934 * lib-writ.adb: Fix bug in writing restrictions string (last few
36937 * s-restri.ads, s-restri.adb: Change name Restrictions to
36938 Run_Time_Restrictions to avoid conflict with package name.
36939 Add circuit to read and acquire run time restrictions.
36941 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
36943 * restrict.ads, restrict.adb: Use the new restriction
36944 No_Task_Attributes_Package instead of the old No_Task_Attributes.
36946 * sem_prag.adb: No_Task_Attributes is a synonym of
36947 No_Task_Attributes_Package.
36949 * snames.ads, snames.adb: New entry for proper handling of
36950 No_Task_Attributes.
36952 * s-rident.ads: Adding restriction No_Task_Attributes_Package
36953 (AI-00249) that supersedes the GNAT specific restriction
36954 No_Task_Attributes.
36956 2004-02-04 Ed Schonberg <schonberg@gnat.com>
36959 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
36960 body, an identifier may be wrapped in an unchecked conversion.
36962 2004-02-04 Vincent Celier <celier@gnat.com>
36964 * lib-writ.ads: Comment update for the W lines
36966 * bld.adb: (Expression): An empty string list is static
36968 * fname-uf.adb: Minor comment update
36970 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
36972 * gnatbind.adb: Initialize Cumulative_Restrictions with the
36973 restrictions on the target.
36975 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
36977 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
36980 2004-02-02 Arnaud Charlet <charlet@gnat.com>
36982 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
36984 2004-02-02 Vincent Celier <celier@gnat.com>
36986 * gprcmd.adb (Check_Args): If condition is false, print the invoked
36987 comment before the usage.
36988 Gprcmd: Fail when command is not recognized.
36989 (Usage): Document command "prefix"
36991 * g-md5.adb (Digest): Process last block.
36992 (Update): Do not process last block. Store remaining characters and
36995 * g-md5.ads (Update): Document that several call to update are
36996 equivalent to one call with the concatenated string.
36997 (Context): Add fields to allow new Update behaviour.
36999 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37000 defaulted to False.
37001 When May_Fail is True and no existing file can be found, return No_File.
37003 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37006 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37007 spec file name instead on the W line.
37009 2004-02-02 Robert Dewar <dewar@gnat.com>
37011 * ali.adb: Read and acquire info from new format restrictions lines
37013 * bcheck.adb: Add circuits for checking restrictions with parameters
37015 * bindgen.adb: Output dummy restrictions data
37016 To be changed later
37018 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37019 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37020 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37021 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37022 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37024 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37025 the warning message on access to possibly uninitialized variable S)
37026 Minor changes for new restrictions handling.
37028 * gnatbind.adb: Minor reformatting
37029 Minor changes for new restrictions handling
37030 Move circuit for -r processing here from bcheck (cleaner)
37032 * gnatcmd.adb, gnatlink.adb: Minor reformatting
37034 * lib-writ.adb: Output new format restrictions lines
37036 * lib-writ.ads: Document new R format lines for new restrictions
37039 * s-restri.ads/adb: New files
37041 * Makefile.rtl: Add entry for s-restri.ads/adb
37043 * par-ch3.adb: Fix bad error messages starting with upper case letter
37046 * restrict.adb: Major rewrite throughout for new restrictions handling
37047 Major point is to handle restrictions with parameters
37049 * restrict.ads: Major changes in interface to handle restrictions with
37050 parameters. Also generally simplifies setting of restrictions.
37052 * snames.ads/adb: New entry for proper handling of No_Requeue
37054 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37055 restriction counting.
37056 Other minor changes for new restrictions handling
37058 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37059 Restriction_Warnings now allows full parameter notation
37060 Major rewrite of Restrictions for new restrictions handling
37062 2004-02-02 Javier Miranda <miranda@gnat.com>
37064 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37065 syntax rule for object renaming declarations.
37066 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37067 component definitions.
37069 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37071 (Array_Type_Declaration): Give support to access components. In addition
37072 it was also modified to reflect the name of the object in anonymous
37073 array types. The old code did not take into account that it is possible
37074 to have an unconstrained anonymous array with an initial value.
37075 (Check_Or_Process_Discriminants): Allow access discriminant in
37077 (Process_Discriminants): Allow access discriminant in non-limited types
37078 Initialize the new Access_Definition field in N_Object_Renaming_Decl
37079 node. Change Ada0Y to Ada 0Y in comments
37081 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37082 equality operators.
37083 Change Ada0Y to Ada 0Y in comments
37085 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37086 renamings Change Ada0Y to Ada 0Y in comments
37088 * sem_type.adb (Find_Unique_Type): Give support to the equality
37089 operators for universal access types
37090 Change Ada0Y to Ada 0Y in comments
37092 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37094 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37096 (N_Object_Renaming_Declaration): Addition of Access_Definition field
37097 Change Ada0Y to Ada 0Y in comments
37099 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37100 component definition and object renaming nodes
37101 Change Ada0Y to Ada 0Y in comments
37103 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
37105 * restrict.adb: Use the new restriction identifier
37106 No_Requeue_Statements instead of the old No_Requeue for defining the
37107 restricted profile.
37109 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37110 No_Requeue_Statements.
37112 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37113 that supersedes the GNAT specific restriction No_Requeue. The later is
37114 kept for backward compatibility.
37116 2004-02-02 Ed Schonberg <schonberg@gnat.com>
37118 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37119 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37120 pragma and fix incorrect ones.
37122 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37123 warning if the pragma is redundant.
37125 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
37127 * 5staprop.adb: Add missing 'constant' keywords.
37129 * Makefile.in: use consistent value for SYMLIB on
37130 platforms where libaddr2line is supported.
37132 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37134 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37137 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
37139 * init.c (__gnat_install_handler): Setup an alternate stack for signal
37140 handlers in the environment thread. This allows proper propagation of
37141 an exception on stack overflows in this thread even when the builtin
37142 ABI stack-checking scheme is used without support for a stack reserve
37145 * utils.c (create_field_decl): Augment the head comment about bitfield
37146 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37147 here, because the former is not accurate enough at this point.
37148 Let finish_record_type decide instead.
37149 Don't make a bitfield if the field is to be addressable.
37150 Always set a size for the field if the record is packed, to ensure the
37151 checks for bitfield creation are triggered.
37152 (finish_record_type): During last pass over the fields, clear
37153 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37154 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
37155 from DECL_BIT_FIELD.
37157 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
37159 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
37160 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37161 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37163 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37165 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37167 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37168 (ZCX_By_Default): Likewise.
37169 (Front_End_ZCX_Support): Likewise.
37171 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37172 (Initialize_Lock): Mark Level unreferenced.
37173 (Sleep): Mark Reason unreferenced.
37174 (Timed_Sleep): Likewise.
37175 (Wakeup): Likewise.
37176 (Exit_Task): Use Result.
37177 (Check_No_Locks): Mark Self_ID unreferenced.
37179 * 5gtasinf.adb (New_Sproc): Make Attr constant.
37180 (Bound_Thread_Attributes): Make Sproc constant.
37181 (New_Bound_Thread_Attributes): Likewise.
37183 2004-01-26 Ed Schonberg <schonberg@gnat.com>
37185 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37186 one-dimensional array an slice assignments, when component type is
37189 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37190 component type is controlled, and control_actions are in effect, use
37191 TSS procedure rather than generating inline code.
37193 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37194 arrays with controlled components.
37196 2004-01-26 Vincent Celier <celier@gnat.com>
37198 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37199 command line for the non VMS case.
37201 * gnatlink.adb (Process_Binder_File): When building object file, if
37202 GNU linker is used, put all object paths between quotes, to prevent ld
37203 error when there are unusual characters (such as '!') in the paths.
37205 * Makefile.generic: When there are sources in Ada and the main is in
37206 C/C++, invoke gnatmake with -B, instead of -z.
37208 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37209 from VMS_Conversion.
37210 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37211 specification of argument file on the command line.
37213 2004-01-26 Bernard Banner <banner@gnat.com>
37215 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37217 2004-01-26 Ed Schonberg <schonberg@gnat.com>
37219 * snames.adb: Update copyright notice.
37220 Add info on slice assignment for controlled arrays.
37222 2004-01-23 Robert Dewar <dewar@gnat.com>
37224 * exp_aggr.adb: Minor reformatting
37226 * exp_ch9.adb: Minor code clean up
37228 Fix bad character in comment
37231 * targparm.adb (Get_Target_Parameters): Give clean abort error on
37232 unexpected end of file, along with more detailed message.
37234 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37236 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37239 * decl.c (copy_alias_set): New function.
37240 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37242 2004-01-23 Doug Rupp <rupp@gnat.com>
37244 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37245 lib$${file} in case subsequent character is not a separator.
37247 2004-01-23 Vincent Celier <celier@gnat.com>
37249 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37250 when the GCC version is at least 3.
37252 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37253 Remove all "Opt.", to prepare for opt split
37255 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37256 Extends_All. Set to True when the project parsed is an extending all
37257 project. Fails for importing an extending all project only when the
37258 imported project is an extending all project.
37259 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37260 depending on the value of Extends_All returned.
37262 * prj-proc.adb (Process): Check that no project shares its object
37263 directory with a project that extends it, directly or indirectly,
37264 including a virtual project.
37265 Check that no project extended by another project shares its object
37266 directory with another also extended project.
37268 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37269 Kind = N_With_Clause
37271 * prj-tree.ads: Minor reformatting
37272 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37274 2004-01-23 Ed Schonberg <schonberg@gnat.com>
37276 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37277 applies to a type with an incomplete view, use full view in Name of
37278 clause, for consistency with uses of Get_Attribute_Definition_Clause.
37280 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
37282 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37283 SCHED_RR, since other values are not supported by this policy.
37284 (Initialize): Move initialization of mutex attribute to package
37285 elaboration, to prevent early access to this variable.
37287 * Makefile.in: Remove mention of Makefile.adalib, unused.
37289 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37290 1ssecsta.ads: Removed, unused.
37292 2004-01-21 Javier Miranda <miranda@gnat.com>
37294 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37295 entity if already built in the current scope.
37297 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37298 reminder in internal scopes. Required for nested limited aggregates.
37300 2004-01-21 Doug Rupp <rupp@gnat.com>
37302 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37303 VMS. Replace all occurences of libgnat- and libgnarl- with
37304 libgnat$(hyphen) and libgnarl$(hyphen).
37305 Fixed shared library build problem on VMS.
37307 2004-01-21 Robert Dewar <dewar@gnat.com>
37309 * mlib-prj.adb: Minor reformatting
37311 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
37313 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37314 'constant' keywords for declaration of pointers that are not modified.
37316 * exp_pakd.adb: Fix English in comment.
37318 2004-01-21 Ed Schonberg <schonberg@gnat.com>
37321 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37322 copy all attributes of the parent, including the foreign language
37325 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
37328 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37329 for 'delay until' statement.
37331 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37333 * Make-lang.in: Replace $(docdir) with doc.
37334 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37335 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37336 to use consistent MAKEINFO rule.
37337 (ada.man, ada.srcman): Dummy entry.
37338 (ADA_INFOFILES): Define.
37339 (ada.info, ada.srcinfo): New rules.
37341 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
37343 * utils.c: Update copyright notice, missed in previous change.
37345 2004-01-19 Vincent Celier <celier@gnat.com>
37347 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37348 args if Bind is True. Set First_ALI, if not already done.
37349 (Build_Library): For Stand Alone Libraries, extract from one ALI file
37350 an eventual --RTS switch, for gnatbind, and all backend switches +
37351 --RTS, for linking.
37353 2004-01-19 Robert Dewar <dewar@gnat.com>
37355 * sem_attr.adb, memtrack.adb: Minor reformatting
37357 2004-01-19 Ed Schonberg <schonberg@gnat.com>
37359 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37360 that rename enumeration literals. This is properly done in sem_eval.
37362 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37363 to functions that rename enumeration literals.
37365 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37366 functions that rename enumeration literals.
37368 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
37370 * Make-lang.in (utils.o): Depend on target.h.
37371 * utils.c: Include target.h.
37372 (process_attributes): Use targetm.have_named_sections instead
37373 of ASM_OUTPUT_SECTION_NAME.
37375 2004-01-16 Andreas Jaeger <aj@suse.de>
37377 * Makefile.in: Add $(DESTDIR).
37379 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
37381 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37382 also when not defining if a Size clause applies. That information is
37385 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
37387 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37388 symbolic links for the shared gnat run time when needed.
37390 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
37392 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37393 for writing, and terminate with an error message if not.
37395 2004-01-15 Ed Schonberg <schonberg@gnat.com>
37397 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37398 warning on an access to subprogram in an instance, when the target
37399 type is declared in the same generic unit.
37400 (Eval_Attribute): If 'access is known to fail accessibility check,
37401 rewrite as a raise statement.
37403 2004-01-15 GNAT Script <nobody@gnat.com>
37405 * Make-lang.in: Makefile automatically updated
37407 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
37409 * Make-lang.in (ada.srcextra): Dummy entry.
37411 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
37413 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37415 2004-01-13 Ed Schonberg <schonberg@gnat.com>
37417 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37418 components that are initialized with aggregates.
37420 2004-01-13 Vincent Celier <celier@gnat.com>
37422 * gnatlink.adb (Process_Binder_File): To find directory of shared
37423 libgcc, if "gcc-lib" is not a subdirectory, look for the last
37424 subdirectory "lib" in the path of the shared libgnat or libgnarl.
37426 * make.adb (Gnatmake): If GCC version is at least 3, link with
37427 -shared-libgcc, when there is at least one shared library project.
37429 * opt.ads (GCC_Version): New integer constant.
37431 * adaint.c (get_gcc_version): New function.
37433 2004-01-13 Robert Dewar <dewar@gnat.com>
37435 * sem_dist.adb, sem_res.adb, sem_util.adb,
37436 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37437 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37439 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
37441 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37442 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37445 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
37447 * misc.c: Remove trailing spaces.
37448 Update copyright notice missed in previous change.
37451 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37454 * Makefile.generic: Update copyright.
37455 Add license notice.
37457 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37458 of prefix/share/make.
37460 * Makefile.prolog: Update copyright.
37461 Add license notice.
37463 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
37465 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37466 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37467 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37470 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37473 2004-01-12 Javier Miranda <miranda@gnat.com>
37475 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37476 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37477 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37478 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37479 Component_Definition node.
37481 2004-01-12 Ed Falis <falis@gnat.com>
37483 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37485 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
37487 * link.c: Change default libgnat kind to STATIC for FreeBSD.
37489 2004-01-12 Bernard Banner <banner@gnat.com>
37491 * Makefile.in: map 86numaux to a-numaux for x86_64
37493 2004-01-12 Ed Schonberg <schonberg@gnat.com>
37495 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37496 generated to rename a generic actual, go to the actual itself, the
37497 subtype is not a user-visible entity.
37499 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37500 part is a private subtype, reset the visibility of its full view, if
37501 any, to be consistent.
37504 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37505 to use a generic package G as a formal package for another generic
37508 2004-01-12 Robert Dewar <dewar@gnat.com>
37510 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37512 * usage.adb: Remove mention of obsolete -gnatwb switch
37513 Noticed during code reading
37515 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
37517 * 1ssecsta.adb: Minor changes for -gnatwa warnings
37519 2004-01-12 GNAT Script <nobody@gnat.com>
37521 * Make-lang.in: Makefile automatically updated
37523 2004-01-09 Mark Mitchell <mark@codesourcery.com>
37525 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37527 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37529 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37531 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
37533 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37534 Update comment and copyright date.
37535 * stamp-xgnatug: Delete.
37537 2004-01-05 Robert Dewar <dewar@gnat.com>
37539 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37540 be modified by the binder generated main program if the -D switch is
37543 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37544 imported functions (since now we expect this to be done for imported
37547 * 5vtaprop.adb: Add several ??? for sections requiring more comments
37548 Minor reformatting throughout
37550 * 5zinit.adb: Minor reformatting
37551 Add 2004 to copyright date
37552 Minor changes to avoid -gnatwa warnings
37553 Correct some instances of using OR instead of OR ELSE (noted while
37554 doing reformatting)
37556 * sprint.adb: Minor updates to avoid -gnatwa warnings
37558 * s-secsta.ads, s-secsta.adb:
37559 (SS_Get_Max): New function to obtain high water mark for ss stack
37560 Default_Secondary_Stack is not a constant since it may be modified by
37561 the binder generated main program if the -D switch is used.
37563 * switch-b.adb: New -Dnnn switch for binder
37566 Make -gnatg imply all warnings currently in -gnatwa
37568 * vms_conv.adb: Minor reformatting
37569 Add 2004 to copyright notice
37570 Add 2004 to printed copyright notice
37572 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37573 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37574 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37575 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37576 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37577 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37578 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37579 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37580 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37581 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37582 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37583 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37584 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37585 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37586 checks.adb, clean.adb, cstand.adb, einfo.ads,
37587 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37588 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37589 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37590 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37591 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37592 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37593 Minor reformatting and code clean ups.
37594 Minor changes to prevent -gnatwa warnings
37596 * ali.adb: Minor reformatting and cleanup of code
37597 Acquire new SS indication of secondary stack use from ali files
37599 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37600 (since now we expect this to be done for imported functions)
37602 * bindgen.adb: Generate call to modify default secondary stack size if
37605 * bindusg.adb: Add line for new -D switch
37607 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37608 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37609 Add circuitry for both records and arrays to avoid gigi
37610 processing if the type involved has non-bit-aligned components
37612 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37613 N_String_Literal node always references an E_String_Literal_Subtype
37614 entity. This may not be true in the future.
37615 (Possible_Bit_Aligned_Component): Move processing of
37616 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37618 * exp_ch6.adb (Expand_Thread_Body): Pick up
37619 Default_Secondary_Stack_Size as variable so that we get value modified
37620 by possible -Dnnn binder parameter.
37622 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37623 (Type_May_Have_Bit_Aligned_Components): New function.
37625 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37626 (Type_May_Have_Bit_Aligned_Components): New function.
37628 * fe.h: (Set_Identifier_Casing): Fix prototype.
37629 Add declaration for Sem_Elim.Eliminate_Error_Msg.
37630 Minor reformatting.
37632 * freeze.adb (Freeze_Entity): Add RM reference to error message about
37633 importing constant atomic/volatile objects.
37634 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
37635 unless explicit Pure_Function pragma given, to avoid insidious bug of
37636 call to non-pure imported function getting eliminated.
37638 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
37639 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
37640 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
37641 Add 2004 to printed copyright notice
37643 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
37646 * Makefile.rtl: Add entry for g-sestin.o
37647 g-sestin.ads: New file.
37649 * mdll.adb: Minor changes to avoid -gnatwa warnings
37651 * mlib-tgt.adb: Minor reformatting
37653 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
37654 New switch Sec_Stack_Used (GNAT, GNATBIND)
37655 Make Default_Secondary_Stack_Size a variable instead of a constant,
37656 so that it can be modified by the new -Dnnn bind switch.
37658 * rtsfind.adb (Load_Fail): Give full error message in configurable
37659 run-time mode if all_errors mode is set. This was not done in the case
37660 of a file not found, which was an oversight.
37661 Note if secondary stack unit is used by compiler.
37663 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
37664 ineffective elaborate all pragmas on non-visible packages (this
37665 happened when a renamed subprogram was called). Now the elaborate all
37666 always goes on the package containing the renaming rather than the one
37667 containing the renamed subprogram.
37669 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
37670 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
37672 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
37673 has an Etype that references an E_String_Literal.
37674 (Eval_String_Literal): Avoid assumption that N_String_Literal node
37675 always references an E_String_Literal_Subtype entity. This may not
37676 be true in the future.
37678 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
37681 * sem_res.adb (Resolve): Specialize msg for function name used in proc
37684 2004-01-05 Ed Falis <falis@gnat.com>
37686 * g-debuti.adb: Replaced direct boolean operator with short-circuit
37689 2004-01-05 Vincent Celier <celier@gnat.com>
37691 * bld.adb: Minor comment updates
37692 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
37695 * make.adb (Gnatmake): Special process for files to compile/check when
37696 -B is specified. Fail when there are only foreign mains in attribute
37697 Main of the project file and -B is not specified. Do not skip bind/link
37698 steps when -B is specified.
37700 * makeusg.adb: Document new switch -B
37702 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
37704 * switch-m.adb: (Scan_Make_Switches): Process -B switch
37706 * vms_data.ads: Add new GNAT PRETTY qualifier
37707 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
37709 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37711 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
37714 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
37715 Set_Identifier_Casing.
37717 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
37718 has size that overflows.
37720 2004-01-05 Gary Dismukes <dismukes@gnat.com>
37722 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
37723 -gnatwa warning on static condition.
37725 2004-01-05 Doug Rupp <rupp@gnat.com>
37727 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
37729 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
37731 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
37732 all attributes, including read-only attribute.
37734 2004-01-05 Pascal Obry <obry@gnat.com>
37736 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
37737 library naming scheme.
37739 * mlib-prj.adb (Build_Library): Generate different names for the static
37740 or dynamic version of the GNAT runtime. This is needed to support the
37741 new shared library naming scheme.
37742 (Process_Binder_File): Add detection of shared library in binder file
37743 based on the new naming scheme.
37745 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
37746 scheme for the shared runtime libraries.
37749 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
37751 (install-gnatlib): Do not create symlinks for shared libraries.
37752 (gnatlib-shared-default): Idem.
37753 (gnatlib-shared-dual-win32): New target. Not used for now as the
37754 auto-import feature does not support arrays/records.
37755 (gnatlib-shared-win32): Do not create copy for the shared libraries.
37756 (gnatlib-shared-vms): Fix shared runtime libraries names.
37758 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
37759 dependent runtime shared library name.
37761 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
37763 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
37766 2004-01-05 Ed Schonberg <schonberg@gnat.com>
37768 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
37769 protected objects when allocator has a subtype indication, not a
37770 qualified expression. Note that qualified expressions may have to be
37771 checked when limited aggregates are implemented.
37773 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
37774 pure, emit warning.
37775 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
37776 subprogram is imported, remove warning.
37778 2004-01-05 Geert Bosch <bosch@gnat.com>
37780 * s-poosiz.adb: Update copyright notice.
37781 (Allocate): Use Task_Lock to protect against concurrent access.
37782 (Deallocate): Likewise.
37784 2004-01-05 Joel Brobecker <brobecker@gnat.com>
37786 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
37789 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
37791 * gnat_ug.texi: Force a CVS commit by updating copyright.
37792 * gnat_ug_vxw.texi: Regenerate.
37793 * gnat_ug_wnt.texi: Regenerate.
37794 * gnat_ug_vms.texi: Regenerate.
37795 * gnat_ug_unx.texi: Regenerate.
37797 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
37799 * trans.c: Remove uses of "register" specifier in
37800 declarations of local variables.
37802 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
37804 * stamp-xgnatug: New stamp file.
37805 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
37806 (ada/doctools/xgnatug): Add $(build_exeext).
37807 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
37808 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
37810 2003-12-17 Ed Falis <falis@gnat.com>
37812 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
37815 * a-exextr.adb: Add context clause for
37816 Ada.Exceptions.Last_Chance_Handler.
37818 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
37820 * cstand.adb (Create_Standard): Change the way how the declaration of
37821 the Duration type is created (making it the same way as it is for all
37822 the other standard types).
37824 2003-12-17 Robert Dewar <dewar@gnat.com>
37826 * s-crtl.ads: Fix header format
37827 Change Pure to Preelaborate
37829 2003-12-17 Ed Schonberg <schonberg@gnat.com>
37831 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
37832 the expression type only if it is declared in the current unit.
37834 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
37835 are universal and already analyzed, as can occur in constrained
37836 subcomponents that depend on discriminants, when one constraint is a
37839 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
37840 type Any_Fixed is legal as the argument of a conversion, if only one
37841 fixed-point type is in context.
37843 2003-12-17 GNAT Script <nobody@gnat.com>
37845 * Make-lang.in: Makefile automatically updated
37847 2003-12-15 Robert Dewar <dewar@gnat.com>
37849 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
37852 2003-12-15 Vincent Celier <celier@gnat.com>
37854 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
37855 (Gnatchop): Do not set failure status when reporting the number of
37858 2003-12-15 Doug Rupp <rupp@gnat.com>
37860 * s-ctrl.ads: New file.
37862 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
37864 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
37865 (GNATBIND_OBJS): Add ada/s-crtl.o.
37867 * Makefile.in [VMS]: Clean up ifeq rules.
37869 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
37870 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
37871 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
37872 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
37873 s-tasdeb.adb: Update copyright.
37874 Import System.CRTL.
37875 Make minor modifications to use System.CRTL declared functions instead
37876 of importing locally.
37878 2003-12-15 GNAT Script <nobody@gnat.com>
37880 * Make-lang.in: Makefile automatically updated
37882 2003-12-11 Ed Falis <falis@gnat.com>
37884 * 5zinit.adb: Clean up.
37886 * 5zintman.adb (Notify_Exception): replaced case statement with a call
37887 to __gnat_map_signal, imported from init.c to support
37888 signal -> exception mappings that depend on the vxWorks version.
37891 Created and exported __gnat_map_signal to support signal -> exception
37892 mapping that is dependent on the VxWorks version.
37893 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
37895 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
37897 * 5wosinte.ads: Link with -mthreads switch.
37899 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
37901 * init.c (__gnat_install_handler [NetBSD]): Set
37902 __gnat_handler_installed, as done on all other platforms.
37903 Remove duplicated code.
37905 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
37907 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
37909 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
37911 * sinfo.ads: Fix inconsistent example code in comment.
37913 2003-12-11 Robert Dewar <dewar@gnat.com>
37915 * a-tiinau.adb: Add a couple of comments
37917 * sem_ch3.adb: Minor reformatting
37920 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
37921 Minor reformatting throughout
37923 2003-12-11 Ed Schonberg <schonberg@gnat.com>
37925 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
37926 bounds of a loop, create a separate block in order to generate proper
37927 cleanup actions to prevent memory leaks.
37929 * sem_res.adb (Resolve_Call): After a call to
37930 Establish_Transient_Scope, the call may be rewritten and relocated, in
37931 which case no further processing is needed.
37933 * sem_util.adb: (Wrong_Type): Refine previous fix.
37934 Fixes ACATS regressions.
37937 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
37940 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
37942 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
37943 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
37946 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
37949 2003-12-08 Robert Dewar <dewar@gnat.com>
37951 * 7sintman.adb: Minor reformatting
37953 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
37954 standard linker options to get standard libraries linked. We now plan
37955 to provide dummy versions of these libraries to match the appropriate
37956 configurable run-time (e.g. if a library is not needed at all, provide
37957 a dummy empty library).
37959 * targparm.ads: Configurable_Run_Time mode no longer affects linker
37960 options (-L parameters and standard libraries). What we plan to do is
37961 to provide dummy libraries where the libraries are not required.
37963 * gnatbind.adb: Minor comment improvement
37965 2003-12-08 Javier Miranda <miranda@gnat.com>
37967 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
37968 aggregate in the parent. Otherwise constants with limited aggregates
37969 are not supported. Add new formal to pass the component type (Ctype).
37970 It is required to call the corresponding IP subprogram in case of
37971 default initialized components.
37972 (Gen_Assign): In case of default-initialized component, generate a
37973 call to the IP subprogram associated with the component.
37974 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
37975 of aggregate with default initialized components.
37976 (Has_Default_Init_Comps): Improve implementation to recursively check
37977 all the present expressions.
37979 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
37980 to indicate that the initialization call corresponds to a
37981 default-initialized component of an aggregate.
37982 In case of default initialized aggregate with tasks this parameter is
37983 used to generate a null string (this is just a workaround that must be
37984 improved later). In case of discriminants, this parameter is used to
37985 generate a selected component node that gives access to the discriminant
37988 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
37989 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
37990 allocated aggregates with default-initialized components.
37992 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
37993 the box notation is used in positional aggregates.
37995 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
37997 * lib.ads: Fix typo in comment
37999 2003-12-08 Vincent Celier <celier@gnat.com>
38001 * prj.adb (Project_Empty): New component Unkept_Comments
38002 (Scan): Remove procedure; moved to Prj.Err.
38004 * prj.ads (Project_Data): New Boolean component Unkept_Comments
38005 (Scan): Remove procedure; moved to Prj.Err.
38007 * prj-dect.adb: Manage comments for the different declarations.
38009 * prj-part.adb (With_Record): New component Node
38010 (Parse): New Boolean parameter Store_Comments, defaulted to False.
38011 Set the scanner to return ends of line and comments as tokens, if
38012 Store_Comments is True.
38013 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38014 comments are associated with these nodes. Store the node IDs in the
38016 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38018 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38019 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38020 current project. Call Tree.Restore afterwards. Set the various nodes
38021 for comment storage (Next_End, End_Of_Line, Previous_Line,
38024 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38025 defaulted to False.
38027 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38028 to False. When Truncated is True, truncate the string, never go to the
38030 (Write_End_Of_Line_Comment): New procedure
38031 (Print): Process comments for nodes N_With_Clause,
38032 N_Package_Declaration, N_String_Type_Declaration,
38033 N_Attribute_Declaration, N_Typed_Variable_Declaration,
38034 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38035 Process nodes N_Comment.
38037 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38038 without comments and there are some comments, set the flag
38039 Unkept_Comments to True.
38040 (Scan): If there are comments, set the flag Unkept_Comments to True and
38041 clear the comments.
38042 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38043 (Next_End_Nodes: New table
38044 (Comment_Zones_Of): New function
38045 (Scan): New procedure; moved from Prj. Accumulate comments in the
38046 Comments table and set end of line comments, comments after, after end
38048 (Add_Comments): New procedure
38049 (Save, Restore, Seset_State): New procedures
38050 (There_Are_Unkept_Comments): New function
38051 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38052 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38054 (First_Comment_After, First_Comment_After_End): New functions
38055 (First_Comment_Before, First_Comment_Before_End): New functions
38056 (Next_Comment): New function
38057 (End_Of_Line_Comment, Follows_Empty_Line,
38058 Is_Followed_By_Empty_Line): New functions
38059 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38060 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38061 (Set_Next_Comment): New procedure
38062 (Default_Project_Node): Associate comment before if the node can store
38065 * scans.ads (Token_Type): New enumeration value Tok_Comment
38066 (Comment_Id): New global variable
38068 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38069 defaulted to False.
38070 (Scan): Store position of start of comment. If comments are tokens, set
38071 Comment_Id and set Token to Tok_Comment when scanning a comment.
38072 (Set_Comment_As_Token): New procedure
38074 * sinput-p.adb: Update Copyright notice
38075 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38076 that no longer exists.
38078 2003-12-08 Javier Miranda <miranda@gnat.com>
38080 * sem_aggr.adb: Add dependence on Exp_Tss package
38081 Correct typo in comment
38082 (Resolve_Aggregate): In case of array aggregates set the estimated
38083 type of the aggregate before calling resolve. This is needed to know
38084 the name of the corresponding IP in case of limited array aggregates.
38085 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38086 in case of default initialized array components.
38088 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38089 types. Required to give support to limited aggregates in generic
38092 2003-12-08 Ed Schonberg <schonberg@gnat.com>
38094 * sem_ch3.adb (Check_Initialization): For legality purposes, an
38095 inlined body functions like an instantiation.
38096 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38097 until bounds are analyzed, to diagnose premature use of type.
38099 * sem_util.adb (Wrong_Type): Improve error message when the type of
38100 the expression is used prematurely.
38102 2003-12-08 GNAT Script <nobody@gnat.com>
38104 * Make-lang.in: Makefile automatically updated
38106 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
38108 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38109 they are automatically generated by Make-lang.in and cause nothing but
38110 maintenance troubles.
38112 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
38114 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38115 version of this unit).
38117 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
38119 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38120 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38121 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38122 the body of System.Interrupt_Management common to several targets.
38123 Update copyright notice when appropriate.
38125 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38128 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38129 to ensure that the kernel fills in the interrupted context structure
38130 before calling a signal handler, which is necessary to be able to
38131 unwind past it. Update the copyright notice.
38133 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
38135 * a-elchha.ads: New file.
38137 * a-elchha.adb: New default last chance handler. Contents taken from
38138 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38140 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38141 is moved to a-elchha.adb to provide a target-independent default last
38144 * Makefile.rtl: Add a-elchha.o
38146 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38148 2003-12-05 Ed Schonberg <schonberg@gnat.com>
38150 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38151 declared in an instance, do not inline the call if the instance is not
38152 frozen yet, to prevent order of elaboration problems.
38154 * sem_prag.adb: Add comments for previous fix.
38156 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
38158 * g-table.adb: Use the right variable in Set_Item.
38159 Update copyright notice.
38161 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
38163 * Makefile.in: Remove unused rules.
38165 2003-12-05 Vincent Celier <celier@gnat.com>
38167 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38168 -nostdlib. Not needed here after all.
38170 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
38173 * adaint.h, adaint.c, g-os_lib.ads:
38174 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38175 on some platforms (including FreeBSD), it is a 64 bit value.
38176 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38178 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
38180 * gnatvsn.ads (Library_Version): Now contain only the relevant
38182 (Verbose_Library_Version): New constant.
38184 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38185 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38186 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38188 * gnatlbr.adb: Clean up: replace Library_Version by
38189 Verbose_Library_Version.
38191 * make.adb, lib-writ.adb, exp_attr.adb:
38192 Clean up: replace Library_Version by Verbose_Library_Version.
38194 * 5lintman.adb: Removed.
38197 Update and simplify computation of LIBRARY_VERSION.
38198 Fix computation of GSMATCH_VERSION.
38199 5lintman.adb is no longer used: replaced by 7sintman.adb.
38201 2003-12-03 Robert Dewar <dewar@gnat.com>
38204 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38205 name. Modified to consider small non-bit-packed arrays as troublesome
38206 and in need of component-by-component assigment expansion.
38208 2003-12-03 Vincent Celier <celier@gnat.com>
38210 * lang-specs.h: Process nostdlib as nostdinc
38212 * back_end.adb: Update Copyright notice
38213 (Scan_Compiler_Arguments): Process -nostdlib directly.
38215 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
38218 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38219 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38220 included in HIE_NONE_TARGET_PAIRS.
38222 2003-12-03 Ed Schonberg <schonberg@gnat.com>
38225 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38226 is legal in an instance, because legality is cheched in the template.
38229 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38230 appplied to an unchecked conversion of a formal parameter.
38233 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38236 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
38238 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38239 routines. The second one is new functionality to deal with backtracing
38240 through signal handlers.
38241 (unwind): Split into the two separate subroutines above.
38242 Update the documentation, and deal properly with sizeof (REG) different
38243 from sizeof (void*).
38245 2003-12-01 Nicolas Setton <setton@act-europe.fr>
38247 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38248 so that the debugger can reliably access the value of the parameter,
38249 and therefore is able to display the exception name when an exception
38250 breakpoint is reached.
38252 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
38254 * fmap.adb: Fix typo in warning message.
38256 * g-socket.ads, g-socket.adb: Make Free a visible instance of
38257 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38259 2003-12-01 Vincent Celier <celier@gnat.com>
38261 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38263 (Build_Library): Get the switches only if Default_Switches is declared
38266 2003-12-01 Ed Schonberg <schonberg@gnat.com>
38268 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38269 actuals that are indexed components, reanalyze actual to ensure that
38270 packed array references are properly expanded.
38272 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38273 attempted assignment to a discriminant.
38275 2003-12-01 Robert Dewar <dewar@gnat.com>
38277 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38280 * switch-c.adb: Minor reformatting of comments
38282 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38284 * Makefile.in: Clean ups.
38286 2003-12-01 GNAT Script <nobody@gnat.com>
38288 * Make-lang.in: Makefile automatically updated
38290 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38292 * 5wsystem.ads: Disable zero cost exception, not ready yet.
38294 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
38296 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38297 to force serialization.
38299 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
38301 * g-socket.ads, g-socket.adb:
38302 Clarify documentation of function Stream. Introduce a Free procedure
38303 to release the returned Stream once it becomes unused.
38305 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38307 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
38309 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38310 since NT 4 cannot handle timeout values that are too large,
38311 e.g. DWORD'Last - 1.
38313 2003-11-26 Ed Schonberg <schonberg@gnat.com>
38316 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38317 in procedure calls and whose expansion must be deferred.
38319 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38323 (Build_Derived_Array_Type): Create operator for unconstrained type
38324 if ancestor is unconstrained.
38326 2003-11-26 Vincent Celier <celier@gnat.com>
38328 * make.adb (Project_Object_Directory): New global variable
38329 (Change_To_Object_Directory): New procedure
38330 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38331 of Change_Dir directly. Do not change working directory to object
38332 directory of main project after each compilation.
38333 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38335 Change to object directory of main project before binding step.
38336 (Initialize): Initialize Project_Object_Directory to No_Project
38339 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38340 binding a Stand-Alone Library.
38342 * output.adb: Update Copyright notice
38343 (Write_Char): Output buffer when full
38345 2003-11-26 Robert Dewar <dewar@gnat.com>
38347 * sem_ch13.adb: (Check_Size): Reset size if size is too small
38350 (Check_Size): Fix documentation to include bit-packed array case
38352 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38354 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38356 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38358 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
38361 * utils.c (init_gigi_decls): Change name of built-in setjmp to
38362 __builtin_setjmp, since this is apparently needed by recent
38365 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38367 * adadecode.c: Only include ctype.h if not IN_GCC.
38368 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38370 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
38373 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38374 signals and interrupts.
38376 * 5zintman.ads: New File.
38378 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38379 add exception signals to the set of unmasked signals.
38382 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38383 between signals and interrupts.
38384 Add to Unblocked_Signal_Mask the set of signals that are in
38388 Adding a check to see whether the Interrupt_ID we want to unmask is in
38389 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38390 reason is that the index type of the Keep_Unmasked array is not always
38391 Interrupt_ID; it may be a subtype of Interrupt_ID.
38393 2003-11-24 Gary Dismukes <dismukes@gnat.com>
38396 (Remove_Side_Effects): Condition constantness of object created for a
38397 an unchecked type conversion on the constantness of the expression
38398 to ensure the correct value for 'Constrained when passing components
38399 of view-converted class-wide objects.
38401 2003-11-24 Robert Dewar <dewar@gnat.com>
38403 * par-load.adb (Load): Improve handling of misspelled and missing units
38404 Removes several cases of compilation abandoned messages
38406 * lib.adb: (Remove_Unit): New procedure
38408 * lib.ads: (Remove_Unit): New procedure
38410 * lib-load.adb: Minor reformatting
38412 2003-11-24 Vincent Celier <celier@gnat.com>
38415 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38416 (Marking_Label): Label to mark processed source files. Incremented for
38418 (Gnatmake): Increase Marking_Labet for each executable
38419 (Is_Marked): Compare against marking label
38420 (Mark): Mark with marking label
38422 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
38425 Move the declaration of the TSD for System.Threads to System.Soft_Links.
38428 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38429 (rts-cert): build a single relocatable object for the run-time lib.
38432 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
38435 Use gnatls rather than gcc to obtain the location of GNAT RTL for
38438 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
38440 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38441 can not use it as before (that is, as a variable) when dumping it into
38442 the tree file. Add a local variable to store the result of this
38443 function and to be used as the string to be written into the tree.
38445 * scn.adb (Initialize_Scanner): Add comments explaining the recent
38448 * sinput.adb (Source_First, Source_Last): In case of
38449 Internal_Source_File, replace returning attributes of
38450 Internal_Source_Ptr (which is wrong) with returning attributes of
38453 2003-11-24 Ed Schonberg <schonberg@gnat.com>
38456 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38457 used for implicit concatenation operators.
38461 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38462 task bodies that are in the scope of a Suppress pragma.
38463 (Check_A Call): Use the flag to prevent spurious elaboration checks.
38465 * sinfo.ads, sinfo.adb:
38466 New flag No_Elaboration_Check on function/procedure calls, to properly
38467 suppress checks on calls in task bodies that are within a local suppress
38471 (Expand_Concatenate_Other): Use the proper integer type for the
38472 expression for the upper bound, to avoid universal_integer computations
38475 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
38477 * .cvsignore: Delete.
38479 2003-11-21 Andreas Schwab <schwab@suse.de>
38481 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38483 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
38485 * 5wsystem.ads: Enable zero cost exception.
38487 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
38489 * 5ztiitho.adb: Remove an unreferenced variable.
38491 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
38493 * adaint.c: For FreeBSD, use mkstemp.
38495 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
38497 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38499 2003-11-21 Robert Dewar <dewar@gnat.com>
38501 * bld.adb: Remove useless USE of gnatvsn
38503 * gnatchop.adb: Minor reformatting
38504 Clean up version handling to be more consistent
38506 * gnatxref.adb: Minor reformatting
38508 * gprcmd.adb: Minor reformatting
38509 Fix output of copyright to be more consistent with other tools
38511 2003-11-21 Vincent Celier <celier@gnat.com>
38513 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38515 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
38517 * atree.adb (Initialize): Add initializations for global variables
38518 used in New_Copy_Tree.
38520 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38521 Internal_Source_File as the actual).
38522 Put the set of statements creating Any_Character before the set of
38523 statements creating Any_Array to have Any_Character fully initialized
38524 when it is used in creating Any_Array.
38526 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38527 not call Scan in case if the actual is Internal_Source_File
38528 Add 2003 to copyright note.
38530 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38531 processing Internal_Source_File.
38533 * types.ads: Add the constant Internal_Source_File representing the
38534 source buffer for artificial source-code-like strings created within
38535 the compiler (the definition of Source_File_Index is changed).
38537 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
38539 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38540 56system.ads: New file, FreeBSD version.
38542 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
38544 * Make-lang.in (ada.extraclean): Delete.
38546 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
38548 * gnatmem.adb: Clean up verbose output.
38550 * gprcmd.adb: Change copyright to FSF.
38552 2003-11-19 Vincent Celier <celier@gnat.com>
38554 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38555 and Version (ignored).
38557 * symbols.ads: (Policy): New type
38558 (Initialize): New parameter Reference, Symbol_Policy and
38560 Remove parameter Force.
38561 Minor reformatting.
38563 * snames.ads, snames.adbadb: New standard names
38564 Library_Reference_Symbol_File and Library_Symbol_Policy
38567 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38571 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38573 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38575 * prj.adb: (Project_Empty): New component Symbol_Data
38577 * prj.ads: (Policy, Symbol_Record): New types
38578 (Project_Data): New component Symbol_Data
38581 New attributes Library_Symbol_File, Library_Symbol_Policy and
38582 Library_Reference_Symbol_File.
38585 (Ada_Check): When project is a Stand-Alone library project, process
38586 attribute Library_Symbol_File, Library_Symbol_Policy and
38587 Library_Reference_Symbol_File.
38589 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38590 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38591 5sml-tgt.adb (Build_Dynamic_Library): New parameter
38592 Symbol_Data (ignored).
38594 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38595 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38596 functions Option_File_Name and Version_String. Set new options of
38597 gnatsym related to symbol file, symbol policy and reference symbol
38601 Extensive modifications to take into account the reference symbol file,
38602 the symbol policy, the library version and to put in the symbol file the
38603 minor and major IDs.
38605 * bld.adb (Process_Declarative_Items): Put second argument of
38606 gprcmd to_absolute between single quotes, to avoid problems with
38609 * bld-io.adb: Update Copyright notice.
38610 (Flush): Remove last character of a line, if it is a back slash, to
38611 avoid make problems.
38614 Implement new scheme with reference symbol file and symbol policy.
38616 * g-os_lib.ads: (Is_Directory): Clarify comment
38618 2003-11-19 Robert Dewar <dewar@gnat.com>
38620 * atree.adb: Move New_Copy_Tree global variables to head of package
38622 * errout.adb: Minor reformatting
38624 2003-11-19 Javier Miranda <miranda@gnat.com>
38626 * sem_ch4.adb: (Diagnose_Call): Improve error message.
38627 Add reference to Ada0Y (AI-50217)
38629 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38630 sem_util.adb: Add reference to AI-50217
38632 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38634 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
38636 * sem_aggr.adb: Complete documentation of AI-287 changes
38638 * par-ch4.adb: Document previous changes.
38640 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
38641 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
38644 * exp_aggr.adb: Add references to AI-287 in previous changes
38646 2003-11-19 Ed Schonberg <schonberg@gnat.com>
38649 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
38650 in the rewriting is the result of an inlined call.
38652 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
38653 parameter is a type conversion, use original node to construct the
38654 post-call assignment, because expression may have been rewritten, e.g.
38655 if it is a packed array.
38658 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
38659 body, just as it is in an instance.
38660 Categorization routines
38662 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
38663 Instantiate_Object): Set proper sloc reference for message on missing
38666 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
38668 * Makefile.in: Add FreeBSD libgnat pairs.
38670 * usage.adb: Fix typo in usage message.
38672 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
38674 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
38675 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
38676 pragma Thread_Body.
38677 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
38679 * s-thread.adb: This file is now a dummy implementation of
38682 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
38684 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
38686 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
38688 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38689 instanciation references in the parent type description.
38691 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38693 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
38695 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
38696 TYPE_PRECISION directly from esize.
38698 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
38701 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
38703 * init.c: Initialization routines for FreeBSD
38705 * link.c: Link info for FreeBSD
38707 * sysdep.c: Add the case of FreeBSD
38709 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
38711 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
38712 already called in System.Threads.
38714 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
38715 environment task, as it has been moved to System.Threads.Initialization.
38717 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
38719 * adaint.c (__gnatlib_install_locks): Only reference
38720 __gnat_install_locks on VMS, since other platforms can avoid using
38721 --enable-threads=gnat
38723 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38725 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
38727 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
38728 TYPE_PACKED_ARRAY_TYPE_P.
38729 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
38731 Part of PR ada/12806
38732 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
38733 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
38735 2003-11-17 Vincent Celier <celier@gnat.com>
38737 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
38739 Do not set exit status to Failure when Warning is True.
38740 (Gnatchop): Make errors "no compilation units found" and
38741 "no source files written" warnings only.
38743 * make.adb (Gnatmake): When using a project file, set
38744 Look_In_Primary_Dir to False.
38745 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
38746 and Local_Configuration_Pragmas in the project where they are declared
38747 not an extending project which might have inherited them.
38749 * osint.adb (Locate_File): If Name is already an absolute path, do not
38750 look for a directory.
38752 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
38753 -gnats (Check_Syntax) is used, issue only a warning, not an error.
38755 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
38756 in objects of type Variable_Value.
38758 * prj.ads: (Variable_Value): New component Project
38760 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
38761 is in a project extended by Project.
38763 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
38764 Project of Variable_Values to this new parameter value.
38765 (Expression): Set component Project of Variable_Values.
38766 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
38767 Set the component Project in array elements.
38769 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
38771 * errout.adb: (Initialize): Add initialization for error nodes.
38773 * sem_ch12.adb (Initialize): Add missing initializations for
38774 Exchanged_Views and Hidden_Entities.
38776 2003-11-17 Ed Schonberg <schonberg@gnat.com>
38778 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
38779 already instantiated tree for use in subsequent inlining.
38780 (Analyze_Associations, Instantiate_Formal_Subprogram,
38781 Instantiate_Object): improve error message for mismatch in
38784 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
38785 instantiations of subprograms declared in instances.
38787 2003-11-17 Javier Miranda <miranda@gnat.com>
38789 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
38790 executed only under the Extensions_Allowed flag.
38792 2003-11-17 Robert Dewar <dewar@gnat.com>
38794 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
38796 (Address_Image): Fix bug of returning 0x instead of 0x0
38797 Minor reformatting (function specs).
38799 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
38800 (missed case of 33-63)
38802 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
38804 * s-thread.adb: Add comments for pragma Restriction
38806 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
38807 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
38809 2003-11-17 Ed Falis <falis@gnat.com>
38811 * s-thread.adb: Added No_Tasking restriction for this implementation.
38813 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
38815 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
38816 instanciation references in the parent type description.
38818 2003-11-17 GNAT Script <nobody@gnat.com>
38820 * Make-lang.in: Makefile automatically updated
38822 2003-11-16 Jason Merrill <jason@redhat.com>
38824 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
38825 and TAGS files that include them for each front end.
38827 2003-11-14 Andreas Jaeger <aj@suse.de>
38829 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
38830 is the canonical version.
38831 * misc.c (gnat_handle_option): Likewise.
38833 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
38835 * 5nsystem.ads: New file for x86_64-linux-gnu.
38837 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
38839 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
38841 * comperr.adb: Fix logic in previous change.
38843 2003-11-13 Vincent Celier <celier@gnat.com>
38845 * 5bml-tgt.adb (Build_Dynamic_Library): Use
38846 Osint.Include_Dir_Default_Prefix instead of
38847 Sdefault.Include_Dir_Default_Name.
38849 * gnatlbr.adb: Update Copyright notice
38850 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
38851 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
38852 instead of Sdefault.Object_Dir_Default_Name
38855 (Process_Binder_File): Never suppress the option following -Xlinker
38858 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
38859 Sdefault.Object_Dir_Default_Name.
38861 * osint.ads, osint.adb:
38862 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
38863 Minor reformatting.
38865 * vms_conv.ads: Minor reformating
38866 Remove GNAT STANDARD and GNAT PSTA
38869 Allow GNAT MAKE to have several files on the command line.
38870 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
38871 Sdefault.Object_Dir_Default_Name.
38873 Remove data for GNAT STANDARD
38876 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
38877 Remove data for GNAT STANDARD
38878 Remove options and documentation for -gnatwb/-gnatwB: these warning
38879 options no longer exist.
38881 2003-11-13 Ed Falis <falis@gnat.com>
38883 * 5zthrini.adb: (Init_RTS): Made visible
38886 (Register): Removed unnecessary call to taskVarGet that checked whether
38887 an ATSD was already set as a task var for the argument thread.
38890 Updated comment to reflect that this is a VxWorks version
38891 Added context clause for System.Threads.Initialization
38892 Added call to System.Threads.Initialization.Init_RTS
38894 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
38897 (Init_RTS): New procedure, for the initialization of the run-time lib.
38900 Remove dependancy on System.Init, so that this file can be used in the
38901 AE653 sequential run-time lib.
38903 2003-11-13 Robert Dewar <dewar@gnat.com>
38905 * bindgen.adb: Minor reformatting
38907 2003-11-13 Ed Schonberg <schonberg@gnat.com>
38910 (Apply_Discriminant_Check): Do no apply check if target type is derived
38911 from source type with no applicable constraint.
38914 (Ensure_System_Dependency): Do not apply the style checks that may have
38915 been specified for the main unit.
38918 (Find_Selected_Component): Further improvement in error message, with
38922 (Resolve): Handle properly the case of an illegal overloaded protected
38925 2003-11-13 Javier Miranda <miranda@gnat.com>
38928 (Has_Default_Init_Comps): New function to check the presence of
38929 default initialization in an aggregate.
38930 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
38931 extension aggregate of a limited record. In addition, a new formal
38932 was added to do not initialize the record controller (if any) during
38933 this recursive expansion of ancestors.
38934 (Init_Controller): Add support for limited record components.
38935 (Expand_Record_Aggregate): In case of default initialized components
38936 convert the aggregate into a set of assignments.
38938 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
38939 describing the new syntax.
38940 Nothing else needed to be done because this subprogram delegates part of
38941 its work to P_Precord_Or_Array_Component_Association.
38942 (P_Record_Or_Array_Component_Association): Give support to the new
38943 syntax for default initialization of components.
38946 (Resolve_Aggregate): Relax the strictness of the frontend in case of
38947 limited aggregates.
38948 (Resolve_Record_Aggregate): Give support to default initialized
38950 (Get_Value): In case of default initialized components, duplicate
38951 the corresponding default expression (from the record type
38952 declaration). In case of default initialization in the *others*
38953 choice, do not check that all components have the same type.
38954 (Resolve_Extension_Aggregate): Give support to limited extension
38958 (Check_Initialization): Relax the strictness of the front-end in case
38959 of aggregate and extension aggregates. This test is now done in
38960 Get_Value in a per-component manner.
38962 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
38963 expression corresponds to a limited aggregate. This test is now done
38966 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
38969 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
38970 present in an N_Component_Association node
38972 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
38974 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
38975 type-conformant entry only if they are homographs.
38977 2003-11-13 GNAT Script <nobody@gnat.com>
38979 * Make-lang.in: Makefile automatically updated
38981 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38983 * adadecode.c: Use <> form of include for ctype.h.
38984 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
38986 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38988 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
38989 Works around PR middle-end/6552.
38991 2003-11-10 Ed Falis <falis@gnat.com>
38993 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
38995 * 5zinit.adb: (Install_Handler): Moved back to spec
38996 (Install_Signal_Handlers): Deleted
38998 * 5zthrini.adb: Added context clause for System.Storage_Elements
38999 (Register): Only handles creation of taskVar; initialization moved to
39001 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39002 Added declaration of environment task secondary stack and
39005 * s-thread.adb: Implement bodies for thread body processing
39008 Added comment identifying supported targets for pragma Thread_Body.
39010 2003-11-10 Pascal Obry <obry@gnat.com>
39012 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39016 (Open): Properly check for string length before copying into the buffer.
39017 Raises Name_Error if buffer is too small. Note that this was a potential
39020 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
39022 * bindgen.adb, comperr.adb: Code clean ups.
39023 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39025 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
39027 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39029 2003-11-10 Vincent Celier <celier@gnat.com>
39032 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39035 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39037 * prj.adb: (Project_Empty): Add new boolean component Virtual
39039 * prj.ads: (Virtual_Prefix): New constant string
39040 (Project_Data): New boolean component Virtual
39042 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39043 a library project is extended by a virtual extending project.
39046 Modifications throughout to implement extending-all project, including:
39047 (Virtual_Hash, Processed_Hash): New hash tables
39048 (Create_Virtual_Extending_Project): New procedure
39049 (Look_For_Virtual_Projects_For): New procedure
39052 (Process): After checking the projects, if main project is an
39053 extending-all project, set the object directory of all virtual extending
39054 project to the object directory of the main project.
39055 Adjust error message when a virtual extending project has the same
39056 object directory as an project being extended.
39057 (Recursive_Process): If name starts with the virtual prefix, set Virtual
39058 to True in the project data.
39061 (Default_Project_Node): Add new boolean component Extending_All
39062 (Is_Extending_All): New function
39063 (Set_Is_Extending_All): New procedure
39065 * prj-tree.ads: (Is_Extending_All): New function
39066 (Set_Is_Extending_All): New procedure
39067 (Project_Node_Record): New boolean component Extending_All
39069 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39072 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39074 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39075 "gprcmd prefix" to define it.
39077 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
39079 * einfo.ads: Fix a typo and remove an extraneous word in comments.
39082 (Create_Dummy_Package_Unit): Set the scope of the entity for the
39083 created dummy package to Standard_Standard, not to itself, to
39084 defend other parts of the front-end against encoutering a cycle in
39088 (Analyze_With_Clause): When setting the entities for the successive
39089 N_Expanded_Names that constitute the name of a child unit, do not
39090 attempt to go further than Standard_Standard in the chain of scopes.
39091 This case arises from the placeholder units created by
39092 Create_Dummy_Package_Unit in the case of a with_clause for a
39093 nonexistent child unit.
39095 2003-11-10 Ed Schonberg <schonberg@gnat.com>
39098 (Expand_Thread_Body): Place subprogram on scope stack, so that new
39099 declarations are given the proper scope.
39102 (Check_Expr_Constants): Reject an expression that contains a constant
39103 created during expansion, and that appears after the object to which
39104 the address clause applies.
39106 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39107 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39108 that uses 'Range of a function call with controlled components, so
39109 that the function result can be finalized before starting the loop.
39112 (Find_Selected_Component): Improve error message when prefix is
39113 an implicit dereference of an incomplete type.
39115 2003-11-10 Robert Dewar <dewar@gnat.com>
39117 * opt.ads: New Print_Standard flag for -gnatS switch
39119 * sem_ch13.adb: Remove some additional checks for unaligned arrays
39121 * cstand.adb (Create_Standard): Print out package standard if -gnatS
39124 * debug.adb: Update doc for -gnatds to discuss relationship with new
39127 * sinfo.adb: Add new field Entity_Or_Associated_Node
39129 * sinfo.ads: Add new field Entity_Or_Associated_Node
39130 Update documentation for Associated_Node and Entity fields to clarify
39131 relationship and usage.
39134 (Write_Id): Properly process Associated_Node field in generic template
39137 Recognize new -gnatS switch for printing package Standard
39138 This replaces gnatpsta
39141 Add line for new -gnatS switch for printing package Standard
39142 This replaces gnatpsta
39144 2003-11-10 Andreas Jaeger <aj@suse.de>
39146 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39149 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39151 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39154 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39156 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39159 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39161 * sysdep.c: Add handling of cygwin.
39163 2003-11-10 GNAT Script <nobody@gnat.com>
39165 * Make-lang.in: Makefile automatically updated
39167 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39170 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39171 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39172 Replace GNAT_ROOT by GCC_ROOT.
39174 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39176 2003-11-06 Zack Weinberg <zack@codesourcery.com>
39178 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39179 and update for changed meaning of GET_MODE_BITSIZE.
39181 2003-11-04 Doug Rupp <rupp@gnat.com>
39183 * sysdep.c: Problem discovered during IA64 VMS port.
39184 [VMS] #include <unixio.h> to get proper prototypes.
39187 Issues discovered/problems fixed during IA64 VMS port.
39188 [VMS] #define _POSIX_EXIT for proper semantics.
39189 [VMS] #include <unixio.h> for proper prototypes.
39190 [VMS] (fork): #define IA64 version.
39191 (__gnat_os_exit): Remove unnecessary VMS specific code.
39193 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39195 Part of PR ada/12806
39196 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39200 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39203 * targtyps.c, decl.c, misc.c,
39204 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39205 routines to work around change in FP sizing semantics in GCC.
39208 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39210 * gigi.h: (enumerate_modes): New function.
39212 * Make-lang.in: (ada/misc.o): Add real.h.
39214 * misc.c: (enumerate_modes): New function.
39216 2003-11-04 Robert Dewar <dewar@gnat.com>
39218 * 3vtrasym.adb: Minor reformatting
39219 Use terminology encoded/decoded name, rather than C++ specific notion
39220 of mangling (this is the terminology used throughout GNAT).
39222 * einfo.h: Regenerated
39224 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39227 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39229 * par-prag.adb: Add dummy entry for Thread_Body pragma
39232 Add entries for System.Threads entities for thread body processing
39235 (Analyze_Pragma, Access attributes): Check these are not applied to a
39236 thread body, since this is not permitted
39238 * sem_prag.adb: Add processing for Thread_Body pragma.
39242 (Resolve_Call): Check for incorrect attempt to call a thread body
39243 procedure with a direct call.
39245 * snames.ads, snames.adb: Add entry for Thread_Body pragma
39246 Add names associated with thread body expansion
39248 * snames.h: Add entry for Thread_Body pragma
39250 * s-thread.adb: Add entries for thread body processing
39251 These are dummy bodies so far
39253 * s-thread.ads: Add documentation on thread body handling.
39254 Add entries for thread body processing.
39256 2003-11-04 Javier Miranda <miranda@gnat.com>
39259 (Build_Limited_Views): Return after posting an error in case of limited
39260 with_clause on subprograms, generics, instances or generic renamings
39261 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39262 on subprograms, generics, instances or generic renamings
39264 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
39266 * raise.c (setup_to_install): Correct mistake in last revision; two
39267 arguments out of order.
39269 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39270 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39271 notice, missed in previous change.
39272 Remove trailing blanks and other style errors introduced in previous
39275 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
39277 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39278 rid of the wrapper for a LJM type, ensuring we don't do that if the
39279 field is addressable. This avoids potential low level type view
39280 mismatches later on, for instance in a by-reference argument passing
39283 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39285 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39286 aligned at byte boundary.
39288 2003-11-04 Joel Brobecker <brobecker@gnat.com>
39290 * decl.c (components_to_record): Do not delete the empty variants from
39291 the end of the union type.
39293 2003-11-04 Ed Schonberg <schonberg@gnat.com>
39295 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39296 operation for a derived type, an explicit declaration may use a local
39297 subtype of Boolean.
39299 2003-11-04 Vincent Celier <celier@gnat.com>
39301 * make.adb (Gnatmake): Allow main sources on the command line with a
39302 library project when it is only for compilation (no binding or
39305 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39307 * Makefile.in: Remove many duplicate variables.
39309 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
39311 * Make-lang.in (dvi): Move targets to $(docobjdir).
39312 (gnat_ug_vms.dvi): Simplify rule and adjust target.
39313 (gnat_ug_wnt.dvi): Likewise.
39314 (gnat_ug_unx.dvi): Likewise.
39315 (gnat_ug_vxw.dvi): Likewise.
39316 (gnat_rm.dvi): Likewise.
39317 (gnat-style.dvi): Likewise.
39319 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39321 * gigi.h: Missed commit from update for C90.
39323 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39325 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39327 2003-10-31 Andreas Schwab <schwab@suse.de>
39329 * raise.c (get_action_description_for): Fix typo in last change.
39331 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
39334 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39335 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39337 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
39339 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39340 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39341 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39342 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39343 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39345 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
39348 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39349 numbers when symbol name is too long.
39351 2003-10-30 Ed Falis <falis@gnat.com>
39353 * g-signal.ads, g-signal.adb: New files
39355 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39357 * Makefile.rtl: Introduce GNAT.Signals
39359 2003-10-30 Robert Dewar <dewar@gnat.com>
39361 * freeze.adb: Minor reformatting
39363 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39365 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39366 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39367 New handling of Id_Check parameter to improve recognition of keywords
39368 used as identifiers.
39369 Update copyright notice to include 2003
39371 2003-10-29 Robert Dewar <dewar@gnat.com>
39373 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39374 sem_ch10.adb: Minor reformatting
39376 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39377 (Expand_Assign_Record): Test right hand side for bit unaligned as well
39379 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
39381 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39382 Support for TBK$SYMBOLIZE-based symbolic traceback.
39384 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
39387 Revert previous change, that did not work well when pragma No_Run_Time
39388 was used in conjunction with a run-time other than ZFP.
39390 2003-10-29 Vincent Celier <celier@gnat.com>
39393 (Gnatmake): When there are no Ada mains in attribute Main, disable the
39394 bind and link steps only is switch -z is not used.
39396 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
39398 * Makefile.generic: Remove duplicated setting of CC.
39400 * Makefile.prolog: Set CC to gcc by default, to override make's
39403 * einfo.h: Regenerated.
39405 2003-10-29 Ed Schonberg <schonberg@gnat.com>
39407 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39408 current body, after compiling subunit.
39410 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39411 when in deleted code, because gigi needs properly ordered freeze
39412 actions to annotate types.
39414 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39415 prevent the premature freezing of record type that contains
39416 subcomponents with a private type that does not yet have a completion.
39418 2003-10-29 Javier Miranda <miranda@gnat.com>
39421 (Analyze_Package_Instantiation): Check that instances can not be used in
39422 limited with_clauses.
39425 (Analyze_Package_Renaming): Check that limited withed packages cannot
39426 be renamed. Improve text on error messages related to limited
39429 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39431 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39432 Update copyright notice.
39434 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39435 (Install_Limited_Context_Clauses): New subprogram that isolates all the
39436 checks required for limited context_clauses and installs the limited
39438 (Install_Limited_Withed_Unit): Complete its documentation.
39439 (Analyze_Context): Check that limited with_clauses are only allowed in
39441 (Install_Context): Call Install_Limited_Context_Clauses after the
39442 parents have been installed.
39443 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39444 package as 'From_With_Type'; this mark indicates that the limited view
39445 is installed. Used to check bad usages of limited with_clauses.
39446 (Build_Limited_Views): Do not add shadow entities to the scope's list
39447 of entities. Do not add real entities to the Non_Limited_Views chain.
39448 Improve error notification.
39449 (Remove_Context_Clauses): Remove context clauses in two phases:
39450 limited views first and regular views later (to maintain the
39452 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39453 its visible entities.
39455 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
39457 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39458 with any type that Is_Fixed_Point_Type.
39460 * sinfo.ads: Fix documentation for Associated_Node attribute.
39462 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
39464 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39465 both '-gnatc' and '-gnatt' are specified.
39467 * atree.adb (Initialize): Add initialization for Node_Count (set to
39470 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39472 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39473 do not consider as Pure.
39475 Part of implementation of function-at-a-time:
39477 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39478 (tree_transform): Add new argument to build_component_ref.
39479 (tree_transform, case N_Assignment_Statement): Make and return an
39481 (tree_transform): If result IS_STMT, set flags and return it.
39482 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39484 * utils2.c (build_simple_component_ref, build_component_ref): Add new
39486 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39487 (build_allocator): Likewise.
39489 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39490 Add new arg to build_component_ref.
39491 (maybe_unconstrained_array, unchecked_convert): Likewise.
39493 * ada-tree.def (EXPR_STMT): New code.
39495 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39497 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39498 build_component_ref calls.
39500 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39502 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39503 (build_component_ref): Add new argument, NO_FOLD_P.
39505 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
39507 * Makefile.generic: Add missing substitution on object_deps handling.
39510 * Make-lang.in (check-ada): Enable ACATS test suite.
39512 2003-10-27 Robert Dewar <dewar@gnat.com>
39515 (Freeze_Array_Type): We do not need an initialization routine for types
39516 derived from String or Wide_String. They should be treated the same
39517 as String and Wide_String themselves. This caused problems with the
39518 use of Initialize_Scalars.
39521 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39522 composites. This allows use of component clauses that are not byte
39526 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39527 is an attempt to pack an array of atomic objects.
39529 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39531 2003-10-27 Pascal Obry <obry@gnat.com>
39534 (Basename): Check for drive letters in a pathname only on DOS based OS.
39536 2003-10-27 Vincent Celier <celier@gnat.com>
39539 (Gnatmake): When unable to change dir to the object dir, display the
39540 content of the parent dir of the obj dir, to try to understand why this
39543 2003-10-27 GNAT Script <nobody@gnat.com>
39545 * Make-lang.in: Makefile automatically updated
39547 2003-10-27 Ed Schonberg <schonberg@gnat.com>
39550 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39551 should not be done in Save/Restore_Scope_Stack, because it is performed
39555 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39556 whether use clauses should be removed/restored.
39559 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39560 whether use clauses should be removed/restored.
39562 2003-10-26 Andreas Jaeger <aj@suse.de>
39564 * Makefile.in: Remove duplicated lines.
39566 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39568 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39569 minimize the differences with ACT tree.
39571 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39572 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39573 Gnatvsn.Gnat_Static_Version_String to reduce differences between
39576 2003-10-24 Pascal Obry <obry@gnat.com>
39579 * adadecode.c (ostrcpy): New function.
39580 (__gnat_decode): Use ostrcpy of strcpy.
39581 (has_prefix): Set first parameter a const.
39582 (has_suffix): Set first parameter a const.
39583 Update copyright notice. Fix source name in header.
39584 Removes a trailing space.
39586 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
39589 Remove the test against being in No_Run_Time_Mode before generating a
39590 call to Register_Tag. It is redundant with the test against the
39591 availability of the function Register_Tag.
39593 2003-10-24 Vincent Celier <celier@gnat.com>
39595 * g-catiio.adb: (Month_Name): Correct spelling of February
39597 * make.adb: (Mains): New package
39598 (Initialize): Call Mains.Delete
39599 (Gnatmake): Check that each main on the command line is a source of a
39600 project file and, if there are several mains, each of them is a source
39601 of the same project file.
39602 (Gnatmake): When a foreign language is specified in attribute Languages,
39603 no main is specified on the command line and attribute Mains is not
39604 empty, only build the Ada main. If there is no Ada main, just compile
39605 the Ada sources and their closure.
39606 (Gnatmake): If a main is specified on the command line with directory
39607 information, check that the source exists and, if it does, that the path
39608 is the actual path of a source of a project.
39611 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39612 Full_Path is True, return the full path instead of the simple file name.
39613 (Project_Of): New function
39616 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39617 defaulted to False.
39618 (Project_Of): New function
39620 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39622 * Makefile.generic:
39623 Ensure objects of main project are always checked and rebuilt if needed.
39624 Set CC to gcc by default.
39625 Prepare new handling of link by creating a global archive (not activated
39628 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39629 stringt.h: Update copyright notice. Remove trailing blanks.
39630 Fix source name in header.
39632 2003-10-24 Robert Dewar <dewar@gnat.com>
39634 * sem_ch12.adb: Minor reformatting
39637 Minor reformatting (including new function return style throughout)
39640 Minor reformatting (including new function return style throughout)
39642 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
39644 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39645 stringt.h: Update copyright notice. Remove trailing blanks.
39646 Fix source name in header.
39648 2003-10-24 GNAT Script <nobody@gnat.com>
39650 * Make-lang.in: Makefile automatically updated
39652 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
39654 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
39655 stringt.h: Convert to ISO C90 declarations and definitions.
39657 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
39660 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
39661 External_Tag attribute definition clauses.
39663 2003-10-23 Ed Schonberg <schonberg@gnat.com>
39666 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
39667 child unit, generate a fully qualified name to avoid spurious errors
39668 when the context contains renamings of different child units with
39669 the same simple name.
39671 * exp_dbug.ads: Add documentation on name qualification for renamings
39674 2003-10-23 Robert Dewar <dewar@gnat.com>
39676 * g-regpat.ads, g-regpat.adb: Minor reformatting
39678 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
39680 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
39682 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39684 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
39687 * urealp.h: (Machine): Update to proper definition.
39689 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
39691 * init.c, adaint.c: Minor reformatting.
39693 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
39695 * adaint.c (w32_epoch_offset): Define static const at file level.
39696 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
39697 rather than t_create, t_access in call to GetFileTime. Use union
39698 to convert between FILETIME and unsigned long long.
39699 (__gnat_file_time_name): Test for invalid file handle.
39700 (__gnat_set_filetime_name): Support win32 targets using
39701 w32api SetFileTime.
39703 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
39705 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
39707 * ctrl_c.c (__gnat_int_handler): Remove declaration.
39709 * decl.c (creat_concat_name): Const-ify prefix.
39711 * adaint.c: Include ctype.h if __MINGW32__.
39712 (__gnat_readlink): Mark arguments as possibly unused.
39713 (__gnat_symlink): Likewise.
39714 (__gnat_is_symbolic_link): Likewise.
39715 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
39717 (__gnat_file_time_name): Don't declare struct stat statbuf when
39719 (__gnat_is_absolute_path): Add parenthesis around condition of
39720 'if' statement to avoid warning.
39721 (__gnat_plist_init): Specify void as parameter.
39722 (plist_enter): Likewise.
39723 (plist_leave): Likewise.
39724 (remove_handle): Make static. Initialize prev.
39726 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39729 * Makefile.in: Disable build of gnatpsta.
39730 * cstreams.c (__gnat_full_name): Minor improvements and clean up
39731 of previous change.
39733 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39735 * tracebak.c (MAX): Avoid redefinition warning.
39737 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
39738 Change msg to const char *.
39739 (__gnat_install_handler): Remove ss, unused.
39740 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
39742 * cstreams.c (__gnat_full_name): Declare p only when used.
39743 (__gnat_full_name) [sgi] Return buffer.
39745 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
39747 * mingw32.h: New file.
39748 * gnat_wrapper.adb: New file.
39750 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
39752 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
39753 string match a pre compiled regular expression (the corresponding
39754 version of the function working on a raw regular expression)
39755 Fix typos in various comments
39756 Update copyright notice in spec
39758 2003-10-21 Gary Dismukes <dismukes@gnat.com>
39761 (Component_Needs_Simple_Initialization): Return False when the type is a
39762 packed bit array. Revise spec comments to document this case.
39765 (Expand_Pragma_Import): Set any expression on the imported object to
39766 empty to avoid initializing imported objects (in particular this
39767 covers the case of zero-initialization of bit arrays).
39768 Update copyright notice.
39770 2003-10-21 Ed Schonberg <schonberg@gnat.com>
39773 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
39774 a subunit is missing.
39775 (Instantiate_Subprogram_Body): If body of function is missing, set type
39776 of return expression explicitly in dummy body, to prevent cascaded
39777 errors when a subunit is missing.
39781 (Access_Subprogram_Declaration): Verify that return type is valid.
39785 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
39790 (Corresponding_Discriminant): If the scope of the discriminant is a
39791 private type without discriminant, use its full view.
39794 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
39796 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
39797 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
39798 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
39799 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
39800 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
39801 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
39802 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39803 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
39804 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
39805 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
39806 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
39807 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
39808 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
39809 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
39810 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
39811 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
39812 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
39813 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
39814 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
39815 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
39816 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
39817 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
39818 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
39819 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
39820 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
39821 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
39822 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
39823 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
39824 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
39825 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
39826 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
39827 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
39828 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
39829 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
39830 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
39831 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
39832 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
39833 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
39834 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
39835 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
39836 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
39837 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
39838 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
39839 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
39840 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
39841 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
39842 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
39843 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
39844 vms_conv.ads, vms_conv.adb, vms_data.ads,
39845 vxaddr2line.adb: Files added. Merge with ACT tree.
39847 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
39848 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
39849 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
39850 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
39851 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
39852 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
39853 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
39854 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
39855 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
39856 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
39858 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
39859 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
39860 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
39861 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
39862 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
39863 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
39864 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
39865 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
39866 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
39867 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
39868 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
39869 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
39870 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
39871 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
39872 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
39873 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
39874 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
39875 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
39876 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
39877 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
39878 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
39879 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
39880 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
39881 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
39882 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
39883 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
39884 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
39885 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
39886 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
39887 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
39888 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
39889 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
39890 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
39891 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
39892 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
39893 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
39894 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
39895 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
39896 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
39897 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
39898 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
39899 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
39900 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
39901 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
39902 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
39903 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
39904 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
39905 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
39906 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
39907 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
39908 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
39909 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
39910 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
39911 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
39912 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
39913 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
39914 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
39915 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
39916 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
39917 checks.adb, checks.ads, cio.c, comperr.adb,
39918 comperr.ads, csets.adb, cstand.adb, cstreams.c,
39919 debug_a.adb, debug_a.ads, debug.adb, decl.c,
39920 einfo.adb, einfo.ads, errout.adb, errout.ads,
39921 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
39922 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
39923 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
39924 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
39925 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
39926 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
39927 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
39928 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
39929 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
39930 fe.h, fmap.adb, fmap.ads, fname.adb,
39931 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
39932 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
39933 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
39934 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
39935 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
39936 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
39937 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
39938 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
39939 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
39940 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
39941 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
39942 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
39943 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
39944 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
39945 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
39946 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
39947 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
39948 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
39949 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
39950 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
39951 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
39952 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
39953 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
39954 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
39955 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
39956 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
39957 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
39958 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
39959 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
39960 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
39961 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
39962 layout.adb, lib.adb, lib.ads, lib-list.adb,
39963 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
39964 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
39965 link.c, live.adb, make.adb, make.ads,
39966 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
39967 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
39968 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
39969 misc.c, mkdir.c, mlib.adb, mlib.ads,
39970 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
39971 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
39972 namet.adb, namet.ads, namet.h, nlists.ads,
39973 nlists.h, nmake.adt, opt.adb, opt.ads,
39974 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
39975 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
39976 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
39977 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
39978 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
39979 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
39980 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
39981 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
39982 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
39983 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
39984 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
39985 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
39986 prj-util.adb, prj-util.ads, raise.c, raise.h,
39987 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
39988 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
39989 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
39990 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
39991 scans.ads, scn.adb, scn.ads, s-crc32.adb,
39992 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
39993 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
39994 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
39995 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
39996 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
39997 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
39998 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
39999 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40000 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40001 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40002 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40003 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40004 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40005 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40006 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40007 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40008 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40009 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40010 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40011 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40012 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40013 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40014 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40015 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40016 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40017 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40018 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40019 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40020 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40021 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40022 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40023 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40024 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40025 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40026 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40027 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40028 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40029 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40030 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40031 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40032 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40033 stringt.adb, stringt.ads, stringt.h, style.ads,
40034 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40035 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40036 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40037 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40038 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40039 table.adb, table.ads, targparm.adb, targparm.ads,
40040 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40041 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40042 ttypes.ads, types.ads, types.h, uintp.adb,
40043 uintp.ads, uintp.h, uname.adb, urealp.adb,
40044 urealp.ads, urealp.h, usage.adb, utils2.c,
40045 utils.c, validsw.adb, validsw.ads, widechar.adb,
40046 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40047 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40048 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40049 gnatvsn.ads: Merge with ACT tree.
40051 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40053 2003-10-20 Mark Mitchell <mark@codesourcery.com>
40055 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40056 (gnat_ug_vmx.info): Likewise.
40057 (gnat_ug_vxw.info): Likewise.
40058 (gnat_ug_wnt.info): Likewise.
40059 (gnat_rm.info): Likewise.
40060 (gnat-style.info): Likewise.
40062 * Make-lang.in (ada.install-info): Remove target.
40063 (info): New target.
40064 (install-info): Likewise.
40065 (gnat_ug_unx.info): Simplify rule.
40066 (gnat_ug_vmx.info): Likewise.
40067 (gnat_ug_vxw.info): Likewise.
40068 (gnat_ug_wnt.info): Likewise.
40069 (gnat_rm.info): Likewise.
40070 (gnat-style.info): Likewise.
40072 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
40074 * Make-lang.in: Replace uses of $(target_alias) with
40075 $(target_noncanonical).
40076 * ada/Makefile.in: Remove unused mention of $(target_alias).
40078 2003-10-06 Mark Mitchell <mark@codesourcery.com>
40080 * Make-lang.in (ada.info): Replace with ...
40082 (ada.dvi): Replace with ...
40085 2003-09-29 Zack Weinberg <zack@codesourcery.com>
40087 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40088 initialize dconstp5 and dconstmp5.
40090 2003-09-28 Richard Henderson <rth@redhat.com>
40092 * trans.c (tree_transform): Update call to expand_asm_operands.
40094 2003-09-21 Richard Henderson <rth@redhat.com>
40096 * trans.c, utils.c: Revert.
40098 2003-09-21 Richard Henderson <rth@redhat.com>
40100 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40103 2003-09-04 Michael Matz <matz@suse.de>
40105 * misc.c: Include "target.h".
40106 * Make-lang.in (misc.o): Add dependency on target.h.
40108 2003-09-03 DJ Delorie <dj@redhat.com>
40110 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40113 2003-08-30 Zack Weinberg <zack@codesourcery.com>
40115 * Makefile.in: Update substitutions to match changes to
40116 configure. Use include directives instead of @-insertions
40117 to read in host and target fragments. Add a rule to
40118 regenerate ada/Makefile.
40120 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
40122 * lang-options.h: Remove.
40123 * lang.opt: Add help text.
40125 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
40127 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40130 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
40132 * misc.c (gnat_handle_option): Don't handle filenames.
40134 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
40136 * Make-lang.in: Replace PWD with PWD_COMMAND.
40137 * Makefile.adalib: Likewise.
40138 * Makefile.in: Likewise.
40140 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
40142 * misc.c (gnat_argv): Revert last change.
40143 (gnat_handle_option, gnat_init_options): Copy arguments.
40145 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
40147 * misc.c (gnat_argv): Make const.
40149 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
40151 * misc.c (save_argc, save_argv): Keep non-static!
40153 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
40155 * misc.c (save_argc, save_argv): Make static.
40156 (gnat_init_options): New prototype.
40157 (gnat_init_options): Update.
40159 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
40161 * gnat_ug.texi: Remove unlikely characters from @vars.
40162 * gnat_ug_vms.texi: Regenerate.
40164 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
40166 * misc.c (record_code_position): Adjust emit_note call.
40168 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
40170 * misc.c (gnat_handle_option): Don't check for missing arguments.
40172 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
40174 * utils.c (end_subprog_body): Adjust expand_function_end call.
40176 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
40178 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40181 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
40183 * lang.opt: Declare Ada.
40184 * misc.c (gnat_init_options): Update.
40186 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
40188 * utils.c (begin_subprog_body): Adjust init_function_start call.
40190 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
40192 * Make-lang.in: Update to use options.c and options.h.
40193 * misc.c: Include options.h not aoptions.h.
40194 (gnat_handle_option): Abort on unrecognized switch.
40195 (gnat_init_options): Request Ada switches.
40197 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
40199 * lang.opt: Add -Wall.
40200 * misc.c (gnat_handle_option): Handle it.
40202 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
40204 * misc.c (gnat_handle_option): Fix warnings.
40206 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
40208 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40210 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
40212 * Make-lang.in: Update to handle command-line options.
40213 * lang.opt: New file.
40214 * misc.c: Include aoptions.h.
40215 (cl_options_count, cl_options): Remove.
40216 (gnat_handle_option): New.
40217 (gnat_decode_option): Remove.
40218 (LANG_HOOKS_DECODE_OPTION): Remove.
40219 (LANG_HOOKS_HANDLE_OPTION): Override.
40221 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
40223 * init.c, misc.c, trans.c, utils.c: Remove dead code.
40225 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
40227 * Makefile.in: Replace "host_canonical" with "host" for autoconf
40230 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
40232 * Make-lang.in: Update.
40233 * misc.c: Include opts.h. Define cl_options_count and cl_options.
40235 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
40237 * misc.c (gnat_init_options): Update.
40239 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40241 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40242 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40243 __attribute__ ((__unused__)).
40245 2003-06-05 Jan Hubicka <jh@suse.cz>
40247 * Make-lang.in: Add support for stageprofile and stagefeedback
40249 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40251 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40252 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40254 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
40256 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40257 Remove non-VMS directive.
40258 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40260 (Examples of gnatls Usage): Remove VMS alternative.
40262 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
40265 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40266 and turn ZCX_By_Default back to False since the underlying support
40267 is not quite there yet.
40269 2003-06-01 Andreas Jaeger <aj@suse.de>
40271 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40272 and ROUND_TYPE_SIZE_UNIT.
40274 2003-05-22 Geert Bosch <bosch@gnat.com>
40276 * gnat_rm.texi : Remove reference to Ada Core Technologies.
40278 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
40280 * trans.c (tree_transform): Use location_t and input_location
40282 (build_unit_elab): Likewise.
40283 * utils.c (create_label_decl): Likewise.
40285 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
40287 * trans.c (tree_transform, build_unit_elab,
40288 set_lineno): Rename lineno to input_line.
40289 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40290 end_subprog_body): Likewise.
40291 * utils2.c (build_call_raise): Likewise.
40293 2003-05-01 Laurent Guerby <guerby@acm.org>
40296 * 5iosinte.ads: Increase pthread_cond_t size to match recent
40297 LinuxThread and NPTL version, merge from ACT.
40299 2003-04-28 Zack Weinberg <zack@codesourcery.com>
40301 * utils.c (convert): No need to clear TREE_CST_RTL.
40303 2003-04-23 Geert Bosch <bosch@gnat.com>
40305 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40306 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40307 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40308 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40309 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40310 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40311 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40312 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40313 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40314 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40315 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40316 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40317 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40318 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40319 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40320 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40321 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40322 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40323 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40324 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40325 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40326 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40327 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40328 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40329 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40330 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40331 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40332 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40333 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40334 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40335 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40336 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40337 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40338 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40339 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40340 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40341 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40342 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40343 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40344 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40345 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40346 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40347 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40348 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40349 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40350 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40351 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40352 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40353 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40354 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40355 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40356 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40357 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40358 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40359 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40360 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40361 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40362 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40363 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40364 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40365 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40366 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40367 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40368 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40369 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40370 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40371 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40372 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40373 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40374 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40375 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40376 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40377 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40378 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40379 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40380 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40381 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40382 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40383 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40384 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40385 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40386 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40387 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40388 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40389 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40390 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40391 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40392 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40393 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40394 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40395 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40396 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40397 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40398 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40399 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40400 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40401 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40402 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40403 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40404 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40405 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40406 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40407 ali.adb, ali.ads, alloc.ads, argv.c,
40408 atree.adb, atree.ads, atree.h, aux-io.c,
40409 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40410 binde.adb, binde.ads, binderr.adb, binderr.ads,
40411 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40412 butil.adb, butil.ads, cal.c, calendar.ads,
40413 casing.adb, casing.ads, ceinfo.adb, checks.adb,
40414 checks.ads, cio.c, comperr.adb, comperr.ads,
40415 config-lang.in, csets.adb, csets.ads, csinfo.adb,
40416 cstand.adb, cstand.ads, cuintp.c, debug.adb,
40417 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40418 dec-io.ads, dec.ads, deftarg.c, directio.ads,
40419 einfo.adb, einfo.ads, elists.adb, elists.ads,
40420 elists.h, errno.c, errout.adb, errout.ads,
40421 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40422 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40423 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40424 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40425 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40426 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40427 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40428 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40429 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40430 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40431 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40432 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40433 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40434 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40435 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40436 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40437 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40438 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40439 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40440 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40441 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40442 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40443 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40444 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40445 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40446 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40447 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40448 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40449 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40450 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40451 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40452 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40453 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40454 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40455 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40456 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40457 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40458 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40459 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40460 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40461 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40462 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40463 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40464 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40465 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40466 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40467 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40468 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40469 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40470 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40471 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40472 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40473 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40474 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40475 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40476 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40477 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40478 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40479 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40480 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40481 lib.adb, lib.ads, live.adb, live.ads,
40482 machcode.ads, make.adb, make.ads, makeusg.adb,
40483 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40484 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40485 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40486 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40487 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40488 mlib.ads, namet.adb, namet.ads, nlists.adb,
40489 nlists.ads, opt.adb, opt.ads, osint-b.adb,
40490 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40491 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40492 osint.ads, output.adb, output.ads, par-ch10.adb,
40493 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40494 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40495 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40496 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40497 par-tchk.adb, par-util.adb, par.adb, par.ads,
40498 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40499 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40500 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40501 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40502 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40503 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40504 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40505 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40506 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40507 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40508 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40509 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40510 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40511 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40512 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40513 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40514 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40515 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40516 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40517 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40518 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40519 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40520 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40521 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40522 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40523 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40524 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40525 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40526 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40527 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40528 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40529 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40530 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40531 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40532 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40533 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40534 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40535 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40536 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40537 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40538 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40539 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40540 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40541 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40542 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40543 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40544 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40545 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40546 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40547 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40548 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40549 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40550 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40551 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40552 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40553 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40554 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40555 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40556 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40557 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40558 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40559 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40560 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40561 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40562 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40563 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40564 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40565 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40566 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40567 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40568 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40569 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40570 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40571 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40572 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40573 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40574 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40575 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40576 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40577 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40578 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40579 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40580 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40581 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40582 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40583 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40584 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40585 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40586 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40587 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40588 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40589 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40590 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40591 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40592 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40593 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40594 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40595 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40596 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40597 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40598 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40599 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40600 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40601 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40602 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40603 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40604 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40605 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40606 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40607 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40608 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40609 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40610 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40611 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40612 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40613 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40614 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40615 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40616 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40617 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40618 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40619 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40620 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40621 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40622 snames.ads, sprint.adb, sprint.ads, stand.adb,
40623 stand.ads, stringt.adb, stringt.ads, style.adb,
40624 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40625 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40626 switch-m.ads, switch.adb, switch.ads, system.ads,
40627 table.adb, table.ads, targparm.adb, targparm.ads,
40628 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40629 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40630 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40631 ttypef.ads, ttypes.ads, types.adb, types.ads,
40632 uintp.adb, uintp.ads, uname.adb, uname.ads,
40633 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40634 usage.adb, usage.ads, validsw.adb, validsw.ads,
40635 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
40636 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
40637 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
40638 formatting and other trivial changes from ACT.
40640 2003-04-12 Zack Weinberg <zack@codesourcery.com>
40642 * gigi.h, utils2.c (build_constructor):
40643 Rename gnat_build_constructor. Use build_constructor.
40644 * decl.c (gnat_to_gnu_entity)
40645 * trans.c (tree_transform, pos_to_constructor, extract_values)
40646 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
40647 (unchecked_convert)
40648 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
40649 (fill_vms_descriptor):
40652 2003-04-06 Zack Weinberg <zack@codesourcery.com>
40654 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
40655 * misc.c (gnat_tree_size): New function.
40656 (LANG_HOOKS_TREE_SIZE): Override.
40658 2003-04-03 Jason Merrill <jason@redhat.com>
40660 * misc.c (gnat_adjust_rli): #if 0.
40662 2003-03-31 Geert Bosch <bosch@gnat.com>
40665 * link.c : Fix misspelled "const" keyword
40667 2003-03-23 Mark Mitchell <mark@codesourcery.com>
40670 * utils2.c: Adjust calls to put_var_into_stack.
40672 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
40674 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
40676 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
40678 * misc.c (gnat_init): Update for new prototype.
40680 2003-03-05 Olivier Hainque <hainque@gnat.com>
40683 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
40684 warning, and fix return type for the IN_RTS && !SJLJ case.
40686 2003-03-04 Tom Tromey <tromey@redhat.com>
40688 * Make-lang.in (ada.tags): New target.
40690 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
40693 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
40694 wrapper, which name remains constant whatever underlying GCC
40697 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
40698 the stable interface needed for a-except.
40700 2003-03-02 Andreas Jaeger <aj@suse.de>
40702 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40703 gnat_ug_wnt.texi: Regenerate.
40705 2003-03-02 Laurent Guerby <guerby@acm.org>
40707 * Makefile.in (install-gnatlib): Match previous change there
40710 2003-02-28 Andreas Schwab <schwab@suse.de>
40712 * Make-lang.in (install-gnatlib): Change to ada directory before
40713 running make instead of using ada/Makefile directly.
40715 2003-02-18 Ben Elliston <bje@redhat.com>
40717 Part of PR ada/9406
40718 * gnat_ug.texi (Binder output file): Grammar fix.
40720 2003-02-18 Ben Elliston <bje@redhat.com>
40723 * 5qtaprop.adb (Sleep): Fix typo in comment.
40725 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
40727 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
40728 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40729 gnat_ug_wnt.texi: Regenerate.
40731 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40733 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
40734 be created if necessary.
40735 (ada.install-common): Let $(DESTDIR)$(bindir) be created
40736 if necessary. Remove erroneous and redundant gnatchop
40737 installation commands. Test for gnatdll before attempting
40739 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
40740 and gnatdll from all plausible locations.
40742 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
40744 * utils2.c (build_unary_op): Don't check flag_volatile.
40745 * gnat_ug.texi: Remove -fvolatile from example.
40746 * gnat_ug_vxw.texi: Likewise.
40748 2003-01-29 Laurent Guerby <guerby@acm.org>
40751 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
40752 * Makefile.in: match previous change.
40753 * Make-lang.in: match previous change.
40755 2003-01-29 Joel Sherrill <joel@OARcorp.com>
40757 * 5rosinte.ads: Add SIGXCPU.
40758 * 5rtpopsp.adb: New file.
40759 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
40760 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
40761 specific file 5rtpopsp.adb.
40762 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
40763 is likely needed for all newlib targets.
40764 * init.c: Add RTEMS specific version of __gnat_initialize().
40766 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40768 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
40770 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40772 * init.c (__gnat_error_handler): Make msg const.
40774 * gmem.c (convert_addresses): Move declaration ...
40775 * adaint.h: ... here.
40776 * adaint.c (convert_addresses): Adapt addrs type to match
40779 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
40781 2003-01-24 Andreas Schwab <schwab@suse.de>
40783 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
40784 size_t to avoid warning.
40786 2003-01-21 Zack Weinberg <zack@codesourcery.com>
40788 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
40790 2003-01-09 Geoffrey Keating <geoffk@apple.com>
40792 * gnat_rm.texi: Remove RCS version number.
40794 * ada-tree.h (union lang_tree_node): Add chain_next option.
40796 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
40798 * Make-lang.in (ada.install-info, ada.install-common,
40799 ada.uninstall): Prepend $(DESTDIR) to the destination
40800 directory in all (un)installation commands.
40801 * Makefile.in (install-gnatlib, install-rts): Ditto.
40803 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
40805 * gnat_rm.texi, gnat_ug.texi: Use @copying.
40806 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
40807 gnat_ug_wnt.texi: Regenerate.
40809 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
40811 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
40813 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
40814 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
40815 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
40816 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
40817 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
40818 $(srcdir)/doc/include/gcc-common.texi.
40820 2002-12-15 Geert Bosch <bosch@gnat.com>
40822 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
40824 2002-12-14 Geert Bosch <bosch@gnat.com>
40827 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
40828 case of a body created for a Renaming_As_Body, on which
40829 conformance checks are not performed.
40831 2002-11-30 Zack Weinberg <zack@codesourcery.com>
40833 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
40834 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
40835 not already included.
40836 * Make-lang.in: Update dependencies.
40838 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
40839 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
40840 solution to buffer overflow bug on GNU/Linux.
40842 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
40846 * bindgen.adb: Remove all references to Public_Version.
40847 * comperr.adb: Remove all references to Public_Version and
40848 GNATPRO_Version; correct bug reporting instructions.
40849 * comperr.ads: Change to match bug box.
40850 * gnatvsn.ads: Remove all references to Public version and
40853 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
40856 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
40860 * config-lang.in: Remove diff_excludes.
40862 2002-11-05 Graham Stott <graham.stott@btinternet.com>
40865 * trans.c (gnu_pending_elaboration_lists): New GC root.
40866 (build_unit_elab): Use..
40868 2002-10-30 Geert Bosch <bosch@gnat.com>
40871 * misc.c : Include optabs.h
40873 * Make-lang.in (misc.o): Add dependency on optabs.h
40875 2002-10-29 Geert Bosch <bosch@gnat.com>
40878 * Make-lang.in (gnatbind): Depend on CONFIG_H
40880 2002-10-29 Geert bosch <bosch@gnat.com>
40883 * misc.c: Unrevert misc.c (1.13)
40885 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
40887 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
40888 maintainership comments.
40890 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
40893 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
40894 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
40895 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
40896 7staprop.adb: Correct statements in comments about
40897 maintainership of GNAT.
40900 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
40901 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
40902 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
40903 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
40904 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
40905 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
40906 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
40907 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
40908 comments about maintainership of GNAT.
40910 PR ada/6919 (forward port of patch for PR ada/5904)
40911 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
40912 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
40913 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
40914 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
40915 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
40916 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
40917 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
40918 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
40919 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
40920 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
40921 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
40922 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
40923 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
40924 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
40925 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
40926 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
40927 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
40928 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
40929 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
40930 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
40931 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
40932 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
40933 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
40934 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
40935 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
40936 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
40937 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
40938 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
40939 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
40940 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
40941 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
40942 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
40943 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
40944 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
40945 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
40946 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
40947 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
40948 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
40949 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
40950 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
40951 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
40952 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
40953 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
40954 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
40955 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
40956 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
40957 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
40958 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
40959 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
40960 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
40961 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
40962 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
40963 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
40964 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
40965 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
40966 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
40967 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
40968 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
40969 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
40970 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
40971 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
40972 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
40973 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
40974 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
40975 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
40976 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
40977 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
40978 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
40979 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
40980 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
40981 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
40982 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
40983 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
40984 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
40985 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
40986 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
40987 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
40988 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
40989 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
40990 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
40991 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
40992 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
40993 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
40994 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
40995 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
40996 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
40997 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
40998 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
40999 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41000 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41001 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41002 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41003 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41004 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41005 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41006 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41007 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41008 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41009 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41010 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41011 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41012 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41013 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41014 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41015 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41016 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41017 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41018 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41019 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41020 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41021 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41022 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41023 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41024 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41025 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41026 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41027 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41028 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41029 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41030 par-endh.adb par-labl.adb par-load.adb par-prag.adb
41031 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41032 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41033 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41034 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41035 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41036 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41037 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41038 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41039 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41040 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41041 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41042 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41043 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41044 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41045 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41046 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41047 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41048 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41049 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41050 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41051 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41052 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41053 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41054 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41055 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41056 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41057 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41058 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41059 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41060 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41061 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41062 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41063 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41064 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41065 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41066 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41067 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41068 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41069 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41070 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41071 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41072 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41073 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41074 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41075 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41076 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41077 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41078 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41079 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41080 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41081 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41082 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41083 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41084 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41085 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41086 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41087 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41088 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41089 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41090 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41091 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41092 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41093 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41094 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41095 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41096 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41097 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41098 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41099 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41100 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41101 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41102 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41103 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41104 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41105 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41106 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41107 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41108 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41109 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41110 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41111 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41112 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41113 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41114 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41115 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41116 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41117 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41118 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41119 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41120 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41121 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41122 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41123 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41124 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41125 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41126 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41127 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41128 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41129 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41130 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41131 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41132 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41133 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41134 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41135 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41136 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41137 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41138 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41139 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41140 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41141 stringt.ads stringt.h style.adb style.ads stylesw.adb
41142 stylesw.ads switch.adb switch.ads sysdep.c system.ads
41143 table.adb table.ads targparm.adb targparm.ads targtyps.c
41144 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41145 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41146 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41147 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41148 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41149 usage.ads utils.c utils2.c validsw.adb validsw.ads
41150 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41151 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
41152 xtreeprs.adb: Correct statements in comments about maintainership
41155 2002-09-23 Zack Weinberg <zack@codesourcery.com>
41157 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41158 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41159 * gnatvsn.ads: Gnat_Version_String is now a function.
41160 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
41161 copy the C version_string into a String and return it.
41162 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41163 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41164 Remove pragma Ident (Gnat_Version_String). If this was the
41165 sole use of package Gnatvsn, remove the with statement too.
41166 * gnat1drv.adb: Tweak -gnatv output.
41168 2002-09-17 Richard Henderson <rth@redhat.com>
41170 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41171 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41172 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41173 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41174 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41175 and real_2expN instead of a loop.
41176 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41177 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41179 2002-08-25 Andre Leis <a.leis@gmx.net>
41180 David Billinghurst <David.Billinghurst@riotinto.com>
41182 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
41184 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41186 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41187 Remove $(CONFIG_H) dependency.
41189 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
41191 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41193 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41195 * adadecode.c (ada_demangle): Use xstrdup in lieu of
41197 * misc.c (gnat_decode_option): Likewise.
41199 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
41201 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41202 function approach did not work well because of a side effect (the
41203 function call could reallocate the table which was being indexed
41204 using its result). Fixes ada/4851. [RESURRECTED]
41206 2002-07-01 Roger Sayle <roger@eyesopen.com>
41208 * ada/utils.c (builtin_function): Accept an additional parameter.
41210 2002-06-28 Andreas Jaeger <aj@suse.de>
41213 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41216 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41218 * Makefile.in (SHELL): Set to @SHELL@.
41220 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41222 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41223 array size calculation.
41225 2002-06-04 Andreas Jaeger <aj@suse.de>
41227 * Make-lang.in (gnatbind): Readd rule that has been lost in last
41230 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
41232 Merge from pch-branch:
41234 * config-lang.in (gtfiles): Add ada-tree.h.
41235 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41236 (SET_TYPE_MODULUS): New.
41237 (SET_TYPE_INDEX): New.
41238 (SET_TYPE_DIGITS_VALUE): New.
41239 (SET_TYPE_RM_SIZE): New.
41240 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41241 (SET_TYPE_ADA_SIZE): New.
41242 (SET_TYPE_ACTUAL_BOUNDS): New.
41243 (SET_DECL_CONST_CORRESPONDING_VAR): New.
41244 (SET_DECL_ORIGINAL_FIELD): New.
41245 (TREE_LOOP_ID): Correct typo.
41246 * decl.c: Use new macros.
41247 * utils.c: Include debug.h, use new macros.
41248 * utils2.c: Use new macros.
41250 * ada-tree.h: Update all macros for new tree description.
41251 (struct tree_loop_id): New.
41252 (union lang_tree_node): New.
41253 (struct lang_decl): New.
41254 (struct lang_type): New.
41255 * misc.c (gnat_mark_tree): Delete.
41256 (LANG_HOOKS_MARK_TREE): Delete.
41257 * trans.c (tree_transform): No longer any need to cast
41260 * utils.c (struct language_function): New dummy structure.
41262 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41263 (misc.o): Likewise.
41264 (utils.o): Likewise; also gtype-ada.h.
41265 * Make-lang.in (gnat1): Add dependency on s-gtype.
41266 (gnatbind): Add dependency on $(CONFIG_H).
41267 * utils.c: Correct last #include.
41268 (stuct e_stack): Remove unnecessary 'static'.
41269 (mark_e_stack): Remove unused prototype.
41271 * scn-nlit.adb: Remove whitespace after version number to
41272 keep lines under 80 chars.
41273 * snames.adb: Likewise.
41274 * treepr.ads: Likewise.
41276 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41277 (misc.o): Likewise.
41278 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41279 * config-lang.in (gtfiles): New.
41280 * decl.c: Use gengtype for roots.
41281 * gigi.h: Use gengtype for roots.
41282 * trans.c: Use gengtype for roots.
41283 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
41285 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
41287 * misc.c (gnat_init): Adjust setting of internal_error_function.
41289 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
41291 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41292 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41293 gnat_ug_wnt.texi: Regenerate.
41295 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
41297 * 5ntaprop.adb (with System.OS_Primitives): Remove.
41299 * cstreams.c (max_path_len): Move from here ...
41300 * adaint.c (__gnat_max_path_len): ... to here.
41301 * adaint.c (__gnat_max_path_len): Declare.
41302 * g-dirope.adb (Max_Path): Adjust.
41303 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41304 * i-cstrea.ads (max_path_len): Adjust.
41305 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41306 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41308 * Makefile.in, Make-lang.in: Documentation is now built in
41309 Make-lang.in. Store Info and generated Texinfo files in the
41311 * gnat_ug.texi: Remove CVS keywords, correct version number.
41312 Set file name correctly.
41314 * gnat_ug_*.texi: Add.
41315 * .cvsignore: Ignore generated Texinfo files.
41317 2002-05-30 Zack Weinberg <zack@codesourcery.com>
41319 * ada.h: Add MI guard macro.
41320 (SUBTYPE): Define constants with an anonymous enum, not static
41322 (IN): Cast constants to appropriate type before use.
41324 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
41326 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41329 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41331 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41332 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41333 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41334 (ALL_ADA_CFLAGS): Likewise.
41335 (ADA_INCLUDES): Likewise.
41336 Adapt for new working dir.
41337 (GNATBIND): Use Makefile.in version.
41338 (.SUFFIXES): Copy from Makefile.in.
41339 (ada-warn): Define.
41340 (.adb.o, .ads.o): Copy from Makefile.in.
41341 Added $(OUTPUT_OPTION).
41342 (GNAT1_C_OBJS): Moved from Makefile.in.
41343 Prefix with ada subdir.
41344 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41345 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41346 Adapt for new working dir.
41347 (EXTRA_GNATBIND_OBJS): Likewise.
41348 (ADA_BACKEND): Moved from Makefile.in.
41349 Renamed to avoid conflict with global BACKEND.
41351 (TARGET_ADA_SRCS): Moved from Makefile.in.
41352 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41354 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41355 (ada_extra_files): Moved from Makefile.in.
41356 Prefix with ada subdir.
41357 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41358 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41359 (ada/nmake.ads): Likewise.
41360 (update-sources): Moved from Makefile.in.
41361 Prefix with ada subdir.
41362 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41363 (ADA_TREE_H): Likewise.
41364 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41365 (ada/memtrack.o): Likewise.
41366 (ada/adadecode.o): Likewise.
41367 Update dependencies.
41368 (ada/adaint.o): New.
41369 (ada/argv.o): Moved from Makefile.in.
41370 Prefix with ada subdir.
41371 Update dependencies.
41372 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41373 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41374 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41375 Prefix with ada subdir.
41376 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41377 (GNAT DEPENDENCIES): Regenerate.
41378 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41379 toplevel Makefile.in.
41380 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41381 (TARGET_ADA_SRCS): Removed.
41382 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41383 (GNATBIND_OBJS): Likewise.
41384 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41385 (BACKEND): Removed.
41386 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41387 (TREE_H): Likewise.
41388 (ada_extra_files): Likewise.
41389 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41390 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41391 (update-sources): Likewise.
41392 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41393 (ADA_TREE_H): Likewise.
41394 (adadecoce.o): Likewise.
41395 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41396 (GNAT DEPENDENCIES): Likewise.
41398 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41400 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41401 * Makefile.in: Likewise.
41403 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41405 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41406 Restore $(CONFIG_H) and prefix.o dependencies.
41407 (ada.stage[1-4]): Depend on stage?-start.
41409 * Makefile.in (b_gnatb.c): Depend on interfac.o.
41411 2002-05-02 Jim Wilson <wilson@redhat.com>
41413 * utils.c (finish_record_type): Change record_size to record_type.
41415 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
41417 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41418 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41419 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41421 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
41423 * misc.c (gnat_parse_file): Update.
41425 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
41427 * misc.c (gnat_init): Don't set lang_attribute_common.
41429 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
41431 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41433 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
41435 * gnat_ug.texi: New file.
41437 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
41438 instead of gfdl.texi
41440 * xgnatug.adb, ug_words: New files.
41442 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
41443 gnat_rm and gnat-style manuals.
41445 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
41447 * gigi.h (incomplete_type_error): Remove.
41448 * utils.c (incomplete_type_error): Remove.
41450 2002-04-16 Mark Mitchell <mark@codesourcery.com>
41452 * trans.c (tree_transform): Add has_scope argument to
41453 expand_start_stmt_expr.
41455 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41457 * gigi.h (truthvalue_conversion): Rename.
41458 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41459 * trans.c (tree_transform): Update.
41460 * utils2.c (truthvalue_conversion): Rename, update.
41461 (build_binary_op, build_unary_op): Update.
41463 2002-04-04 Laurent Guerby <guerby@acm.org>
41465 * make.adb: Implement -margs, remove restriction about file name placement.
41466 * makeusg.adb: Documentation update.
41467 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41468 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41470 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
41472 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41473 (builtin_function): Similarly.
41475 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41477 * decl.c (gnat_to_gnu_entity): Update.
41478 * gigi.h (mark_addressable): Rename.
41479 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41480 * trans.c (tree_transform): Update.
41481 * utils.c (create_var_decl): Update.
41482 * util2.c (build_binary_op, build_unary_op,
41483 fill_vms_descriptor): Update.
41484 (mark_addressable): Rename, update.
41486 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
41488 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41490 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41491 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41492 * trans.c (tree_transform, convert_with_check): Update.
41493 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41496 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
41498 * gigi.h (finish_incomplete_decl): Rename.
41499 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41500 * utils.c (gnat_init_decl_processing): Don't set hook.
41501 (finish_incomplete_decl): Rename.
41503 2002-03-29 Andreas Schwab <schwab@suse.de>
41505 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41508 2001-03-28 Robert Dewar <dewar@gnat.com>
41511 (Remove_Checks): New procedure
41514 (Remove_Checks): New procedure
41517 Use new Duplicate_Subexpr functions
41518 (Duplicate_Subexpr_No_Checks): New procedure
41519 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41520 (Duplicate_Subexpr): Restore original form (checks duplicated)
41521 (Duplicate_Subexpr): Call Remove_Checks
41524 (Duplicate_Subexpr_No_Checks): New procedure
41525 (Duplicate_Subexpr_No_Checks_Orig): New procedure
41526 Add 2002 to copyright notice
41528 * sem_util.adb: Use new Duplicate_Subexpr functions
41531 (Eval_Indexed_Component): This is the place to call
41532 Constant_Array_Ref and to replace the value. We simply merge
41533 the code of this function in here, since it is now no longer
41534 used elsewhere. This fixes the problem of the back end not
41535 realizing we were clever enough to see that this was
41537 (Expr_Val): Remove call to Constant_Array_Ref
41538 (Expr_Rep_Val): Remove call to Constant_Array_Ref
41540 (Constant_Array_Ref): Deal with string literals (patch
41541 suggested by Zack Weinberg on the gcc list)
41543 2001-03-28 Ed Schonberg <schonber@gnat.com>
41545 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41546 Duplicate_Subexpr_Move_Checks.
41548 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41549 Duplicate_Subexpr_Move_Checks.
41551 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41552 value of array exists before retrieving it (it may a private
41553 protected component in a function).
41555 2002-03-28 Geert Bosch <bosch@gnat.com>
41557 * prj-pp.adb : New file.
41559 * prj-pp.ads : New file.
41561 2002-03-28 Andreas Jaeger <aj@suse.de>
41563 * Makefile.in (stamp-sdefault): Fix path for Makefile.
41565 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
41567 * misc.c (gnat_expand_expr): Move prototype.
41569 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41571 * misc.c (insert_default_attributes): Remove.
41573 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41575 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41576 (gnat_init): Don't set hook.
41577 (gnat_expand_expr): Fix prototype.
41579 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
41581 * misc.c (ggc_p): Remove.
41583 2002-03-27 Geert Bosch <bosch@gnat.com>
41585 * prj-makr.ads, prj-makr.adb : New files.
41587 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
41589 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41590 (lang_mark_tree): Make static, rename.
41592 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
41594 * misc.c (maybe_build_cleanup): Remove.
41596 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
41598 * gigi.h (yyparse): Remove.
41600 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
41602 From Ben Brosgol <brosgol@gnat.com>
41603 * gnat_rm.texi: Sync with ACT version.
41605 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
41607 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41608 (gnat_init): Remove old hook.
41610 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
41612 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41613 (yyparse): Rename gnat_parse_file.
41615 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
41617 Delete all lines containing "$Revision:".
41618 * xeinfo.adb: Don't look for revision numbers.
41619 * xnmake.adb: Likewise.
41620 * xsinfo.adb: Likewise.
41621 * xsnames.adb: Likewise.
41622 * xtreeprs.adb: Likewise.
41624 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41626 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41627 gnat_tree_code_name): Delete.
41628 (tree_code_type, tree_code_length, tree_code_name): Define.
41629 (gnat_init): Don't try to copy into the various tree_code
41632 2002-03-11 Richard Henderson <rth@redhat.com>
41634 * Makefile.in (.NOTPARALLEL): Add fake tag.
41636 2002-03-07 Geert Bosch <bosch@gnat.com>
41638 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
41639 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
41640 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
41641 switch-m.adb, switch-m.ads : New files.
41643 2002-03-07 Geert Bosch <bosch@gnat.com>
41645 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
41646 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
41647 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
41648 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
41649 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
41650 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
41651 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
41652 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
41653 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
41654 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
41655 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
41656 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
41657 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
41658 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
41659 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
41660 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
41661 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
41662 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
41663 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
41664 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
41665 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
41666 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
41667 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
41668 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
41669 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
41670 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
41671 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
41672 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
41673 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
41674 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
41675 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
41676 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
41677 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
41678 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
41679 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
41680 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
41681 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
41682 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
41683 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
41684 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
41685 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
41686 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
41687 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
41688 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
41689 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
41690 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
41691 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
41692 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
41693 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
41694 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
41695 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
41696 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
41697 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
41698 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
41699 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
41700 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
41701 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
41702 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
41703 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
41704 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
41705 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
41706 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
41707 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
41708 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
41709 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
41710 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
41711 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
41712 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
41713 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
41714 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
41715 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
41716 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
41717 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
41718 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
41719 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
41720 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41721 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
41722 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
41723 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
41724 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
41725 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
41726 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
41727 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
41728 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
41729 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
41730 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
41731 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
41732 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
41733 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
41734 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
41735 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
41736 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
41737 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
41738 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
41739 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
41740 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
41741 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
41743 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
41744 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
41745 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
41746 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
41748 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
41749 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
41751 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
41752 to mdll-fil.ad[bs] and mdll-util.ad[bs]
41754 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
41755 from mdllfile.ad[bs] and mdlltool.ad[bs]
41757 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41759 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
41760 lieu of explicit sizeof/sizeof.
41762 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
41764 * misc.c (copy_lang_decl): Remove.
41766 2002-02-27 Zack Weinberg <zack@codesourcery.com>
41768 * misc.c: Delete traditional-mode-related code copied from the
41769 C front end but not used, or used only to permit the compiler
41772 2002-02-07 Richard Henderson <rth@redhat.com>
41774 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
41775 * adaint.h (__gnat_to_gm_time): Update prototype.
41777 2002-01-30 Richard Henderson <rth@redhat.com>
41779 * trans.c (tree_transform) [N_Loop_Statement]: Use
41780 expand_exit_loop_top_cond.
41782 2001-12-23 Richard Henderson <rth@redhat.com>
41784 * utils.c (end_subprog_body): Push GC context around
41785 rest_of_compilation for nested functions.
41787 2001-12-23 Richard Henderson <rth@redhat.com>
41789 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
41791 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
41793 * gnat-style.texi (Declarations and Types): Remove ancient style
41794 rule which was mandated by code generation issues.
41796 * gnat-style.texi (header): Add @dircategory, @direntry.
41797 (title page): Remove date.
41798 (general) Add @./@: where approriate, and two spaces after the
41799 full stop at the end of a sentence. Use @samp markup when
41800 referring concrete lexical entities (keywords, attribute names
41801 etc.), and @syntax for ARM grammar elements. Use @r for English
41802 text in comments. Use @emph for emphasis. Change "if-statements"
41803 etc. to "if statements" (without @samp). Break long lines. Make
41804 casing of section names consistent.
41805 (Identifiers): Use @samp markup for variable names.
41806 (Comments): Use @samp markup for comment characters. Line-end
41807 comments may follow any Ada code, not just statements. Fix
41808 misspelling of "Integer" as "integer".
41809 (Loop statements): Do not use variable name "I", use "J".
41810 (Subprogram Declarations): Document alignment.
41811 (Subprogram Bodies, Block statements): Document empty line before
41814 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
41816 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41817 function approach did not work well because of a side effect (the
41818 function call could reallocate the table which was being indexed
41819 using its result). Fixes ada/4851.
41821 2001-12-19 Robert Dewar <dewar@gnat.com>
41823 * bindgen.adb: Minor reformatting
41825 * cstand.adb: Minor reformatting
41827 * fmap.adb: Minor reformatting
41828 Change name from Add for Add_To_File_Map (Add is much too generic)
41829 Change Path_Name_Of to Mapped_Path_Name
41830 Change File_Name_Of to Mapped_File_Name
41831 Fix copyright dates in header
41834 Change name from Add for Add_To_File_Map (Add is much too generic)
41835 Change Path_Name_Of to Mapped_Path_Name
41836 Change File_Name_Of to Mapped_File_Name
41837 Fix copyright dates in header
41839 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
41840 Add use clause for Fmap.
41842 * make.adb: Minor reformatting
41844 * osint.adb: Minor reformatting. Change of names in Fmap.
41845 Add use clause for Fmap.
41847 * prj-env.adb: Minor reformatting
41849 * prj-env.ads: Minor reformatting
41851 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
41852 error found (there were odd exceptions to this general rule in
41853 -gnatec/-gnatem processing)
41855 2001-12-19 Olivier Hainque <hainque@gnat.com>
41857 * raise.c (__gnat_eh_personality): Exception handling personality
41858 routine for Ada. Still in rough state, inspired from the C++ version
41859 and still containing a bunch of debugging artifacts.
41860 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
41861 inspired from the C++ library.
41863 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
41864 exception handling integration.
41866 2001-12-19 Arnaud Charlet <charlet@gnat.com>
41868 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
41869 (HIE_SOURCES): Add s-secsta.ad{s,b}.
41870 (HIE_OBJS): Add s-fat*.o
41871 (RAVEN_SOURCES): Remove files that are no longer required. Add
41872 interrupt handling files.
41873 (RAVEN_MOD): Removed, no longer needed.
41875 2001-12-19 Robert Dewar <dewar@gnat.com>
41877 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
41878 Add 2001 to copyright date
41880 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
41881 need to force universal inlining for these cases.
41883 2001-12-19 Arnaud Charlet <charlet@gnat.com>
41885 * s-taprob.adb: Minor clean ups so that this unit can be used in
41888 * exp_ch7.adb: Allow use of secondary stack in HI mode.
41889 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
41891 2001-12-19 Vincent Celier <celier@gnat.com>
41893 * prj-tree.ads (Project_Node_Record): Add comments for components
41894 Pkg_Id and Case_Insensitive.
41896 2001-12-19 Pascal Obry <obry@gnat.com>
41898 * g-socket.adb: Minor reformatting. Found while reading code.
41900 2001-12-19 Robert Dewar <dewar@gnat.com>
41902 * prj-tree.ads: Minor reformatting
41904 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
41906 * config-lang.in (diff_excludes): Remove.
41908 2001-12-17 Ed Schonberg <schonber@gnat.com>
41910 * sem_res.adb (Resolve_Selected_Component): do not generate a
41911 discriminant check if the selected component is a component of
41912 the argument of an initialization procedure.
41914 * trans.c (tree_transform, case of arithmetic operators): If result
41915 type is private, the gnu_type is the base type of the full view,
41916 given that the full view itself may be a subtype.
41918 2001-12-17 Robert Dewar <dewar@gnat.com>
41920 * sem_res.adb: Minor reformatting
41922 * trans.c (tree_transform, case N_Real_Literal): Add missing third
41923 parameter in call to Machine (unknown horrible effects from this
41926 * urealp.h: Add definition of Round_Even for call to Machine
41927 Add third parameter for Machine
41929 2001-12-17 Ed Schonberg <schonber@gnat.com>
41931 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
41932 predefined units in No_Run_Time mode.
41934 2001-12-17 Richard Kenner <kenner@gnat.com>
41936 * misc.c (insn-codes.h): Now include.
41938 2001-12-17 Olivier Hainque <hainque@gnat.com>
41940 * a-except.adb: Preparation work for future integration of the GCC 3
41941 exception handling mechanism
41942 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
41943 to factorize previous code sequences and make them externally callable,
41944 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
41945 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
41946 Use the new notification routines.
41948 2001-12-17 Emmanuel Briot <briot@gnat.com>
41950 * prj-tree.ads (First_Choice_Of): Document the when others case
41952 2001-12-17 Arnaud Charlet <charlet@gnat.com>
41954 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
41955 HI-E mode, in order to support Ravenscar profile properly.
41957 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
41958 mode on 32 bits targets.
41960 2001-12-17 Vincent Celier <celier@gnat.com>
41962 * fmap.adb: Initial version.
41964 * fmap.ads: Initial version.
41966 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
41967 If search is successfully done, add to mapping.
41969 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
41972 (Gnatmake): Add new local variable Mapping_File_Name.
41973 Create mapping file when using project file(s).
41974 Delete mapping file before exiting.
41976 * opt.ads (Mapping_File_Name): New variable
41978 * osint.adb (Find_File): Use path name found in mapping, if any.
41980 * prj-env.adb (Create_Mapping_File): New procedure
41982 * prj-env.ads (Create_Mapping_File): New procedure.
41984 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
41987 * usage.adb: Add entry for new switch -gnatem.
41989 * Makefile.in: Add dependencies for fmap.o.
41991 2001-12-17 Ed Schonberg <schonber@gnat.com>
41993 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
41994 is a package instantiation rewritten as a package body.
41995 (Install_Withed_Unit): Undo previous change, now redundant.
41997 2001-12-17 Gary Dismuke <dismukes@gnat.com>
42000 (Compute_Length): Move conversion to Unsigned to callers.
42001 (Get_Max_Size): Convert Len expression to Unsigned after calls to
42002 Compute_Length and Determine_Range.
42003 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42004 Compute_Length and Determine_Range.
42005 Above changes fix problem with length computation for supernull arrays
42006 where Max (Len, 0) wasn't getting applied due to the Unsigned
42007 conversion used by Compute_Length.
42009 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42012 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42013 System.Secondary_Stack.
42014 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42016 Remove unused entity RE_Exception_Data.
42018 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
42020 * rident.ads (No_Secondary_Stack): New restriction.
42022 2001-12-17 Joel Brobecker <brobecke@gnat.com>
42024 * gnat_rm.texi: Fix minor typos. Found while reading the section
42025 regarding "Bit_Order Clauses" that was sent to a customer.
42026 Very interesting documentation!
42028 2001-12-17 Robert Dewar <dewar@gnat.com>
42030 * sem_case.adb (Choice_Image): Avoid creating improper character
42031 literal names by using the routine Set_Character_Literal_Name. This
42032 fixes bombs in certain error message cases.
42034 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42036 * a-reatim.adb: Minor reformatting.
42038 2001-12-17 Ed Schonberg <schonber@gnat.com>
42040 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42041 case where the formal is an extension of another formal in the current
42042 unit or in a parent generic unit.
42044 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42046 * s-tposen.adb: Update comments. Minor reformatting.
42047 Minor code clean up.
42049 * s-tarest.adb: Update comments. Minor code reorganization.
42051 2001-12-17 Gary Dismukes <dismukes@gnat.com>
42053 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
42056 2001-12-17 Robert Dewa <dewar@gnat.com>
42058 * exp_attr.adb: Minor reformatting
42060 2001-12-17 Ed Schonberg <schonber@gnat.com>
42062 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
42063 derivations nested within a child unit: verify that the parent
42064 type is declared in an outer scope.
42066 2001-12-17 Robert Dewar <dewar@gnat.com>
42068 * sem_ch12.adb: Minor reformatting
42070 2001-12-17 Ed Schonberg <schonber@gnat.com>
42072 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42073 warning if current unit is a predefined one, from which bodies may
42076 2001-12-17 Robert Dewar <dewar@gnat.com>
42078 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42079 Fix header format. Add 2001 to copyright date.
42081 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
42082 which caused CE during compilation if checks were enabled.
42084 2001-12-17 Vincent Celier <celier@gnat.com>
42087 (Switches_Of): New function
42088 (Test_If_Relative_Path): New procedure
42089 (Add_Switches): Use new function Switches_Of
42090 (Collect_Arguments_And_Compile): Use new function Switches_Of.
42091 When using a project file, test if there are any relative
42092 search path. Fail if there are any.
42093 (Gnatmake): Only add switches for the primary directory when not using
42094 a project file. When using a project file, change directory to the
42095 object directory of the main project file. When using a project file,
42096 test if there are any relative search path. Fail if there are any.
42097 When using a project file, fail if specified executable is relative
42098 path with directory information, and prepend executable, if not
42099 specified as an absolute path, with the exec directory. Make sure
42100 that only one -o switch is transmitted to the linker.
42102 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
42105 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42106 when using a non standard naming scheme.
42107 (Check_Ada_Naming_Scheme): Make sure that error messages
42108 do not raise exceptions.
42109 (Is_Illegal_Append): Return True if there is no dot in the suffix.
42110 (Language_Independent_Check): Check the exec directory.
42112 * prj.adb (Project_Empty): Add new component Exec_Directory
42115 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42116 (Project_Data): Add component Exec_Directory
42118 * snames.adb: Updated to match snames.ads revision 1.215
42120 * snames.ads: Added Exec_Dir
42122 2001-12-17 Robert Dewar <dewar@gnat.com>
42124 * make.adb: Minor reformatting
42126 * prj-nmsc.adb: Minor reformatting
42128 * snames.adb: Updated to match snames.ads
42130 * snames.ads: Alphebetize entries for project file
42132 2001-12-17 Ed Schonberg <schonber@gnat.com>
42134 * trans.c (process_freeze_entity): Do nothing if the entity is a
42135 subprogram that was already elaborated.
42137 2001-12-17 Richard Kenner <kenner@gnat.com>
42139 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
42140 and Esize if object is referenced via pointer.
42142 2001-12-17 Ed Schonberg <schonber@gnat.com>
42144 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
42145 is discrete before analyzing choices.
42147 2001-12-17 Joel Brobecker <brobecke@gnat.com>
42149 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42150 containing the name of the Ada Main Program. This string is mainly
42151 intended for the debugger.
42152 (Gen_Output_File_C): Do the equivalent change when generating a C file.
42154 2001-12-17 Robert Dewar <dewar@gnat.com>
42156 * ali.adb: Set new Dummy_Entry field in dependency entry
42158 * ali.ads: Add Dummy_Entry field to source dependency table
42160 * bcheck.adb (Check_Consistency): Ignore dummy D lines
42162 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
42164 * lib-writ.ads: Document dummy D lines for missing files.
42166 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42168 2001-12-17 Robert Dewar <dewar@gnat.com>
42170 * ali.adb: Type reference does not reset current file.
42172 * ali.adb: Recognize and scan renaming reference
42174 * ali.ads: Add spec for storing renaming references.
42176 * lib-xref.ads: Add documentation for handling of renaming references
42178 * lib-xref.adb: Implement output of renaming reference.
42181 (Determine_Range): Document local variables
42182 (Determine_Range): Make sure Hbound is initialized. It looks as though
42183 there could be a real problem here with an uninitialized reference
42184 to Hbound, but no actual example of failure has been found.
42186 2001-12-17 Laurent Pautet <pautet@gnat.com>
42189 Fix comment of Shutdown_Socket and Close_Socket. These functions
42190 should not fail silently because if they are called twice, this
42191 probably means that there is a race condition in the user program.
42192 Anyway, this behaviour is consistent with the rest of this unit.
42193 When an error occurs, an exception is raised with the error message
42194 as exception message.
42196 2001-12-17 Robert Dewar <dewar@gnat.com>
42198 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
42199 that it happens before modification of Sloc values for -gnatD.
42201 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
42202 so that it happens before modification of Sloc values for -gnatD.
42204 * switch.adb: Minor reformatting
42206 2001-12-15 Richard Henderson <rth@redhat.com>
42208 * sem_ch7.adb: Wrap comment.
42210 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42212 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42213 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42214 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42215 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42216 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42217 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42218 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42219 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42220 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42221 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42222 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42223 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42224 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42225 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42226 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42227 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42228 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42229 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42230 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42231 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42232 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42233 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42234 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42235 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42238 2001-12-14 Vincent Celier <celier@gnat.com>
42240 * osint.adb(Create_Debug_File): When an object file is specified,
42241 put the .dg file in the same directory as the object file.
42243 2001-12-14 Robert Dewar <dewar@gnat.com>
42245 * osint.adb: Minor reformatting
42247 * lib-xref.adb (Output_Instantiation): New procedure to generate
42248 instantiation references.
42250 * lib-xref.ads: Add documentation of handling of generic references.
42252 * ali.adb (Read_Instantiation_Ref): New procedure to read
42253 instantiation references
42255 * ali.ads: Add spec for storing instantiation references
42257 * bindusg.adb: Minor reformatting
42259 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42261 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42263 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42265 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42269 Add 2001 to copyright date
42270 Add entry for Latin-5 (Cyrillic ISO-8859-5)
42272 2001-12-14 Matt Gingell <gingell@gnat.com>
42274 * adaint.c: mktemp is a macro on Lynx and can not be used as an
42277 2001-12-14 Richard Kenner <kenner@gnat.com>
42279 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42280 if operand is CONSTRUCTOR.
42282 2001-12-14 Ed Schonberg <schonber@gnat.com>
42284 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42285 before emiting check on right-hand side, so that exception information
42288 2001-12-14 Richard Kenner <kenner@gnat.com>
42290 * utils.c (create_var_decl): Throw away initializing expression
42291 if just annotating types and non-constant.
42293 2001-12-14 Vincent Celier <celier@gnat.com>
42295 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42298 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42300 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42302 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42304 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42306 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42308 * ChangeLog: Remove piece of diff output.
42310 2001-12-14 Geert Bosch <bosch@gnat.com>
42312 * config-lang.in: Update copyright notice
42314 * layout.adb: Remove commented out code.
42316 * mdllfile.ads: Update copyright notice. Fix header format.
42318 * sem_case.ads: Likewise.
42320 * sem_ch3.adb: Minor reformatting.
42322 2001-12-12 Geert Bosch <bosch@gnat.com>
42324 * freeze.ads: Update copyright date.
42326 * g-comlin.ads: Minor reformatting.
42328 * gnat-style.texi: Fix typo.
42330 2001-12-12 Geert Bosch <bosch@gnat.com>
42332 * einfo.h: Regenerate.
42334 2001-12-12 Ed Schonberg <schonber@gnat.com>
42336 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42337 on known node types, rather than untyped fields. Further cleanups.
42339 2001-12-12 Robert Dewar <dewar@gnat.com>
42342 (Save_Entity_Descendant): Minor comment update.
42343 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42344 of an N_Attribute_Reference node. As per note below, this does not
42345 eliminate need for Associated_Node in attribute ref nodes.
42346 (Associated_Node): Documentation explicitly mentions attribute
42347 reference nodes, since this field is used in such nodes.
42349 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42351 2001-12-12 Robert Dewar <dewar@gnat.com>
42353 * s-stalib.adb: Add more comments on with statements being needed
42355 * par-ch12.adb: Minor reformatting
42357 * prj-dect.ads: Fix copyright header
42359 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42360 inputs fit in 32 bits, but the result still overflows.
42362 * s-fatgen.ads: Minor comment improvement
42364 2001-12-12 Ed Schonberg <schonber@gnat.com>
42366 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42367 formal derived type, look for an inherited component from the full
42368 view of the parent, if any.
42370 2001-12-12 Robert Dewar <dewar@gnat.com>
42372 * checks.ads (Apply_Alignment_Check): New procedure.
42374 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42375 ensure that the alignment of objects with address clauses is
42376 appropriate, and raise PE if not.
42378 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42379 Exp_Pakd.Known_Aligned_Enough
42381 * mdllfile.ads: Minor reformatting
42383 * mlib-fil.ads: Minor reformatting
42385 2001-12-12 Ed Schonberg <schonber@gnat.com>
42387 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42388 fix to any component reference if enclosing record has non-standard
42391 2001-12-12 Vincent Celier <celier@gnat.com>
42393 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42396 2001-12-12 Ed Schonberg <schonber@gnat.com>
42398 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42401 2001-12-12 Robert Dewar <dewar@gnat.com>
42403 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42405 2001-12-12 Emmanuel Briot <briot@gnat.com>
42407 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42408 and it adds dependencies to system.io.
42410 2001-12-12 Pascal Obry <obry@gnat.com>
42412 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42415 2001-12-11 Ed Schonberg <schonber@gnat.com>
42417 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42418 that is the parent of other generics, the instance body replaces the
42419 instance node. Retrieve the instance of the spec, which is the one
42420 that is visible in clients and within the body.
42422 2001-12-11 Vincent Celier <celier@gnat.com>
42424 * gnatmain.adb: Initial version.
42426 * gnatmain.ads: Initial version.
42428 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42430 * snames.adb: Updated to match snames.ads.
42432 * snames.ads: Added Gnatstub.
42434 2001-12-11 Vincent Celier <celier@gnat.com>
42436 * prj-attr.adb (Initialization_Data): Change name from
42437 Initialisation_Data.
42439 2001-12-11 Emmanuel Briot <briot@gnat.com>
42441 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42442 + and * applied to backslashed expressions like \r.
42444 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
42446 * g-os_lib.ads: String_List type added, Argument_List type is now
42447 subtype of String_List.
42449 2001-12-11 Robert Dewar <dewar@gnat.com>
42451 * g-os_lib.ads: Change copyright to FSF
42452 Add comments for String_List type
42454 2001-12-11 Vincent Celier <celier@gnat.com>
42456 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42457 string to the buffer).
42459 2001-12-11 Ed Schonberg <schonber@gnat.com>
42461 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42464 * sem_attr.adb: Simplify previous fix for Address.
42465 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42466 to avoid anomalies where the bound of the type appears to raise
42469 2001-12-11 Robert Dewar <dewar@gnat.com>
42471 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42474 2001-12-11 Ed Schonber <schonber@gnat.com>
42476 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42477 renamed unit before checking for recursive instantiations.
42479 2001-12-11 Emmanuel Briot <briot@gnat.com>
42481 * prj.ads: Add comments for some of the fields.
42483 2001-12-11 Robert Dewar <dewar@gnat.com>
42485 * lib-xref.adb (Output_Refs): Don't output type references outside
42486 the main unit if they are not otherwise referenced.
42488 2001-12-11 Ed Schonberg <schonber@gnat.com>
42490 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42491 code and diagnose additional illegal uses
42493 * sem_util.adb (Is_Object_Reference): An indexed component is an
42494 object only if the prefix is.
42496 2001-12-11 Vincent Celier <celier@gnat.com>
42498 * g-diopit.adb: Initial version.
42500 * g-diopit.ads: Initial version.
42503 (Expand_Path): Avoid use of Unbounded_String
42504 (Find, Wildcard_Iterator): Moved to child package Iteration
42506 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42508 2001-12-11 Robert Dewar <dewar@gnat.com>
42510 * sem_attr.adb: Minor reformatting
42512 2001-12-11 Ed Schonberg <schonber@gnat.com>
42514 * sem_ch3.adb: Clarify some ???.
42516 2001-12-11 Robert Dewar <dewar@gnat.com>
42518 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42519 Exp_Pakd.Known_Aligned_Enough
42521 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42522 version is moved to Exp_Ch13.
42524 2001-12-11 Robert Dewar <dewar@gnat.com>
42526 * einfo.ads: Minor reformatting
42528 * exp_ch5.adb: Add comment for previous.change
42530 * ali.adb: New interface for extended typeref stuff.
42532 * ali.ads: New interface for typeref stuff.
42534 * checks.adb (Apply_Alignment_Check): New procedure.
42536 * debug.adb: Add -gnatdM for modified ALI output
42538 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42540 * lib-xref.adb: Extend generation of <..> notation to cover
42541 subtype/object types. Note that this is a complete rewrite,
42542 getting rid of the very nasty quadratic algorithm previously
42543 used for derived type output.
42545 * lib-xref.ads: Extend description of <..> notation to cover
42546 subtype/object types. Uses {..} for these other cases.
42547 Also use (..) for pointer types.
42549 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42551 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
42552 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42554 2001-12-11 Vincent Celier <celier@gnat.com>
42557 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42558 Changed /BIND_ONLY to /ACTIONS=BIND
42559 Changed /LINK_ONLY to /ACTIONS=LINK
42561 2001-12-11 Ed Schonberg <schonber@gnat.com>
42563 * sem_ch8.adb (Find_Selected_Component): improved search for a
42564 candidate package in case of error.
42566 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42567 chain back on scope stack before reinstalling use clauses.
42569 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42570 is enabled, do not kill the code for the condition, to preserve
42573 2001-12-11 Robert Dewar <dewar@gnat.com>
42575 * checks.adb (Insert_Valid_Check): Apply validity check to expression
42576 of conversion, not to result of conversion.
42578 2001-12-11 Ed Schonberg <schonber@gnat.com>
42580 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42581 before freezing parent. If the declarations are mutually recursive,
42582 an access to the current record type may be frozen before the
42583 derivation is complete.
42585 2001-12-05 Vincent Celier <celier@gnat.com>
42587 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42588 -c /COMPILE_ONLY, -l /LINK_ONLY
42591 (Bind_Only): New Flag
42592 (Link_Only): New flag
42594 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42597 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42600 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42601 (Gnatmake): Set the step flags. Only perform a step if the
42602 corresponding step flag is True.
42603 (Scan_Make_Arg): Reset the bind and link step flags when -u
42604 or -gnatc has been specified.
42606 2001-12-05 Ed Schonberg <schonber@gnat.com>
42608 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42609 get bounds from right operand.
42611 * sem_eval.adb: Minor reformatting
42613 * exp_util.adb (Make_Literal_Range): use bound of literal rather
42614 than Index'First, its lower bound may be different from 1.
42616 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42619 2001-12-05 Vincent Celier <celier@gnat.com>
42621 * prj-nmsc.adb Minor reformatting
42623 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42624 set and libraries are not supported.
42626 2001-12-05 Ed Schonberg <schonber@gnat.com>
42628 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42629 private view explicitly, so the back-end can treat as a global
42632 2001-12-05 Ed Schonberg <schonber@gnat.com>
42634 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
42635 unit, always replace instance node with new body, for ASIS use.
42637 2001-12-05 Vincent Celier <celier@gnat.com>
42639 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
42640 libraries are not supported and both attributes Library_Name and
42641 Library_Dir are specified.
42643 * prj-proc.adb (Expression): Set location of Result to location of
42646 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
42647 (prj-nmsc is now importing MLib.Tgt)
42649 * prj-proc.adb: Put the change indicated above that was forgotten.
42651 2001-12-05 Robert Dewar <dewar@gnat.com>
42653 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
42655 2001-12-05 Ed Schonberg <schonber@gnat.com>
42657 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
42658 constraint, introduce explicit subtype declaration and derive from it.
42660 * sem_ch3.adb: Minor reformatting
42662 2001-12-05 Robert Dewar <dewar@gnat.com>
42664 * checks.adb (Determine_Range): Increase cache size for checks.
42667 * exp_ch6.adb: Minor reformatting
42668 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
42669 a parameter whose root type is System.Address, since treating such
42670 subprograms as pure in the code generator is almost surely a mistake
42671 that will lead to unexpected results.
42673 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
42674 change handling of conversions.
42676 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
42678 2001-12-05 Ed Schonberg <schonber@gnat.com>
42680 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
42681 aggregate with static wrong size, attach generated Raise node to
42684 2001-12-05 Robert Dewar <dewar@gnat.com>
42686 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
42687 Fixes compilation abandoned bomb in B24009B.
42689 2001-12-05 Ed Schonberg <schonber@gnat.com>
42692 Document use of Associated_Node on Selected_Components.
42693 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
42694 to clarify use of untyped descendant fields.
42696 2001-12-05 Robert Dewar <dewar@gnat.com>
42698 * prj-dect.ads: Add ??? comment
42699 Add 2001 to copyright notice (was not done in after all)
42701 * prj-part.adb: Minor reformatting. Reword one awkward error message.
42703 * prj.ads: Minor reformatting throughout, and add some ??? comments
42705 * snames.ads: Minor reformatting
42707 2001-12-05 Geert Bosch <bosch@gnat.com>
42709 * snames.adb: Autoupdate
42711 2001-12-05 Vincent Celier <celier@gnat.com>
42713 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
42715 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
42717 * prj-env.adb: Minor comment changes (modifying -> extends).
42719 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
42721 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
42724 * prj.adb (Initialize): Change Modifying to Extends.
42726 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
42728 * prj.ads: Minor comment change (Modifying -> extending).
42730 * snames.ads: Change modifying to extends.
42732 2001-12-05 Robert Dewar <dewar@gnat.com>
42734 * sem_warn.adb: Remove stuff for conditionals, we are not going to
42737 * sem_warn.ads: Remove stuff for conditionals, we are not going to
42738 do this after all. Add 2001 to copyright notice
42740 2001-12-04 Geert Bosch <bosch@gnat.com>
42742 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
42744 2001-12-04 Robert Dewar <dewar@gnat.com>
42746 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
42747 location if we already have errors. Stops some cases of cascaded
42750 * errout.adb: Improve comment.
42752 2001-12-04 Robert Dewar <dewar@gnat.com>
42755 (Analyze_Formal_Type_Definition): Defend against Error.
42756 (Analyze_Formal_Subprogram): Defend against Error.
42758 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
42759 remove following semicolon if present. Removes cascaded error.
42761 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
42764 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
42765 exceptions equals 0.
42766 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
42767 Fixes PIWG E tests (which have to be run with -gnatL).
42769 2001-12-04 Robert Dewar <dewar@gnat.com>
42771 * einfo.ads: Minor reformatting
42773 2001-12-04 Ed Schonberg <schonber@gnat.com>
42775 * einfo.ads: Block_Node points to the identifier of the block, not to
42776 the block node itself, to preserve the link when the block is
42777 rewritten, e.g. within an if-statement with a static condition.
42779 * inline.adb (Cleanup_Scopes): recover block statement from block
42780 entity using new meaning of Block_Node.
42782 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
42783 identifier of block node, rather than to node itself.
42785 2001-12-04 Gary Dismukes <dismukes@gnat.com>
42788 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
42789 (Discrimify): Go back to setting the Etypes of the selected component
42790 because the Vname component does not exist at this point and will
42791 fail name resolution. Also set Analyzed.
42792 Remove with and use of Sem_Res.
42794 2001-12-04 Arnaud Charlet <charlet@gnat.com>
42796 * Makefile.in: (HIE_SOURCES): add s-fat*.
42798 2001-12-04 Robert Dewar <dewar@gnat.com>
42801 (Compile_Time_Known_Attribute): New procedure.
42802 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
42803 proper range check.
42805 2001-12-04 Ed Schonberg <schonber@gnat.com>
42807 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
42808 processing discriminants to diagnose illegal default values.
42810 2001-12-04 Ed Schonberg <schonber@gnat.com>
42812 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
42813 access discriminant within a type extension that constrains its
42814 parent discriminants.
42816 2001-12-04 Ed Schonberg <schonber@gnat.com>
42818 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
42819 is malformed, use instance of Any_Id to allow analysis to proceed.
42821 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
42822 type definition is illegal.
42823 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
42826 2001-12-04 Ed Schonberg <schonber@gnat.com>
42828 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
42831 2001-12-04 Robert Dewar <dewar@gnat.com>
42833 * errout.adb: Minor reformatting
42835 2001-12-04 Robert Dewar <dewar@gnat.com>
42837 * exp_util.adb: Minor reformatting from last change
42839 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
42840 which is a rewriting of an expression, traverse the original
42841 expression to remove warnings that may have been posted on it.
42843 2001-12-04 Ed Schonberg <schonber@gnat.com>
42845 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
42846 record that has other packed components.
42848 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
42850 * adaint.c: Minor cleanups.
42852 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
42854 * adaint.c: Do not use utime.h on vxworks.
42856 2001-12-04 Arnaud Charlet <charlet@gnat.com>
42858 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
42859 more confusion than it solves.
42861 2001-12-04 Geert bosch <bosch@gnat.com>
42863 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
42865 2001-12-04 Geert Bosch <bosch@gnat.com>
42867 * Makefile.in (update-sources): New target.
42868 For use by gcc_release script.
42870 2001-12-04 Ed Schonberg <schonber@gnat.com>
42872 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
42873 a configuration pragma, it is now legal wherever a pragma can appear.
42875 2001-12-04 Zack Weinberg <zack@codesourcery.com>
42877 * Makefile.in: Don't set ALL. Delete @cross_defines@,
42878 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
42879 is now @CROSS@ -DIN_GCC; update comment.
42881 2001-12-04 Robert Dewar <dewar@gnat.com>
42883 * einfo.adb (Has_Pragma_Pure_Function): New flag.
42884 Fix problem that stopped ceinfo from working
42886 * einfo.ads (Has_Pragma_Pure_Function): New flag.
42888 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
42890 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
42893 (File_Time_Stamp): New procedure.
42894 (Preserve_Mode): New boolean.
42895 (Write_Unit): Pass time stamp.
42896 Implement -p switch (preserve time stamps).
42898 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
42900 * gnatchop.adb: Do usage info for -p switch
42902 * adaint.h (__gnat_set_file_time_name): New function
42904 * adaint.c (__gnat_set_file_time_name): Implement
42906 * adaint.h: Fix typo
42908 2001-12-03 Robert Dewar <dewar@gnat.com>
42910 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
42911 have Associated_Node.
42913 2001-12-03 Robert Dewar <dewar@gnat.com>
42915 * prj-proc.adb: Minor reformatting
42917 * make.adb: Minor reformatting
42919 2001-12-03 Geert Bosch <bosch@gnat.com>
42921 * make.adb: Minor reformatting.
42923 2001-12-03 Robert Dewar <dewar@gnat.com>
42925 * sem_ch12.adb: Minor reformatting
42927 2001-12-03 Ed Schonberg <schonber@gnat.com>
42929 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
42930 push Standard on the stack before analyzing the instance body,
42931 in order to have a clean visibility environment.
42933 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
42935 2001-12-03 Ed Schonberg <schonber@gnat.com>
42937 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
42938 instantiation of a body that contains an inlined body.
42940 2001-12-03 Ed Schonberg <schonber@gnat.com>
42943 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
42944 to prevent freezing within formal packages.
42945 (Freeze_Subprogram_Body): If body comes from another instance that
42946 appeared before its own body, place freeze node at end of current
42947 declarative part, to prevent a back-end crash.
42948 (Inline_Instance_Body): Handle properly a package instance within
42949 a subprogram instance that is a child unit.
42951 2001-12-01 Graham Stott <grahams@redhat.com>
42953 * Makefile.in (misc.o): Add missing $(srcdir) prefix
42954 and add optabs.h dependency.
42956 * misc.c: Include optabs.h
42957 (gnat_tree_code_type): Make static and const.
42958 (gnat_tree_code_length): Likewise.
42959 (gnat_tree_code_name): Likewise.
42960 (update_setjmp_buf): Obtain operands mode from insn_data.
42962 2001-11-29 Richard Henderson <rth@redhat.com>
42964 * init.c: Remove obsolete dwarf2 frame.h section.
42966 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
42968 * Make-lang.in (ada.generated-manpages): New dummy target.
42970 2001-11-29 Ed Schonberg <schonber@gnat.com>
42972 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
42973 into Command, an array conversion is illegal here. Uncovered by
42976 2001-11-28 Geert Bosch <bosch@gnat.com>
42978 * init.c: Minor whitespace changes.
42980 2001-11-28 Doug Rupp <rupp@gnat.com>
42982 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
42985 2001-11-28 Zack Weinberg <zack@codesourcery.com>
42987 * misc.c (gnat_expand_constant): Move declaration above
42988 definition of lang_hooks.
42989 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
42990 (gnat_init): lang_expand_constant no longer exists.
42992 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
42993 always have vprintf.
42994 (gnat_init): Always call set_internal_error_function.
42996 2001-11-27 Andreas Jaeger <aj@suse.de>
42998 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
43000 2001-11-27 Laurent Guerby <guerby@acm.org>
43002 * Makefile.in: Regenerate Ada dependencies.
43004 2001-11-26 Richard Henderson <rth@redhat.com>
43006 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43007 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43008 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43010 2001-11-25 Laurent Guerby <guerby@acm.org>
43012 * sysdep.c (rts_get_*): Fix style.
43014 2001-11-19 Laurent Guerby <guerby@acm.org>
43016 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43017 since it is of no apparent use and cause warnings.
43019 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
43021 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43023 (gnat_init): Don't return NULL.
43024 (finish_parse): Remove.
43026 2001-11-17 Laurent Guerby <guerby@acm.org>
43028 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43029 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43030 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43031 * lang-spec.h: Add missing struct field to silence warnings.
43032 * sysdep.c (rts_get_*): Provide K&R prototype.
43033 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43034 * traceback.c (Unlock_Task, Lock_Task): Likewise.
43035 * tracebak.c (__gnat_backtrace): Remove unused variable.
43036 * utils.c (end_subprog_body): Move to K&R style.
43038 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
43040 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43042 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
43044 * misc.c (gnat_init): Change prototype. Include the
43045 functionality of the old init_parse and init_decl_processing.
43046 (gnat_init_decl_processing): New prototype.
43047 (init_parse): Remove.
43048 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43050 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43052 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43053 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43054 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43055 set_yydebug): Remove.
43057 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43059 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43060 (struct lang_hooks): Constify.
43061 (language_string, lang_identify): Remove.
43062 * utils.c (init_decl_processing): Update.
43064 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
43066 * misc.c: Include langhooks-def.h.
43067 * Makefile.in: Update.
43069 2001-10-30 Robert Dewar <dewar@gnat.com>
43072 (Check_Identifier): Rewrite circuit to be compatible with use of letters
43073 in the upper half of ASCII.
43074 (Check_Identifier): Minor reformatting
43076 2001-10-30 Geert Bosch <bosch@gnat.com>
43078 * (Associated_Node, Set_Associated_Node): Do not check for
43081 2001-10-30 Robert Dewar <dewar@gnat.com>
43083 * a-reatim.ads: Minor reformatting
43085 2001-10-30 Robert Dewar <dewar@gnat.com>
43087 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
43088 undocumented declarations.
43090 2001-10-30 Pascal Obry <obry@gnat.com>
43092 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
43093 to the binder and linker.
43096 * mdll.ads: Fix layout. Update copyright notice.
43098 * mdll.adb: Fix layout. Update copyright notice.
43100 2001-10-30 Robert Dewar <dewar@gnat.com>
43102 * usage.adb: Minor fix to output for -gnaty.
43104 2001-10-30 Ed Schonberg <schonber@gnat.com>
43106 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43107 to accommodate all its possible values.
43109 * a-reatim.adb (Split): Special-case handling of Time_Span_First
43110 and of small absolute values of T.
43112 2001-10-30 Richard Kenner <kenner@gnat.com>
43114 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43115 set_mem_attributes since not needed and wrong if RESULT if a REG;
43116 fixes ACATS failures.
43118 2001-10-30 Geert Bosch <bosch@gnat.com>
43120 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43121 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43123 2001-10-30 Robert Dewar <dewar@gnat.com>
43125 * bindusg.adb: Undocument -f switch.
43127 * gnatcmd.adb: Remove /FULL_ELABORATION.
43129 * opt.ads (Force_RM_Elaboration_Order): Document that this is
43132 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
43134 * gnatbind.adb: Minor update of warning msg.
43136 2001-10-30 Vincent Celier <celier@gnat.com>
43138 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
43139 for project file switches (-P (/PROJECT_FILE=),
43140 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
43143 2001-10-30 Geert Bosch <bosch@gnat.com>
43145 * decl.c: Minor whitespace fixes.
43147 2001-10-30 Richard Kenner <kenner@gnat.com>
43149 * utils2.c (build_allocator): Test for SIZE overflow in array case too
43151 2001-10-30 Geert Bosch <bosch@gnat.com>
43153 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
43154 Found due to GCC 3.0 warning of using uninitialized value.
43157 (Get_Max_Size): Use variant record for tracking value/expression.
43158 Makes logic clearer and prevents warnings for uninitialized variables.
43159 (Layout_Array_Type): Use variant record for tracking value/expression.
43160 Makes logic clearer and prevents warnings for uninitialized variables.
43162 2001-10-30 Robert Dewar <dewar@gnat.com>
43164 * lib.adb: Minor reformatting
43166 * s-taprop.ads: Minor reformatting
43168 2001-10-29 Laurent Guerby <guerby@acm.org>
43171 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43173 (_gnat_error_handler): Make MSG const.
43175 2001-10-29 Richard Kenner <kenner@gnat.com>
43177 * sysdep.c: Fix localtime_r problem on LynxOS.
43178 Also remove #elif to avoid warnings.
43180 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
43183 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43185 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
43187 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43188 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43189 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43190 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43191 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43192 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43193 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43194 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43195 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43196 types.ads, urealp.adb: Fix spelling errors.
43198 2001-10-27 Laurent Guerby <guerby@acm.org>
43200 * trans.c (gigi): Fix non determinism leading to bootstrap
43201 comparison failures for debugging information.
43203 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
43205 * gnat_rm.texi: Use @./@: where appropriate.
43207 2001-10-26 Robert Dewar <dewar@gnat.com>
43209 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43211 2001-10-26 Richard Kenner <kenner@gnat.com>
43213 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43215 2001-10-26 Richard Kenner <kenner@gnat.com>
43217 * decl.c (validate_size): Modify message for bad size to avoid
43218 implication that compiler is modifying the size.
43220 2001-10-26 Robert Dewar <dewar@gnat.com>
43222 * prj-util.adb: Minor reformatting. Fix bad header format.
43224 2001-10-26 Robert Dewar <dewar@gnat.com>
43226 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43228 * sinfo.ads: Clarify use of Associated_Node (documentation only).
43230 * sem_ch12.adb: Change Node4 to Associated_Node. Change
43231 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43232 much more narrowly in places where needed. These are cleanups.
43234 2001-10-26 Joel Brobecker <brobecke@gnat.com>
43236 * 5zosinte.ads (null_pthread): new constant.
43239 (Initialize_TCB): Initialize thread ID to null, to be able to verify
43240 later that this field has been set.
43241 (Finalize_TCB): ditto.
43242 (Suspend_Task): Verify that the thread ID is not null before using it.
43243 (Resume_Task): ditto.
43246 (Resume_All_Tasks): Lock the tasks list before using it.
43247 (Suspend_All_Tasks): ditto.
43249 2001-10-26 Richard Kenner <kenner@gnat.com>
43251 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43252 Make constant variant of designated type for Is_Access_Constant.
43253 Call update_pointer_to with main variant.
43255 * trans.c (process_freeze_entity, process_type):
43256 Call update_pointer_to on main variant.
43258 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43259 If main variant, update all other variants.
43261 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43264 2001-10-26 Robert Dewar <dewar@gnat.com>
43266 * prj-util.adb: Minor reformatting
43268 2001-10-26 Robert Dewar <dewar@gnat.com>
43270 * prj-util.adb: Minor reformatting
43272 2001-10-26 Robert Dewar <dewar@gnat.com>
43274 * prj-attr.adb: Minor reformatting throughout
43276 2001-10-26 Robert Dewar <dewar@gnat.com>
43278 * prj-attr.ads: Minor reformatting
43279 Add ??? comment (this whole spec has almost no comments)
43281 2001-10-26 Vincent Celier <celier@gnat.com>
43283 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43284 ("//") that precede the drive letter on Interix.
43286 2001-10-26 Geert Bosch <bosch@gnat.com>
43288 * gnat_rm.texi: Add GNAT Reference Manual.
43290 2001-10-25 Robert Dewar <dewar@gnat.com>
43292 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43293 is Error. Similar change for other renaming cases.
43295 2001-10-25 Robert Dewar <dewar@gnat.com>
43297 * s-atacco.ads: Add pragma Inline_Always for functions.
43298 Fix header format. Add copyright 2001
43300 2001-10-25 Ed Schonberg <schonber@gnat.com>
43302 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43303 return Error rather than Empty so that analysis can proceed.
43305 2001-10-25 Ed Schonberg <schonber@gnat.com>
43307 * sem_util.adb (Enter_Name): better handling of cascaded error
43308 messages when a unit appears in its own context.
43310 2001-10-25 Ed Schonberg <schonber@gnat.com>
43312 * sem_util.adb (Defining_Entity): in case of error, attach created
43313 entity to specification, so that semantic analysis can proceed.
43315 2001-10-25 Robert Dewar <dewar@gnat.com>
43318 (Defining_Entity): Deal with Error.
43319 (Process_End_Label): Deal with bad end label for.
43321 2001-10-25 Ed Schonberg <schonber@gnat.com>
43323 * sem_elab.adb (Check_A_Call): refine message when call is in an
43324 instance but callee is not declared in the generic unit.
43326 2001-10-25 Ed Schonberg <schonber@gnat.com>
43328 * sem_elab.adb (Check_A_Call): check for renaming before finding the
43329 enclosing unit, which may already be different from the calling unit.
43331 2001-10-25 Geert Bosch <bosch@gnat.com>
43333 * 4gintnam.ads: fix header format.
43335 2001-10-25 Ed Schonberg <schonber@gnat.com>
43337 * sem_res.adb (Resolve_Call): if the call is actually an indexing
43338 operation on the result of a parameterless call, perform elaboration
43339 check after the node has been properly rewritten.
43341 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43342 inlined within the generic tree, the defining identifier is not a
43345 2001-10-25 Ed Schonberg <schonber@gnat.com>
43347 * sem_res.adb (Resolve): special-case resolution of Null in an
43348 instance or an inlined body to avoid view conflicts.
43350 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43351 compatibility by retrieving the access type of the generic copy.
43353 2001-10-25 Robert Dewar <dewar@gnat.com>
43356 (Analyze_Number_Declaration): Handle error expression.
43357 (Signed_Integer_Type_Declaration): Handle error bound.
43358 (Analyze_Subtype_Indication): Handle error range.
43360 * sem_util.adb (Get_Index_Bounds): Check for Error.
43362 2001-10-25 Robert Dewar <dewar@gnat.com>
43364 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43365 in no run time mode.
43367 2001-10-25 Pascal Obry <obry@gnat.com>
43369 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43370 mode case for ALLOC case.
43372 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43373 all platforms. Improvement of last change.
43375 2001-10-25 Robert Dewar <dewar@gnat.com>
43377 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43379 2001-10-25 Geert Bosch <bosch@gnat.com>
43381 * osint.adb (Is_Relative): Remove duplicate.
43383 2001-10-25 Pascal Obry <obry@gnat.com>
43385 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43386 pathnames in UNIX and DOS style with drive letter.
43387 (Is_Relative): new routine.
43389 * osint.adb: Minor reformatting
43391 * osint.adb (Is_Relative): implementation using
43392 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43394 2001-10-25 Pascal Obry <obry@gnat.com>
43396 * g-dirope.adb (Basename): correctly compute offset between the
43397 original Path and the translated one.
43399 * g-dirope.adb: (Base_Name): add some comments.
43401 2001-10-25 Robert Dewar <dewar@gnat.com>
43403 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43404 in HIE mode, avoids compilation abandoned message
43406 * exp_imgv.adb: Correct typo in previous change
43408 * exp_imgv.adb: Correct typo in previous change (not my day!)
43410 2001-10-25 Robert Dewar <dewar@gnat.com>
43412 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43414 2001-10-25 Pascal Obry <obry@gnat.com>
43416 * g-awk.ads: Move all pragma inlines next to the routine
43417 declarations. This is more uniform with other GNAT spec.
43419 2001-10-22 Geert Bosch <bosch@gnat.com>
43421 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43423 2001-10-19 Geert Bosch <bosch@gnat.com>
43425 * Makefile.in (tools, gnattools): Remove gnatmem.
43427 2001-10-17 Richard Henderson <rth@redhat.com>
43429 * Makefile.in (misc.o): Depend on langhooks.h.
43430 * misc.c: Include it.
43431 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43432 (LANG_HOOKS_DECODE_OPTION): New.
43433 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43435 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
43437 * trans.c (tree_transform): Adjust to recent change in
43438 expand_asm_operands to implement named asm operands.
43440 2001-10-11 Ed Schonberg <schonber@gnat.com>
43442 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43443 renaming of discriminant for mutable record type.
43445 2001-10-11 Robert Dewar <dewar@gnat.com>
43447 * validsw.adb: Properly save -gnatVn status.
43449 2001-10-11 Robert Dewar <dewar@gnat.com>
43451 * usage.adb: Add lines for V switch.
43453 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43454 (/VALIDITY_CHECKING).
43456 2001-10-11 Ed Schonberg <schonber@gnat.com>
43458 * sem_type.adb (Add_One_Interp): an operator for a type declared in
43459 an extension of System is known to be visible.
43461 2001-10-11 Ed Schonberg <schonber@gnat.com>
43463 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43464 properly. Fixes regression on ACATS C34005G.
43466 2001-10-11 Robert Dewar <dewar@gnat.com>
43468 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43469 loop in generic instance, since this is likely not very useful.
43471 2001-10-11 Robert Dewar <dewar@gnat.com>
43473 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43474 the error message for high integrity mode.
43476 * rtsfind.adb (RTE): Give message if we try to find an entity that
43477 is not available in high integrity mode.
43480 (OK_To_Use_In_HIE_Mode): New array.
43481 (RTE): May return Empty in high integrity mode.
43483 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43484 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43486 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43487 unit if not inlined always and in no runtime mode. Fixes problem
43488 caused by new Rtsfind changes.
43490 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43493 * rtsfind.adb (RTE): Make sure we do not try to load unit after
43494 giving message for entity not available in high integrity mode.
43496 2001-10-11 Pascal Obry <obry@gnat.com>
43498 * impunit.adb: Add GNAT.CRC32.
43500 2001-10-11 Ed Schonberg <schonber@gnat.com>
43502 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43503 properly the case where one universal operand in a non-static
43504 exponentiation of a real literal.
43506 2001-10-11 Ed Schonberg <schonber@gnat.com>
43508 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43509 clause, return the gobal finalization list, for lack of anthing else.
43511 2001-10-11 Ed Schonberg <schonber@gnat.com>
43513 * exp_ch7.adb (Make_Transient_Block): if statement is within
43514 exception handler, always use new transient scope to place Clean
43517 2001-10-11 Pascal Obry <obry@gnat.com>
43520 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43521 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43522 (GNATLS_RTL_OBJS): add g-crc32.o
43523 (GNATMAKE_RTL_OBJS): add g-crc32.o
43526 (CRC_Match): new function.
43527 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43528 instead of the previous simple checksum algorithm.
43529 (Time_Stamp_Mismatch): use CRC_Match for comparison.
43530 (Set_Source_Table): idem.
43533 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43534 instead of simple checksum.
43535 (CRC_Match): new function.
43536 (CRC_Error): new constant.
43538 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43539 a CRC now and not a simple checksum. A CRC uses lower-case hex
43540 letters, fixes ambiguity in parsing.
43542 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43543 is what this variable will store.
43545 * bcheck.adb: Change reference to chechsum in comments by CRC.
43546 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43547 rename All_Checksum_Match to All_CRC_Match. Change due to API
43548 renaming since now GNAT does not use a simple checksum but a
43549 CRC using GNAT.CRC32.
43551 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43552 now and not anymore a simple checksum.
43554 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43557 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43560 (Restore_Scan_State): rename Checksum to CRC.
43561 (Save_Scan_State): idem.
43565 (Checksum): rename to CRC.
43566 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43568 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43569 GNAT.CRC32). Update copyright notice.
43571 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43572 GNAT.CRC32). Update copyright notice.
43575 (Accumulate_Checksum): removed.
43576 (Update): new procedure. Add a wide-character into the CRC.
43579 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43580 (Load_File): fix initialization of S (change Source_Checksum to
43583 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43584 Source_CRC in S initialization.
43586 * sinput.adb (Source_Checksum): renamed to Source_CRC.
43588 * sinput.ads (Source_Checksum): renamed to Source_CRC.
43589 Update comments for the CRC.
43591 * types.adb (Hex): Use lowercase for the letter part.
43593 * types.ads (Get_Hex_String): Returns the hexadecimal representation
43594 for a word. This is currently used only for CRC. In previous version,
43595 the checksum was using a representation with all letter being
43596 upper-case. With the new implementation (using CRC) we do not remove
43597 the 32th bit of the CRC, so we can have an upper-case starting letter
43598 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43599 It is ambigous since the CRC was optional and could be followed by
43600 options like EB, EE. So now this routines uses lower-case letter for
43601 the hexadecimal representation. Strange enough only lower case letters
43602 where checked in Scan_ALI (even if this was not a possible case).
43604 * gnatvsn.ads (Library_Version): changed to 3.15a.
43606 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43609 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43612 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43613 Add 2001 to copyright notice
43614 (Accumulate_Checksum): Modify to use System.CRC32.
43616 * ali-util.ads: Redo changes of previous revision to continue to use
43617 the word Checksum. Add 2001 to copyright notice.
43619 * ali.adb: Undo some of previous changes, not needed.
43620 Keep the change for lower case letters in the checksum.
43622 * ali.ads: Undo previous change not needed.
43624 * bcheck.adb: Undo most of previous change, not needed.
43625 But do use Checksums_Match for checksum comparison.
43627 * gnatls.adb: Undo most of previous change, not needed.
43628 But do use Checksums_Match for comparing checksums.
43630 * lib-load.adb: Undo previous change, not needed.
43632 * lib-writ.adb: Undo previous change, not needed.
43634 * lib-writ.ads: Document that checksums use lower case,
43635 not upper case letters.
43637 * scans.adb: Undo previous change, not needed
43639 * scans.ads: Undo previous change, not needed.
43641 * scn-nlit.adb: Undo previous changes, not needed.
43643 * scn-slit.adb: Undo previous change, not needed. Fix header format.
43646 (Accumulate_Checksum): Use System.CRC32.
43647 (Initialize_Checksum): New procedure.
43648 Remove other changes of previous revision.
43650 * sinput-p.adb: Undo previous change, not needed.
43652 * sinput.adb: Undo previous change, not needed.
43654 * sinput-l.adb: Undo previous change, not needed.
43656 * sinput.ads: Undo previous change, not needed. Keep only comment
43657 on new checksum algorithm
43659 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
43660 Also remove a-tags and a-stream from GNAT sources.
43662 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
43664 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
43666 2001-10-11 Geert Bosch <bosch@gnat.com>
43668 * einfo.h: Regenerate.
43670 * nmake.ads: Regenerate.
43672 * nmake.adb: Regenerate.
43674 * sinfo.h: Regenerate.
43676 * treeprs.adb: Regenerate.
43678 2001-10-10 Geert Bosch <bosch@gnat.com>
43680 * gnat-style.texi: New file describing coding guidelines for Ada.
43682 2001-10-10 Ed Schonberg <schonber@gnat.com>
43684 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
43687 2001-10-10 Geert Bosch <bosch@gnat.com>
43689 * snames.ads: Add new names for project facility.
43691 * snames.adb: Update to reflect snames.ads changes.
43693 * snames.h: Update to reflect snames.ads changes.
43695 2001-10-10 Vincent Celier <celier@gnat.com>
43698 (Add_Switches): reflect the changes for the switches attributes
43699 Default_Switches indexed by the programming language,
43700 Switches indexed by the file name.
43701 (Collect_Arguments_And_Compile): Idem.
43702 Reflect the attribute name changes.
43705 (Initialisation_Data): Change the names of some packages and
43707 (Initialize): process case insensitive associative arrays.
43710 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
43713 (Parse_Attribute_Declaration): For case insensitive associative
43714 arrays, set the index string to lower case.
43717 Reflect the changes of the project attributes.
43720 Replace Check_Naming_Scheme by Ada_Check and
43721 Language_Independent_Check.
43724 Replaced Check_Naming_Scheme by 2 procedures:
43725 Ada_Check and Language_Independent_Check.
43728 (Process_Declarative_Items): For case-insensitive associative
43729 arrays, set the index string to lower case.
43730 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
43731 Prj.Nmsc.Check_Naming_Scheme.
43734 (Case_Insensitive): New function
43735 (Set_Case_Insensitive): New procedure
43738 (Case_Insensitive): New function
43739 (Set_Case_Insensitive): New procedure
43740 (Project_Node_Record): New flag Case_Insensitive.
43743 (Value_Of): new function to get the string value of a single
43744 string variable or attribute.
43747 (Value_Of): new function to get the string value of a single
43748 string variable or attribute.
43751 (Ada_Default_Spec_Suffix): New function
43752 (Ada_Default_Impl_Suffix): New function
43753 Change definitions of several constants to reflect
43754 new components of record types.
43757 (Naming_Data): Change several components to reflect new
43758 elements of naming schemes.
43759 (Project_Data): New flags Sources_Present and
43760 Language_Independent_Checked.
43761 (Ada_Default_Spec_Suffix): New function.
43762 (Ada_Default_Impl_Suffix): New function.
43765 Modification of predefined names for project manager: added
43766 Implementation, Specification_Exceptions, Implementation_Exceptions,
43767 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
43768 Default_Switches, _Languages, Builder, Cross_Reference,
43769 Finder. Removed Body_Part, Specification_Append, Body_Append,
43770 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
43773 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
43776 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
43777 not that it is Nil_Variable_Value.
43779 * prj.ads: Add ??? for uncommented declarations
43781 2001-10-10 Ed Schonberg <schonber@gnat.com>
43783 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
43784 constant, do not indicate possible modification, so that gigi can
43785 treat it as a bona fide constant.
43787 2001-10-10 Robert Dewar <dewar@gnat.com>
43789 * sem_prag.adb: Add processing for pragma External.
43791 * snames.ads: Add entry for pragma External.
43793 * par-prag.adb: Add pragma External.
43795 * snames.adb: Updated to match snames.ads.
43797 2001-10-10 Ed Schonberg <schonber@gnat.com>
43799 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
43800 a dynamic task if the allocator appears in an indexed assignment
43801 or selected component assignment.
43803 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
43804 For a dynamic task in an assignment statement, use target of
43805 assignment to generate meaningful name.
43807 2001-10-10 Ed Schonberg <schonber@gnat.com>
43809 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
43812 * einfo.ads: Body_Entity is also defined for generic package.
43813 Documentation change only
43815 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
43816 others_choice for a discriminated component initialization,
43817 convert discriminant references into the corresponding discriminals.
43819 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
43820 only if original type is private and expression has to be wrapped
43824 (Apply_Constraint_Check): Do not perform length check
43825 if expression is an aggregate with only an others_choice.
43826 (Length_N_Cond): two references to the same in_parameter
43827 (typically the discriminal in an init_proc) denote the same value.
43828 Two useful optimization uncovered by bugfixes above.
43830 2001-10-10 Robert Dewar <dewar@gnat.com>
43832 * xeinfo.adb: Change int to char in translation of enumeration types.
43833 This fixes a problem in the C representation of component alignment.
43834 Add 2001 to copyright notice
43836 2001-10-10 Richard Kenner <kenner@gnat.com>
43838 * decl.c: (validate_size): Do check size of object of integral type
43839 if it is a packed array type.
43841 2001-10-10 Richard Kenner <kenner@gnat.com>
43843 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
43844 VAR_DECL for constant if not Is_Public but -O0.
43846 2001-10-10 Richard Kenner <kenner@gnat.com>
43848 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
43850 2001-10-10 Geert Bosch <bosch@gnat.com>
43852 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
43853 use '/' as switch character, allowing for absolute file names.
43855 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
43857 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
43860 2001-10-08 Geert Bosch <bosch@gnat.com>
43862 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
43863 Automatically build utilities when files need to be regenerated.
43865 2001-10-08 Geert Bosch <bosch@gnat.com>
43867 * xsnames.adb: New utility for updating snames.ads and snames.adb
43869 2001-10-08 Zack Weinberg <zack@codesourcery.com>
43871 * Make-lang.in (ADAFLAGS): Add -W -Wall.
43872 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
43873 (gnat1): Also depend on attribs.o.
43874 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
43875 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
43876 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
43877 (ADAFLAGS): Add -W -Wall.
43878 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
43881 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
43882 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
43883 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
43884 Use $(ADAC), not $(CC), as compilation command.
43886 (gnattools): Depend directly on tools to build, don't use
43888 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
43890 * einfo.h, sinfo.h: New files (autogenerated).
43892 2001-10-08 Richard Henderson <rth@redhat.com>
43894 * comperr.adb (Abort_In_Progress): New.
43895 (Compiler_Abort): Use it to prevent recursion.
43897 2001-10-08 Robert Dewar <dewar@gnat.com>
43899 * atree.adb: Set Error_Posted in Error node, helps error recovery.
43901 * par-endh.adb (Output_End_Expected): We should also not test
43902 Error_Posted on the Error node, since now it is always set.
43904 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
43905 to help error recovery. Part of general work on 9407-004.
43907 * par.adb: Add ??? for misuse of error
43910 (Resolve): Defend against Error, fixes 9407-003.
43911 (Resolve_Discrete_Subtype_Indication): Defend against Error.
43913 * sinfo.ads (N_Error): Now has Etype field (which will be set
43914 to Any_Type to help error recovery).
43916 2001-10-08 Richard Kenner <kenner@gnat.com>
43918 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
43919 Consistently set MEM attributes from expression; fixes
43920 bootstrap failure on x86.
43922 2001-10-08 Geert Bosch <bosch@gnat.com>
43924 * 5oosinte.adb: Add 2001 to copyright notice.
43926 2001-10-08 Geert Bosch <bosch@gnat.com>
43928 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
43930 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
43932 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
43934 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
43936 2001-10-05 Geert Bosch <bosch@gnat.com>
43938 * adaint.h: Small formatting fix.
43940 2001-10-04 Geert Bosch <bosch@gnat.com>
43942 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
43943 Arg is int, not FILE *, in dummy version of functions.
43945 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
43946 Arg is int, not FILE *.
43948 2001-10-04 Geert Bosch <bosch@gnat.com>
43950 * 3lsoccon.ads: Added file, missed with initial check ins.
43952 * 4lintnam.ads: Fix header format.
43953 Change Linux to GNU/Linux.
43955 * 5iosinte.adb: Change Linux to GNU/Linux.
43957 * 5iosinte.ads: Change Linux to GNU/Linux.
43959 * 5itaprop.adb: Change Linux to GNU/Linux.
43961 * 5itaspri.ads: Change Linux to GNU/Linux.
43962 Update copyright notice.
43964 * 5lintman.adb: Change Linux to GNU/Linux.
43966 * 5lml-tgt.adb: Change Linux to GNU/Linux.
43968 * 5losinte.ads: Change Linux to GNU/Linux.
43970 * 5lsystem.ads: Change Linux to GNU/Linux.
43972 * 5qosinte.adb: Change Linux to GNU/Linux.
43974 * 5qosinte.ads: Change Linux to GNU/Linux.
43976 * 5qparame.ads: Change Linux to GNU/Linux.
43978 * 5qtaprop.adb: Change Linux to GNU/Linux.
43980 * 5qtaspri.ads: Change Linux to GNU/Linux.
43981 Add 2001 to copyright notice.
43983 * 5vintman.ads: Change Linux to GNU/Linux.
43984 Fix header format. Add 2001 to copyright notice.
43986 * g-soccon.ads: Change Linux to GNU/Linux.
43988 * g-trasym.ads: Change Linux to GNU/Linux.
43989 Add 2001 to copyright notice.
43991 * memtrack.adb: Change Linux to GNU/Linux.
43993 * s-intman.ads: Change Linux to GNU/Linux.
43994 Add 2001 to copyright notice. Fix header format.
43996 * s-stache.adb: Change Linux to GNU/Linux.
43998 * adaint.c: Change Linux to GNU/Linux.
44000 * cio.c: Change Linux to GNU/Linux.
44002 * cstreams.c: Change Linux to GNU/Linux.
44004 * init.c: Change Linux to GNU/Linux.
44006 * gmem.c: Change Linux to GNU/Linux.
44008 * tracebak.c: Change Linux to GNU/Linux.
44011 2001-10-02 Geert Bosch <bosch@gnat.com>
44013 * misc.c (insert_default_attributes): Add dummy version.